需求分析的重要性
根据Standish Group对23000个项目进行的研究结果表明:28%的项目彻底失败,46%的项目超出经费或者超出工期,只有约26%的项目获得成功。需求分析工作在整个软件开发生命周期中有着十分重要的意义。在这些74%的不成功项目中,约有60%的失败是源于需求问题。
需求分析的任务
确定系统必须完成哪些工作,也就是对目标系统提出完整、准确、清晰而具体的需求。
注意:需求分析并不需要我们考虑怎么去完成这些工作,或者说怎么去完成,只需要考虑系统应该具备哪些功能。
需求分析分阶段具体任务
- 确定对系统的综合需求
1. 功能需求 : 指出软件系统必须提供的服务,列出系统必须完成的所有功能。
2. 性能需求 : 软件的技术性能指标
3. 环境需求 : 软件运行时所需要的软、硬件(如机型、外设、操作系统和数据库管理系统)的要求
4. 接口需求 : 应用系统与它的环境通信的格式
5. 用户界面需求 : 人机交互方式,输入输出数据格式
6. 其它方面的需求:可靠性、安全性、保密性、约束、可移植性、可维护性、可扩展性等方面的需求。
- 分析系统的数据需求
建立数据模型的方法(如:ER图)。对于一些复杂的数据结构常常利用图形工具辅助描绘(如层次方框图、Warnier图)。
- 建立软件的逻辑模型
确定系统的构成,并用图文结合的形式,建立新系统的逻辑模型。通常用数据流图、数据字典及处理算法等来描述目标系统的逻辑模型。
- 编写软件需求规格说明书
编写软件需求规格说明书(Software Requirement Specification)的目的是使用户和开发者能对未来软件有共同的理解,明确定义未来软件的需求、系统的构成及有关的接口。
需求说明相当于用户和开发者之间的一份技术合同,是测试验收的基准,是软件开发的基础。
说明:需求说明书应该使用通俗、直观的语言方式来描述,使不熟悉计算机的用户也能一上了解。
- 需求分析评审
发现需求分析的错误和缺陷,然后修改开发计划。
附:
项目失败的原因


牛逼