2.1 国外系统工程相关标准的发展历程
2.1.1 美军标499
系统工程在20世纪五六十年代蓬勃发展,但无论工业界还是美国国防部,都对系统工程没有系统性的认识。系统工程在当时还是新鲜事物。
为了指导承包商以及军方采办项目人员,美国空军系统司令部在1965年发布了一本手册——AFSCM 375-5《系统工程管理程序》。该手册在“介绍”中提到:在最近几年(指1960年左右),已经开始设计及开发逐渐复杂的军事系统;专注可靠性、维修性、生存性、工具、运输、安全、人员表现及系统试验的专家已经产生一种认识,即一个系统不只是由设备拼成。在《系统工程管理程序》的叙述中,所有系统的组成必须共同工作并且有一个共同的目的,即基于所给输入产出单一的一套最佳输出。对一致性的绝对需要要求有一种能够引领一个复杂军事系统成功设计的创造性技术的组织。这种创造性技术的组织就叫作“系统工程”。在手册里,系统工程包含了很多方面,例如系统方法、系统分析、系统综合、功能分析、需求分析、可靠性分析、维护与维护性任务分析及类似功能。《系统工程管理程序》为随后制定系统工程标准提供了基础。
1969年,美国国防部发布了第一个系统工程标准MIL-STD-499《Systems Engineering Management》(以下简称499)。该标准由美国空军空间与导弹中心(AFSMC)牵头起草。
经过5年的使用后,1974年美国国防部发布了该标准的修订版,标准名称改为MIL-STD-499A《Engineering Management》(以下简称499A)。499A 的使用期非常长久,一直到20世纪80年代末90年代初,美国国防部着手对该标准进行修订,新标准的名称是MIL-STD-499B《Systems Engineering》(以下简称499B)。1991—1994年连续公开了499B的四个草案版。然而,20世纪90年代初进行的国防采办改革,使得499B的编制工作发生了转折。1994年,新入主美国国防部的佩里签署命令,进行基于性能规范和采用适用民用标准的军标改革。这使499B的草案没有转为正式发行版;另一方面,美国国防部长办公室于1995年正式下发通知,终止使用499A。499A 的废止以及499B的未正式发布,使得军方在国防采办中缺乏由军方制定的对系统工程的具体指导和规定。
1994年,两个协会发布了关于系统工程的暂行标准:EIA/IS 632《Systems Engineering》(内部标准)和IEEE 1220《IEEE Standard for Application and Management of the Systems Engineering Process》(试用)。这两个标准都基于499B,后来都在1998年修订为正式版本。2002年,国际标准化组织发布了与系统工程相关的ISO/IEC 15288。这三个标准可以作为美国军方具体指导和规范系统工程应用的参考(美国国防部均发布了采纳通知)。
2005年,The Aerospace Corporation的Systems Planning and Engineering Group为美国空军太空司令部(Air Force Space Command)的空间与导弹系统中心(Space and Missile Systems Center)制定了MIL-STD-499C《Systems Engineering》(简称499C),但此标准没有正式发布。
2.1.2 美国国家标准ANSI/EIA 632
ANSI/EIA 632-2003由美国国家标准研究所(ANSI)与电子工业联盟(EIA)联合发布,INCOSE和DoD资助了该标准的编制工作。它的前身是EIA/IS 632-1994《Systems Engineering》,目的是提供一个商用标准,以代替MIL-STD-499B。后来,EIA/IS 632-1994更名为ANSI/EIA 632-1998《Processes for Engineering a System》,定位为美国系统工程界的顶层标准,适用于政府机关以及所有的工业部门和技术领域。ANSI/EIA 632-2003是对ANSI/EIA 632-1998的再次确认,内容未做更动。
这个标准虽然是EIA的Systems Engineering Committee提出的,但是标准全文却没有提系统工程的定义,而是从“工程化一个系统”的角度来说明需要开展的工作。
制定ANSI/EIA 632-1998的目的是为系统工程或改进工程的研制者提供一套综合的基本过程:
1)为研制者建立、完善一套全部协调的要求,并可以用于系统的可行性和费效解决方案。
2)安全要求包含在费用、进度和风险约束内。
3)为了在产品生存周期内满足购买方的需求,改变一个系统或其任何部分,而修改系统。
4)提供系统的退役和报废的安全和(或)费效要求。
该标准将系统生存周期划分为系统预先定义、系统定义、子系统设计、详细设计、最终产品物理集成测试与评估五个阶段,也可以概括为方案(系统预先定义)、创造(系统定义、子系统设计、详细设计)和实现(最终产品物理集成测试与评估)三大阶段。
该标准定义了五类共13个过程,包括:
1)采办和供应。采办过程、供应过程。
2)技术管理。计划过程、评估过程、控制过程。
3)系统设计。需求定义过程、方案定义过程。
4)产品实现。实现过程、转移到使用过程。
5)技术评估。系统分析过程、需求确认过程、系统验证过程、最终产品确认过程。
ANSI/EIA 632标准包括的系统工程管理措施主要体现在技术管理过程类中,未按独立过程进行描述。例如,在控制过程中,提到要开展的工作包括追踪需求、技术状态管理、变更管理、接口管理、风险管理、数据和文档管理、信息库管理等。
从标准的名称可以看出,该标准关注一个工程系统实现的所有过程,不仅仅局限在系统工程本身。它详细说明了系统工程在企业中应用的环境以及与项目、企业的关系。按照研制系统的逻辑顺序,首次明确提出了采办供应、系统设计、产品实现等具体工作过程,对具体工作有明确的指导性。
2.1.3 国际标准IEEE 1220
IEEE 1220系列标准由IEEE Computer Society资助制定,编制人员包括INCOSE、EIA、ANSI的代表,并与AIA、DoD、EIA、ISO/IEC/JTC1/SC7等组织进行了协作。IEEE 1220在1994年发布了试用版,1998年发布了完整版。IEEE 1220-2005沿用了IEEE 1220-1998的主要内容,只是参考ISO/IEC 15288:2002标准对有关术语和定义进行了更新。ISO/IEC/IEEE 26702:2007则是根据ISO/IEC标准制定的规范,对IEEE 1220-2005进行了适应性的调整,主要内容保持不变。我国等同采纳了ISO/IEC/IEEE 26702:2007标准,发布为GB/T 26240-2010 《系统工程 系统工程过程的应用和管理》。
该标准没有给出系统工程的定义,但定义了一个企业开发产品(包括系统和软件)的所有技术工作的需求,以及为产品提供生存周期保障(维持和改进)的过程。它规定了一个建造系统的集成的技术方法,和在整个生存周期应用及管理系统工程过程的需求。系统工程过程以递归方式应用,来开发或改进产品以满足市场需求,并为系统的开发、制造、测试、分发、运营、保障、训练和退役等同步地提供相关的生存周期过程。
该标准提供了在系统工程环境中开发产品的方法,用以生产一个合格的、有竞争力的产品,为企业提供可接受的投资回报,获得相关方满意并满足公众需求。它定义了一个贯穿系统生存周期的跨学科任务,将相关方的要求、需求和约束转换为一个系统解决方案。该标准将系统生存周期划为六个阶段,见表2-1,各阶段含义见表2-2。
表2-1 IEEE 1220中系统生存周期阶段的划分
表2-2 IEEE 1220中系统生存周期各阶段的含义
该标准将定义了八个系统工程过程:需求分析、需求确认、功能分析、功能验证、综合、设计验证、系统分析、控制。
系统工程管理的工作主要体现在控制过程中,具体包括数据管理、技术状态管理、接口管理、风险管理、基于性能的进度测量、知识库等工作。
ISO/IEC/IEEE 26702:2007以后,ISO/IEC负责制定系统工程标准的组织 JTC1/SC7就参与到了15288标准的制定工作中,ISO/IEC/IEEE 26702标准不再发展后续版本。在ISO/IEC/IEEE 15288:2008中,还有对15288标准与1220标准关系的论述,以及如何协同应用两个标准的指导;后来,ISO/IEC/IEEE 26702:2007(即IEEE 1220-2005)被ISO/IEC/IEEE 24748-4:2016替代。
2.1.4 国际标准ISO/IEC/IEEE 15288
ISO/IEC/IEEE 15288《Systems and Software Engineering—System Life Cycle Processes》(系统与软件工程——系统生存周期过程)由国际标准组织(ISO)和国际电工委员会(IEC)组成的联合技术委员会(JCT1)制定。
到目前为止,15288标准发布了三个版本,分别是ISO/IEC 15288:2002、ISO/IEC/IEEE 15288:2008和ISO/IEC/IEEE 15288:2015。
ISO/IEC 15288:2002主要继承了ANSI/EIA 632:1998标准的内容,该标准成为INCOSE系统工程手册3.0版的重要依据。美国电气和电子工程师协会(IEEE)于2004年直接采纳了ISO/IEC 15288:2002标准。从15288标准的2008版本开始,IEEE参与制定该标准,并将此标准等同采纳为IEEE标准;15288标准的2008版本得到了ISO、IEC、IEEE、INCOSE、PSM(实用软件和系统度量)和其他相关组织的共同承认,该标准成为编制INCOSE系统工程手册3.2版的依据。中国国家标准化管理委员会等同采纳ISO/IEC 15288:2002,确定为GB/T 22032-2008《系统工程 系统生存周期过程》。
从2008年以后,15288标准与ISO/IEC/IEEE 12207《Systems and Software Engineering—Software Life Cycle Processes》同步进行改版升级,两个标准的结构与内容保持协调,部分过程名称与结构以及术语定义保持一致,以实现两个标准的协同应用。它们的最终目标是实现这两个标准生存周期过程的集成和深度融合。ISO/IEC/IEEE 15288:2015发布以后,INCOSE同步更新了系统工程手册,发布4.0版,其核心内容保持完全一致。
15288标准建立了一个通用过程框架,用于描述采用系统工程方法构建的人工系统的生存周期。
该标准将系统工程定义为一种跨学科的方法,用于支配技术上和管理上的工作。该工作是将相关方的需要、期望和限制条件转换为一个解决方案并在全生存周期中支持这个解决方案。这个生存周期从初期的方案跨到系统的退役。它为采办和供应系统提供过程定义和描述;它有助于创建、使用和管理现代系统的各方改进沟通和合作,以便它们能够以一种集成一致的方式进行工作。另外,这个框架也可用于评估和改进系统生存周期过程。
本标准有以下应用模式:
1)被组织使用:以帮助建立所期望过程的环境。组织可以应用这个环境从全生存周期来开展并管理项目和进行中的系统。在这种应用模式下,该标准可用于评价某个已建立环境是否与这个标准一致。
2)被项目使用:以帮助选择、构造和应用已建立环境的元素来提供产品和服务。在这种应用模式下,本标准用于评价项目与已建立环境的一致性。
3)被需方和供方使用:以帮助建立关于过程活动的协议。通过这个协议,确定并执行这个标准中的过程和活动。在这种应用模式下,本标准用于指导达成协议。
4)被过程评估者使用:在组织的过程改进工作中,本标准作为用于过程评估的参考标准。
虽然这个标准没有建立管理系统,但是它倾向于与ISO 9001质量管理系统、ISO/IEC 20000(IEEE STD 20000)服务管理系统和ISO/IEC 27000信息安全管理系统保持一致。
ISO/IEC/IEEE 15288:2015将系统全生存周期模型分为四组:协议过程组(Agreement Processes)、组织项目使能过程组(Organizational Project-Enabling Processes)、技术管理过程组(Technical Management Processes)和技术过程组(Technical Processes),具体包括30个系统工程过程(见图2-2)。与ISO/IEC/IEEE 15288:2008相比,ISO/IEC/IEEE 15288:2015增加了五个过程,分别是知识管理过程、质量保证过程、业务或使命分析过程、设计定义过程和系统分析过程。
图2-2 ISO/IEC/IEEE 15288:2015中定义的系统工程各过程组和所属过程
协议过程组的任务是在组织内部或外部的项目之间建立关系。
组织项目使能过程组为项目的使能系统提供足够的组织环境,为建立、支持和监督项目提供资源和基础设施,并评估目标系统的质量和进度。
技术管理过程组在系统生存周期的各阶段提供完整的项目管理过程,以保证生存周期各阶段对目标系统进行了适当的计划、评估和控制活动。
技术过程组在系统全生存周期中迭代完善以实现最终的系统产品,它提供可选择的技术过程,用于创建符合协议要求的全生存周期各阶段的产品和服务。技术过程在系统全生存周期内的各系统层次中迭代应用,促使要求逐步转变为系统设计,创建符合要求的全生存周期各阶段产品,直至满足任务目标的最终产品。
因为INCOSE新版系统工程手册中的过程定义与描述与ISO/IEC/IEEE 15288:2015中完全一致,所以,ISO/IEC/IEEE 15288:2015各过程的详细描述将在后续章节中进行展开。
2.1.5 围绕15288标准化工作的新进展
近十多年来,系统工程领域标准化工作的进展,除了15288标准本身的升级(即系统工程领域内各标准的协调一致)外,更重要的进展是在超系统层面与软件工程领域标准化工作的协同和协调一致,在更高的超系统层面构建生存周期过程管理的标准体系,以及在这两个超系统层面的协调一致下指导15288内部各个子系统(即单一过程或有关联的若干过程构成的过程集合)细化的标准化工作。
ISO/IEC JTC1/SC7最初成立于1987年,由ISO/TC97(信息技术)和IEC/TC83(信息技术设备)两个委员会中软件相关职责联合组成,最初命名为“软件工程”,2000年更名为“软件和系统工程”。系统工程和软件工程开始了“一个屋檐下”的国际标准化工作。但由于两个领域间的文化差异和互不认同,各工作组和分委会只关注各自负责的狭窄领域,各组织内部之间的所有层级缺乏为寻求共性的有效沟通、集成和资源利用,甚至一些标准的主题和内容之间还存在部分或整体上的竞争。这一切造成了系统工程和软件工程两个领域的标准化工作在针对不同的受众对象,使用不同的术语、过程集、过程结构和规定等级;造成了标准间缺乏共性却不乏冗余、不兼容和不一致的低效率和低效果的过程,而无法同时使用相关标准;造成了无法针对现实中的问题或应用需求提供有效的共性解决方案;最终造成标准的“孤岛”。
为解决上述问题,ISO/IEC JTC1/SC7于2003年启动了15288和12207两个标准的标准化协调一致工作(图2-3),IEEE和INCOSE等相关组织参与,目标是广泛考虑各领域受众及其应用需求,形成统一的共用词汇、过程集合和结构、规定等级。
图2-3 ISO/IEC JTC1/SC7启动的标准化协调一致工作
这项工作的最初成效是,跨标准化组织(ISO、IEEE和EIA)初步梳理了ISO/IEC/IEEE 15288、EIA 632和IEEE 1220三个系统工程过程标准之间的关系(图2-4)。
图2-4 三个系统工程过程标准之间的关系
另外一个维度上(在ISO/IEC JTC1/SC7内部),形成了在15288和12207之上的更高一层的顶层标准ISO/IEC/IEEE 24748-1(系统工程和软件工程的生存周期管理指南,最新版是2018),如图2-5和图2-6所示。
图2-5 以ISO/IEC/IEEE 24748-1为顶层标准的生存周期管理标准体系
图2-6 以ISO/IEC/IEEE 24748-1为顶层标准的15288和12207协调一致初步成果(2007年)
ISO/IEC/IEEE 24748-1标准有两个重要版本:ISO/IEC TR 24748-1:2010和ISO/IEC/IEEE 24748-1:2018。
作为15288标准和12207标准协调一致的阶段性成果,ISO/IEC TR 24748-1:2010
1)建立了生存周期相关概念和模型(详见3.1节),以及如何分别在15288和12207的场景下使用相应的生存周期模型。
2)详细比较了12207标准和15288标准的2002版和2008版,提供了版本过渡的建议。
3)为相应的生存周期模型提供一个过程参考模型,以方便使用新版15288和12207标准,并为其应用指南提供开发框架和使用建议。
4)提供了在特定项目、组织环境、领域、学科和专业中使用生存周期模型的建议。
与ISO/IEC TR 24748-1:2010相比,ISO/IEC/IEEE 24748-1:2018进一步完善了生存周期相关概念术语定义(详见3.1节)和共同框架,以及系统和软件生存周期管理的指南;支持在组织或项目中使用生存周期过程,以及与其他过程标准(如测量、项目管理和风险管理等领域的标准)的关系。
在此基础上,形成了面向系统工程和软件工程的生存周期管理标准体系(图2-7),包括基础和框架层(术语和分类、顶层框架和知识体系)、生存周期过程层、应用指南层、过程详述层、评估和治理层以及产出物描述层。
图2-7 面向系统工程和软件工程的生存周期管理标准体系(截止至2019年5月)