一、需求分析——综合需求
1.基本任务
准确地回答“系统必须要做什么?”
2.软件需求规格说明书
以书面形式准确的描述软件需求。
3.需求分析参与人员
**分析员:**分析员必须通过与用户沟通获取用户对软件的需求
**用户:**用户必须把他们对软件的描述尽量准确、具体的描述出来
必须严格审查验证需求分析的结果。
4.目前用于需求分析的结构化分析方法遵守的准则
**数据模型:**理解并描述问题的信息域
**功能模型:**定义软件应完成的功能
**行为模型:**描述作为外部事件结果的软件行为
层次的方式展示细节
5.确定对系统的综合要求
1.功能需求:系统必须提供的服务
2.性能需求:系统必须满足的定时约束或容量约束
3.可靠性和可用性需求:可靠性需求定量地指定系统的可靠性
4.出错处理需求:说明系统对环境错误应该怎么响应
5.接口需求:描述应用系统与它的环境通信的格式
6.约束:设计或实现应用系统是应遵守的限制条件
7.逆向需求:说明软件系统不应该做什么
8.将来可能提出的要求:应该明确的列出那些虽然不属于当前系统的开发范畴,但是据分析将来很可能会提出来的要求。
例:开发一个局域网聊天软件的及时通信工具,情分析其总和要求。使用服务器转发模式进行客户端通信
1.功能需求:客户端,能够通过终端想特定的用户进行及时信息发送服务器端,对客户端信息进行接收和转发。
2.性能需求:网络延时
3.可靠性和可用性需求:服务器端程序一旦出现故障具有自启功能
4.出错处理需求:系统对环境错误给出相应提示信息并退出
5.接口需求:系统与它的环境通信,即网络接口
6.约束:比如客户端一次可发送的最大字节数
7.逆向需求:比如用户可以查看聊天记录,但不能修改
8.将来可能提出的要求
6.分析系统的数据要求
- 任何一个软件系统本质上都是信息处理系统
- 必须分析系统的数据要求,这是软件需求分析的一个重要任务
- 分析系统的数据要求通常采用建立数据模型的方法
- 复杂的数据由许多基本的数据元素组成、数据结构表示数据元素之间的逻辑关系
- 利用数据字典可以全面准确的定义数据
- 常常利用图形工具辅助描绘数据结构
- 常用的图形工具有层次方框图和Warnier图
二、需求分析——导出系统逻辑模型
1.导出模型
综合之前综合要求和数据要求的分析结果,可以导出系统的详细的逻辑模型。
- 数据流图
- 实体-联系图
- 状态转换图
- 数据字典
- 主要的处理算法
2.修正系统开发计划
根据在分析过程中获得的对系统的更加深入具体的了解,可以比较准确的估计系统的成本和进度,修正一点制定的开发计划。
三、获取用户需求的方法
总体有四种:1.访谈;2.面向数据流自顶向下求精;3.建议的应用规格说明技术;4.快速建立软件原型
1.访谈
分正式和非正式访谈
- 可采用调查表形式
- 可使用情景分析技术
2.面向数据流自顶向下求精
结构化分析方法的实质。
进一步细化可行性研究阶段获得的高层数据流图。包括建立:
- 详细的数据流图:描绘数据在软件系统内从输入移动到输出的过程中所经受的变换;
- 数据字典:定义数据流图中包含的元素
- 实体关系(ER)图:从用户角度描述数据
- IPO图:描述数据流图中处理框的功能和算法。
3.简易的应用规格说明技术
一种面向团队的需求收集法,提倡用户与开发者密切合作,共同表示问题,提出解决方案要素,商讨不同方案并指定基本需求。
过程:
初步访谈——》写出产品需求——》开会讨论,指定规格和说明——》完整的软件需求规格说明书
4.快速建立软件原型
快速原型就是快速建立旨在延时目标系统主要功能的可运行程序
**要点:**实现用户看得见的功能,省略目标系统“隐含”功能。
5.建立和修改原型的方法和工具
第四代技术、可重用的软件构建、形式化规格说明和原型环境
四、案例—原型法
快速原型法:快速建立旨在延时目标系统主要功能的可运行程序。
用户试用原型系统,提供反馈意见。
原型法的工作步骤:
- 首先快速分析
- 然后构造原型
- 用户和系统开发人员使用并评价原型
- 系统开发人员修改和完善原型系统
原型法的优点:
- 原型法符合人们认识事物的规律,系统开发循序渐进,反复修改,确保较好的用户满意度。
- 开发周期短,费用相对较少
- 易学易用,减少用户的培训时间,应变能力强
原型法的局限:
- 原型法不适合发规模系统的开发
- 其开发过程管理要求高
- 易使用户失去信心
- 缺乏规范化的文档资料
- 不适合大型、复杂性、难以模拟、存在大量运算、逻辑性强的处理系统
- 不适合管理基础工作不完善、处理过程不规范的系统等
五、需求分析—分析建模
模型:对事物做出的一种抽象
模型构成:一组图形符号和组织这些符号的规则组成
结构化分析实质上是一种创建模型的活动
需求分析过程应建立3种模型:
数据模型、功能模型、行为模型
实体-联系图:描绘数据对象及数据之间的关系,适用于建立数据模型的图形
数据流图:描绘当数据在软件系统中移动时被变化的逻辑过程,指明系统具有变换数据的功能,因此,数据流图是建立功能模型的基础。
状态转化图:指明了作为外部事件结果的系统行为。转化状态图是行为建模的基础。