介绍一种面向对象的需求建模方法---基于用例模型的软件需求建模
1. 软件需求工程
1.1 软件需求的定义
软件需求主要指一个软件系统必须遵循的条件或具备的能力
软件需求一般包含三个不同的层次:业务需求、用户需求和功能需求
1.2 软件需求的特性
功能性
可用性
可靠性
性能
可支持性
设计约束
1.3 需求工程(RE)的由来
软件需求工程:应用有效的技术和方法、合适的工具和符号,来确定、管理和描述目标系统及其外部行为特征的学科
2. 需求分析与建模
2.1 需求分析与需求工程的区别
需求工程是软件工程的一个子领域,贯穿于软件整个生存周期的始终
需求分析通常指软件开发的第一项活动,而该项活动的目的主要是为待开发的软件系统进行需求定义与分析,并建立一个需求模型
2.2 需求分析的步骤
一般包括4步骤:需求获取、需求建模、需求描述、需求验证,是一个迭代过程,直到所编写的SRS真正符合用户的需求为止
需求分析的主要任务:建立需求模型
需求描述即编写软件需求规格说明书(SRS),必须用统一格式的文档进行描述
3. 需求获取的常用方法
3.1 常规的需求获取方法
建立联合分析小组(FAST(Facilitated Application Specification techniques)便利的应用规约技术)
客户访谈
问题分析与确认
3.2 用快速原型法获取需求
快速原型法可以用作一种有效的需求分析方法
若需求已经建立,并且可以预见是相当稳定的,则不需要采用快速原型法
4. 需求模型
建立分析模型是需求分析的首要任务
4.1 需求模型概述
许多需求建模的方法,其中占据主导地位的有结构化分析建模和面向对象分析建模两种
结构化需求模型
面向对象需求模型
面向对象需求模型由3个部分组成:用例模型、补充规约和术语表,其中用例模型又包括用例图和用例规约
用例图主要用于显示软件系统的功能,包括用例和参与者两方面内容,用例规约则是对软件系统中每个功能的具体描述
补充规约:用于对全局性功能和可靠性、性能等非功能性需求进行文字性描述
术语表:用于描述与系统需求相关的术语的定义
4.2 面向对象的需求建模
4.2.1 画用例图
用例是一组动作序列及其变体的描述,主体执行这些动作序列为特定的参与者提供一个可观测的、有价值的结果。
用例—基于用户,功能—基于开发者
用例图从总体上描述了系统所能提供的各种服务,让我们对系统的功能有一个大致的认识
4.2.2 写用例规约
用例规约用来描述每一个用例的功能,一个用例对应一个用例规约,用来描述用例的细节
用例规约一般包含:
* 简要说明
* 事件流:包括基本流和备选流
* 特殊需求:描述与该用例相关的非功能性需求和设计约束
* 前置条件和后置条件
特殊需求通常是非功能性需求,记录的是专属于该用例的特殊需求;对于一些全局的非功能性需求和设计约束,则应把它们记录在补充规约中
4.2.3 描述补充规约
是指不与任何特定的用例相关联的非功能性需求,用于记录在用例模型不易表述的系统需求
4.2.4 编写术语表
术语表主要用于定义软件开发项目特定的术语
4.2.5 调整用例模型
5. 软件需求描述
软件需求规格说明书(SRS):是软件开发人员在分析阶段需要完成的用于描述需求的文档
SRS包含:
引言:主要叙述在问题定义阶段确定的关于软件的目标与范围,简要介绍系统背景、概貌和参考资料等
信息描述:给出对软件所含信息的详细描述,包括信息的内容、关系、数据流向、控制流向和结构等
功能描述:对软件功能需求的描述,包括系统功能划分、每个功能的处理说明、限制和控制描述等
行为描述:包括对系统状态变化以及事件和动作的叙述,据此可以检查外部事件和软件内部的控制特征
质量保证:阐明在软件交付使用前需要进行的功能测试和性能测试,并且规定源程序和文档应该遵守的各种标准
接口描述包括新系统的用户界面、硬件接口、软件接口和通信接口等的说明
其它描述阐述系统设计和实现上的限制,系统的假设和依赖等其他需要说明的内容
6. 需求管理
一种获取、组织并记录系统需求的系统化方案
6.1 需求管理的内容
6.1.1 需求实践示意图
6.1.2 需求管理的管理流程
需求确认
需求追踪
需求变更
6.2 需求变更控制
需求变更流程图