第三章
软件需求分析
软件需求分析的任务
1、 深入描述软件的功能和性能
2、 确定软件设计的约束和软件同其它系统元素的接口细节
3、 定义软件的其它有效性需求
软件需求包括:
功能需求,性能需求,环境需求,可靠性需求,安全保密需求,用户界面需求,资源使用需求,成本消耗需求,开发进度需求,预先估计以后系统可能达到的目标
需求分析的过程
1、 问题识别
2、 分析与综合
3、 编制需求分析阶段的文档
4、 需求分析评审
常用的分析方法
1、 面向数据流的结构化分析方法(SA)
2、 面向数据结构的Jackson方法(JSD)
3、 结构化数据系统开发方法(DSSD)
4、 面向对象的分析方法(OOA)等
数据字典(Data Dictionary简称:DD):是关于数据的信息的集合,对数据流图中的各个元素做完整的定义域说明,是数据流程图的补充工具。数据流图和数据字段共同构成系统的而逻辑模型。
数据字典的内容,数据字典有下列六类元素的定义组成:数据流、数据项、数据结构、数据存储、处理逻辑、外部实体。
用于写加工逻辑说明的工具:结构化英语,判断表,判定树。
1、 结构化英语:是一种介于自然语言和形式化语言之间的语言。其基本控制结构有三种:简单陈述句结构,重复结构,判定结构。
2、 判定表:如果数据流图的加工需要依赖于多个逻辑条件的取值,使用判定表来描述比较合适。
3、 判定树:也是用来表达加工逻辑的一种工具。有时候它比判定表更直观。
软件原型的分类:探索型,实验型,进化型。
原型使用策略:废弃策略,追加策略。
最常用的动态分析方法:
状态迁移图,时序图,Petri图
状态迁移图:是描述系统的状态如何响应外部的信号进行推移的一种图形表示。圆圈表示可得到的系统状态,箭头表示从一种状态向另一种状态的迁移。
状态迁移图的优点:状态之间的关系能够直观的捕捉到,优于状态迁移图的单纯性,能够机械的分析许多情况,可很容易的建立分析工具。
Petri网:Petri网已经广泛的应用于硬件与软件系统的开发中,它适用于描述与分析相互独立、协同操作的处理系统,也就是并发执行的处理系统。