《状态转换图文档资料》由会员分享,可在线阅读,更多相关《状态转换图文档资料(56页珍藏版)》请在金锄头文库上搜索。
1、 需需 求求 分分 析析1第第3 3章章 需求分析需求分析意义:意义:软件需求的深入理解是软件开发工作获软件需求的深入理解是软件开发工作获得成功的前提条件,不论我们把设计和得成功的前提条件,不论我们把设计和编码做得如何出色,不能真正满足用户编码做得如何出色,不能真正满足用户需求的程序只会令用户失望,给开发带需求的程序只会令用户失望,给开发带来烦恼。来烦恼。2 需求分析是软件定义时期的最后一个阶段,需求分析是软件定义时期的最后一个阶段,它的基本任务它的基本任务不是确定系统怎样完成不是确定系统怎样完成它的工它的工作,作,而是确定系统必须完成而是确定系统必须完成哪些工作,也就哪些工作,也就是对目标系
2、统提出完整、准确、清晰、具体是对目标系统提出完整、准确、清晰、具体的要求。并在在需求分析阶段结束之前,由的要求。并在在需求分析阶段结束之前,由系统分析员写出软件需求规格说明书,以书系统分析员写出软件需求规格说明书,以书面形式准确地描述软件需求。即:面形式准确地描述软件需求。即: - - 准确地回答准确地回答“系统必系统必须做什么须做什么? ?”。3在分析软件需求和书写软件需求规格说明在分析软件需求和书写软件需求规格说明书的过程中,分析员和用户都起着关键的、书的过程中,分析员和用户都起着关键的、必不可少的作用。必不可少的作用。 4需求分析的结构化方法都遵守下述准则:需求分析的结构化方法都遵守下述
3、准则:(3) (3) 必须描述作为外部事件结果的软件行为,这必须描述作为外部事件结果的软件行为,这条准则要求建立行为模型。条准则要求建立行为模型。(2) (2) 必须定义软件应完成的功能,这条准则要必须定义软件应完成的功能,这条准则要求建立功能模型。求建立功能模型。(1) (1) 必须理解并描述问题的信息域,根据这必须理解并描述问题的信息域,根据这条准则应该建立数据模型。条准则应该建立数据模型。(4) (4) 必须对描述信息、功能和行为的模型进行必须对描述信息、功能和行为的模型进行分解,用层次的方式展示细节。分解,用层次的方式展示细节。5软件的需求包括:软件的需求包括:功能需求功能需求性能需求
4、性能需求环境需求环境需求可靠性需求可靠性需求安全保密要求安全保密要求用户界面需求用户界面需求资源使用需求资源使用需求成本消耗需求成本消耗需求开发进度需求开发进度需求预先估计以后系统预先估计以后系统可能达到的目标可能达到的目标673.1 3.1 需求分析的任务需求分析的任务需求分析的任务就是借助于当前系统的逻辑模需求分析的任务就是借助于当前系统的逻辑模需求分析的任务就是借助于当前系统的逻辑模需求分析的任务就是借助于当前系统的逻辑模型导出目标系统的逻辑模型,解决目标系统的型导出目标系统的逻辑模型,解决目标系统的型导出目标系统的逻辑模型,解决目标系统的型导出目标系统的逻辑模型,解决目标系统的 “ “
5、做什么做什么做什么做什么” ” 的问题。的问题。的问题。的问题。81 1确定对系统的综合要求确定对系统的综合要求 -功能需求、性能需求、可靠性和可用性功能需求、性能需求、可靠性和可用性需求、出错处理需求、接口需求、约束、需求、出错处理需求、接口需求、约束、 逆向需求、将来可能提出的要求。逆向需求、将来可能提出的要求。3.1 3.1 需求分析的具体任务需求分析的具体任务2 分析系统的数据要求分析系统的数据要求3 导出系统的逻辑模型导出系统的逻辑模型4 修正系统开发计划修正系统开发计划93.2 3.2 与用户沟通获取需求的方法与用户沟通获取需求的方法访谈访谈面向数据流自顶向下求精面向数据流自顶向下
6、求精简易的应用规格说明技术简易的应用规格说明技术快速建立软件原型快速建立软件原型10(1).(1). 访访 谈谈正式的访谈正式的访谈 - 系统分析员将提出一些事先准备好的具体问题。系统分析员将提出一些事先准备好的具体问题。非正式的访谈非正式的访谈 - 分析员将提出一些用户可以自由回答的开放性问分析员将提出一些用户可以自由回答的开放性问题,以鼓励被访问人员说出自己的想法。题,以鼓励被访问人员说出自己的想法。当需要调查大量人员的意见时,向被调查人分发当需要调查大量人员的意见时,向被调查人分发调查表是一个十分有效的做法。调查表是一个十分有效的做法。在访问用户的过程中使用情景分析技术往往非常在访问用户
7、的过程中使用情景分析技术往往非常有效。有效。11所谓情景分析就是对用户将来使用目标系统解所谓情景分析就是对用户将来使用目标系统解决某个具体问题的方法和结果进行分析。决某个具体问题的方法和结果进行分析。情景分析技术的用处主要体现在下述两个方面:情景分析技术的用处主要体现在下述两个方面:(1) (1) 它能在某种程度上演示目标系统的行为,从而便它能在某种程度上演示目标系统的行为,从而便于用户理解,而且还可能进一步揭示出一些分析员于用户理解,而且还可能进一步揭示出一些分析员目前还不知道的需求。目前还不知道的需求。(2) (2) 由于情景分析较易为用户所理解,使用这种技术由于情景分析较易为用户所理解,
8、使用这种技术能保证用户在需求分析过程中始终扮演一个积极主能保证用户在需求分析过程中始终扮演一个积极主动的角色。需求分析的目标是获知用户的真实需求,动的角色。需求分析的目标是获知用户的真实需求,而这一信息的惟一来源是用户,因此,而这一信息的惟一来源是用户,因此,让用户起积让用户起积极主动的作用对需求分析工作获得成功是至关重要极主动的作用对需求分析工作获得成功是至关重要的。的。12(2).(2). 面向数据流自顶向下求精面向数据流自顶向下求精数据决定了需要的处理和算法,它是需求分析的出发点。数据决定了需要的处理和算法,它是需求分析的出发点。可行性研究阶段产生的是高层数据流图,许多具体的细节可行性研
9、究阶段产生的是高层数据流图,许多具体的细节没有包括,许多实际的数据元素被忽略,当时分析员还不没有包括,许多实际的数据元素被忽略,当时分析员还不需要考虑这些细节,现在是定义这些数据元素的时候了。需要考虑这些细节,现在是定义这些数据元素的时候了。自自顶顶向向下下求求精精过过程程13使用传统的访谈或面向数据流自顶向下求精使用传统的访谈或面向数据流自顶向下求精方法定义需求时,用户处于被动地位而且往方法定义需求时,用户处于被动地位而且往往有意无意地与开发者区分往有意无意地与开发者区分“彼此彼此”。由于。由于不能像同一个团队的人那样齐心协力地识别不能像同一个团队的人那样齐心协力地识别和精化需求,这两种方法
10、的效果有时并不理和精化需求,这两种方法的效果有时并不理想。想。有办法吗?有办法吗?有办法吗?有办法吗?有!有!有!有! Go Next !Go Next ! 问题:问题:14 这种方法提倡用户与开发者密切合作,这种方法提倡用户与开发者密切合作,共同标识问题,提出解决方案要素,商共同标识问题,提出解决方案要素,商讨不同方案并指定基本需求。讨不同方案并指定基本需求。(3). 简易的应用规格说明技术简易的应用规格说明技术 - 一种面向团队的需求收集法一种面向团队的需求收集法15使用简易的应用规格说明技术使用简易的应用规格说明技术分析需求的典型过程分析需求的典型过程1. 1. 初步的访谈,通过用户对基
11、本问题的回答,初步初步的访谈,通过用户对基本问题的回答,初步确定待解决的问题的范围和解决方案。确定待解决的问题的范围和解决方案。2. 2. 开发者和用户分别写出开发者和用户分别写出“产品需求产品需求”。3. 3. 开发者和用户开会讨论,共同创建一张意见一致的开发者和用户开会讨论,共同创建一张意见一致的组合列表。组合列表。4. 4. 把与会者分成更小的小组,每个小组的工作目标是把与会者分成更小的小组,每个小组的工作目标是为每张列表中的项目制定小型规格说明。小型规格为每张列表中的项目制定小型规格说明。小型规格说明是对列表中包含的单词或短语的准确说明。说明是对列表中包含的单词或短语的准确说明。5.
12、5. 每个小组向全体与会者展示他们制定的小型规格说每个小组向全体与会者展示他们制定的小型规格说明,讨论,以创建出意见一致的确认标准。明,讨论,以创建出意见一致的确认标准。6. 6. 由一名或多名与会者根据会议成果起草完整的软件由一名或多名与会者根据会议成果起草完整的软件需求规格说明书。需求规格说明书。16(4).(4). 快速建立软件原型快速建立软件原型正如第正如第1 1章已经讲过的,快速原型就是章已经讲过的,快速原型就是快速建立起来的旨在演示目标系统主快速建立起来的旨在演示目标系统主要功能的可运行的程序。要功能的可运行的程序。快速建立软件原型是最准确、最有效、快速建立软件原型是最准确、最有效
13、、最强大的需求分析技术。最强大的需求分析技术。快速原型应具备的特性是快速原型应具备的特性是“快速快速”、 “容易修改容易修改”。17快速构建和修改原型,快速构建和修改原型,通常使用下述通常使用下述3 3种方法和工具:种方法和工具:(1)(1) 第四代技术第四代技术(2) (2) 可重用的软件构件可重用的软件构件(3) (3) 形式化规格说明和原型环境形式化规格说明和原型环境183.33.3 分析建模与规格说明分析建模与规格说明 1).1). 分析建模分析建模 模型模型-就是为了理解事物而对事物做出就是为了理解事物而对事物做出的一种抽象,是对事物的一种无歧义的书面的一种抽象,是对事物的一种无歧义
14、的书面描述。通常,由一组图形符号和组织这些符描述。通常,由一组图形符号和组织这些符号的规则组成。号的规则组成。 需求分析过程应该建立需求分析过程应该建立3 3种模型种模型: : 数据模型数据模型 - - 实体实体- -联系图联系图 功能模型功能模型 - - 数据流图数据流图 行为模型行为模型 -状态转换图状态转换图193.33.3 分析建模与规格说明分析建模与规格说明2). 2). 软件需求规格说明软件需求规格说明(SRS)(SRS) Software Requirement Specification 通常用自然语言通常用自然语言+ +模型,完整、准确、具模型,完整、准确、具体地描述系统的数
15、据要求、功能需求、体地描述系统的数据要求、功能需求、性能需求、可靠性和可用性要求、出错性能需求、可靠性和可用性要求、出错处理需求、接口需求、约束、逆向需求处理需求、接口需求、约束、逆向需求以及将来可能提出的要求。以及将来可能提出的要求。 软件需求规格说明书,是需求分析阶软件需求规格说明书,是需求分析阶段得出的最主要的文档。段得出的最主要的文档。20软件需求说明书的编写提示软件需求说明书的编写提示(GB856TGB856T8888)21软件需求说明书的编写提示软件需求说明书的编写提示 1 1 引言引言 1.1 1.1 编写目的编写目的 1.2 1.2 背景背景 1.3 1.3 定义定义 1.4
16、1.4 参考资料参考资料 2 2 任务概述任务概述 2.1 2.1 目标目标 2.2 2.2 用户的特用户的特点点 2.3 2.3 假定和约假定和约束束22软件需求说明书的编写提示软件需求说明书的编写提示 3 3 需求规定需求规定 3.1 3.1 对功能的规定对功能的规定 3.2 3.2 对性能的规定对性能的规定 3.2.1 3.2.1 精度精度 3.2.2 3.2.2 时间特性要求时间特性要求 3.2.3 3.2.3 灵活性灵活性 3.3 3.3 输人输出要求输人输出要求 3.4 3.4 数据管理能力要数据管理能力要求求 3.5 3.5 故障处理要求故障处理要求 3.6 3.6 其他专门要求
17、其他专门要求 4 4 运行环运行环境规定境规定 4.1 4.1 设备设备 4.2 4.2 支持软件支持软件 4.3 4.3 接口接口 4.4 4.4 控制控制23 软件工程思想软件工程思想( (林锐林锐 P38P38P48P48) )需求分析为什么困难?需求分析为什么困难?如何进行需求分析?如何进行需求分析? 243.4 3.4 实体实体- -联系图联系图(ER)(ER) Entity Relationship DiagramERER图图 - - 是用来建立数据模型的工具。是用来建立数据模型的工具。数据模型数据模型 - - 是一种面向问题的数据模型,是是一种面向问题的数据模型,是按照用户的观点
18、对数据建立的模型。它描述了从按照用户的观点对数据建立的模型。它描述了从用户角度看到的数据,反映了用户的现实环境,用户角度看到的数据,反映了用户的现实环境,而且与在软件系统中的实现方法无关。而且与在软件系统中的实现方法无关。数据模型中包含数据模型中包含3 3种相互关联的信息:数据对象种相互关联的信息:数据对象(实体)、数据对象的属性及数据对象彼此间相(实体)、数据对象的属性及数据对象彼此间相互连接的关系。互连接的关系。25(1).(1). 数据对象数据对象数据对象数据对象: : 是对软件必须理解的复合信息的是对软件必须理解的复合信息的抽象。抽象。复合信息复合信息: : 是指是指具有一系列不同性质
19、或属性具有一系列不同性质或属性的事物的事物,仅有单个值的事物,仅有单个值的事物( (例如,宽度例如,宽度) )不不是数据对象。是数据对象。可以由可以由一组属性来定义的实体一组属性来定义的实体都可以被认为都可以被认为是数据对象。是数据对象。 如:外部实体、事物、行为、事件、角色、单如:外部实体、事物、行为、事件、角色、单位、地点或结构等。位、地点或结构等。数据对象彼此间是有关联的。数据对象彼此间是有关联的。26(2).(2). 属属 性性属性定义了数据对象的属性定义了数据对象的性质性质。必须把一个或多个属性定义为必须把一个或多个属性定义为“标识符标识符”,也就是,也就是说,当我们希望找到数据对象
20、的一个实例时,用标说,当我们希望找到数据对象的一个实例时,用标识符属性作为识符属性作为“关键字关键字”( (通常简称为通常简称为“键键”) )。应该根据对所要解决的问题的理解,来确定特定数应该根据对所要解决的问题的理解,来确定特定数据对象的一组合适的属性。据对象的一组合适的属性。如:如:学生具有学生具有学生具有学生具有学号学号学号学号、姓名姓名姓名姓名、性别性别性别性别、年龄年龄年龄年龄、专业专业专业专业(其它(其它(其它(其它略)等属性;略)等属性;略)等属性;略)等属性; 课程具有课程具有课程具有课程具有课程号课程号课程号课程号、课程名课程名课程名课程名、学分学分学分学分、学时数学时数学时
21、数学时数等属等属等属等属性;性;性;性; 教师具有教师具有教师具有教师具有职工号职工号职工号职工号、姓名姓名姓名姓名、年龄年龄年龄年龄、职称职称职称职称等属性。等属性。等属性。等属性。27(3).(3). 联联 系系数据对象数据对象彼此之间相互连接的方式彼此之间相互连接的方式称为联系,也称为关系。称为联系,也称为关系。联系可分为以下联系可分为以下3 3种类型种类型: a. a. 一对一联系一对一联系(11)(11) 如:一个部门有一个经理,而每个经理只在一个部门任职,则部门与经理的联如:一个部门有一个经理,而每个经理只在一个部门任职,则部门与经理的联系是一对一的。系是一对一的。 b. b. 一
22、对多联系一对多联系(1N)(1N) 如:某校教师与课程之间存在一对多的联系如:某校教师与课程之间存在一对多的联系“教教”,即每位教师可以教多门课,即每位教师可以教多门课程,但是每门课程只能由一位教师来教。程,但是每门课程只能由一位教师来教。 c. c. 多对多联系多对多联系(MN)(MN) 如:学生与课程间的联系如:学生与课程间的联系( (“学学”) )是多对多的,即一个学生可以学多门课程,是多对多的,即一个学生可以学多门课程,而每门课程可以有多个学生来学。而每门课程可以有多个学生来学。联系也可能有属性。联系也可能有属性。 如:学生如:学生“学学”某门课程所取得的成绩,既不是学生的属性也不是课
23、程的属性。某门课程所取得的成绩,既不是学生的属性也不是课程的属性。由于由于“成绩成绩”既依赖于某名特定的学生又依赖于某门特定的课程,所以它是学生与既依赖于某名特定的学生又依赖于某门特定的课程,所以它是学生与课程之间的联系课程之间的联系“学学”的属性。的属性。28(4). (4). 实体实体- -联系图的符号联系图的符号ERER图图中包含了中包含了实体实体( (即数据对象即数据对象) )、关关系系和和属性属性等等3 3种基本成分。种基本成分。通常用通常用矩形框矩形框代表实体;代表实体;用连接相关实体的用连接相关实体的菱形框菱形框表示关系;表示关系;用用椭圆形或圆角矩形椭圆形或圆角矩形表示实体表示
24、实体( (或关或关系系) )的属性;的属性;并用并用直线直线把实体把实体( (或关系或关系) )与其属性连与其属性连接起来。接起来。29举举 例例图图图图3.2 3.2 3.2 3.2 某校教学管理某校教学管理某校教学管理某校教学管理ERERERER图图图图对象对象教教师师属属性性学学生生属属性性课课程程属属性性联联系系属属性性关系关系303.53.5 数据规范化数据规范化31 规范化的目的是:规范化的目的是:消除数据冗余消除数据冗余,即消除表格中数据的重复;,即消除表格中数据的重复;消除多义性消除多义性,使关系中的属性含义清楚、,使关系中的属性含义清楚、单一;单一;使关系的使关系的“概念概念
25、”单一化单一化,让每个数据项,让每个数据项只是一个简单的数或字符串,而不是一个只是一个简单的数或字符串,而不是一个组项或重复组;组项或重复组;方便操作方便操作。使数据的插入、删除与修改操。使数据的插入、删除与修改操作可行并方便;作可行并方便;使关系模式更灵活使关系模式更灵活,易于实现接近自然语,易于实现接近自然语言的查询方式。言的查询方式。32如如 何何 规规 范范 化?化?规范化规范化规范化规范化 - - 将将将将数据的逻辑结构数据的逻辑结构数据的逻辑结构数据的逻辑结构归结为满足一定条件归结为满足一定条件归结为满足一定条件归结为满足一定条件的的的的二维表二维表二维表二维表(关系)。即:(关系
26、)。即:(关系)。即:(关系)。即: 1. 表格中每个信息项必须是一个不可分割的数据表格中每个信息项必须是一个不可分割的数据项,不可是组项。项,不可是组项。 2. 表格中每一列表格中每一列 ( (列表示属性列表示属性) )中所有信息项中所有信息项必须是同一类型,各列的名字必须是同一类型,各列的名字 ( (属性名属性名) ) 互异,互异,列的次序任意。列的次序任意。 3. 3. 表格中各行表格中各行 ( (行表示元组行表示元组) ) 互不相同,行互不相同,行的次序任意。的次序任意。教工号教工号姓名姓名性别性别职称职称职务职务001张毅坤张毅坤男男教授教授院长院长002李李 林林女女讲师讲师33用
27、教学管理例说明如何规范化用教学管理例说明如何规范化有三个实体型,即有三个实体型,即课程课程、学生学生和和教师教师,用三个关系保存它们的信息:用三个关系保存它们的信息: 学生学生( (学号学号,姓名,性别,年,姓名,性别,年龄,年级,专业,籍贯龄,年级,专业,籍贯) ) 教师教师( (职工号职工号,姓名,年龄,姓名,年龄,职称,职务,工资级别,工资职称,职务,工资级别,工资) ) 课程课程( (课程号课程号,课程名,学分,课程名,学分,学时,课程类型学时,课程类型) )34为表示实体型之间的联系,又建立两个为表示实体型之间的联系,又建立两个关系:关系: 选课选课 ( (学号,课程号学号,课程号,
28、听课出勤,听课出勤率,作业完成率,分数率,作业完成率,分数) ) 教课教课 ( (职工号,课程号职工号,课程号,授课效,授课效果果) )这五个关系,组成了这五个关系,组成了数据库的模型数据库的模型。在每个关系中,属性名下加下划线)指在每个关系中,属性名下加下划线)指明明关键字关键字。并规定关键字能唯一地标识。并规定关键字能唯一地标识一个元组。一个元组。35通常用通常用“范式范式(Normal Forms)(Normal Forms)”定义消除数据冗余的定义消除数据冗余的程度。第一范式程度。第一范式(1 NF)(1 NF)数据冗余程度最大,第五范数据冗余程度最大,第五范式式(5 NF)(5 NF
29、)数据冗余程度最小。数据冗余程度最小。但是:但是:1 1、范式级别越高,存储同样数据就需要分解成更多张、范式级别越高,存储同样数据就需要分解成更多张表,因此,表,因此,“存储自身存储自身”的过程也就越复杂。的过程也就越复杂。2 2、随着范式级别的提高,数据的存储结构与基于问题、随着范式级别的提高,数据的存储结构与基于问题域的结构间的匹配程度也随之下降,因此,在需求变化域的结构间的匹配程度也随之下降,因此,在需求变化时数据的稳定性较差。时数据的稳定性较差。3 3、范式级别提高则需要访问的表增多,因此性能、范式级别提高则需要访问的表增多,因此性能( (速度速度) )将下降。从实用角度看来,在大多数
30、场合选用第三范将下降。从实用角度看来,在大多数场合选用第三范式都比较恰当。式都比较恰当。所以,从实用角度看来,在大多数所以,从实用角度看来,在大多数场合选用第三范式都比较恰当。场合选用第三范式都比较恰当。36第第 一一 范范 式式每个属性值都必须是原子值,即仅仅是一个每个属性值都必须是原子值,即仅仅是一个简单值而不含内部结构。简单值而不含内部结构。 如:如:学生学生学生学生( (学号学号学号学号,姓名,性别,年龄,年级,专业,籍贯,姓名,性别,年龄,年级,专业,籍贯,姓名,性别,年龄,年级,专业,籍贯,姓名,性别,年龄,年级,专业,籍贯) )教师教师教师教师( (职工号职工号职工号职工号,姓名
31、,年龄,职称,职务,工资级别,工资,姓名,年龄,职称,职务,工资级别,工资,姓名,年龄,职称,职务,工资级别,工资,姓名,年龄,职称,职务,工资级别,工资) )课程课程课程课程( (课程号课程号课程号课程号,课程名,学分,学时,课程类型,课程名,学分,学时,课程类型,课程名,学分,学时,课程类型,课程名,学分,学时,课程类型) )37第第 二二 范范 式式满足第一范式条件,而且每个非关键字属性满足第一范式条件,而且每个非关键字属性都由整个关键字决定都由整个关键字决定( (而不是由关键字的一而不是由关键字的一部分来决定部分来决定) )。 如:如:选课选课选课选课 ( ( 学号,课程号学号,课程号
32、学号,课程号学号,课程号,听课出勤率,作业完成率,分数听课出勤率,作业完成率,分数听课出勤率,作业完成率,分数听课出勤率,作业完成率,分数 ) )教课教课教课教课 ( ( 职工号,课程号职工号,课程号职工号,课程号职工号,课程号,授课效果授课效果授课效果授课效果 ) )38第第 三三 范范 式式符合第二范式的条件,每个非关键字属性都仅由符合第二范式的条件,每个非关键字属性都仅由关键字决定,而且一个非关键字属性不能仅仅是关键字决定,而且一个非关键字属性不能仅仅是对另一个非关键字属性的进一步描述对另一个非关键字属性的进一步描述( (即一个非关即一个非关键字属性值不依赖于另一个非关键字属性值键字属性
33、值不依赖于另一个非关键字属性值) )。 如:如:教师教师教师教师( (职工号职工号职工号职工号,姓名,年龄,职称,职务,姓名,年龄,职称,职务,姓名,年龄,职称,职务,姓名,年龄,职称,职务,工资工资工资工资) ) - - 工资依赖于职称或职务工资依赖于职称或职务工资依赖于职称或职务工资依赖于职称或职务教师教师教师教师( (职工号职工号职工号职工号,姓名,年龄,职称,职务,姓名,年龄,职称,职务,姓名,年龄,职称,职务,姓名,年龄,职称,职务,工资级别工资级别工资级别工资级别,工资,工资,工资,工资) )393.63.6 状态转换图状态转换图状态转换图状态转换图( (简称为状态图简称为状态图)
34、 ) 通过描绘系统的通过描绘系统的状态状态及引起系统状态转换及引起系统状态转换的的事件事件,来表示系统的,来表示系统的行为行为。此外,状态图。此外,状态图还指明了作为特定事件的结果系统将做哪些还指明了作为特定事件的结果系统将做哪些动作动作( (例如,处理数据例如,处理数据) )。401). 1). 状状 态态状态是任何可以被观察到的系统行为模式,一个状态代表系统的一种行为模式。状态规定了系统对事件的响应方式。系统对事件的响应,既可以是做一个(或一系列)动作,也可以是仅仅改变系统本身的状态,还可以是既改变状态又做动作。 初态初态 ( (即初始状态即初始状态) )状态状态 终态终态 ( (即最终状
35、态即最终状态) ) 中间状态中间状态一张状态图中只能有一个初态,而终态则可以有一张状态图中只能有一个初态,而终态则可以有0 0至多个。至多个。412). 2). 事事 件件事件是在某个特定时刻发生的事情,它事件是在某个特定时刻发生的事情,它是对引起系统做动作或是对引起系统做动作或( (和和) )从一个状态从一个状态转换到另一个状态的外界事件的抽象。转换到另一个状态的外界事件的抽象。例如,内部时钟表明某个规定的时间段例如,内部时钟表明某个规定的时间段已经过去,用户移动或点击鼠标等都是已经过去,用户移动或点击鼠标等都是事件。事件。简而言之,简而言之,事件就是引起系统做动作或事件就是引起系统做动作或
36、( (和和) )转换状态的控制信息。转换状态的控制信息。42初态用实心圆初态用实心圆表示,表示,终态用一对同心圆终态用一对同心圆( (内圆为内圆为实心圆实心圆) )表示。表示。中间状态用圆角矩形表示中间状态用圆角矩形表示,可以用两条水平横,可以用两条水平横线把它分成线把它分成上、中、下上、中、下3 3个部分。个部分。上面部分为状上面部分为状态的名称态的名称,这部分是必须有的;,这部分是必须有的;中间部分为状中间部分为状态变量的名字和值态变量的名字和值,这部分是可选的;,这部分是可选的;下面部下面部分是活动表分是活动表,这部分也是可选的。,这部分也是可选的。3 3) )符符号号43活动表的语法格
37、式:事件名活动表的语法格式:事件名( (参数表参数表)/)/动作表达式动作表达式 其中,其中,“事件名事件名”可以是任何事件的名称。在活可以是任何事件的名称。在活动表中经常使用下述动表中经常使用下述3 3种标准事件:种标准事件:entryentry,exitexit和和dodo。entryentry事件指定进入该状态的动作,事件指定进入该状态的动作,exitexit事件指事件指定退出该状态的动作,而定退出该状态的动作,而dodo事件则指定在该状态下事件则指定在该状态下的动作。需要时可以为事件指定参数表。活动表中的动作。需要时可以为事件指定参数表。活动表中的动作表达式描述应做的具体动作。的动作表
38、达式描述应做的具体动作。3 3) )符符号号44状态图中两个状态之状态图中两个状态之间带箭头的连线称为状态转换间带箭头的连线称为状态转换,箭头指明了转换方向。,箭头指明了转换方向。状态变迁通常是由事件触发的,在这种情况下应在表示状态转换的状态变迁通常是由事件触发的,在这种情况下应在表示状态转换的箭头线箭头线上标出触发转换的事件表达式上标出触发转换的事件表达式;如果在箭头线上未标明事件,则表示在源;如果在箭头线上未标明事件,则表示在源状态的内部活动执行完之后自动触发转换。状态的内部活动执行完之后自动触发转换。事件表达式的语法事件表达式的语法: 事件说明守卫条件动作表达式事件说明守卫条件动作表达式
39、事件说明事件说明的语法为:事件名的语法为:事件名( (参数表参数表) )。守卫条件守卫条件是一个布尔表达式。如果同时使用事件说明和守卫条件,则当且是一个布尔表达式。如果同时使用事件说明和守卫条件,则当且仅当事件发生且布尔表达式为真时,状态转换才发生。如果只有守卫条件仅当事件发生且布尔表达式为真时,状态转换才发生。如果只有守卫条件没有事件说明,则只要守卫条件为真状态转换就发生。没有事件说明,则只要守卫条件为真状态转换就发生。动作表达式是一个过程表达式,当状态转换开始时执行该表达式。动作表达式是一个过程表达式,当状态转换开始时执行该表达式。3 3) )符符号号454). 4). 举举 例例463.
40、73.7 其他图形工具其他图形工具 层次方框图层次方框图 Warnier Warnier图图 IPO IPO图图473.7.13.7.1 层次方框图层次方框图层次方框图用层次方框图用树形结构的一系列多层次的矩形框树形结构的一系列多层次的矩形框描绘数据的层次结构。描绘数据的层次结构。树形结构的树形结构的顶层是一个单独的矩形框顶层是一个单独的矩形框,它代表完,它代表完整的数据结构,整的数据结构,下面的各层矩形框代表这个数据下面的各层矩形框代表这个数据的子集的子集,最底层最底层的各个框代表组成这个数据的的各个框代表组成这个数据的实实际数据元素际数据元素( (不能再分割的元素不能再分割的元素) )。随
41、着结构的精细化,层次方框图对数据结构也描随着结构的精细化,层次方框图对数据结构也描绘得越来越详细,绘得越来越详细,这种模式非常适合于需求分析这种模式非常适合于需求分析阶段的需要阶段的需要。系统分析员从对顶层信息的分类开。系统分析员从对顶层信息的分类开始,沿图中每条路径反复细化,直到确定了数据始,沿图中每条路径反复细化,直到确定了数据结构的全部细节时为止。结构的全部细节时为止。48举举 例例49领导层辅助决策系统领导层辅助决策系统查询查询辅助决策辅助决策物物资资信信息息重重点点供供料料信信息息商商情情信信息息人人员员状状况况合合同同监监视视财财务务信信息息计计划划执执行行情情况况工工程程进进展展
42、情情况况超超储储低低储储情情况况经经营营指指标标历历年年对对比比价价格格预预测测物物资资用用量量预预测测库库存存定定额额核核定定库库存存结结构构分分析析经经济济采采购购批批量量保保本本保保利利分分析析503.7.23.7.2 Warnier Warnier图图法国计算机科学家法国计算机科学家WarnierWarnier提出了表示信息层次结提出了表示信息层次结构的另外一种图形工具。构的另外一种图形工具。WarnierWarnier图也用树形结构描绘信息,但是这种图形图也用树形结构描绘信息,但是这种图形工具比层次方框图提供了更丰富的描绘手段。工具比层次方框图提供了更丰富的描绘手段。用用Warnie
43、rWarnier图可以图可以表明信息的逻辑组织表明信息的逻辑组织。 它可以指出一类信息或一个信息元素是它可以指出一类信息或一个信息元素是重复出现重复出现的,也可以表示特定信息在某一类信息中是的,也可以表示特定信息在某一类信息中是有条有条件地出现件地出现的。的。重复和条件约束是说明软件处理过程的基础,所重复和条件约束是说明软件处理过程的基础,所以很容易把以很容易把WarnierWarnier图转变成软件设计的工具。图转变成软件设计的工具。51举举 例例图中表示一种软件产品图中表示一种软件产品要么要么是系统软件是系统软件要么要么是应是应用软件。系统软件中有用软件。系统软件中有P1P1种操作系统,种
44、操作系统,P2P2种编译种编译程序,此外还有软件工具。软件工具是系统软件程序,此外还有软件工具。软件工具是系统软件的一种,它又可以进一步细分为编辑程序、测试的一种,它又可以进一步细分为编辑程序、测试驱动程序和设计辅助工具,驱动程序和设计辅助工具,图中标出了每种软件图中标出了每种软件工具的数量。工具的数量。523.7.33.7.3 IPO IPO图图左边的框中列出有关的左边的框中列出有关的输入数据。输入数据。中间的框内列出主要的中间的框内列出主要的处理,处理框中列出处处理,处理框中列出处理的次序暗示了执行的理的次序暗示了执行的顺序,但是用这些基本顺序,但是用这些基本符号还不足以精确描述符号还不足
45、以精确描述执行处理的详细情况。执行处理的详细情况。在右边的框内列出产生在右边的框内列出产生的输出数据。的输出数据。在在IPOIPO图中还用类似向量图中还用类似向量符号的粗大箭头清楚地符号的粗大箭头清楚地指出数据通信的情况。指出数据通信的情况。53一种改进的一种改进的IPOIPO图图( (也称为也称为IPOIPO表表) )在需求分析阶段可以使用在需求分析阶段可以使用IPOIPO表表简略地简略地描述系统的描述系统的主要算法主要算法( (即数据流图中即数据流图中各个处理的基本算法各个处理的基本算法) )。需求分析阶段,需求分析阶段,IPOIPO表中表中的许多附加信息暂时还不的许多附加信息暂时还不具备
46、,但在设计阶段可以具备,但在设计阶段可以进一步补充修正这些图,进一步补充修正这些图,作为设计阶段的文档。作为设计阶段的文档。这正是在需求分析阶段用这正是在需求分析阶段用IPOIPO表作为描述算法的工表作为描述算法的工具的重要优点。具的重要优点。543.8 3.8 验证软件需求验证软件需求验证软件需求的正确性,一般应从验证软件需求的正确性,一般应从4 4个方面进行:个方面进行: (1) (1) 一致性一致性 所有需求必须是一致的,任何一条需所有需求必须是一致的,任何一条需求不能和其他需求互相矛盾。求不能和其他需求互相矛盾。 (2) (2) 完整性完整性 需求必须是完整的,规格说明书应该需求必须是
47、完整的,规格说明书应该包括用户需要的每一个功能或性能。包括用户需要的每一个功能或性能。 (3) (3) 现实性现实性 指定的需求应该是用现有的硬件技术指定的需求应该是用现有的硬件技术和软件技术基本上可以实现的。和软件技术基本上可以实现的。 (4) (4) 有效性有效性 必须证明需求是正确有效的,确实能必须证明需求是正确有效的,确实能解决用户面对的问题。解决用户面对的问题。55 作作 业业 1 1) 习题:习题:3.13.1、3.23.2、3.63.6; 2 2) 对自选项目写出需求说明书,并在对自选项目写出需求说明书,并在此基础上确定各小组项目需求说明书。此基础上确定各小组项目需求说明书。56