张晓梅 张集成
(金航数码科技有限责任公司 北京市 100028)
随着航空工业的飞速发展,航空产品的安全性与稳定性已经成为研制单位进行市场抗衡的重要砝码,而软件研制过程能力的高低往往对其起着决定性的作用。[1]随着航空工业技术的不断发展,飞机系统的集成化、模块化、系列化、平台化程度越来越高,越来越多的飞机系统功能是由标准化的组件和机载软件实现的。因此,机载软件对航空产品的作用和价值也越来越大[2][3]。
传统机载软件采用单机电脑进行软件研发和存储、以光盘和U 盘等存储设备作为媒介进行机载软件传输。由于机载软件数量和复杂度不断增加,当前机载软件的数据管理模式,已无法满足当前航空产品对机载软件的管理发展要求。本文基于DO-178B、GJB5000AIII 和CMMI 对机载软件开发和灌装过程的配置管理进行关键技术研究,提出基于PDM 系统的机载软件配置管理体系,为航空机载软件配置管理相关信息系统建设提供技术帮助和参考。
图1为机载软件研发全过程,包括机载软件研发项目管理、需求定义、架构定义、设计定义、系统分析、实施、集成、验证、运行和维护。软件配置管理是软件研发过程中最重要的一个环节,包括计划制定、标示配置项、基线管理、变更控制、配置审计、配置记录、归档。[4]GJB5000A-2008 提出配置管理的目的是利用配置标识、配置控制、配置状态记实和配置审核建立和维护工作产品的完整性。[5]因此,我们需要从软件研发团队、执行过程和质量控制等方面对软件配置进行管控。
CCB(变更控制委员会)是软件配置管理的组织机构,负责定义软件配置管理工作内容,包括配置管理的软硬件资源的配置项标识、变更控制、变更审核、变更记录和报告等。[6]软件配置项包括项目开发过程中产生的任务书、计划、需求、设计、代码、测试数据等与产品相关的各类工程文档及数据,使用维护过程中产生的文档、数据,以及项目所使用的工具、采用的第三方软件等。软件开发过程是一个不断迭代不断完善的过程,针对软件开发过程中产生的数据通过软件配置库进行管理,软件配置库通常是开发库、受控库、产品库的三库管理模式,[7]开发库负责收集所有软件研发过程中的电子数据,受控库保存用基线管理的受控数据,产品库保存用基线管理发布的软件产品数据。[8]基线是对软件开发过程中不同阶段的软件数据版本进行管理,通常软件配置基线可以分为功能基线、配置基线、设计基线、代码基线、测试基线、产品基线。[9]
航空工业各主机厂所中各类研制数据在PDM 系统中一般通过BOM 进行组织和管理,包括管理设计数据的EBOM(结构视图和系统视图)、管理工艺数据的PBOM、以及管理制造数据的MBOM。机载软件是没有实体的,它必须依托于硬件(系统设备)才能在飞机上使用;机载软件不包含工艺、制造过程,其生命周期包括需求、研发、测试、灌装等等。机载软件在PDM 系统中,其产品结构的定义需要具备以下特点:
(1)为了便于建立机载软件与机载设备的关系,机载软件需要建立与BOM 类似的产品结构,通过BOM 对全机的机载软件进行统一管理;
(2)由于机载软件没有工艺、制造过程,所以机载软件仅包含EBOM,没有PBOM 和MBOM;
(3)由于机载软件与系统设备之间存在着紧密的关联关系,所以机载软件相关的数据也需要按照系统设备进行组织和管理,同时可以支持建立软件BOM 与EBOM(系统视图)间的关联关系。
结合机载软件的特点,其产品结构的数据模型如图2所示。
图1:机载软件研发过程
图2:机载软件产品结构
机载软件的产品结构即EBOM(软件视图)如图3,包括顶层、设备层和底层三部分结构,以机型为根节点进行组织。顶层结构与EBOM 的顶层结构相同,包括系统、分系统、子系统(民机为ATA 章、ATA 节、ATA 段);设备层结构包括设备和配置项,设备为需要灌装机载软件的具体系统设备,对应EBOM(系统视图)中的设备/成品,配置项用于对同一设备可灌装的不同状态软件进行区分,是机载软件技术状态控制的可配置节点,是相关基线的主要配置单元;底层结构为机载软件的具体数据,一般包含软件的源代码、执行代码和相关的技术文件。
在EBOM(软件视图)的基础上,为更好的对机载软件与系统设备、机体结构之间的关系进行追踪追溯,需要构建EBOM(软件视图)与EBOM(系统视图)之间的关联关系,从而构建机、电、软一体化的构型管理体系。EBOM(软件视图)的技术状态管理,以及其与EBOM(系统视图)、EBOM(结构视图)间技术状态的一致性保障,是机载软件数据管理的核心。
EBOM(软件视图)、EBOM(系统视图)、EBOM(结构视图)之间的关系模型如图4所示。
通过在PDM 系统中进行EBOM(软件视图)的构建,以型号为单位对机载软件统一管理,建立机载软件的存储结构,是对机载软件进行合理有效管理的基础。在此基础上,还需要建立机载软件从研发到灌装的业务过程管理体系,从而实现机载软件的一体化管控。
机载软件具有关系复杂、变更频繁的特点,除了机载软件自身的更新、升级会引起机载软件的版本变化外,与其关联的机载设备的变更也可能引起机载软件的版本变化,机载软件的版本与机载设备的版本并非一一对应的关系。机载软件的技术状态管理,需要按照机载软件研发过程的生命周期,以及不同生命周期阶段的交付要求,定义机载软件配置项的版本定义,并按照业务需求定义各种基线规则。
软件数据的版本控制能够有效地保证配置项的正确性和一致性,PDM 系统通过系统版本和软件配置版本来定义软件配置项。系统版本是配置项创建时生成的,软件配置版本是软件入库和变更时生成的。系统版本中大版本由修订动作产生,小版本由检出、检入动作产生。软件配置项初始版本由入库时指定,软件配置版本的升版由更改时产生。配置项创建时,只有软件系统版本A.1,软件配置版本为空。如果这时候软件配置项需要变更,则系统版本就会升级为A.2。软件入库软件配置版本为2.00A。入库软件进行更改,需要走更改流程,更改申请批准后,修订软件系统版本为B.1,软件配置版本为2.01A,如图5所示。
通过不同的基线和架次有效性对软件技术状态进行控制。机载软件管理的生命周期主要包括:需求、设计、研发、测试、装机规划和灌装六个阶段。其中需求、设计、研发、测试阶段是在机载软件正式数据发放前,在相关专用工具的支持下完成的。在一般情况下,PDM 系统不需要管理上述四个阶段中产生的过程数据,仅需要对完成软件测试后的结果数据以及后续的装机规划和灌装过程进行管理。
为满足机载软件的管理要求,在机载软件产品结构的基础上,定义“开发基线”、“规划基线”和“装机基线”。通过不同的基线对机载软件的各生命周期阶段的数据状态进行标识和管理,三大基线的关系和定义规则如图6所示。
如图6,“开发基线”、“规划基线”和“装机基线”分别对具备如下特点:
图3:软件产品结构的定义
图4:EBOM 软件视图、系统视图、结构视图的关系模型
图5:软件版本管理
图6:机载软件基线定义规则
(1)开发基线:机载软件承办单位完成软件开发、测试后,开发人员通过入库申请将机载软件相关数据提交机载软件配置和管理单位。机载软件配置和管理单位各专业管理人员接收数据并完成入库,入库的同时创建开发基线。开发基线基于系统/分系统固化软件配置项版本。开发基线没有版本控制,可通过创建新的开发基线替代原有的开发基线。开发基线作为规划基线创建和升版的基础。
(2)规划基线:规划基线由机载软件配置和管理单位软件配置管理人员创建,基于科研计划建立的规划全机软件版本或用于成品设备和全机鉴定版本合集。规划基线具备批架次有效性,不同规划基线的架次允许重叠。规划基线将作为装机基线新建或升版的依据。
(3)装机基线:装机基线由机载软件配置和管理单位软件配置管理人员创建,是用于建立需要装机的所有软件版本的合集。装机基线单架次有效,每一架飞机的装机基线只能有一个。装机基线的创建或升版时必须以某一条规划基线为基准,并允许修改。装机基线审批发布后,可以根据装机基线对规划基线进行“反哺”,用装机基线的内容和架次更新规划基线。机载软件的装机基线(以及装机基线相关的机载软件数据)审批发布后,将由机载软件配置和管理单位发往负责软件灌装的制造厂、试飞单位、用户等单位,并作为软件灌装的依据。
在规划基线和装机基线中,其架次有效性的定义规则必须与EBOM(系统视图)中有效性的定义规则相同。通过架次有效性过滤,以及EBOM(软件视图)中的设备与EBOM(系统视图)中机载设备的对应关系,实现EBOM(系统视图)中软件版本与EBOM(系统视图)机载设备版本的对应,从而实现机、电、软相关数据技术状态的一体化管理。
机载软件的生命周期管理过程中,包括需求、开发、入库、更改、配置、出库、灌装等多个业务场景。PDM 系统除了要对机载软件相关数据进行管理外,还需要通过流程任务,对各个业务场景的开展进行支持,从而在数据流和业务流两个维度对机载软件的整个研制体系进行支撑。
机载软件管理的总体业务流程如图7所示(流程图中白色的流程节点是不纳入PDM 系统中管理的节点)。
如图7所述,机载软件管理业务流程中,主要的业务场景如下:
(1)机载软件产品结构规划:机载软件产品结构规划即EBOM(软件视图)的顶层结构、设备层结构规划。EBOM(软件视图)的顶层结构是基本不变的,通过同步EBOM(系统视图)的顶层结构完成搭建(或手工搭建、导入)。设备层结构由机载软件配置和管理单位的机载软件管理人员参照EBOM(系统视图)进行手工搭建,同时建立EBOM(软件视图)中设备与EBOM(系统视图)中机载设备的关联关系。机载软件产品结构规划以“机载软件产品结构规划单”为载体,由机载软件管理人员创建并提交审批,经审批发布后,PDM 系统将自动创建EBOM(软件视图)的顶层结构、设备层结构。
(2)机载软件入库:机载软件入库流程是当机载软件完成开发与测试后,由设计机载软件承办单位的机载设备主管人员将机载软件相关的数据(含代码包、测试报告、验收文档等)以“机载软件入库申请”为载体上传至PDM 系统。每一份“机载软件入库申请”对应EBOM(软件视图)中设备的一个“配置项”,代表该设备中的一个可用的机载软件状态。“机载软件入库申请”经审批后发布,PDM 系统将自动在EBOM(软件视图)中创建 “配置项”及其对应的底层结构。在完成“机载软件产品结构规划流程”和所有设备的“机载软件入库流程”后,PDM 系统中将完成整个EBOM(软件视图)的结构搭建。
(3)基线创建及审签:基线创建及审签流程包括开发基线、规划基线、装机基线的创建及审签三个子流程。三大基线的流程中均包含基线创建、基线审批和基线发布三个子流程。其中规划基线创建时,需要以装机基线作为基础;装机基线创建时,需要以规划基线作为基础。
(4)机载软件更改:机载软件更改流程是基于配置项(或新增配置项)对机载软件版本进行更改及审签的流程。机载软件的更改流程包括更改申请和更改执行两个子流程,均由机载软件承制单位软件设计人员发起。更改申请流程以“更改申请单”为载体,描述需更改软件的更改依据(协调单、试飞问题、需求、升级反馈等),以及软件名称、所属系统/分系统、更改前后的软件版本等。“更改申请单”创建完成后,由创建者提交审签,审签通过后启动更改执行流程。更改执行流程以“更改单”为载体,描述具体的更改内容,并上传改后数据。“更改单”创建完成后,由创建者提交审签,审签通过后重新执行机载软件入库流程,更新机载软件状态。
(5)机载软件出库流程:机载软件出库流程是在执行软件灌装前,由机载软件灌装执行单位(生产、试飞、特设、用户等)相关技术人员发起,用于在申请机载软件灌装所需的软件代码及相关文档。机载软件出库流程以“机载软件出库单”为载体,填写架次有效性、所需设备等信息,并根据架次有效性在装机基线中筛选出符合要求的数据。机载软件出库单创建完成后,由其编制者提交审签,审签完成后发布。
(6)机载软件灌装状态反馈:生产、试飞或外厂的软件灌装人员在执行软件灌装时,通过机载软件灌装状态反馈流程,将机载软件的灌装情况向机载软件承制单位进行反馈。机载软件升级反馈流程以“机载软件升级反馈单”为载体,描述机载软件灌装情况信息,并在生产、总装、试飞或外厂单位内完成审签后,发往机载软件承制单位。机载软件承制单位相关人员接收“机载软件升级反馈单”并根据其内容进行答复和相关的处理。生产、总装、试飞或外厂的软件灌装人员接收答复和处理结果,对软件灌装进行相应的处理。
图8是某航空主机所和主机厂软件协同研制的案例介绍。主机所负责软件的开发,在软件三库管理系统实现软件的三库管理,将产品库数据发布到PDM 系统,在PDM 系统实现软件出入库和更改管理,软件数据基于软件产品结构进行管理,每架次软件是通过基线发布给主机厂。主机厂接收来自主机所某一架次的软件数据基线,在自己的PDM 系统建立软件产品结构,并基于软件产品结构管理软件数据,按某一架次基线的软件数据实现软件灌装,并将软件灌装信息反馈给主机所,形成软件研制的闭环。
主机所在软件三库管理系统实现软件的三库管理,产品库数据通过在PDM 系统提交入库申请单,走审签流程才可以入PDM 系统。PDM 系统参照飞机的EBOM 结构过滤出带有软件的设备形成整机的软件产品结构,基于软件产品结构管理软件数据。软件产品结构是由飞机->系统->分系统->设备->软件配置项自顶向下的软件产品结构关系,产品结构树记录型号所有可用软件配置项的集合。
PDM 系统以配置项为管理单元管理软件数据,软件基本信息(名称、编号、软件版本、研制单位等)作为属性进行管理。同时,通过数据的关联信息,将入库单、出库单、配置项更改申请(更改单)与配置项进行关联;目标代码包作为入库单的主要内容,源代码包、测试文档、验证报告等作为入库单的附件进行管理。
软件数据的版本控制能够有效地保证配置项的正确性和一致性,PDM 系统通过系统版本和软件配置版本来定义软件配置项。系统版本是配置项创建时生成的,软件配置版本是软件入库和变更时生成的。系统版本中大版本由修订动作产生,小版本由检出、检入动作产生。软件配置项初始版本由入库时指定,软件配置版本的升版由更改时产生。
软件产品结构通过配置项管理软件产品的所有版本数据,XXX主机所需要发放数据给YYY 主机厂时,针对某一具体架次飞机创建该架次飞机的基线,基线里包括有该架次飞机所有软件对应版本的软件配置项,及该对应版本的软件配置项下的软件数据。XXX主机所通过出库单将该架次飞机对应的软件数据基线发放给YYY主机厂。
YYY 主机厂接收到XXX 主机所的出库单及打包的软件基线数据后,将数据还原到PDM 系统,形成YYY 主机厂的软件配置管理结构树,并基于软件配置管理结构树对软件数据进行管理。YYY主机厂通过出库单将需要灌装的软件基线数据包分发给相关单位,如:库房、质检处、特设处、总装厂、试飞站等,相关人员在自己的系统里完成软件数据和版本核查及相关的软件灌装工作。
库房管理:PDM 系统向库房管理系统发放软件清单、更改数据和软件灌装任务,库房管理人员对成品信息进行核查、接受软件灌装任务。库房管理员可以在PDM 系统中直接登陆库存管理系统,查看成品件在库房中的存货数量,以及成品出库记录,获得成品出库状态信息,以便追踪到成品所在单位,进行软件升级灌装。库房管理系统向PDM系统传输成品首次入厂首检信息和灌装反馈信息,在PDM 系统保存成品完整信息。
质量管理:PDM 系统向质量管理系统发放软件清单、更改数据和软件灌装任务,检验和特设人员在质量管理系统完成成品信息核查工作、接受软件灌装任务。检验和特设人员在PDM 系统中可以直接登陆质量管理系统,查看现场成品信息,获得成品软件版本信息,以便进行软件升级。质量管理系统向PDM 系统反馈灌装反馈信息。
MES 系统:PDM 系统向MES 系统发放软件清单、更改数据和灌装任务,总装厂和试飞站在MES 系统完成成品信息核查工作和接受软件灌装任务。总装和试飞人员在PDM 系统中可以直接登陆总装厂和试飞站的MES 系统,查看现场成品信息,获得成品库存信息和装机信息,以便进行软件升级。MES 系统向PDM 系统反馈灌装反馈信息。
各个制造部门若有问题就在出库单审签过程中,将问题反馈给特设处,由特设处落实问题处理意见,若问题需要XXX 主机所解答,特设处会将问题基于流程自动反馈给XXX 主机所,XXX 主机所接收到相关问题后落实问题处理方法,将相关信息基于流程自动反馈给YYY 主机厂特设处,由特设处将问题的处理意见传递给相关部门的相关人员,形成软件灌装现场问题处理闭环。
图7:机载软件管理总体业务流程
图8:XXX 主机所和YYY 主机厂软件研制过程配置管理
图9:YYY 主机厂软件配置管理
软件配置管理是保证软件质量的关键,也是保证软件产品交付的重要手段。本文以DO-178B 和GJB5000A 三级为指导,结合CMMI 三级关键过程域实践,利用配置标识、配置控制、配置状态记录和配置审计,从软件数据管理、构型管理、业务过程管理的角度出发,提出基于PDM 系统的机载软件配置管理解决方案,为机、电、液、软等各类数据统一的技术状态管理和多学科协同产品研制提供了软件配置管理的技术保障。未来航空产品研制将向模型化、组件化、集成化、智能化、网络化方向发展,会对软件研发提出越来越高的要求,软件配置管理的研究工作也将任重而道远。