软件需求分析
● 软件需求分析的任务
需求分析的任务就是借助于当前系统的逻辑模型到处目标系统的逻辑模型,解决目标系统的“做什么”的问题。
- 深入描述软件的功能和性能
- 确定软件设计的约束和软件同其它系统元素的接口细节
- 定义软件的其它有效性需求
● 需求分析的过程
问题识别
- 从系统的角度来理解软件并评审软件范围是否恰当
- 确定对目标系统的综合要求,即软件的需求(功能需求、性能需求、环境需求、可靠性需求、安全保密要求、用户界面需求、资源使用需求、成本消耗需求、开发进度需求、预先估计以后系统可能达到的目标)
- 提出这些需求实现条件,以及需求应达到的标准
分析与综合
编制需求分析阶段的文档
- 软件需求说明书
- 数据要求说明书
- 初步的用户手册
- 修改、完善与确定软件开发实施计划
需求分析评审
- 系统定义的目标是否与用户的要求一致
- 系统需求分析阶段提供的文档资料是否齐全
- 文档中的所有描述是否完整、清晰、准确反映用户要求
- 与所有其它系统成分的重要接口是否都已经描述
● 需求分析阶段(主要是建立逻辑模型)流程
- 理解当前的现实系统,获得现实系统的具体模型
- 从当前系统的具体模型出当前系统的逻辑模型
- 分析目标系统和现有系统的区别,建立目标系统的逻辑模型
- 为目标系统的逻辑模型做相应的补充
● 大卫提出的软件需求分析的指导性原则
- 在开始建立分析模型前先理解问题
- 开发原型,使得用户能够了解将如何发生人机交互
- 记录每个需求的起源及原因
- 使用多个需求视图
- 给需求赋予优先级
- 努力删除含糊性
● 软件需求规格说明的原则
- 从现实中分离功能,即描述要“做什么”而不是“怎样实现”
- 要求使用面向处理的规格说明语言(或称系统定义语言)
● 软件需求方法
- 需求分析方法由软件问题的信息域和功能域的系统分析过程及其表示方法组成
- 大多数的需求分析方法是由信息驱动的
● 结构化分析方法
- 面向数据流进行需求分析的方法
- 结构化分析方法适合于数据处理类型软件的需求分析
● 数据流图
数据流图是描述数据处理过程的工具
- 数据流图的定义
数据流图从数据传递和加工的角度,以图形的方式刻画数据流从输入到输出的传输变换过程。数据流图是结构化系统分析的主要工具,它代表了系统内部信息的流向,并表示了系统的逻辑处理的功能。 - 数据流图的特性
- 抽象性
- 概括性
- 层次性
- 数据流图的作用
- 系统分析员用这种工具可以自顶向下分析系统信息流程
- 可在图上画出需要计算机处理的部分
- 根据数据存储,进一步做数据分析,向数据库设计过渡
- 根据数据流向,定出存取方式
- 对应一个处理过程,用相应的语言、判定表等工具表达处理方法
- 数据流图的优缺点
- 总体概念强,每一层都明确 强调“干什么”,“需要什么”,“给出什么”
- 可以反映出数据的流向和处理过程
- 由于自顶向下分析,容易及早发现系统各部分的逻辑错误,也容易修正
- 容易与计算机处理相对照
- 不直观,一般都要在作业流程分析的基础上加以概括、抽象、修正来得到。
- 如果没有计算机系统帮助的话,人工绘制太麻烦,工作量大
● 数据字典
数据字典是关于数据的信息的集合,对数据流程图中的各个元素做完整的定义与说明,是数据流程图的补充工具。数据流图和数据字典洪洞构成系统的逻辑模型
- 数据字典的组成
- 数据流
- 数据项
- 数据结构
- 数据存储
- 处理逻辑
- 外部实体