《软件工程讲义.ppt》由会员分享,可在线阅读,更多相关《软件工程讲义.ppt(39页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、软件工程软件工程第二章第二章 需求分析需求分析授课老师:清华大学计算机系授课老师:清华大学计算机系 殷人昆殷人昆 password qhdxjsjx 1系统分析系统分析基于计算机的系统的系统元素包括硬件、软基于计算机的系统的系统元素包括硬件、软件、人、数据库、文档和过程。件、人、数据库、文档和过程。系统分析的目标系统分析的目标1)识别用户要求识别用户要求2)评价系统的可行性评价系统的可行性3)进行经济分析和技术分析进行经济分析和技术分析4)把功能分配给硬件、软件、人、数据库和把功能分配给硬件、软件、人、数据库和其它系统元素其它系统元素24)建立成本和进度限制建立成本和进度限制5)生成系统规格说
2、明生成系统规格说明可行性研究可行性研究 可行性研究可行性研究可行性研究可行性研究vv从经济可行性、技术可行性、法律可行性从经济可行性、技术可行性、法律可行性从经济可行性、技术可行性、法律可行性从经济可行性、技术可行性、法律可行性和用户操作可行性等方面研究可行性。和用户操作可行性等方面研究可行性。和用户操作可行性等方面研究可行性。和用户操作可行性等方面研究可行性。3可行性研究的步骤可行性研究的步骤1)确定项目的规模和目标确定项目的规模和目标2)研究当前正在运行的系统研究当前正在运行的系统3)建立新系统的高层逻辑模型建立新系统的高层逻辑模型4)导出和评价各种方案导出和评价各种方案5)推荐可行的方案
3、推荐可行的方案6)编写可行性研究报告编写可行性研究报告4软件需求分析软件需求分析n需求分析的任务是发现、求精、建模和需求需求分析的任务是发现、求精、建模和需求定义的过程。包括定义的过程。包括:1)需求获取需求获取2)需求建模需求建模3)需求定义(规格说明、规约)需求定义(规格说明、规约)4)需求评审需求评审5)需求管理需求管理n需求分析研究的对象是用户的要求。需求分析研究的对象是用户的要求。51、需求获取、需求获取需求获取是在问题及其最终解决方案之间架设需求获取是在问题及其最终解决方案之间架设桥梁的第一步。桥梁的第一步。需求获取的目的是清楚地理解所要解决的问题,需求获取的目的是清楚地理解所要解
4、决的问题,完整地获得用户的需求。完整地获得用户的需求。获取需求的一个必不可少的结果是对项目中描获取需求的一个必不可少的结果是对项目中描述的客户需求的普遍理解。一旦理解了需求,述的客户需求的普遍理解。一旦理解了需求,分析者、开发者和客户就能探索出描述这些需分析者、开发者和客户就能探索出描述这些需求的多种解决方案。求的多种解决方案。6软件需求的层次软件需求的层次1)业务需求业务需求 反映了组织或客户对系统、产品反映了组织或客户对系统、产品高层次的目标要求,它们一般在项目视图和高层次的目标要求,它们一般在项目视图和范围文档中给予说明。范围文档中给予说明。2)用户需求用户需求 描述用户使用软件需要完成
5、哪些描述用户使用软件需要完成哪些任务,它们可通过使用实例图或脚本说明加任务,它们可通过使用实例图或脚本说明加以阐明。以阐明。3)功能功能非功能需求非功能需求 定义了开发者必须实现定义了开发者必须实现的软件功能,而非功能需求如表所示的软件功能,而非功能需求如表所示:78需求获取过程需求获取过程需求获取包括以下活动:需求获取包括以下活动:1)发现和分析问题发现和分析问题 发现问题症结,并分析问发现问题症结,并分析问题的原因题的原因/结果关系。结果关系。2)获取获取需求需求 根据对问题的理解定义需求。根据对问题的理解定义需求。a)使用调查研究方法收集信息;使用调查研究方法收集信息;b)遵循需求获取框
6、架,按照三个成分观察:遵循需求获取框架,按照三个成分观察:即即数据数据、过程过程和和接口接口。3)需求归档需求归档 以草稿形式归档调查结果。形以草稿形式归档调查结果。形式有用例、决策表、需求表等。式有用例、决策表、需求表等。92、需求建模、需求建模需求建模是为了分析需求,以确定项目的确切需求建模是为了分析需求,以确定项目的确切需求。需求。需求建模遵循三个原则:需求建模遵循三个原则:划分:描述需求的整体划分:描述需求的整体部分关系;部分关系;抽象:描述需求的一般化抽象:描述需求的一般化特殊化关系;特殊化关系;投影:描述需求的多维视图;投影:描述需求的多维视图;定义系统模型要区分逻辑模型和物理模型
7、。定义系统模型要区分逻辑模型和物理模型。常用模型有数据建模和过程建模。常用模型有数据建模和过程建模。103、需求定义、需求定义又称需求规格说明或需求规约。又称需求规格说明或需求规约。需求定义的主要目的是分析需求草稿和模型,需求定义的主要目的是分析需求草稿和模型,解决其中存在的二义性和不一致性,系统地准解决其中存在的二义性和不一致性,系统地准确地表达系统需求,形成需求规格说明。包括确地表达系统需求,形成需求规格说明。包括v 系统应提供的功能和服务;系统应提供的功能和服务;v 非功能需求;非功能需求;v 系统开发或运行的限制条件;系统开发或运行的限制条件;v 与系统互连的其他系统的信息。与系统互连
8、的其他系统的信息。114、需求评审、需求评审又称需求验证。又称需求验证。需求评审的目的是确保需求编写正确。可能的需求评审的目的是确保需求编写正确。可能的错误有:错误有:v 不正确的系统模型;不正确的系统模型;v 排版错误或语法错误;排版错误或语法错误;v 互相矛盾的需求;互相矛盾的需求;v 有二义性或用词不当的需求;有二义性或用词不当的需求;v 没有遵循文档编制规范要求的质量标准。没有遵循文档编制规范要求的质量标准。125、需求管理、需求管理需求管理就是管理需求变化的过程。需求管理就是管理需求变化的过程。需求管理涉及需求变更如何被处理的策略、规需求管理涉及需求变更如何被处理的策略、规程和过程。
9、它规定了程和过程。它规定了v 应如何提交一个需求变更请求?应如何提交一个需求变更请求?v 如何分析需求变更对范围、进度和成本的如何分析需求变更对范围、进度和成本的影响?影响?v 如何批准或驳回需求变更?如何批准或驳回需求变更?v 如果批准了变更,改变更如何实现?如果批准了变更,改变更如何实现?13常用的分析方法常用的分析方法面向数据流的结构化分析方法面向数据流的结构化分析方法(SA)面向数据结构的面向数据结构的Jackson方法方法(JSD)面向数据结构的结构化数据系统开发方法面向数据结构的结构化数据系统开发方法(DSSD)面向对象的分析方法面向对象的分析方法(OOA)等等14n结构化分析方法
10、最初只是着眼于数据流,自顶结构化分析方法最初只是着眼于数据流,自顶向下,逐层分解,建立系统的处理流程,以数向下,逐层分解,建立系统的处理流程,以数据流图和数据字典为主要工具,建立系统的逻据流图和数据字典为主要工具,建立系统的逻辑模型。辑模型。n扩充后,将建模技术扩展到数据建模、功能建扩充后,将建模技术扩展到数据建模、功能建模和行为建模,以实体模和行为建模,以实体-关系图、数据流图和关系图、数据流图和控制流图、状态控制流图、状态-迁移图为工具,数据字典为迁移图为工具,数据字典为核心,从不同视点建立系统的分析模型。核心,从不同视点建立系统的分析模型。结构化分析方法结构化分析方法15结构化分析的分析
11、模型结构化分析的分析模型实体实体关系图关系图状态状态迁移图迁移图数据流数据流数据流数据流图图图图数据对象描述数据对象描述加工规格说明加工规格说明数据数据字典字典控制规格说明控制规格说明16数据建模数据建模n数据模型包括三种互相关联的信息:数据对象,数据模型包括三种互相关联的信息:数据对象,描述对象的属性,描述对象间相互连接的关系。描述对象的属性,描述对象间相互连接的关系。n在需求分析阶段描述数据对象和它们之间的关在需求分析阶段描述数据对象和它们之间的关系,使用了系,使用了E-R 图。图。n例如,在教学管理中,一个教师可以教授零门、例如,在教学管理中,一个教师可以教授零门、一门或多门课程,每位学
12、生也需要学习几门课一门或多门课程,每位学生也需要学习几门课程。因此,教学管理中涉及的对象有学生、教程。因此,教学管理中涉及的对象有学生、教师和课程。师和课程。17教学数据模型教学数据模型学号学号学号学号 姓名姓名姓名姓名 专业专业专业专业 性别性别性别性别 学生学生职工号职工号职工号职工号姓名姓名姓名姓名专业专业专业专业职称职称职称职称年龄年龄年龄年龄教师教师课程号课程号课程号课程号 课程名课程名课程名课程名 学分学分学分学分 学时学时学时学时 课程课程学号学号学号学号课程号课程号课程号课程号成绩成绩成绩成绩选课选课18实例的关联有三种:一对一实例的关联有三种:一对一实例的关联有三种:一对一实
13、例的关联有三种:一对一(1:1)(1:1);一对多;一对多;一对多;一对多 (1:(1:m)m);多对多多对多多对多多对多(n:m)n:m)。这种实例的关联称为这种实例的关联称为这种实例的关联称为这种实例的关联称为“基数基数基数基数”,基数表明了,基数表明了,基数表明了,基数表明了“重复性重复性重复性重复性”。教师教师学生学生教授教授基数基数基数基数:一位教师一位教师一位教师一位教师 基数基数基数基数:多位学生多位学生多位学生多位学生参与度参与度参与度参与度:必须必须必须必须 参与度参与度参与度参与度:可选可选可选可选19XY一个一个X与一个与一个Y相关联相关联一个一个X与一个或多个与一个或多
14、个Y相关联相关联XY一个一个X与零个或一个与零个或一个Y相关联相关联XY一个一个X与零个与零个,一个或多个一个或多个Y相关联相关联XY一个一个X与一个与一个Y或或Z相关联相关联XYZ一个一个X与一个与一个Y与与Z相关联相关联XYZ20功能建模和数据流功能建模和数据流n n最初最初最初最初,结构化分析方法仅讨论数据流建模,目标结构化分析方法仅讨论数据流建模,目标结构化分析方法仅讨论数据流建模,目标结构化分析方法仅讨论数据流建模,目标系统被表示成如图所示的数据变换流程图。系系统被表示成如图所示的数据变换流程图。系系统被表示成如图所示的数据变换流程图。系系统被表示成如图所示的数据变换流程图。系统的功
15、能体现在核心的数据变换中。统的功能体现在核心的数据变换中。统的功能体现在核心的数据变换中。统的功能体现在核心的数据变换中。外部实体外部实体外部实体外部实体外部实体外部实体外部实体外部实体目标目标目标目标系统系统系统系统输入信息输入信息输入信息输入信息输入信息输入信息输入信息输入信息输出信息输出信息输出信息输出信息输出信息输出信息输出信息输出信息顶层数据流图(上下文环境图)顶层数据流图(上下文环境图)21分层的数据流图分层的数据流图22实例考务处理系统的功能实例考务处理系统的功能(1)对考生送来的报名单进行检查对考生送来的报名单进行检查;(2)对合格的报名单编好准考证号后将准考证送对合格的报名单
16、编好准考证号后将准考证送给考生,并将汇总后的考生名单送给阅卷站给考生,并将汇总后的考生名单送给阅卷站;(3)对阅卷站送来的成绩单进行检查,并根据考对阅卷站送来的成绩单进行检查,并根据考试中心制定的合格标准审定合格者试中心制定的合格标准审定合格者;(4)制作考生通知单制作考生通知单(含成绩及合格含成绩及合格/不合格标志不合格标志)送给考生送给考生;(5)按地区进行成绩分类统计和试题难度分析,按地区进行成绩分类统计和试题难度分析,产生统计分析表。产生统计分析表。23顶层数据流图顶层数据流图考考生生考务考务处理系统处理系统考考试试中中心心阅卷站阅卷站不合格报名表不合格报名表报名表报名表准考证准考证考
17、生通知单考生通知单成成绩绩单单合格标准合格标准错误成绩单错误成绩单考考生生名名单单统计分析表统计分析表24根据考务处理业务,画出顶层数据流图,以反根据考务处理业务,画出顶层数据流图,以反根据考务处理业务,画出顶层数据流图,以反根据考务处理业务,画出顶层数据流图,以反映最主要业务处理流程及系统与外界的关系。映最主要业务处理流程及系统与外界的关系。映最主要业务处理流程及系统与外界的关系。映最主要业务处理流程及系统与外界的关系。经过分析,考务业务处理的主要功能应当有经过分析,考务业务处理的主要功能应当有经过分析,考务业务处理的主要功能应当有经过分析,考务业务处理的主要功能应当有登登登登记报名单记报名
18、单记报名单记报名单、统计成绩统计成绩统计成绩统计成绩两个主要数据流。输入的两个主要数据流。输入的两个主要数据流。输入的两个主要数据流。输入的源点和输出终点是考生、考试中心和阅卷站。源点和输出终点是考生、考试中心和阅卷站。源点和输出终点是考生、考试中心和阅卷站。源点和输出终点是考生、考试中心和阅卷站。然后从输入端开始,根据考务业务工作流,然后从输入端开始,根据考务业务工作流,然后从输入端开始,根据考务业务工作流,然后从输入端开始,根据考务业务工作流,画出数据流流经的各加工框,逐步画到输出端,画出数据流流经的各加工框,逐步画到输出端,画出数据流流经的各加工框,逐步画到输出端,画出数据流流经的各加工
19、框,逐步画到输出端,得到第得到第得到第得到第 0 0 层数据流图。层数据流图。层数据流图。层数据流图。25报名表报名表准考证准考证1 1登记登记报名表报名表2统计统计成绩成绩不合格不合格报名表报名表考生通知单考生通知单成成绩绩单单统计分析表统计分析表第第0层数据流图层数据流图考生名册考生名册合合格格标标准准考考生生名名单单错错误误成成绩绩单单26第一层数据流图第一层数据流图(a)1.1 检查检查报名表报名表报名表报名表准考证准考证1.2编准考证编准考证号码号码不合格不合格报名表报名表考生名册考生名册考生名单考生名单合格合格报名表报名表1.3登记登记考生考生合格报名表合格报名表27第一层数据流图
20、第一层数据流图(b)2.1检查检查成绩单成绩单2.2审定审定合格者合格者考生名册考生名册正确正确成绩单成绩单2.3制作制作通知单通知单2.4分析统分析统计成绩计成绩2.5分析试分析试题难度题难度试题得分表试题得分表考生考生通知单通知单难度难度分析表分析表合格合格标准标准分类分类统计表统计表成绩单成绩单错误错误成绩单成绩单经审定的经审定的成绩单成绩单28行为建模行为建模n n行为建模给出需求分析方法的所有操作原则,行为建模给出需求分析方法的所有操作原则,行为建模给出需求分析方法的所有操作原则,行为建模给出需求分析方法的所有操作原则,但只有结构化分析方法的扩充版本才提供这但只有结构化分析方法的扩充
21、版本才提供这但只有结构化分析方法的扩充版本才提供这但只有结构化分析方法的扩充版本才提供这种建模的符号。种建模的符号。种建模的符号。种建模的符号。n n在描述各个数据对象的行为,采用状态迁移在描述各个数据对象的行为,采用状态迁移在描述各个数据对象的行为,采用状态迁移在描述各个数据对象的行为,采用状态迁移图。图。图。图。29状态迁移图状态迁移图n例如,有关处理器分配的进程状态迁移。例如,有关处理器分配的进程状态迁移。t2t3t4t1运行运行就绪就绪等待等待30数据字典数据字典n数据字典是结构化分析方法的核心,与各模数据字典是结构化分析方法的核心,与各模型的图形表示配合,能清楚地表达数据处理型的图形
22、表示配合,能清楚地表达数据处理的要求。的要求。n词条描述词条描述对于在模型中每一个被命名的对于在模型中每一个被命名的图形元素,均加以定义,其内容有图形元素,均加以定义,其内容有:名字,名字,别名或编号,分类,描述,定义,位置,其别名或编号,分类,描述,定义,位置,其它,等它,等31(1 1)数据流词条描述)数据流词条描述)数据流词条描述)数据流词条描述 数据流名:数据流名:说明:简要介绍它产生的原因和结果说明:简要介绍它产生的原因和结果 数据流来源:来自何方数据流来源:来自何方 数据流去向:去向何处数据流去向:去向何处 数据流组成:数据结构数据流组成:数据结构 数据量流通量:数据量,流通量数据
23、量流通量:数据量,流通量(2 2)数据元素词条描述数据元素词条描述数据元素词条描述数据元素词条描述32 类型:数字类型:数字(离散值,连续值离散值,连续值),文字,文字(编码编码类型类型)长度:长度:取值范围:取值范围:相关的数据元素及数据结构:相关的数据元素及数据结构:(3 3)数据文件词条描述)数据文件词条描述)数据文件词条描述)数据文件词条描述 数据文件名:数据文件名:简述:存放的是什么数据简述:存放的是什么数据 输入数据:输入数据:输出数据:输出数据:33 数据文件组成:数据结构数据文件组成:数据结构 存储方式:顺序,直接,关键码存储方式:顺序,直接,关键码 存取频率:存取频率:(4
24、4)加工逻辑词条描述)加工逻辑词条描述)加工逻辑词条描述)加工逻辑词条描述 加工名:加工名:加工编号:反映该加工的层次加工编号:反映该加工的层次 简要描述:加工逻辑及功能简述简要描述:加工逻辑及功能简述 输入数据流:输入数据流:输出数据流:输出数据流:34 加工逻辑:简述加工程序,加工顺序加工逻辑:简述加工程序,加工顺序(5 5)数据源及数据谭词条描述)数据源及数据谭词条描述)数据源及数据谭词条描述)数据源及数据谭词条描述 名称:外部实体名名称:外部实体名 简要描述:什么外部实体简要描述:什么外部实体 有关数据流:有关数据流:数目:数目:35数据结构的描述数据结构的描述 符号符号 含义含义 举
25、举 例例 被定义为被定义为 与与 x=a+b x=a+b.,.,.或或或或.|.|.或或或或 x=a,b,x=x=a,b,x=a|ba|b.或或或或 m.n m.n 重复重复 x=a,x=3a8 x=a,x=3a8(.)(.)可选可选 x=(a)x=(a)“.”“.”基本数据元素基本数据元素 x=a x=a .连结符连结符 x=1.9 x=1.936存折户名所号帐号开户日性质存折户名所号帐号开户日性质存折户名所号帐号开户日性质存折户名所号帐号开户日性质(印印印印密密密密)1 1 存取行存取行存取行存取行5050户名户名户名户名 2 2 字母字母字母字母2424所号所号所号所号 001.999
26、001.999帐号帐号帐号帐号 00000001.99999999 00000001.99999999开户日年月日开户日年月日开户日年月日开户日年月日性质性质性质性质“1”.“6”“1”.“6”注:注:注:注:“1”“1”表示普通户,表示普通户,表示普通户,表示普通户,“5”“5”表示工资户等表示工资户等表示工资户等表示工资户等印密印密印密印密“0”“0”注:印密在存折上不显示注:印密在存折上不显示注:印密在存折上不显示注:印密在存折上不显示存取行日期(摘要)支出存入余额存取行日期(摘要)支出存入余额存取行日期(摘要)支出存入余额存取行日期(摘要)支出存入余额操作复核操作复核操作复核操作复核3
27、7n软件需求规格说明的基本原则:软件需求规格说明的基本原则:v 功能与实现分离,描述要功能与实现分离,描述要“做什么做什么”而不而不是是“怎样实现怎样实现”。v 要求使用面向处理的规格说明语言,从而要求使用面向处理的规格说明语言,从而得到得到“做什么做什么”的规格说明。的规格说明。v 如果目标软件只是一个大系统中的一个元如果目标软件只是一个大系统中的一个元素,那么整个大系统也包括在规格说明的描素,那么整个大系统也包括在规格说明的描述之中。述之中。v 规格说明必须包括系统运行的环境。规格说明必须包括系统运行的环境。需求规格说明的原则需求规格说明的原则38v 系统规格说明必须是一个认识的模型,而不系统规格说明必须是一个认识的模型,而不是设计或实现的模型。是设计或实现的模型。v 规格说明必须是可操作的。规格说明必须是可操作的。v 规格说明必须容许不完备性并允许扩充。规格说明必须容许不完备性并允许扩充。v 规格说明必须局部化和松散的耦合。当信息规格说明必须局部化和松散的耦合。当信息被修改时,只要修改某个单个的段落,能够被修改时,只要修改某个单个的段落,能够很容易地加入和删去一些段落。很容易地加入和删去一些段落。39
限制150内