王洪钰,孟庆鑫
(1华为软件技术有限公司北京 100077)
(2中国电子科技集团公司电子科学研究院北京 100041)
关于任务电子系统软件复用技术的探讨
王洪钰1,孟庆鑫2
(1华为软件技术有限公司北京 100077)
(2中国电子科技集团公司电子科学研究院北京 100041)
特种飞机任务电子系统软件的开发效率、质量是制约特种飞机机研制能力的因素之一,研究任务电子系统软件的复用技术就是未来提高任务电子系统软件的开发效率和软件的质量;文中对任务电子系统软件的复用现状进行了分析,指出了影响任务电子系统软件复用的技术因素,探讨了实施任务电子系统软件复用的方法,并以举例的方式重点阐述了如何在工程领域内对复用的分析、构造可复用构件和建立软件复用库;最后,介绍了软件沿用这种复用形式后,在工程实践领域的应用。
任务电子系统软件软件复用组件技术
随着“十二五”、“十三五”期间我国特种飞机需求的迅速增长,开展特种飞机任务电子系统的产品化工作,提高任务电子系统产品的成熟度和批生产能力,推行成熟产品的定性/鉴定,以成为提高特种飞机生产效率、保证特种飞机质量的重要措施。任务电子系统软件作为一种特殊的特种飞机的产品,它的质量和开发效率直接影响着特种飞机的研制能力。因此,如何实现任务电子系统软件的产品化,提高任务电子系统软件的开发效率,是我们研究的一个重要内容。
任务电子系统软件的特点决定了他不能通过简单地固化状态或定型的方法来实现产品化。目前,软件行业内一般采取软件复用的方法来解决重复开发、效率低下的问题。因此,本文就如何采用软件复用技术来提高任务电子系统软件的开发效率和质量,缓解多型任务电子系统软件并行开发的压力,进行一些探讨。
软件复用按照不同阶段,软件产品的抽象程度的高低,一般可分为代码级的复用、分析的复用、设计的复用和测试信息的复用等类型。在任务电子系统软件的开发过程中,这几种类型的复用都涉及到了。但目前任务电子系统软件的复用水平不高,主要体现在以下几个方面:
①软件复用基本上属于开发人员的自发行为,而没有事先经过策划,因此随意性很强,而且由于复用后的质量得不到保证,需要向对待新软件一样,进行全过程的验证,主要指的是单元测试、配置项测试和系统测试。复用的效率得不到体现;
于体系结构上的复用较少,复用主要是针对某个具体的函数或某段功能相同的源代码进行,使得任务电子系统软件复用的层次不高,范围较窄;
③缺少可复用的高可靠任务电子系统软件构件,可复用的资源太少。如果将复用性不高的模块复用到任务电子系统软件中,不但无法提供软件质量,而且可能带来新的问题。
通过对任务电子系统软件的特点分析,我们认为影响任务电子系统软件复用的技术因素主要体现在以下几个方面:
①编程语言。任务电子系统软件组成复杂,即包括实时的嵌入式软件,也包括非实时的数据处理软件和人机操作软件。采用的语言包括非面向对对象的C语言、面向对象的VC++语言,复用起来有一定的难度;
于可靠性安全性要求。任务电子系统软件中不允许出现“多余物”,即不允许有超出用户需求中规定功能以外的功能,这使得软件很难同时适用两个或更多不同的需求;
③部分任务电子系统软件在设计时,模块化考虑的不够,耦合度较大,使得复用的难度增大;
国产化设备移植。任务电子系统软件基于国产化的硬件、应用软件和操作系统的基础上开发,设备上差异也往往导致软件的修改。
3.1 软件复用方法
软件复用的过程可以分为2个方面;应用者复用(Consumer Rsuse)和生产者复用(Producer Reuse)。应用者复用是指利用可复用构件去建立新的的软件系统的活动;生产者复用是指建立、获取或者重新设计可复用构件的活动[1]。
要实现任务电子系统软件的复用,必须将2方面的工作结合起来,既要有可复用的构件,又要在新的系统中用这些构件。但是在现阶段,我们认为主要的问题还是缺少可复用的构件,所以我们更应该重视生产者复用方面的工作。
生产者复用生命周期也是由3阶段组成,分别为:领域需求识别、构造可复用组件和建立产品库。其中领域需求识别是一个识别一组相关系统间共性和差异的过程。目前,对特定领域的软件复用技术的研究是软件复用技术的发展趋势。特定领域软件复用即在一定特定的应用领域中实现软件复用,是提高软件复用水平的有效途径之一[2]。任务电子系统软件复用就属于特定领域的软件复用。任务电子系统软件按照所属的分系统又可以细分成不同类型的软件产品。对各个特定类型的软件产片分别采用领域需求识别、构造可复用组件和建立产品库的方法开展软件复用烦人活动,是提高任务电子系统软件复用水平,实现任务电子系统软件产品化的有效途径。采用上述方法复用的各阶段主要活动和输出如图1所示。
图1 阶段主要活动和输出
3.2 任务电子系统软件复用实例
以任务电子系统软件的重要组成部分之一的任务训练模拟器系统软件为例,对其实施基于领域工程的软件复用实践活动进行说明。
①领域需求识别:这个阶段,需要对任务训练模拟器系统软件的领域进行定义,确定领域词汇。在任务训练模拟器系统软件中,我们定义的领域为模拟训练、总线通信、系统框架、导调控制、课题编辑和数据维护等等的功能项。
这些功能项的名称即为领域词汇。因此我们需要对每个词汇进行具体的定义、说明。在完成领域定义后,确定了任务训练模拟器系统软件的领域词汇后,重点对领域模型和领域的体系结构进行研究。提出任务训练模拟器系统软件的领域体系管理结构模型。结构模型如图2所示。
图2 系统体系架构
由图2可知,任务训练模拟器系统软件模型可定义为操作系统、公用基础、业务服务和应用交互4层[3]。
于构造可复用组件:这个是任务训练模拟器系统软件复用的核心工作。一个可复用的任务电子系统软件应该是高质量的,这样才能使它的潜在复用者有信心。
在构造有复用价值的组件的时候,一方面,我们需要对现在和过去的任务训练模拟器系统软件的开发经验进行总结,提炼出有价值的组件,这是一个自底向上的过程;另一方面,需要我们对“十二五”、“十三五”期间可能存在的需求进行研究,发现最有复用前途的组件,这是个自顶向下的过程。因此,有效的组件提炼的方式是2者的结合使用。
一般来说,一个可复用的任务电子系统软件组件应具备如下的特性:
①经过充分的验证;
于模块化;
③可靠性高;
④健壮性好;
⑤易于理解或具有丰富的文档;
⑥能被广泛的应用;
⑦可维护性好。
在构造任务训练模拟器系统软件组件的过程中,可以采取如下的方法:
①使用参数来使一个组件一般化。通过采用一组嵌入在组件中的参数来定制一个一般化的组件,当组件被复用的时候,用一组在允许范围内的数值来代替参数,以实现组件内的不同处理;
于将复用的组件分为2部分设计。如果复用者能够对组件进行任何程度的修改,则复用的效益可能会被抵消。因此,在设计时候,可以将组件定义为固定部分和可变的部分。固定的部分只能以“保持原状”的形式复用,可变部分则允许在一定的范围内修改。这样,组件可以被看做一个可以“定制的”黑盒,给复用者带来2方面好处。即黑盒复用的好处,易于理解和验证;白盒复用的好处,快速适用每一次复用,能够修改。
图3给出了个构造一个可复用组件Bus_Driver总线组线的分层结构图。
图3 Bus_Driver总线组件分层模型
③建立产品库:在已经拥有可复用组件后,还应保证设计开发人员能够快速、容易地找到他们,并且能够容易理解他们。这就是产品库的主要作用。
产品库是用来组织、存储和管理可复用组件的。在建立软件产品库的同时,我们还需要建立配套的分类、检索和复用的目录,并对其进行有效的配置管理。产品库中可根据管理的组件的特点,将组件分为3个等级。分别为:
①组件文档齐套,并通过开发方测试和第三方测试,所发现的问题全部修改;
于在第1级的基础上,组件经历过1个型号的鉴定,没有出现问题;
③在第2级的基础上,组件经历过2个型号的鉴定,没有出现问题;
3.3 任务电子系统软件沿用
软件沿用是软件工程化中的一个专用术语。他对应一种特殊的软件复用形式,即对整个任务电子系统软件产品不做任何修改的再次使用[4]。
在软件沿用中,我们主要研究如何在确保任务电子系统软件质量的前提下,最大化的减少重复的工作量、提高软件开发效率。经过工程实践的验证,我们认为进行任务电子系统软件沿用需要4个步骤。如图4所示。
图4 软件沿用的审批流程
其中,软件沿用可行性分析是软件沿用中最重要的一步工作。他产生的结果是可行性分析报告,报告应阐述如下4方面的内容:
①沿用软件的目标计算机的硬件环境、外围环境与被沿用软件的目标计算机硬件环境、外围环境一致,或硬件环境、外围环境的变化不会对软件沿用产生影响;
于沿用软件的用户需求与被沿用软件的用户需求一致,或用户需求的变化不会对软件沿用产生影响;
③被沿用软件的研制过程满足软件工程化的要求(含文档、开发、测试、评审等几个方面);
④被沿用软件飞行过程中尚未发现问题,且不存在其他型号举一反三涉及的问题。
被确定为沿用软件的软件产品,研制技术流程可以不包括需求分析、软件设计、编码、单元测试、软件集成、配置项测试等工作,但必须进行系统测试。
随着技术的发展和对任务电子系统软件需求的快速增长,软件复用已经成为任务电子系统软件开发的必备手段。但我们也要同时看到,在软件行业中有一个现象,就是实践的现状往往落后于技术发展的水平。因此,软件的复用是一个漫长的过程。目前在任务电子系统软件领域中的实践,是一种有益的尝试。
[1]MeClure C.软件复用技术在系统开发过程中考虑复用[M].北京:机械工业出版社,1993
[2]于海泳.软件复用机会的识别[J].微机发展,2004(12). 115-117.
[3]郭坚.一种星载软件系统测试环境的设计[J].计算机测量与控制,2005,13(5).499-502.
[4]魏玉凡.装备维修信息化系统研究[M].北京:中国电子科学研究院学报,2009.
Discussion on The Task of The Electronic System of The Software Reuse Technology
WANG Hong-yu1,MENG Qing-xin2
(1 Huawei Software Technology Co.,Ltd.Beijing 100077,China)
(2 China Academy of Electronics and Information Technology Beijing 100041,China)
The efficiency of software development,electronic system task special aircraft quality is one of the factors restricting the special aircraft development ability,study mission electronic system software reuse technology is the future to improve the quality of mission electronic system software development efficiency and software;analyses the current situation of software reuse task of electronic systems in this paper,it points out that the influence of technology factors mission electronic system of software reuse,and discusses methods of the task of implementing electronic system of software reuse,and by way of example and expounds how to in engineering analysis,to construct the reusable component reuse and establishment of the software reuse library;finally,introduced the software to use this form of reuse,application in engineering field.
engine;simulation;education;Solidworks;3DVIA compose
TP391.9
A
1008-1739(2015)06-68-4
定稿日期:2015-02-26