第5章 需求工程与需求分析(面向对象软件工程)

  • 介绍一种面向对象的需求建模方法---基于用例模型的软件需求建模

1. 软件需求工程

1.1 软件需求的定义

  • 软件需求主要指一个软件系统必须遵循的条件或具备的能力
  • 软件需求一般包含三个不同的层次:业务需求、用户需求和功能需求

1.2 软件需求的特性

  1. 功能性

  2. 可用性

  3. 可靠性

  4. 性能

  5. 可支持性

  6. 设计约束

1.3 需求工程(RE)的由来

  • 软件需求工程:应用有效的技术和方法、合适的工具和符号,来确定、管理和描述目标系统及其外部行为特征的学科

2. 需求分析与建模

2.1 需求分析与需求工程的区别

  1. 需求工程是软件工程的一个子领域,贯穿于软件整个生存周期的始终
  2. 需求分析通常指软件开发的第一项活动,而该项活动的目的主要是为待开发的软件系统进行需求定义与分析,并建立一个需求模型

2.2 需求分析的步骤

  • 一般包括4步骤:需求获取、需求建模、需求描述、需求验证,是一个迭代过程,直到所编写的SRS真正符合用户的需求为止
  • 需求分析的主要任务:建立需求模型
  • 需求描述即编写软件需求规格说明书(SRS),必须用统一格式的文档进行描述

3. 需求获取的常用方法

3.1 常规的需求获取方法

  1. 建立联合分析小组(FAST(Facilitated Application Specification techniques)便利的应用规约技术)
  2. 客户访谈
  3. 问题分析与确认

3.2 用快速原型法获取需求

  • 快速原型法可以用作一种有效的需求分析方法
  • 若需求已经建立,并且可以预见是相当稳定的,则不需要采用快速原型法

4. 需求模型

  • 建立分析模型是需求分析的首要任务

4.1 需求模型概述

  • 许多需求建模的方法,其中占据主导地位的有结构化分析建模和面向对象分析建模两种
  1. 结构化需求模型

  2. 面向对象需求模型

  • 面向对象需求模型由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 需求管理的管理流程

  1. 需求确认
  2. 需求追踪
  3. 需求变更

6.2 需求变更控制

  • 需求变更流程图
posted @ 2024-12-20 16:36  awei040519  阅读(869)  评论(0)    收藏  举报