软件复用构件库建设的管理与实践
2015-03-16北京航天发射技术研究所赵慧莉王小军任跃进杨静郑怀芳
◎北京航天发射技术研究所 赵慧莉 王小军 任跃进 杨静 郑怀芳
软件复用构件库建设的管理与实践
◎北京航天发射技术研究所 赵慧莉 王小军 任跃进 杨静 郑怀芳
针对繁重的型号研制任务对软件研制的需求,开展了面向软件复用研制的软件复用构件库建设的管理与实践,通过软件复用标准体系、软件复用产品体系和软件研制支撑平台的建设,提升了软件研制专业化水平、研制能力,同时提高了软件研制效率和软件可靠性。
在信息化时代,软件在航天型号科研生产管理中起到了越来越重要的作用,其所实现功能的比重逐渐增大,“硬件软件化”已成为当前新的发展趋势。目前,软件研制也面临着研制任务重和任务多的双重压力,所以迫切需要提升软件的研制效率和质量,优化软件研制和人力资源配置模式,提高软件研制和保障能力。
北京航天发射技术研究所在软件研制过程中率先引入了“软件复用构件库建设”的概念,即打破传统的软件开发思路,将每个相对独立的功能抽象为一个构件并重新搭建起来,通过调试运行即可开发出新的软件,这样可以在软件开发过程中减少大量的重复性工作,提高软件生产率,降低开发成本,缩短开发周期。另外,由于软件构件大都经过严格的质量认证,并在实际运行环境中得到校验,所以有助于提高软件质量及可靠性。
一、软件复用构件库的建设过程
研究所建立了以控制软件为主的集成开发平台,提供软件设计架构、设计模块和设计标准等构件支持(嵌入式环境和非嵌入式环境),并与编译连接、下载调试以及软件测试等环境有机集成,从软件复用标准体系建设、软件复用产品体系建设和软件研制支撑平台建设3个方面稳步开展工作,进而提升了软件研制的专业化水平和研制能力。
1.软件复用标准体系建设
软件复用构件库相关标准包括复用产品开发、应用和管理三大类标准。其中,复用产品开发类标准包括异步非总线型串行通信软件设计规范(Q/Dc 296-2007)、发射车控制系统软件可靠性设计指南(Q/Dc 448-2013)、C语言编程规范等;应用类标准包括软件任务书编制模板、软件需求规格说明编制模板、软件详细设计说明模板、软件更改影响域分析报告模版等;管理类标准包括复用构件库使用手册、软件复用构件库管理办法、复用构件库知识管理激励办法、复用构件库设计规范等。
2.软件复用产品体系建设
复用构件设计工作按照专业划分为复用构件设计、软件模块编码和软件模块测试3个部分。软件复用产品体系建设主要是针对软件复用构件库中模块构件和架构构件的建设,模块构件源自新软件研制或从成熟软件中提取。
在控制软件通用架构的研制过程分层设计软件,主要分为驱动层、协议层和应用层3个层次。驱动层和协议层以软件产品包的形式纳入复用构件库,并作为复用构件进行使用;应用层模块主要分为主功能、流程控制功能、配置查询功能、故障处理功能、CAN总线通信处理功能、数据处理功能、硬件处理功能、网关处理功能(根据需要选用)等。
通过软件复用产品体系建设,研究所取得了阶段性成果。其中,复用构件库C语言形成了设备驱动、数据通信、数据处理、操作系统和控制功能五大类型22个构件,目前已完成了12个软件包(主要是驱动与协议包)和98个函数(3371行)。复用构件库G语言形成了界面显示、软件架构、数据处理、通信和文件处理五大类型12个构件。
3.软件研制支撑平台建设
研究所基于优化的软件研制流程建立了软件研制支撑平台(见图1),建设了软件编码测试环境和通用确认测试软件验证环境,设计了系统仿真软件,因而不再需要依赖硬件进行软件确认测试和系统联试。现阶段,开发测试试验室的源程序和可执行程序能直接通过试验网络传输到试验室进行确认测试和系统联试。
二、实践效果
目前,随着各项工作的并行开展和深入,软件复用构件库已在软件研制能力的提升上取得了明显效果,通过复用标准体系建设和复用产品体系建设相结合的方式提升了软件研制专业化水平、研制能力,提高了软件开发效率、缩短了研制时间、保证了软件质量。同时也使软件研制模式由“面向代码从无到有”向“基于复用模块”的开发方式转换,使配置项研制由依靠“单人方式”向依靠“多人组成专业组”的方式转换。
在某大型软件A的研制中,驱动层和协议层完全使用复用构件库中软件包4个,应用层完全使用复用构件库中的复用函数49个;主控软件总代码共计37,455行,复用代码共计29,551行,复用率达到78.9%。
在某大型软件B的研制中,在控制流程对比分析的基础上,进一步加大了应用层的复用深度,除驱动层和协议层使用复用构件库中的软件包外,应用层软件大部分继承某大型软件A的代码(复用代码共计8274行),应用层总代码为10,423行,应用层复用率也达到79.4%。
根据《复用构件库知识管理激励办法》以及复用构件库建设情况,北京航天发射技术研究所对复用构件的提供者、测试者和软件复用者进行了奖励,形成了复用构件提炼、入库、使用、完善、激励的复用构件建设闭环机制。◀
图1 软件研制支撑平台流程