1 需求管理概述
需求用来描述一个产品或一项服务的期望功能和特征,需求是能够被清晰简洁的表达出来,同时被客户完全认可的信息。因而,需求管理的根本目的就是要把需求模型工程化和条目化,让需求去指导产品的工程开发。需求的满足和实现是复杂系统研制的根本目的,因为无论进行什么样的活动,包括设计、仿真、试验等等,其最终目的都是为了设计制造出满足客户需求的产品。
需求管理是系统工程的管理主线,设计、仿真、试验等一切活动,都是为了验证产品和方案是否满足需求。系统工程的思想要求通过应用模型来支持系统的需求定义、设计、分析和验证,从概念设计阶段开始一直贯穿整个开发流程。这一方法采用对整个系统虚拟化的手段来进行开发,最为显著的优势是使得复杂系统在早期阶段得以集成,提前把系统中出现的问题展示出来,以免后期的变更带来高昂的代价。
图1 需求模型的结构
需求模型和需求结构树建立,改变了传统文件管理的方式,大家传递和使用的还是同一种模型,不会产生歧义。任何时候发生变化,就去修改模型,不管在哪个点上修改,都能实现全程传递。所以,需求模型和需求结构树的建立,可以解决需求的来源和跟踪问题,也就是解决不同层级的需求之间的关系问题;同时,可以解决设计的根本和原因问题,也就是需求与设计、制造、试验等过程之间的关系的问题。
2 需求管理流程
需求管理是一个不断反复的需求定义、需求演进的过程,并最终在验证的基础上冻结需求。因此,需求管理流程主要包括需求捕获、需求分析、需求确认、需求分配、需求验证等一些流程。下面,就需求管理各个流程分别进行一些简要介绍。
需求捕获流程:需求捕获是需求工程师从需求用户那里捕捉所有的技术要求和各种技术指标,获取的技术指标在系统中创建需求条目,并赋予唯一的需求ID并进行需求属性的定义。
需求分析流程:在需求管理流程中,我们需要把需求进行分析,技术指标的分类,结构调整,形成不同的分系统,可以进行不同的技术指标结构对比、决策、版本控制、多视图定义、历史追踪等。为了将设计工作进行细化,需要把一条概括性的高层需求进行分解,以便分配到低层提供给设计人员进行工作。在需求管理工程中,需求的数目很可能是巨大的,同时也难免会有重复性的需求描述,因此,将相似描述的需求进行合并也是需求分析流程中比较重要的一个任务。
图2 需求管理流程
需求确认流程:我们需要通过各种工具方法来验证需求的正确性和完整性,并用审批流程来完成需求的确认流程。需求确认流程有助于降低风险,来辨识丢失、矛盾、不正确的需求。
需求分配流程:需求分配是将需求分配到物理架构以开展设计工作。这些工作内容包括:提供需求数据库的特定视图;在数据库中要定义不同架构;记录需求分配;检查所有需求已经分配到待选方案。
需求验证流程:当我们定义了需求,并将需求用来指导设计之后,设计是否符合需求,制造的产品是否符合需求,这些流程我们要通过需求验证来完成。
3 需求工程概述
需要和需求的定义是需求管理的主要内容,而基于设计的定义,以及证明设计开发活动的合理性,是需求工程的主要内容。首先,通过需求确认证明向下分解的需求满足上层的需求。其次,通过设计验证证明设计方案在每个层级满足需求。再次,通过产品验证证明产品在每个层级符合需求。最后,通过需求确认证明最终交付的产品符合用户需要。
图3 需求工程的层级
需求工程是需求工程师在整个研发流程中处理需求的一个学科,需求工程对工程师提供了一组通用流程、方法、手段来确定需求,最重要的是需求工程在整个研发流程中不仅管理需求,还进行分析、确认、追溯需求。需求工程有助于产品和子部件的认证,促进成本、质量、进度要求之间的权衡,减少产品开发风险、成本、返工。
4 需求工程流程
需求工程主要包括需求确认、设计验证、产品验证、产品确认等主要的流程。为了将复杂产品的开发流程变得简单并且可以追溯,采用分层次的方法对产品进行分解,将复杂产品的研发工作分为项目层、产品层、分系统层等多个层级来进行管理,而每层的管理流程是相似的,产品的需求工程研发流程就是要在每一层级完成循环迭代流程。
图4 需求工程流程
包括需求确认、设计验证、产品验证、产品确认等所有的流程无论在哪一个层级,都必须能够进行更进一步的分解,这样才可以指导基于需求工程的复杂产品的研发工作。下面,我们以一个层级的需求、设计、验证等工作和流程来进行进一步的分解,论述在产品研发每个层级所需要进行的研发流程的主要工作。
步骤一:需求的输入管理。
在每一个层级的基于需求工程的研发流程的第一个步骤是,在本层级建立所有设计和制造任务的基础:即本层级的设计和产品都必须满足的输入需求。所有的输入需求都必须明确、清晰,任何冲突都要与需求客户协商去解决。
步骤二:设计和验证管理。
在每一个层级的基于需求工程的研发流程的第二个步骤是,对已经确定下来的输入需求创建最优方案。这个步骤可以被称为设计和验证管理,主要有方案设计工作,以及方案的验证工作等,设计方案验证的主要手段是仿真。
步骤三:需求的输出管理。
在每一个层级的基于需求工程的研发流程的第三个步骤是,从输入需求直接创建本层级的输出需求,或从本层的设计方案的决策衍生输出需求,当然,衍生需求必须满足相应的输入需求。
步骤四:输入产品验证管理。
在每一个层级的基于需求工程的研发流程的第四个步骤是,通过设计的批准和输出需求的批准,来验证步骤二和步骤三中确定的所有输入产品。在产品验证阶段,验证的主要手段是试验。输入产品验证活动需要规划、同意,并及时准备,因为验证和试验活动经常会持续非常长的一段时间。例如,对于特定的验证和试验活动,试验活动可能需要分包,并且验证和试验人员也需要大量培训。
步骤五:产品集成管理。
在每一个层级的基于需求工程的研发流程的第五个步骤是,集成所有在步骤四的输入产品,并确保应用的集成流程以及集成输出产品的最终结果全部都对应设计。
步骤六:输出产品验证管理。
在每一个层级的基于需求工程的研发流程的第六个步骤是,在产品交付到上层进行更进一步的集成之前,基于输入需求从本级验证集成的输出产品。当验证输出产品的时候,不重复执行同样的、已经基于输入产品或中间产品执行过的验证活动是非常重要的,除非需要期望单个子产品的接口,或者集成产品的新出现的功能或质量特性需要被验证。
5 总结
复杂系统的研制是个非常复杂的过程,复杂系统的需求工程和需求管理需要强大的工具来帮助用户实现整个过程的管理。为了满足用户的需要,西门子推出了集成的基于模型的系统工程(iMBSE:Integrated Model Based Systems Engineering)解决方案。西门子iMBSE解决方案完全可以解决需求工程和需求管理的问题,它支持大型产品和系统、大型产品的子系统的全生命周期开发管理与协同运作,将客户需求、产品功能结构、系统逻辑关系、组成产品的零部件有效地进行关联管理。
图5 西门子 iMBSE 解决方案框架
西门子 iMBSE 解决方案主要解决以下问题:
— 从需求的定义,到最终产品验证保持全面的追溯;
— 在产品研发早期对产品和系统进行仿真、优化和验证;
— 通过验证管理,对设计和产品试验进行有效验证;
— 协同多学科系统的研发流程;
— 实现设计、分析仿真、试验一体化研发流程。
最后,我们必须思考怎样将需求工程及需求管理和软件系统的应用结合在一起。最重要的,借助西门子强大的需求管理平台以及西门子需求管理的解决方案,来解决复杂系统的需求管理和需求工程的问题,需要通过不断的学习以及进一步深入的实践来完成。