通常,软件开发工程师和软件测试工程师的工作都开始于软件需求说明书成型的基础上。那么软件需求说明书到底是怎么来的,软件的需求分析到底怎么做?今天我就针对这个话题结合我自己的一些理解和经历来梳理一下。
需求分析的目标是将产品的需求功能梳理,并且用通俗易懂的文字描述,为开发人员和测试人员提供依据。那么需求的分析梳理细化,直至成文这个过程,就是需求分析师的主要工作内容了。
需求一般分为四种需求:原始需求、用户需求、产品需求、个性需求
原始需求:就是最原始的,未经加工的需求,可能是客户提出的,也可能是行业共性(有可能是监管机构提出的)。
用户需求:使用系统的人提出的需求,可以根据用户角色,用户类型划分来归类。提取用户群需求的共性,找出用户需求的矛盾点,进行综合分析处理。
产品需求:从产品层面出发,对产品未来发展方向有益的,对产品的迭代有帮助的,有益于产品的用户体验,有益于市场认同和提高竞争力的需求。
个性需求:用户提出的个性化需求,并不一定适用于所有客户。
需求分析一般分为几步走:
1. 获取需求:了解所有用户类型,包括潜在用户类型,以确定整体目标和方向
a) 对用户进行访谈和调研,对各个角色的需求进行归纳整理分析
b)业务需求,模拟业务场景,对业务逻辑业务流程进行梳理,整理出业务需求
2. 分析需求:
a)根据业务逻辑和业务流程画出流程图,分析需求以及业务走向(数据流图DFD:Data flow Define,实体关系图ERD,用户用例use case)
b)挖掘每个需求点的产生原因(知道为什么,)
c)挖掘每个需求点的隐含需求
d)挖掘每个需求的必要性
3. 需求确认: 整理分析阶段的所有需求,确保需求一致
a)整理不清晰的需求
b)分别将以上需求点与对应用户进行确认,保证需求的一致性和清晰性
4. 编写需求文档:使用自然语言,通俗易懂的方式展现,可以添加图形来增强阅读力
a)应该包含功能需求和非功能需求
b)最好把原始需求加入到需求文档中,单独列出一章节
需求文档模板 例子:
1.版本信息
版本号 | 修订人 | 修订日期 | 版本内容 |
V1.0 | XXX | 2019.1.1 |
|
... |
|
|
|
V2.0 | XXX | 2019.4.1 |
|
... |
|
|
|
前哨APP版本信息表示意图
2.产品简介
2.1产品定位:
定位: XXXApp致力于提供最方便的基因检测体验,为患者打造最优秀的健康检测软件,为医院打造最方便使用的管理软件.
2.2 产品特色:
就医流程不再繁琐,多种医疗健康方案可供选择,贴心的评价体系让您知己知彼等
2.3 用户分析:
主要用户为,重视健康却面对众多医院无从选择的患者.
医院的医护人员、保险公司的保险经纪人、医疗美容机构的健康顾问、城市合伙人
3.产品架构
3.1产品结构图
此文仅述主要模块,应展开至用户最小可见单元
3.2用户操作流程图
3.3 医护人员操作流程图
4.详细功能说明
5.非功能需求说明
5.1 性能需求
1、前端内容展现应保证用户在WIFI及移动网络下体验流畅;
2、万级用户在线时后台信息处理稳定且快速等等。
5.2 系统需求
兼容Andriod、IOS各系统版本(包括最新版本)
5.3 运营需求
用户/内容管理系统开发、用户数据分析系统开发等
6.项目规划
6.1时间规划
6.2 版本规划
6.3 应急恢复
7.附录