第三章 需求分析
? 需求分析的任务
? 分析过程
? 概念模型和规范化
? 图形工具
? 验证软件需求
需求分析的任务
? 3.1.1 确定对系统的综合要求
? 3.1.2 分析系统的数据要求
? 3.1.3 导出系统的逻辑模型
? 3.1.4 修正系统开发计划
? 3.1.5 开发原型系统
需求分析的任务
? 系统功能要求
? 系统必须做什么?
? 性能要求
? 做得怎样?
? 运行要求
? 运行环境、软硬件配置等。
? 未来可能的扩充要求
需求分析的任务
? 分析系统的数据要求
? 建立概念模型
? E-R 图
? 形象描绘数据结构
? 层次方框图
? Warnier 图
? IPO图
? 数据结构规范化
需求分析的任务
? 导出逻辑模型
? 修正计划
? 重估成本
? 进度
? 开发原型系统
? 建立原型系统的理由 (五点 )
需求分析的任务
需求分析的任务 (小结 )
? 需求分析的任务就是借助于当前系统的逻
辑模型导出目标系统的逻辑模型,解决目
标系统的,做什么” 的问题。
? 通常软件开发项目是要实现目标系统的物
理模型
? 目标系统的具体物理模型是由它的逻辑模
型经实例化,即具体到某个业务领域而得
到的
分析过程
? 3.2.1 沿数据流图回溯
? 3.2.2 用户复查
? 3.2.3 细化数据流图
? 3.2.4 修正开发计划
? 3.2.5 书写文档
? 3.2.6 审查和复审
分析过程
? 沿数据流图 (DFD)回溯
? 数据流图的输出端是系统的最终目的。向回确定每
个数据元素的来源,可加细数据流图及数据字典
(DD),并将相关算法记录在 IPO图中。
? 用户复查
? 细化数据流图 (DFD)
? 加细前后的 I\O须相同。
? 分解到须考虑具体实现的代码时即可仃止
分析过程
分析过程
? 修正开发计划
? 书写文档
?, 需求规格说明书,
? 审查和复审
概念模型和规范化
? 3.3.1 ER模型
? 3.3.2 范式
概念模型和规范化
? ER模型
? 实体
? 联系
? 属性
学 生 教 师 课程
教 学
姓名 学号
1 1 1 N M N
概念模型和规范化
? ER模型示例
概念模型和规范化
? 范式 (消除数据冗余的程度 )
?1-NF,所有属性都是原子值,即不出现“表中有表”
?2-NF,在 1-NF 基础上,每个非关键字 (non-key-
word)都由整个关键字 (key word)决定(而非依赖于
key word 的一部分)。
?3-NF,在 2-NF基础上,non-key-word之间无从属关
系。
图形工具
? 3.4.1 层次方框图
? 3.4.2 warnier图
? 3.4.3 1PO图
图形工具
? 层次方框图 (描绘数据的结构 )
图形工具
? warnier图
图形工具
? IPO图 (Input / Process / Output)
1,校验
主记录
2,校验
事务记录
3,更新
主记录
旧的主文件
事务文件
有效的
主记录
有效的
事务记录
更新后的
主文件
输出 O处理 P输入 I
验证软件需求
? 3.5.1 从哪些方面验证软件需求的正确性
? 3.5.2 验证软件需求的方法
? 3.5.3 用于需求分析的软件工具
? 3.5.4 超高级语言和第四代语言
验证软件需求
? 验证软件需求正确性的四个方面
? 一致性 不能相互矛盾
? 完整性 规格说明书应包括用户需要的每一个功能
或性能
? 现实性 技术上可以实现
? 有效性 需求确实能解决用户面对的问题
? 验证方法
? 软件工具 PSL/PSA
? 超高级语言和第四代语言