需求工程是随着计算机的不断发展而发展起来的;由于系统规模的扩大和系统复杂性的不断提升,人们逐渐认识到需求分析与定义在整个系统开发过程中的重要性;对需求工程进行具体和系统地研究是从软件领域开始的,随着计算机和软件工程的发展,到20世纪80年代中期形成了需求工程的概念。进入90年代,需求工程成为软件工程领域研究的热点之一,从1993年起每两年举办一次需求工程国际研讨会,到1994年起每两年举办一次需求工程国际会议,以及在1996年发行了新的刊物――《需求工程》,需求工程在软件领域中占据了越来越重要的角色。同时,该项技术在军事领域也得到迅速推广和应用。
体系需求工程是在体系建设开始之前需要执行和完成的一个必经阶段,也是体系工程的首要阶段。体系需求工程是实施并完成体系需求分析的过程,而需求分析是指由非形式化的需求陈述转化为完整的需求定义,再由需求定义转化为相应的形式功能规范的过程。一般的可以将体系需求工程分为需求开发和需求管理两个部分,而需求开发过程主要包括:需求获取、需求建模(包括需求验证)、需求分析、需求评估等几项内容。
系统工程与体系工程中需求工程的比较,见表。
需求工程 | 系统工程 | 体系工程 |
需求获取 | 利益相关者少,环境因素相对明确,需求获取工作量较小 | 利益相关者众多,环境因素复杂,需求来源广泛,获取工作量大 |
需求分析 | 任务需求数量较少且比较确定,环境与原系统的约束明确,功能性能需求的探索空间较小,需求之间存在一定的冲突 | 存在较高层次的能力需求,任务需求多且关系灵活,体系背景和现状导致复杂的约束,体系的功能、性能需求存在庞大的探索空间,体系的互用性需求,需求之间存在不可避免的冲突 |
需求文档化 | 文字描述为主 | 多视图、多形式表示 |
需求验证 | 针对独立功能或性能的校验,偏向静态验证 | 面向多个系统间交互行为及其活动过程的验证,注重动态验证 |
需求演化管理 | 较少在需求上与其他相关系统协调,使用阶段的需求变更与管理 | 体系需求处于长期的逐步演化过程 |