需求分析的任务:借助于当前系统的逻辑模型导出目标系统的逻辑模型,解决目标系统的“做什么”的问题。(描述“做什么”,而不是怎样实现)
软件需求包括:
(1)功能需求
(2)性能需求
(3)环境需求
(4)可靠性需求
(5)安全保密需求
(6)用户界面需求
(7)资源使用需求
(8)成本消耗需求
(9)开发进度需求
(10)预先估计以后系统可能达到的目标
需求分析的过程:
(1)问题识别
(2)分析与综合——常用的分析方法:面向数据流的结构化分析方法(SA)面向数据结构的Jackson方法(JSD),面向对象的分析方法(OOA)
(3)编制需求分析阶段的文档——软件需求说明书,数据要求说明书,初步的用户手册,修改、完善与确定软件开发实施计划
(4)需求分析评审
需求分析方法:
(1)结构化分析方法(面向数据流进行分析):数据流图DFD,数据字典DD,结构化英语,判定表,判定树;层次方框图,IPO图(输入/处理/输出),PSL辅助的需求分析工作,PSA问题的程序分析
适用于:数据处理类型软件的需求分析。
数据流图:用以表达系统内数据的运动情况;
数据词典:用以定义系统中的数据;
结构化语言、判定表和判定树:用以描述数据流的加工的工具。
(2)原型化方法
(3)动态分析方法:状态迁移图,时序图,Petri图
需求分析的原则:
(1)必须能够表达和理解问题的数据域和功能域
(2)按自顶向下、逐层分解问题
(3)要给出系统的逻辑视图和物理视图