一.需求分析简述
1.为什么要展开需求分析?
- 伪需求会导致开发方向错误
- 需求缺陷发现越晚修复成本越高
2.为什么要学习需求分析?
-
理解并参与需求分析工作是软件开发人员进阶的必修课
-
开发必备
- 需求分析是用户和开发者之间的翻译员,开发者要准确理解需求,才能做正确的事;
- 梅捷开发流程下需要全栈工程师,快速准确分解需求是开发人员的必备能力素质;
-
进阶必修
- 公司某系统架构师职责需求节选:独立或者主持完成解决方案关键竞争特性的软件系统设计和需求分解分配,满足客户要求符合客户网络安全要求;
- 个人职业发展进阶的必修课;
-
成功必选
- 50%以上的项目存在资源超支/功能限制,其中需求类问题占比48%;
- 需求工程是成功的系统开发不可缺少的重要活动,也是应对软件密集型系统诸多挑战的关键。
3.什么是需求?
- 用户解决某个问题或者达到某个目标所需要的条件和能力;
- 一个系统或者系统组件为了实现某个锲约,便准,规格说明或其他需求遵循的文件而必须满足的条件或拥有的能力;
- 对上述两点描述的条件或能力的文档化表示。
4.什么是需求的二重性?
- 在不同的条件和能力下,会有不同的解决方案。也就是说一个问题可以有多个解决方案,这就是需求的二重性
- 需求=问题+解决方案,关键是挖掘根因
5.什么是需求分析?
- 定义:
- 准确理解用户的要求,进行细致的调查分析,即将用户非形式的需求陈述转化为完整的需求定义,再由需求定义转化到相应形式的规约(需求规格说明)的过程。
- 目标:
- 把用户对待开发软件提出的”需求“或者”需要“进行分析和整理,确认后形成描述完整,清晰与规范的文档,确认软件需要实现那些功能,完成那些工作。
- 软件的一些非功能性需求(如软件性能,可靠性,相应时间,可扩展性等),软件设计的约束条件