需求工程(RE)
一、需求工程定义
需求工程(RE)的概念:
- 指应用已证实有效的技术、方法进行需求分析,确定客户需求,帮助分析人员理解问题并定义目标系统的所有外部特征的一门学科。
- RE通过合适的工具和记号系统地描述待开发系统及其行为特征和相关约束,形成需求文档,并对用户不断变化的需求演进给予支持。
- 需求分析专家 Alan Davis 把需求工程定义为“直到(但不包括)把软件分解为实际架构构件之前的所有活动”
需求工程RE可分为系统需求工程(如果是针对由软硬件共同组成的整个系统)和软件需求工程(如果仅是专门针对纯软件部分)。传统的需求处理是软件工程的需求阶段,系统化的需求工程则将软件需求开发和系统需求开发结合起来,在系统工程的开始阶段起到重要的作用。
软件需求工程——是一门分析并记录软件需求的学科,它把系统需求分解成一些主要的子系统和任务,把这些子系统或任务分配给软件,并通过一系列重复的分析、设计、比较研究、原型开发过程把这些系统需求转换成软件的需求描述和一些性能参数。
二、需求工程内容
需求工程中的活动可分为两大类:
(1)需求开发
需求开发的任务是准确地定义未来系统的目标,确定为了满足用户的需求系统必须做什么。用《需求规格说明书》规范的形式准确地表达用户的需求。
(1)需求获取是从涉众、文档资料或者环境中获取需求的过程,包括收集背景资料,定义项目前景和范围,选择信息来源,选择获取方法或技巧,记录获取结果。
(2)需求分析是指建立一个新的或改变一个现存的系统时,描写新系统的目的、范围、定义和功能时所要做的所有工作。需求分析是软件工程中一个关键过程。在这个过程中要分析背景资料、确定系统范围,细化需求、确定优先级,协商需求、确定需求。确定需求后分析和寻求新系统的解决方法,需求分析阶段的任务是确定软件系统功能和非功能,得到相应模型。
(3)需求规格说明是指将获取的需求编写成文档,方便在用户、客户或开发人员之间交流需求信息,是整个开发工作的基础。其内容包括硬件、功能、性能、输入输出、接口界面、警示信息、保密安全、数据与数据库、文档和法规的要求。
(4)需求验证是用来确保需求说明准确,完整地表达需求需要,主要包括审查需求文档,修正不合理的需求。
(2)需求管理
- 需求管理的目的是在客户与开发方之间建立对需求的共同理解,维护需求与其它工作成果的一致性,并控制需求的变更。
- 需求管理是一种用于查找、记录、组织和跟踪系统需求变更的系统化方法,可用于获取组织和记录系统需求并使客户和项目团队在系统需求变更上保持一致。有效的需求管理在于维护清晰明确的需求阐述,每种需求类型所适用的属性,以及与其他需求和其他项目工作之间的可追踪性。其活动包括:定义需求基线,建立跟踪信息,进行变更控制。
需求工程过程