一、需求分析的重要性
因为具有决策性,方向性,策略性,项目中没做好需求会埋下'坑',产品中达不到预想的效果等等,
风向承担者(stakeholder)在项目中,这些风险承担者包括客户、用户、业务或需求分析员(负责收 集客户需求并编写文档,以及负责客户与开发机构之间联系沟 通的人)、开发人员、测试人员、用户文档编写者、项目管理 者和客户管理者.
需求包含:业务需求(重要),用户需求,功能需求,非功能需求, 用户需求和功能需求也包含着非功能需求,
业务需求(bussiness requirement) 组织机构或者客户对系统,产品高层次的目标要求,他们在项目视图与范围文档中予以说明
用户需求(user requirement):文档描述了用户使用产品必须要完成的任务,在使用实例文档或方案脚本说明中予以说明.
功能需求:开发人员必须实现的功能(这期间是你的原型图设计实现通过高保真或者低保真原型说明,须知和有关人员去沟通优先级别,和能否实现以及开发的任务),使用户可以完成他们任务,满足业务需求.
非功能性需求:描述系统展现给用户的行为和功能需求,它描述了系统展现给用户的行为和执行的操作等,包含必须遵从的标准,规范和合约;外部界面的具体细节;性能需求;设计或实现的约束条件及质量属性
约束(约束条件)指对开发人员在软件产品设计和构造上的限制.
质量属性:是通过多种角度对产品的特点进行描述,从而反应产品功能,多角度描述产品对用户和开发人员都极为重要,
需要注意的是:需求的关注点是充分说明你究竟想要什么,并未包括设计细节、实现细节、项目计划信息或测试信息
准确说明开发什么?
开发软件系统最为困难的部分就是准确说明开发什 么。最为困难的概念性工作便是编写出详细技术需 求,这包括所有面向用户、面向机器和其它软件系 统的接口。同时这也是一旦做错,将最终会给系统 带来极大损害的部分,并且以后再对它进行修改也 极为困难。 为什么这么说呢,因为在大多数的软件系统中,最 终用户可能都不清楚他的需求是什么,这是千真万 确的。如果你的用户告诉你需求就是这些了,不要 相信他,继续刨根问底,直到你们都筋疲力尽了。
二、需求分析的定义:
需求分析:理解用户需求,就软件功能与客户达成一致,估计软件风险和评估项目代价,最终形成一致,最终形成开发计划,需求分析结束后要有
广义上的定义:需求分析包括需求的获取、分析、 规格说明、变更、验证、管理的 系列需求工程。 规格说明、变更、验证、管理的一系列需求工程。 狭义上理解:需求分析指需求的分析、定义过程。
需求分析的任务
简言之,需求分析的任务就是解决"做什么" 的问题,就是要全面地理解用户的各项要 的问题 就是要全面地理解用户的各项要 求,并准确地表达所接受的用户需求.