软件工程第三章——需求分析
什么是需求分析
确定你要开发的系统所必须具有的功能和性能,系统要求的运行环境,并且预测系统发展的前景等一系列分析
如何来做需求分析
需求分析的过程
按顺序(需求确认)
- 需求获取
- 需求提炼
- 需求描述
- 需求验证
1. 需求获取
我们需要j获取两种需求
- 功能性需求
- 非功能性需求
功能性需求
描述系统应该完成那些功能,为用户提供哪些服务
非功能性需求
开发系统必须遵守的标准。规范细节,质量等约束条件
常见需求获取出现的问题
- 客户无法清楚的表述需求
- 需求易变
- 对于问题的复杂性和对问题空间理解的不完备性与不一致性(开发人员或分析人员理解不同)
2.需求提炼
对应用问题及环境的理解和分析,为问题涉及的信息、功能及系统行为建立模型。将用户需求精确化、完全化,最终形成下一步的需求规格说明书。
- 需求提炼(需求分析)的核心在于建立分析模型
- 需求提炼(需求分析)采用多种形式描述需求,通过建立需求的多种视图,揭示出一些更深的问题。
- 需求提炼(需求分析))还包括与客户的交流以澄清某些易混淆的问题,并明确哪些需求更为重要,其目的是确保所有风险承担者尽早地对项目达成共识并对将来的产品有个相同而清晰的认识。
需求规格说明书
是对待开发系统的行为的完整描述。它包含了功能性需求和非功能性需求。
需求分析工作完成的一个基本标志是形成了一份完整的、规范的需求规格说明书。
需求规格说明书的编制是为了使用户和软件开发者双方对该软件的初始规定有一个共同的理解,使之成为整个开发工作的基础。
4.需求验证
对于需求文档需要在完成后进行及时的检查
检查类型
- 有效性检查(检查不同用户使用不同功能的有效性)
- 一致性检查(在文档中,需求之间不应该冲突)
- 完备性检查(需求文档应该包括所有用户想要的功能和约束)
- 现实性检查(检查保证能利用的现有技术实现需求)
需求验证技术
需求评审
利用原型检验系统是否符合用户的真正需要
对每个需求编写概念性的测试用例。
编写用户手册。用浅显易懂的语言描述用户可见的功能。
自动的一致性分析。可用CASE工具检验需求模型的一致性。