《第3章需求分析课件》由会员分享,可在线阅读,更多相关《第3章需求分析课件(39页珍藏版)》请在金锄头文库上搜索。
1、第第 3 章章 需求分析需求分析 需求分析基本任务是准确地回答“系统必须做什么?”这个问题。 需求分析的任务是调查了解用户需求,把满足用户需求的新系统的逻辑模型用需求规格说明的特定形式表达出来。 1. 功能需求: 指系统必须完成的所有功能。2. 性能需求 性能需求指系统应满足的定时约束或容量约束。3. 可靠性和可用性需求4.系统的数据要求:可使用实体-联系图5. 其它需求:例如,安全性需求、接口需求、以及约束条件等3.1 需求分析的任务需求分析的任务 3.1.1 确定对系统的综合要求确定对系统的综合要求 通常用数据流图、实体-联系图、状态转换图、数据字典和主要的处理算法描述这个逻辑模型。3.1
2、.2 导出系统的逻辑模型导出系统的逻辑模型 访谈是最早使用的获取用户需求的技术。 当需要调查大量人员的意见时,向被调查人分发调查表也是一个十分有效的做法。3.2.2 面向数据流自顶向下求精 结构化分析方法就是面向数据流自顶向下 逐步求精进行需求分析的方法。3.2 与用户沟通获取需求的方法与用户沟通获取需求的方法 3.2.1 访谈及调查访谈及调查 需求分析过程应该建立 3 种模型,它们分别是数据模型、功能模型和行为模型。3.3 分析建模与规格说明分析建模与规格说明 3.3.1 分析建模分析建模 实体-联系图,描绘数据对象及数据对象之间的关系,是用于建立数据模型的图形。 数据流图是建立功能模型的基
3、础。 状态转换图描绘了系统的各种行为模式(称为“状态”)和在不同状态间转换的方式。状态转换图是行为建模的基础。 软件需求规格说明书(或称SRS)是需求分析阶段得出的最主要的文档。 (注意: 需求规格说明书有国家标准) 3.3.2 软件需求规格说明软件需求规格说明 为了把用户的数据要求清楚、准确地描述出来,通常建立一个概念性的数据模型。概念模型是一种面向问题的数据模型,它描述了从用户角度看到的数据。 数据模型中包含:数据对象、数据对象的属性及数据对象彼此间相互连接的关系。3.4 实体实体-联系图联系图 数据对象可以是外部实体、事物、行为、事件、地点等。3.4.2 属性 属性定义了数据对象的性质。
4、3.4.3 联系(1) 一对一联系(11)例如,一个部门有一个经理(2) 一对多联系(1N)例如,某校教师与课程之间存在一对多的联系。 3.4.1 数据对象数据对象(3) 多对多联系(MN) 例如,学生与课程间的联系(“学”)是多对多的。 联系也可能有属性。例如, “成绩” 是学生与课程之间的联系“学”的属性。图3.2 某校教学管理E-R图 为减少数据冗余,避免出现插入异常或删除异常,简化修改数据的过程,通常需要把数据结构规范化。3.5 数据规范化数据规范化 通常用“范式(normal forms)”定义消除数据冗余的程度。 第一范式(1 NF)数据冗余程度最大,第五范式 (5 NF) 数据冗
5、余程度最小。但是,范式级别越高,存储同样数据就需要分解成更多张表,因此,“存储自身”的过程也就越复杂。 范式级别提高则需要访问的表增多,因此性能(速度)将下降。从实用角度看来,在大多数场合选用第三范式都比较恰当。(1) 第一范式每个属性(或字段)值都必须是原子值。或者说每个字段不能有多个值。(2) 第二范式满足第一范式条件,而且每个非主关键字属性都由整个主关键字决定。 (3) 第三范式符合第二范式的条件,每个非主关键字属性都仅由主关键字决定。即一个非关键字属性不能依赖于其它非关键字属性。 第三范式表明主关键字是绝对“统帅”,所有属性(字段)必须由它直接“统帅”,不能再依赖其它属性(字段)。下面
6、,我们以实例来说明几个范式实例:考虑以下“配件-供应商-库存”结构显然 ,上述结构不满足1NF。这时可以把它分解成两个表:表 T1:表 T2:显然两个表均满足显然两个表均满足INFINF。请问表请问表T2T2是否满足是否满足2NF?2NF? 由于供应商地址只以赖于供应商编号,故表T2不满足2NF。我们把T2再分解成: *配件编号 *供应商编号 *供应商编号 供应商地址 厂价 库存量 占用资金 显然,表T21和表T22均满足2NF。 请问,表T21是否满足3NF?若不满足,如何办?表表T21表表T22 状态图提供了行为建模机制, 它表示一个系统对象在它的生存周期内各阶段的状态和行为。3.6 状态
7、转换图状态转换图 在状态图中定义的状态主要有:初态、终态和中间状态。在一张状态图中只能有一个初态,而终态则可以有0至多个。3.6.1 状态状态 事件是在某个特定时刻发生的事情,它会引起系统做动作或(和)从一个状态转换到另一个状态。3.6.2 3.6.2 事件事件 在状态图中,初态用实心圆表示,终态用一对同心圆(内圆为实心圆)表示。中间状态用圆角矩形表示,(可以用一条水平横线把它分成上、下2个部分。上面部分为状态的名称,这部分是必须有的;下面部分是活动表,这部分也是可选的。)3.6.3 3.6.3 符号符号状态内部的事件:事件名(参数表)/动作表达式 在状态内部经常使用下述3种标准事件:entr
8、y,exit和do。entry事件指定进入该状态的动作,exit事件指定退出该状态的动作,而do事件则指出在该状态下的活动。 状态图中两个状态之间带箭头的连线称为状态转换,状态变迁通常是由事件触发的,在这种情况下应在箭头线上标出触发转换的事件表达式。 事件表达式的语法如下:事件说明守卫条件动作表达式 其中,事件说明的语法为:事件名(参数表)。守卫条件是一个布尔表达式。如果同时使用事件说明和守卫条件,则当且仅当事件发生且布尔表达式为真时,状态转换才发生。 动作表达式是当状态转换时执行的表达式。 图3.3给出了状态图中使用的主要符号。图3.3 状态图中使用的主要符号初态初态简单的状态图的例子简单的
9、状态图的例子1:简单的状态图的例子简单的状态图的例子2: 下面的例子。(见书57页)是人们非常熟悉的电话线路系统的状态图。 图中表明,没有人打电话时电话处于闲置状态;有人拿起听筒则进入拨号状态,到达这个状态后,电话的行为是响起拨号音并计时;这时如果拿起听筒的人改变主意不想打了,他把听筒放下(挂断),电话重又回到闲置状态;如果拿起听筒很长时间不拨号(超时),则进入超时状态;。状态图状态图状态图状态图例子例子实例1 : 绘制“打电话过程”电话线路的状态图。 注:可设置如下状态:“Idle”,“Dialing”,“Connecting”,“Ringing”,“Connected” ,“Disconn
10、ected”,“Time Out”,“Play Message”,“Busy Tone”(可以适当增减状态)参考答案:参考答案:实例实例2 : 绘制复印机工作的状态图,陈述如下:绘制复印机工作的状态图,陈述如下: “未接到工作命令时复印机处于闲置状态。接到复未接到工作命令时复印机处于闲置状态。接到复印命令后,转入复印状态。完成复印后又回到闲置印命令后,转入复印状态。完成复印后又回到闲置状态,等待命令。状态,等待命令。 若复印时发现没纸,则进入缺纸状态,发出警告若复印时发现没纸,则进入缺纸状态,发出警告等待装纸。装纸完成后又进入闲置状态。等待装纸。装纸完成后又进入闲置状态。 若复印时发现卡纸,则
11、进入卡纸(故障)状态,若复印时发现卡纸,则进入卡纸(故障)状态,发出警告等待排除故障。故障排除后,又进入闲置发出警告等待排除故障。故障排除后,又进入闲置状态。状态。 ”*3.7 其他图形工具其他图形工具如:如:IPO图图 IPO图是输入、处理、输出图的简称,它是美 国IBM公司发展完善起来的一种图形工具 (参见教科书P59). 大量统计数字表明,软件系统中15%的错误起源于错误的需求。为了提高软件质量,确保软件开发成功, 必须严格验证这些需求的正确性。(参考教科书P60-P61)PSL/PSA是验证需求的有效工具。3.8 验证软件需求验证软件需求PSL/PSA是美国密执安大学开发的需求分析工具: 传统软件工程方法学使用结构化分析技术,完成分析用户需求的工作。 需求分析的任务是调查了解用户需求,把满足用户需求的新系统的逻辑模型用需求规格说明的特定形式表达出来。3.9 小结小结 为了更好地理解问题,常常采用建立模型的方法,结构化分析实质上就是一种建模活动。 在需求分析阶段通常使用实体-联系图建立数据模型,使用数据流图建立功能模型,使用状态图建立行为模型。 数据字典描述在数据模型、功能模型和行为模型中出现的数据对象及控制信息的特性,给出它们的准确定义。复印机工作的状态图参考答案:复印机工作的状态图参考答案: