罗德杰,蔡 明,郭 鑫
(1. 航空工业西安航空计算技术研究所,陕西 西安 710068;2.空装驻西安地区第六军事代表室,陕西 西安 710068)
目前机载机电系统软件大多是为功能、机载环境需求而定制开发的专用产品,软件随整机进行定型的时间少则几年,长则十几年。与此同时,机载设备软件因所处硬件平台不同,其可移植性和不同硬件适应性很不理想。以往的机载软件开发,通常是当新的软件需求明确后,在以前装机实践过的软件开发库中拷贝相似的功能需求的软件代码,再通过修改、验证、测试等方式完成机载机电设备软件的开发。这种开发方式带来的弊端则是软件代码修改的规模难以控制,软件质量难以保证,且频繁更改软件带来的验证、测试成本高昂。由于以往机载机电设备软件中的软件功能单元没有独立与产品或需求进行配置管理,未有效维护每个软件单元的继承原则,导致机电设备软件的质量难以控制,从而影响机电产品的整体质量[1-2]。
在以往的软件配置管理中,对每个软件配置项进行“三库”的建立,分别是开发库、受控库、产品库,其管理流程如图1所示。一般而言开发库主要使用对象为产品开发人员。开发库中主要存储和管理产品源代码、需求规格说明、软件设计说明、单元测试资料等,以此构成一系列开发基线。受控库主要使用对象为产品测试人员。受控库中主要存储和管理由研发人员提交的软件程序、版本说明,以及由测试人员编制的测试方案、测试用例、版本测试报告、BUG分析列表等以此构成一系列测试基线。产品库主要使用对象为产品管理人员、产品生产人员。产品库主要存储和管理正式发布的产品版本及其配套资料,以此构成产品基线。产品库是研发企业最核心的资产,同时也是对接用户的唯一出口[3]。软件的“三库”管理注重的是对软件开发的过程管控以及可追溯性的保证,但缺乏对软件标准化、可拓展化以及复用性的提升。
图1 “三库”管理图示
本文基于机载机电软件提出了一种开放式的软件开发架构及归类方法,目的在于开发出可复用的机电设备软件框架和应用程序,提供一个可移植和可拓展的产品开发平台基线。开放式软件架构分布可归类三种,第一种为基础服务类软件单元;第二类是可复用类功能软件单元;第三类是特定功能、需求类软件单元,其架构如图2所示。采用此种软件架构进行开发设计,将底层软件打包封装,预留对外接口参数,开发时仅通过更改对外参数则可设计适用于任何数量的机载产品网络或嵌入式软件,同时通过此种归类对软件单元进行开发管理,建立独立于“三库”之外的管理库,对同类别的软件单元进行优先级排序并调用,节省开发成本,有效提升软件开发效率。
图2 开放式软件架构
◆基础服务类软件单元,此类软件单元主要用于响应命令、软件错误、硬件错误、应用初始化等,如信号加载所需的通用数据表、通用软件驱动、系统时钟、IO接口初始化等。
◆可复用类功能软件单元,此类软件单元是对应实现某功能需求的软件单元。例如机电系统中某传感器模拟量的采集驱动、离散信号采集驱动、各总线驱动等,此类软件单元应具备结构简单,软件需求实现路径清晰,可适应性调用等特点,其软件功能可覆盖机载电源、燃油、液压、传动、火警、环控、照明等各机载机电系统所需的功能实现。
◆特定功能、需求类软件单元,如接口自测试软件单元等,此类单元则需根据不同机型、机载设备的不同需求进行定做,应尽量控制此类软件的产生,将机载设备的软件需求通过前两类软件充分覆盖。
对此三类软件单元进行分类开发,在实际应用时,搭建基于此三类软件的开放式框架,在每类软件区域直接调取软件需求响应的软件单元,并将其打包加载,根据不同的需求调度使用。此方法有利于组成开放式软件架构,建立有利的开发环境、采用模块化设计、开放式标准来管理关键接口和验证标准的一致性。通过基础服务类、可复用功能类以及定制类软件组成开放式软件架构,对软件进行归类化,开放式开发,提高了软件开发效率,突破机载研发软件的单元提取、管理和集成等技术,形成面向机电领域的开放式软件通用开发环境。
开放式软件开发管理将是未来机电管理软件的主流应用。以机电系统开放式架构而言,开放式架构软件单元归类及开发,构建了软件单元可复用的软件系统架构,有效提高了机载软件的质量和开发效率,可广泛应用于各类机载设备操作系统以及嵌入式系统的软件,通过对软件单元标准的分类制定,进一步提高机载机电软件的标准化、通用化、复用性以及可拓展性。