本文总结于《软件工程——原理、方法与应用》第三版
第五章 需求工程与需求分析
1. 软件需求工程
·软件需求的定义
·一个软件系统必须遵循的条件或具备的能力
·系统的外部行为——解决用户的问题
·系统的内部特性——满足了文档的要求
·软件需求三个层次
·业务需求——从业务的角度评估
·用户需求——从用户使用的角度描述软件必须完成的任务
·功能需求——开发人员必须实现的功能
·软件需求的特性
软件质量准则“FURPS”
·功能性
·可用性(易用性)
·可靠性(平均无故障时间、精确度等)
·性能(响应时间、吞吐量等)
·可支持性(与系统相关的特性要求)
·设计约束
·软件需求工程
·定义:
是一门应用有效的技术和方法、合适的工具和符号,来确定、管理和描述目标系统及其外部行为特征的学科。
2. 需求分析与建模
- 需求分析的步骤(迭代)
需求获取、需求建模、需求描述(编写SRS)、需求验证 - 需求获取的目的是让开发人员通过各种方式充分和用户交流,全面、准确地了解系统需求;
- 建立需求模型是需求分析的核心,它通过各种图形及符合,可视化地从各个侧面描述系统需求;(结构化方法(包括数据流、数据字典、加工规格说明)和面向对象方法(面向对象方法包括用例模型、补充规约和术语表))
- 需求描述即编写需求规格说明书,它以各方共同认可的文档形式表述,是软件设计和系统验收的可靠依据;
- 需求验证用来检验以上各步的工作成果。
·需求分析是一个迭代的过程
3. 需求获取的常用方法
·常规的需求获取方法:
·联合分析小组
·用户代表、领域专家和系统分析员
·客户访谈
·充分准备,寻找共同语言
·循序渐进、逐步逼近
·问题分析与确认
·多个来回
·用快速原型法获取需求:
·利用各种分析技术和方法,生成一个简化的需求规格说明;
·对需求规格说明进行必要的检查和修改后,确定原型的软件结构、用户界面和数据结构等;
·在现有的工具和环境的帮助下快速生成可运行的软件原型并进行测试、改进;
·将原型提交给用户评估并征求用户的修改意见;
·重复上述过程,直到原型得到用户的认可。
4. 需求模型
·需求模型概述
·结构化需求模型
·面向对象需求模型
·面向对象的需求建模
·画用例图
·写用例规约
·描述补充规约
·编写术语表
结构化需求模型
该模型主要由3部分组成,即:包括数据流图和加工规格说明的功能模型;主要由数据字典和E-R图等组成的数据模型;由状态转换图、控制流图和控制规格说明等组成的行为模型。
·面向对象需求模型
面向对象需求模型由3个部分组成:用例模型、补充规约和术语表,其中用例模型又包括用例图和用例规约。
用例建模
·确定参与者
·存在与系统外部、与系统交互的人、硬件、其他系统
·确定用例
·考察每个参与者与系统的交互和需要系统提供的服务
·绘制和检查用例图
·按UML标准画用例图
·检查用例图
·细化每个用例的用例规约
·内容包括:
·简要说明
·简要介绍该用例的作用和目的
·事件流
·包括基本流和备选流,表示出所有可能的活动及流程、
基本流:指该用例最正常的一种场景
备选流:用于描述用例执行过程中的异常或偶尔发生的情况。它和基本流合起来,能够覆盖该用例所有可能发生的场景。包含元素:
1、起点:该备选流从事件流的那一步开始
2、条件:在什么条件下会触发该备选流
3、动作:系统在该备选流下会采取哪些动作
4、恢复:该备选流结束之后,该用例应如何继续执行
·特殊需求
·描述与该用例相关的非功能性需求(包括性能、可靠性、可用性和可扩展性等)和设计约束(所使用的操作系统和开发工具等)
·前置条件和后置条件
前置条件是执行用例之前必须存在的系统状态,后置条件是用例执行完毕后系统可能处于的一组状态。
用例模型的检查
·功能需求的完备性
·模型是否易于理解
·是否存在不一致性
·避免二义性语义
5. 软件需求描述
·软件需求规格说明书
·引言
·信息描述
·功能描述
·行为描述
·质量保证
·接口描述
·其他
6. 需求管理
·需求管理的流程
·需求确认
·需求评审
·需求承诺
·需求跟踪
·需求变更控制
·需求变更利弊
·需求变更流程