第3章需求讲述.ppt
文本预览下载声明
第 3 章 需求分析
需求分析基本任务是准确地回答“系统必须做什么?”这个问题。
需求分析的任务是调查了解用户需求,把满足用户需求的新系统的逻辑模型用《需求规格说明》的特定形式表达出来。
1. 功能需求: 指系统必须完成的所有功能。
2. 性能需求
性能需求指系统应满足的定时约束或容量约束。
3. 可靠性和可用性需求
4.系统的数据要求:可使用实体-联系图
5. 其它需求:例如,安全性需求、接口需求、以及约束条件等
3.1 需求分析的任务 3.1.1 确定对系统的综合要求
通常用数据流图、实体-联系图、状态转换图、数据字典和主要的处理算法描述这个逻辑模型。
3.1.2 导出系统的逻辑模型
访谈是最早使用的获取用户需求的技术。
当需要调查大量人员的意见时,向被调查人分发调查表也是一个十分有效的做法。
3.2.2 面向数据流自顶向下求精
结构化分析方法就是面向数据流自顶向下 逐步求精进行需求分析的方法。
3.2 与用户沟通获取需求的方法 3.2.1 访谈及调查
需求分析过程应该建立 3 种模型,它们分别是数据模型、功能模型和行为模型。
3.3 分析建模与规格说明 3.3.1 分析建模
实体-联系图,描绘数据对象及数据对象之间的关系,是用于建立数据模型的图形。
数据流图是建立功能模型的基础。
状态转换图描绘了系统的各种行为模式(称为“状态”)和在不同状态间转换的方式。状态转换图是行为建模的基础。
软件需求规格说明书(或称SRS)是需求分析阶段得出的最主要的文档。
(注意: 需求规格说明书有国家标准)
3.3.2 软件需求规格说明
为了把用户的数据要求清楚、准确地描述出来,通常建立一个概念性的数据模型。概念模型是一种面向问题的数据模型,它描述了从用户角度看到的数据。
数据模型中包含:数据对象、数据对象的属性及数据对象彼此间相互连接的关系。
3.4 实体-联系图
数据对象可以是外部实体、事物、行为、事件、地点等。
3.4.2 属性
属性定义了数据对象的性质。
3.4.3 联系
(1) 一对一联系(1∶1)
例如,一个部门有一个经理
(2) 一对多联系(1∶N)
例如,某校教师与课程之间存在一对多的联系。
3.4.1 数据对象
(3) 多对多联系(M∶N)
例如,学生与课程间的联系(“学”)是多对多的。
联系也可能有属性。例如, “成绩” 是学生与课程之间的联系“学”的属性。
图3.2 某校教学管理E-R图
为减少数据冗余,避免出现插入异常或删除异常,简化修改数据的过程,通常需要把数据结构规范化。
3.5 数据规范化
通常用“范式(normal forms)”定义消除数据冗余的程度。
第一范式(1 NF)数据冗余程度最大,第五范式 (5 NF) 数据冗余程度最小。但是,范式级别越高,存储同样数据就需要分解成更多张表,因此,“存储自身”的过程也就越复杂。
范式级别提高则需要访问的表增多,因此性能(速度)将下降。从实用角度看来,在大多数场合选用第三范式都比较恰当。
(1) 第一范式每个属性(或字段)值都必须是原子值。或者说每个字段不能有多个值。
(2) 第二范式满足第一范式条件,而且每个非主关键字属性都由整个主关键字决定。
(3) 第三范式符合第二范式的条件,每个非主关键字属性都仅由主关键字决定。即一个非关键字属性不能依赖于其它非关键字属性。
第三范式表明主关键字是绝对“统帅”,所有属性(字段)必须由它直接“统帅”,不能再依赖其它属性(字段)。
下面,我们以实例来说明几个范式
实例:考虑以下“配件-供应商-库存”结构
显然 ,上述结构不满足1NF。这时可以把它分解成两个表:
*配件编号
配件名称
规 格
总库存量
占用资金
010
轮胎
A
50
4600
011
…
…
…
…
表 T1:
表 T2:
*配件编号
*供应商编号
供应商地址
厂价
库存量
占用资金
010
001
天津
100
10
1000
010
002
北京
80
20
1600
010
003
上海
100
20
2000
…
…
…
…
…
…
显然两个表均满足INF。请问表T2是否满足2NF?
由于供应商地址只以赖于供应商编号,故表T2不满足2NF。我们把T2再分解成:
*配件编号 *供应商编号
*供应商编号
显示全部