1引言
为使软件既能高效又能保质保量的完成,近几年来,软件开发单位采用专门的软件管理团队对软件进行规范管理,与此同时改进软件开发技术。软件规范管理从近年的9001B质量体系认证、GJB5000A软件过程改进以及软件工程化等都对软件开发的各个阶段产品进行了规范管理,地面测控软件的管理日益规范,不断改进。另一方面,为大幅度提高软件的研发效率和质量,可以采用软件复用技术。本文结合测控软件开发实践,对复用技术在测控软件中的有效应用进行初步研究。
2软件复用理论
2.1软件复用的概念
为避免程序开发“从零开始”以及重复相同的工作,采用已有的经验和成果,将开发的重点集中在应用系统的新研部分,提高工作效率和软件质量,这就是软件复用。复用形式包括基于构件的复用和基于过程的复用,基于构件的复用是目前主要的复用形式。
2.2软件构件及基于构件的软件开发
软件构件是软件复用的核心和基本单位,具有独立的功能,是可复用的软件组成部分,可供第三方进行软件组装。构件可以是被封装的对象类、类树、功能模块、软件框架、软件构架(或体系结构)、文档、分析件、设计模式等。基于构件的软件开发与传统的软件开发相比,基于构件的软件开发强调使用软件构件对软件系统进行设计开发。基于构件的软件开发方法需要有相应的软件开发过程作为基础,否则,就不会有与该系统相符合的质量特性要求的软件构件。
2.3软件复用的优点
(1)改善软件质量:经过测试以及经过实践的软件往往缺陷更少。(2)降低开发风险:开发新的组件,如果测试不够充分,轻则有效性不高,重则可能是造成软件失败的原因。(3)支持快速原型开发:快速构建实用可操作系统模型,凭借其与用户进行有效沟通,最终获得用户有效意见反馈。(4)提高软件开发效率,缩短软件开发周期,从而降低软件开发成本。
3软件复用在测控软件开发中的应用
近年来,随着任务数量的增多,测控软件的开发团队越来越小,软件开发周期越来越短,软件的研制要求却不断的提高;随着卫星工作模式的增加,地面接收设备也需增加相应的工作模式完成相应的接收任务。因此,测控软件不但需要完成原有工作模式的监控管理功能,还需完成新增工作模式的监控管理功能。测控软件必须有效继承原有成熟的计划管理、自动标校/测试及自动运行管理技术,同时需要开发适合新增工作模式的计划管理、自动标校/测试及自动运行管理技术,并且要为后续其它型号软件提供高效的功能继承。基于软件复用技术的测控软件开发,使用大量的已经过验证的高效软件,对传统瀑布模型的各个研制阶段的产品(如需求分析、软件设计、软件编码、软件测试)进行优化和简化,节省了人力和时间,提高了软件的可靠性,降低了软件成本和开发周期。在软件的研制过程中,需要对软件的复用架构进行设计,对可复用的构件进行适应性修改设计以适应新的软件需求,还需对新研的部件进行软件设计。测控软件对原有成熟的设备监控、计划管理、自动标校/测试及自动运行管理功能的继承,就成为软件的复用的内容。其中包括四个阶段的复用:需求复用、设计复用、代码复用、测试复用。
3.1需求复用
测控软件的变更原因主要有两种:(1)用户需求变更。(2)软件自身技术升级。其中,用户需求变更是导致软件变更的首要因素;软件技术升级的部分工作往往也是为了更好的适应用户的需求。首先,同类任务的需求是逐渐增加的,并且有一定的可继承性,当增加新的需求时,已验证过的任务需求即可成为后续任务需求的可复用的构件。其次,不同的测控任务需求之间同样存在相同或相似的元素。例如,任何一个任务都有相同或相似的任务流程;根据工作计划及自动运行策略进行站前标校、任务宏配置、启动自动运行流程;监控数据的存储、显示、查询等任务需求存在一定的共性,对其通用的任务需求,是完全可以复用或部分复用的。因此,任务需求变更与软件需求变更为因果关系,直至后续的各个阶段活动都受到任务需求变更的影响。从需求分析、软件设计、软件编码直至软件测试,都会因为任务需求的变更而必须进行相应的更动。
3.2设计复用
多年以来,很多任务的测控软件都有相同或相似的软件结构,因此,这一有利条件,在软件结构设计时,得到了充分的利用。从软件复用的角度来说,在进行软件结构设计时,需将软件中相对稳定的部分(如设备监控、数据库管数据库管理、计划管理、用户管理)与新增加的部分不仅从结构上分开,而且要求其接口相对单一稳定。这样,从软件设计到代码开发都可以复用。
3.3代码复用
对程序代码的复用,以设备的监控线程为例介绍如下:目前,测控站内设备通过局域网进行通信,各个设备与测控软件之间的通信接口都已进行了标准化,因此,对不同设备的监控线程可以进行代码复用;如果重新设计代码,不但要耗费大量的人力和时间,延长软件开发周期,而且重新设计的代码必须进行充分的软件测试,否则难以保证其正确性和健壮性。开发者使用以往可复用的程序代码,或全部吸收或加以优化,大大避免了重复性工作,将精力集中于关键技术的攻关,如此设计更加高效可靠的软件系统。
3.4测试用例复用
软件测试复用主要包括测试流程的复用、测试方法的复用和测试用例的复用。其中,测试用例的复用是测试复用中的关键技术。测试用例的复用对于缩短软件的开发周期和降低软件开发成本具有极其重要的意义。
4结束语
测控软件在当前开发周期越来越短,任务量越来越大,软件质量要求越来越高的前提下,软件设计开发者如能有效的利用长期工作实践中积累的大量的软件工程经验,以及大量的经过验证的软件相关文件及代码较好的实行软件复用技术,则能够大大降低软件开发成本,提高软件开发效率,提高软件质量。因此,软件复用技术在测控软件开发中既实用,又有效,对软件开发起着至关重要的作用。
作者:王德芳 秦刚 单位:中国电子科技集团公司第二十七研究所