需求分析是软件定义阶段的最后一步,是确定系统必须完成哪些工作,解决目标系统“做什么”的问题,也对目标系统提出完整、准确、清晰、具体的要求。
1、任务
借助当前系统的逻辑模型导出目标系统的逻辑模型,解决目标系统的“做什么”的问题,深入描述软件的功能和性能。
2、过程
软件的需求分析应注意一切信息与需求都是站在用户的角度上。尽量避免分析员的主观想象,将分析内容提交给用户,让用户参与进来并进行检查与评价,从而达到需求分析的准确性。需求分析可以分为问题识别、分析与综合、编写文档和需求评审四个阶段、
问题识别
就是从系统的角度来理解软件并评审软件范围是否恰当,确定对目标系统的综合要求即软件的需求,提出实现这些需求的条件,以及需求要达到的标准,这一阶段要求分析人员深入现场。另一项重要工作是建立需求所需要的通信途径,以保证顺利的对问题进行分析。软件的需求包括:功能、性能、环境、可靠性、界面、安全等的需求和系统预先达到的目标,以及资源使用、成本消耗、开发进度的需求。
分析与综合
从信息流和信息结构出发,逐步细化所有的软件功能,找出系统各元素之间的联系。对数据进行分析、接口特征和设计上的约束分析,并分析它们是否满足功能要求是否合理。
常用的分析方法有:
结构化分析方法:数据流图,数据字典,判定表和判定树。
原型化方法
动态分析方法:状态迁移图、时序图。
编写文档
需求分析阶段需要编写的文档有:需求规格说明书、数据要求说明书和初步的用户手册。
需求评审
评审阶段主要任务是看系统定义的目标是否与用户的要求一致,提供的文档资料是否齐全,文档中的所有描述是否完整、清晰、准确反映用户要求、与所有其它接口是否都已经描述。
3、作用
开发软件系统最困难的部分就是在没开始开发前就要准确的说明开发什么,有什么功能,前景怎样市场怎样。最为困难的概念性工作是要编写出详细的技术需求。正是因为需求分析的困难才导致了需求分析的作用非常巨大,需求分析做不好就不可能做出好的软件来。由于用户说不清需求,需求经常变动和分析人员与客户之间的障碍导致困难很大。这就要求需求分析人员有更专业的知识和预测未来的能力。
4、文档编制
软件需求说明书是为了使用户和软件开发者双方都对该软件的初始描述有一个共同的理解,软件需求规格说明书的内容如下:
1引言
1.1编写目的:阐明目的,指明读者对象
1.2项目背景:项目经理设计人员开发人员
1.3 所引言的定义英文缩写
1.4列出合同 上机批文,开发计划,所引言的其他相关资料
2.任务概述
2.1.目标:总的目标
2.2.运行环境:软件运行环境,支撑软件
2.3.条件与限制:特殊的说明
3.数据描述
3.1.静态数据
3.2.动态数据
3.3.数据库介绍
3.4.数据字典:必不可少的,定义准确全面
3.5.数据采集:来源获得数据的方法
4.功能需求
4.1.功能划分:如何划分
4.2.功能描述:每个功能描述全,名称 数据结构
5.性能需求
5.1.数据精确度
5.2时间特性:响应的时间输入输出
5.3 适应性
6、运行需求
6.1、用户界面:符合用户操作习惯 要求,用户水平
6.2、硬件接口
6.3、软件接口
6.4、故障处理 非法事件怎样处理
7. 安全性保密性
在写需求说明书时还应该注意两个问题:
(1)最好为每个需求注释“为什么”,这样可让程序员了解需求的本质,以便选用最合适的技术来实现此需求。
(2)需求说明不可有二义性,更不能前后相矛盾。如果有二义性或前后相矛盾,则要重新分析此需求。
5、总结
需求分析起到了决策作用,提供了开发方向,并指明了开发策略,在软件开发及维护过程中起到了举足轻重的作用。可以说在一个大型软件系统的开发 中,它的作用要远远大于程序设计。永远记住一点:需求分析和程序设计不尽相同,合理、可行是才是重要的。跳出程序设计的圈子,站在系统的角度上来看问题,结论会截然不同。如果需求分析做的不好,那么在后续阶段改正需求分析阶段的错误将要付出高昂的代价。如果需求分析做得好,项目就相当于完成了一半,好的需求分析会为项目开发奠定基础,减少大量开发成本,减小开发风险。