一种基于非面向对象语言的星载软件构件技术

一种基于非面向对象语言的星载软件构件技术

ID:46625008

大小:702.03 KB

页数:9页

时间:2019-11-26

一种基于非面向对象语言的星载软件构件技术_第1页
一种基于非面向对象语言的星载软件构件技术_第2页
一种基于非面向对象语言的星载软件构件技术_第3页
一种基于非面向对象语言的星载软件构件技术_第4页
一种基于非面向对象语言的星载软件构件技术_第5页
资源描述:

《一种基于非面向对象语言的星载软件构件技术》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、2015年8月中国空间科学技术37第4期ChineseSpaceScienceandTechnology一种基于非面向对象语言的星载软件构件技术张亚航郭坚于俊慧(北京空间飞行器总体设计部,北京100094)摘要为了进一步提高星载软件复用程度和解决航天器软件开发效率低下的问题,对星载软件特性和软件构件技术进行了分析和研究;对星载软件构件进行了定义,提出了一种基于非面向对象语言的、适用于星载软件开发和应用环境的星载软件构件模型。基于该模型开发的星载软件构件,具备独立性、完整性、可组装性和功能性。除此之外,对基

2、于这种模型的星载软件构件设计、开发和使用方法进行了介绍,可以为采用非面向对象语言进行星载软件构件开发提供参考。在多个型号中对该技术展开实践,实践结果表明:提出的星载软件构件设计方法能够将星载软件开发效率提高2~5倍。关键词开发效率;构件模型;非面向对象语言;复用;星载软件;航天器DOI:10畅3780/j畅issn畅1000‐758X畅2015畅04畅0061引言随着我国航天事业的突飞猛进,航天器数量急剧增加,同时航天器星务软件兼顾智能化、自主[1]故障等功能,软件结构越来越复杂。软件复用技术日益成为星载

3、软件系统的规模和航天器软件制造成本的瓶颈。国内研究者认识到了基于构件的复用技术是软件开发的趋势,也提出了航天器“软件工厂”的[2]概念。然而这些研究主要停留在概念层面,没有明确提出星载软件构件应该具备的特性和形态,也没有提出开发准则。航天领域对构件的认识并不相同,有的研究者认为构件与可复用模块等[3][4‐5]同,有的研究者仍然从结构化编程的角度理解构件,认为构件是一个或多个可复用的函数。随着对航天器综合电子软件任务的分析,函数形式的复用难以实现功能级别的封装与复用。而面向对象的理论,可以实现数据与逻辑的

4、封装。本文认为星载软件构件的设计思想仍然应该参考面向对[6]象方法论,并具备封装、多态等特性,这与软件工业界主流的构件技术思路一致。然而软件工业界的软件构件技术,例如SUN的JavaBean系列标准,OMG的CORBA系列标准和微软的COM系列标准,虽然相对完善和成熟,但由于受到以下条件限制,不能直接应用于航天器综合电子系统:1)语言环境约束:现有的软件构件设计方法往往基于面向对象语言,而星载软件鉴于任务特[3‐4]点和频繁操作硬件等要求,往往采用汇编或C语言等非面向对象语言进行开发。2)可靠性约束:航天

5、领域要求星载软件具备高可靠性,其遵循的编程规范存在特殊要求,例如不允许内存动态开辟和回收操作。3)资源约束:星载软件运行环境空间受限,而Java和COM等构件技术,往往需要额外的运[4]行环境确保构件的运行。总装备部预先研究(513200702)资助项目收稿日期:2014‐11‐19。收修改稿日期:2015‐03‐3138中国空间科学技术2015年6月与此同时,学术界对非面向对象语言(主要是C语言和汇编语言)构件技术的研究中,或者其[7][8‐9]构件模型仍然采用结构化设计思想,以函数为颗粒,或者需要底层

6、运行环境支持,或者需要[10]内存动态开辟,无法满足航天器软件高可靠性要求。为此,本文提出星载软件构件定义,明确其应具备的特性和对外接口形态,具备封装、多态等特性,并进一步提出采用非面向对象语言实现星载软件构件的设计和使用方法,用于指导采用非面向对象语言进行星载软件构件设计、开发、组装和使用。最后,对提出的构件模型和开发方法在多个型号展开了工程验证。2星载软件构件模型定义及设计规则[11‐13]不同的文献,对于软件构件往往有不同的定义,如1995年,Ian畅Oraham给出的构件定义如下:构件(Compo

7、nent)是指一个对象(接口规范或二进制代码),它被用于复用,接口被明确定义;而ClemensSzyperski认为,一般来说,构件(Component)是面向软件体系架构的可复用软件模块,其作为可复用的软件组成成份,可被用来构造其他软件。这里,根据星载软件运行特点和需求,参考主流软件构件模型,对星载软件构件进行自我定义,建立星载软件构件模型。2畅1星载软件构件定义由于在软件工程领域,对构件的定义并无统一的标准,综合工业界对软件构件的定义和星载软件的特点,本文提出如下定义:定义1星载软件构件(本文中有时也

8、将其简称为软件构件或构件),指的是一个可独立发布,并可以由第三方进行组装的功能模块,它满足一定的航天器软件需求,并通过接口提供服务。它应具备四个基本属性:1)独立性:构件编译时,需与其他构件分离或程序分离,除了基本编译环境,不能依赖构件以外的数据或代码,完成独立编译。2)完整性:构件发布时,构件使用方不能访问构件内部细节,且不可拆分。3)组装性:构件实例对外提供可见接口,构件用户能够根据既定规则将构件进行组装。4)功能性:必须

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。