在前面我们进行了项目的软件计划,完成了可行性研究报告,知道了要做什么的问题,而下一步,我们就需要进一步的了解项目具体要怎么做,回答必须要做什么的问题了。
需求分析的地位
软件系统定义阶段的最后一个阶段,准确回答系统必须做什么的问题
结束的标志是什么?
形成需求规格说明书
需求分析的过程有哪些?
1.回答系统必须做什么,深入描述软件的功能和性能。在可行性研究报告的基础上更行更细的研究
2.确定软件设计的约束和软件同其他系统元素的接口细节
3.定义软件的其他有效性需求
软件需求规格说明的原则
从显示中分离功能,即描述要“做什么”而不是“怎样实现”
要能以层次化的方式对问题进行分解和不断细化(把一个抽象的问题以层次化的方式进行分解,分解成功能不同的子问题)
分解方法:横向分解,纵向分解
数据流图
数据流图是什么?
是描述数据处理过程的工具,它表示了系统内部信息的流向,并表示了系统的逻辑处理的功能
特性是什么?
抽象性、概括性、层次性
面向数据流的分析方法
结构化分析方法。使用数据流图DFD与数据字典DD来描述
核心是分解化简问题,将物理与逻辑表示分开,对系统进行数据与逻辑的抽象
优缺点有哪些?
1.总体概念强,每一层都明确强调“干什么”,“需要什么”,“给出什么”
2.可以反映出数据的流向和处理过程
3.由于自顶向下分析,容易及早发现系统各部分的逻辑错误,易修改
4.容易与计算机处理相对照
5.不直观,一般都要在作业流程分析的基础上加以概括、抽象、修正来得到
6.如果没有计算机系统帮助的化,人工绘制太麻烦,工作量较大
数据流图的主要图形元素
分层数据流图(一般划分3层)
实例说明
实例:计算机教材销售系统
检查和修改数据流图的原则
数据流图上所有图形符号只限于前述四种基本图形元素
数据流图的主图必须包括期中基本元素,缺一不可
每个加工至少有一个输入数据流和一个输出数据流
在数据流图中,需按层给加工框编号。编号表明该加工所处层次及上下层的亲自关系
规定任何一个数据流子图必须与它上一层的一个加工对应,两者的输入数据流和输出数据流必须一致
用于写加工逻辑说明的工具
结构化英语
判定表
判定树
总结
软件计划和需求分析是相互依存的,软件计划为需求分析提供依据,需求分析在软件计划的基础上进行拆解分析
软件计划最后需要生成可行性研究报告,需求分析形成需求规格说明书