通常,软件开发工程师和软件测试工程师的工作都开始于软件需求说明书成型的基础上。那么软件需求说明书到底是怎么来的,软件的需求分析到底怎么做?今天我就针对这个话题结合我自己的一些理解和经历来梳理一下。
需求分析的目标是将产品的需求功能梳理,并且用通俗易懂的文字描述,为开发人员和测试人员提供依据。那么需求的分析梳理细化,直至成文这个过程,就是需求分析师的主要工作内容了。
需求一般分为四种需求:原始需求、用户需求、产品需求、个性需求
原始需求:就是最原始的,未经加工的需求,可能是客户提出的,也可能是行业共性(有可能是监管机构提出的)。
用户需求:使用系统的人提出的需求,可以根据用户角色,用户类型划分来归类。提取用户群需求的共性,找出用户需求的矛盾点,进行综合分析处理。
产品需求:从产品层面出发,对产品未来发展方向有益的,对产品的迭代有帮助的,有益于产品的用户体验,有益于市场认同和提高竞争力的需求。
个性需求:用户提出的个性化需求,并不一定适用于所有客户。
需求分析一般分为几步走:
1. 获取需求:了解所有用户类型,包括潜在用户类型,以确定整体目标和方向
a) 对用户进行访谈和调研,对各个角色的需求进行归纳整理分析
b)业务需求,模拟业务场景,对业务逻辑业务流程进行梳理,整理出业务需求
2. 分析需求:
a)根据业务逻辑和业务流程画出流程图,分析需求以及业务走向(数据流图DFD:Data flow Define,实体关系图ERD,用户用例use case)
b)挖掘每个需求点的产生原因(知道为什么,)
c)挖掘每个需求点的隐含需求
d)挖掘每个需求的必要性
3. 需求确认: 整理分析阶段的所有需求,确保需求一致
a)整理不清晰的需求
b)分别将以上需求点与对应用户进行确认,保证需求的一致性和清晰性
4. 编写需求文档:使用自然语言,通俗易懂的方式展现,可以添加图形来增强阅读力
a)应该包含功能需求和非功能需求
b)最好把原始需求加入到需求文档中,单独列出一章节