1 需求分析的重要性
需求缺陷发现越晚成本越高
2 需求的分类
2.1 功能性需求
输入、输出、异常
2.2 非功能性需求
用户关心的质量属性:性能、规格、可靠性、易用性..
开发运维关注的质量属性:可维护性、可移植性、可重用性、可测试性…
2.3 约束
协议、标准、规范、语言、资源限制、运行环境。。。
3 需求的属性
3.1 二重性
需求=问题+解决方案
这里的解决方案指的是对解决问题的方案有需求,比如,问题是晚上打电话会吵到其他同学,解决方案不能是晚上全部断点断信号,那样会影响急事的处理。
3.2 颗粒度
3.3 明确性
3.4 时效性
3.5 易变性
3.6 潜在性
冰山理论,看到的或者用户提出的需求是很少的,还有很多需求都是藏在暗处的。
3.7 关联性
3.8 演进性
3.9 多维性
4 需求的来源
4.1 外部来源
客户、友商竞争分析、标准/规范、业界趋势。。。
4.2 内部来源
一线服务、维护部、行业规范、内部改进。。。
5 需求架构
6 输出需求的质量标准
6.1 完整性
6.2 正确性
正确、无歧义、最新的
6.3 原子性
6.4 可验证
6.5 一致性
不能自相矛盾
6.6 可追踪