软件需求分析就是把软件计划期间建立的软件可行性分析求精和细化,分析各种可能的解法,并且分配给各个软件元素。需求分析是软件定义阶段中的最后一步,是确定系统必须完成哪些工作。
1.需求分析有以下几个步骤:
1:获取和引导需求
2:分析和定义需求
3:验证需求
4:在软件产品的生命周期中管理需求
对于软件的需求,也可以从不同的角度做下面的划分:
1.对产品的功能性的要求。
2.对产品开发过程的需求。
3.非功能性需求。
4.综合需求。
2.软件产品的利益相关者
- 最终用户(使用软件的人)
- 客户:购买软件的人(不一定是直接用户)
- 市场分析师
- 监管机构
- 软件工程师
3.获取用户需求的方法
- 焦点小组(focus group):找到一群用户的代表,加上利益相关者来讨论用户想要什么
-
深入面谈(in-depth interview):通过详细的面谈,广泛而深入地了解用户的背景、心理和需求(一对一)
-
卡片分类(card sorting):将杂乱无章的需求分条目地写到卡片上,然后讨论—>明晰定义—>归类—>排序 。
4.竞争性需求分析的框架
以NABCD模型为例 1. N——NEED需求 2. A——APPROACH做法 - 有什么(独特的)做法去解决用户的困难 3. B——BENEFIT好处 - 特别注意用户迁移成本的问题。指的是用户要得到我们所做的软件带来的好处,需要花费多少时间、金钱甚至精力(去转移使用) 4. C——COMPETITORS竞争 5. D——DELIVERY推广
5.功能定位和优先级
让团队清楚地看到自己感兴趣的功能处于什么地位,决定怎么处理不同类型的功能,找准自己软件的定位