亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        一種基于非面向對象語言的星載軟件構件技術

        2015-02-24 02:32:29張亞航郭堅于俊慧
        中國空間科學技術 2015年4期
        關鍵詞:設計

        張亞航 郭堅 于俊慧

        (北京空間飛行器總體設計部,北京 100094)

        ?

        一種基于非面向對象語言的星載軟件構件技術

        張亞航 郭堅 于俊慧

        (北京空間飛行器總體設計部,北京 100094)

        為了進一步提高星載軟件復用程度和解決航天器軟件開發(fā)效率低下的問題,對星載軟件特性和軟件構件技術進行了分析和研究;對星載軟件構件進行了定義,提出了一種基于非面向對象語言的、適用于星載軟件開發(fā)和應用環(huán)境的星載軟件構件模型?;谠撃P烷_發(fā)的星載軟件構件,具備獨立性、完整性、可組裝性和功能性。除此之外,對基于這種模型的星載軟件構件設計、開發(fā)和使用方法進行了介紹,可以為采用非面向對象語言進行星載軟件構件開發(fā)提供參考。在多個型號中對該技術展開實踐,實踐結果表明:提出的星載軟件構件設計方法能夠將星載軟件開發(fā)效率提高2~5倍。

        開發(fā)效率;構件模型;非面向對象語言;復用;星載軟件;航天器

        1 引言

        隨著我國航天事業(yè)的突飛猛進,航天器數量急劇增加,同時航天器星務軟件兼顧智能化、自主故障[1]等功能,軟件結構越來越復雜。軟件復用技術日益成為星載軟件系統(tǒng)的規(guī)模和航天器軟件制造成本的瓶頸。

        國內研究者認識到了基于構件的復用技術是軟件開發(fā)的趨勢,也提出了航天器“軟件工廠”的概念[2]。然而這些研究主要停留在概念層面,沒有明確提出星載軟件構件應該具備的特性和形態(tài),也沒有提出開發(fā)準則。航天領域對構件的認識并不相同,有的研究者認為構件與可復用模塊等同[3],有的研究者仍然從結構化編程的角度理解構件,認為構件是一個或多個可復用的函數[4-5]。隨著對航天器綜合電子軟件任務的分析,函數形式的復用難以實現功能級別的封裝與復用。而面向對象的理論,可以實現數據與邏輯的封裝。本文認為星載軟件構件的設計思想仍然應該參考面向對象方法論,并具備封裝、多態(tài)等特性,這與軟件工業(yè)界主流的構件技術思路一致[6]。

        然而軟件工業(yè)界的軟件構件技術,例如SUN的JavaBean系列標準,OMG的CORBA系列標準和微軟的COM系列標準,雖然相對完善和成熟,但由于受到以下條件限制,不能直接應用于航天器綜合電子系統(tǒng):

        1)語言環(huán)境約束:現有的軟件構件設計方法往往基于面向對象語言,而星載軟件鑒于任務特點和頻繁操作硬件等要求,往往采用匯編或C語言等非面向對象語言進行開發(fā)[3-4]。

        2)可靠性約束:航天領域要求星載軟件具備高可靠性,其遵循的編程規(guī)范存在特殊要求,例如不允許內存動態(tài)開辟和回收操作。

        3)資源約束:星載軟件運行環(huán)境空間受限,而Java和COM等構件技術,往往需要額外的運行環(huán)境確保構件的運行[4]。

        與此同時,學術界對非面向對象語言(主要是C語言和匯編語言)構件技術的研究中,或者其構件模型仍然采用結構化設計思想,以函數為顆粒[7],或者需要底層運行環(huán)境支持[8-9],或者需要內存動態(tài)開辟[10],無法滿足航天器軟件高可靠性要求。

        為此,本文提出星載軟件構件定義,明確其應具備的特性和對外接口形態(tài),具備封裝、多態(tài)等特性,并進一步提出采用非面向對象語言實現星載軟件構件的設計和使用方法,用于指導采用非面向對象語言進行星載軟件構件設計、開發(fā)、組裝和使用。最后,對提出的構件模型和開發(fā)方法在多個型號展開了工程驗證。

        2 星載軟件構件模型定義及設計規(guī)則

        不同的文獻,對于軟件構件往往有不同的定義[11-13],如1995年,Ian.Oraham給出的構件定義如下:構件(Component)是指一個對象(接口規(guī)范或二進制代碼),它被用于復用,接口被明確定義;而Clemens Szyperski認為,一般來說,構件(Component)是面向軟件體系架構的可復用軟件模塊,其作為可復用的軟件組成成份,可被用來構造其他軟件。這里,根據星載軟件運行特點和需求,參考主流軟件構件模型,對星載軟件構件進行自我定義,建立星載軟件構件模型。

        2.1 星載軟件構件定義

        由于在軟件工程領域,對構件的定義并無統(tǒng)一的標準,綜合工業(yè)界對軟件構件的定義和星載軟件的特點,本文提出如下定義:

        定義1 星載軟件構件(本文中有時也將其簡稱為軟件構件或構件),指的是一個可獨立發(fā)布,并可以由第三方進行組裝的功能模塊,它滿足一定的航天器軟件需求,并通過接口提供服務。它應具備四個基本屬性:

        1)獨立性:構件編譯時,需與其他構件分離或程序分離,除了基本編譯環(huán)境,不能依賴構件以外的數據或代碼,完成獨立編譯。

        2)完整性:構件發(fā)布時,構件使用方不能訪問構件內部細節(jié),且不可拆分。

        3)組裝性:構件實例對外提供可見接口,構件用戶能夠根據既定規(guī)則將構件進行組裝。

        4)功能性:必須具備具體的、明確的一個或多個功能,能夠被用戶調用,并在預定的運行環(huán)境下正確運行。

        為了滿足以上定義,本文將星載軟件構件分為兩類。一類稱為靜態(tài)構件,運行前不需要實例化,以類似于庫函數的狀態(tài)存在,本文中不作詳細討論;另一類稱為動態(tài)構件,運行前需要進行實例化,是本文討論的重點。在本文中所說的構件,除了特殊說明外,都指動態(tài)構件。

        2.2 星載軟件構件模型

        圖1 星載軟件構件模型結構 Fig.1 On-board software component model structure

        如圖1所示,典型的星載軟件模型由對外接口、實現體和規(guī)約三個要素組成。其中,對外接口是構件向用戶提供服務的惟一渠道;實現體為具有一定功能的源程序片段,實現對外接口所提供的服務;規(guī)約作為對構件的描述,是構件使用說明書。其中,對外接口和規(guī)約對外可見,被用戶調用或被閱讀;實現體對外不可見,從而保證構件的信息隱藏和獨立性。

        為了精確描述星載軟件構件模型,本文采用BNF范式的擴展范式EBNF[14]對構件模型進行描述:

        “< >”表示待描述的語法成分,“::=”表示語法成分定義,“|”表示“或者”關系,“{ }”表示重復1到多次,“[ ]”表示可選項,“( )”表示括號內的成分優(yōu)先。

        則星載軟件構件模型滿足以下EBNF表達式:

        1)<星載軟件構件> ::= (<代碼體> | <子構件結構>) <對外接口> <構件規(guī)約>

        2)<對外接口> ::= <主結構體> <初始化接口> [<配置接口>]

        3)<構件規(guī)約> ::= <構件基本信息> <接口信息> <環(huán)境信息> <非功能特性>

        4)<子構件結構> ::= {<子構件>}

        下面分別對構件三要素進行詳細描述:

        要素一:對外接口,封裝在.h文件中,對外可見,包括主結構體、初始化接口、配置接口。

        1)主結構體:規(guī)定了構件對象的結構,封裝了以下方面的信息。

        ——構件屬性:包括變量和本構件所包含的子構件。

        ——構件功能接口:提供構件所有對外公開的服務,由用戶調用,以函數指針的形式存在。

        2)初始化接口:在任何構件運行之前,必須先對主結構體中的各變量賦予初值,即初始化;初始化接口就是提供給構件用戶的操作渠道。

        3)配置接口(可選):配置接口是可選的對外接口,主要包括兩種:與內存配置相關的配置接口,以及構件代碼動態(tài)編譯的相關配置接口。

        要素二:實現體,具有一定功能的源程序片段,實現對外接口所提供的服務,對外不可見。構件編寫完成后,將源文件編譯成二進制文件發(fā)布。實現體主要包括:

        1)初始化接口的函數體;

        2)功能接口的函數體;

        3)其他變量和代碼片段。

        要素三:規(guī)約。

        規(guī)約是對構件的描述,在實現中以.h文件中的注釋形式存在。

        3 星載軟件構件編寫規(guī)則

        基于本文第2.1節(jié)和第2.2節(jié)所述的星載軟件構件定義和基本要素,本節(jié)以C語言為例,對基于C語言的綜合電子軟件構件的具體實施規(guī)則進行詳細描述。

        (1)構件實體設計

        1)對于某個C語言星載軟件構件Component來說,其由一個實現體文件(例如Component.c)和對外接口文件(例如Component.h)組成;

        2)構件初始化函數命名規(guī)則:Component.c中的初始化函數名稱應當為ComponentInit(),其中Component表示構件名稱。

        (2)對外接口設計

        構件所有可見信息都封裝在對外接口文件中,對外接口文件包含本構件所有對外接口和構件規(guī)約,具體設計為:

        1)對外接口文件必須聲明本構件的主結構體,主結構體規(guī)定了構件對象的結構,從主結構體可以實例化出多個構件對象;

        2)對外接口文件必須聲明本構件所包含的其他所有子構件SubComponent_1,…,SubComponent_n;

        3)對外接口文件必須聲明本構件的初始化接口;

        4)Component.h文件可能聲明本構件的配置接口,其中包括兩類配置接口:

        ——內存分配配置接口:有些構件對象,在運行時需要分配額外的內存空間,但是在某些特定的航天星載軟件運行環(huán)境中,操作系統(tǒng)無法提供動態(tài)內存分配功能。此時,通過在構件主結構體中定義數組的形式進行內存預分配。

        ——選擇編譯配置接口:為了實現構件的通用性,構件往往會實現相關功能的最大包絡。但是在具體工程中,構件用戶根據自身需求,可能只用到該構件提供的部分功能。此時為了降低代碼冗余,構件頭文件可以以宏定義、選擇編譯的形式對有效代碼進行選擇編譯。

        (3)構件實現體的設計

        構件的實現體,一般情況下對用戶不可見;實現體中的內容在編寫時以代碼塊或函數體等形式存在,包括初始化接口的函數體、功能接口的函數體,還有其他一些必備的代碼:

        1)初始化接口的函數體實現,以ComponentInit(參數1,參數2,……)函數形式存在。本函數實現對本構件運行時初始化,必須實現以下功能:

        ——本構件對象所有屬性初始化;

        ——本構件所包含的所有子構件初始化(如果有子構件,則同樣的,子構件初始化包括當前所述的三個功能);

        ——將本構件主結構體所聲明的功能接口與所對應的功能函數掛接。

        2)函數體:除了靜態(tài)構件和初始化函數,其他所有的函數體,其第一個參數必須是指向當前構件實例的指針,例如ComponentFun(struct Component*this_obj,參數1,……)。

        3)信息隱藏:構件實現體的任何函數和全局變量,都需聲明為對外不可見。

        (4)構件規(guī)約設計

        構件規(guī)約作為星載軟件構件的使用說明書,由構件設計者提供,向構件用戶提供本構件能夠使用的一切說明信息。用戶將根據這些信息進行構件的選擇和使用,其至少需包括:

        1)構件基本信息:包括構件的作者、版本、構件名稱、發(fā)布日期等信息。

        2)構件接口信息:包括接口提供的功能、接口名稱、接口參數。

        3)構件環(huán)境信息:包括構件的使用場景、依賴的軟件環(huán)境、局限性等信息。

        4)非功能特性:通常情況下包含該構件的性能及可用性描述。

        (5)構件發(fā)布

        1)所有子構件的文件(包括二進制文件和對外接口文件)與Component文件共同進行編譯,形成完整的構件;

        2)構件可以向下包含子構件,不同的構件可以包含相同的子構件,但是不得出現構件包含環(huán),如A包含B,B包含C,C包含A;

        3)用戶使用時,只有構件規(guī)約、構件頭文件和編譯后的二進制文件,構件實現體不向用戶提供。

        4 星載軟件構件的組裝和連接

        構件組裝的任務是在系統(tǒng)框架下,集成已選取的構件形成整個系統(tǒng),是基于構件軟件開發(fā)的核心過程。

        4.1 直接連接關系(包含與被包含關系)

        圖2 構件A和B之間關系 Fig.2 Relationship between A and B

        本文定義的構件與構件的直接關系,只有包含與被包含關系。這使得構件與構件的關系簡潔明了,并保證了構件對用戶的獨立性和完整性。

        如果某個星載軟件構件A存在對另外構件B的服務存在直接調用,根據本文第3.1節(jié)中星載軟件構件獨立性原則,構件A必須采用包含子構件的方式,實現對被依賴構件B所提供服務的調用。構件B將作為構件A的一部分(子構件)發(fā)布。構件A和構件B采用統(tǒng)一建模語言UML描述,其靜態(tài)關系如圖2所示。

        因此,一個基于軟件構件的系統(tǒng)或構件的生產過程,實際上是對已有構件的選取、包含和使用。

        4.2 間接連接關系(構件連接子)

        圖3 構件A、B、C之間關系 Fig.3 Relationship among component A, B and C

        但是,在一些設計場景下,包含與被包含關系不能完全體現構件之間的關系??紤]一種設計場景:構件A能夠對其他一類滿足所需特定結構的任意構件對象提供相對通用的服務(例如排序操作)。構件B和構件C都能滿足這類特定結構(例如具備優(yōu)先級和比較能力)。用戶或上層構件應用程序希望使用構件A的對象a所提供的服務QuickSort對構件B和構件C的對象進行操作。

        此時,構件A、B、C之間的采用統(tǒng)一建模語言UML描述,其靜態(tài)關系如圖3所示。

        但是作為構件提供方,如果任意使用構件A提供服務的其他構件,都必須與A作為一個整體發(fā)布,存在以下問題:

        1)構件A本身難以獨立,因為可能存在許多不同的構件對象都需要排序服務,A無法與所有的這些對象都作為整體發(fā)布。

        2)根據構件獨立性原則,顯然在構件A發(fā)布之后新發(fā)布的其他構件將無法再使用A的服務。

        3)難以對多個不同類型的構件對象同時進行共同操作。

        因此,必須提出一種手段,使得構件A、B、C三者之間不存在包含關系,能夠分別獨立發(fā)布,又能夠相互調用彼此的服務。由此,本文引入構件連接子的概念。

        定義2 星載軟件構件連接子(本文中有時也將其簡稱為構件連接子或連接子)指的是一種結構,用于描述兩個或多個相互獨立的構件之間的數據結構關系。連接子沒有對應的實現體。

        仍然考慮上述場景:通過引入第三方構件連接子X規(guī)定該特定結構。構件A在發(fā)布的時候,同時發(fā)布一種結構連接子X(具備優(yōu)先級priority屬性并通過GetPriority獲取和比較方法Compare函數),并宣稱任意具備X結構的構件,都能夠采用構件A所提供的服務,對連接子X的描述如下:

        Connector X

        {

        Interface1: Compare()

        Interface2: GetPriority()

        }

        構件B和C的提供方在編寫B(tài)和C的時候,無需知道構件A的具體結構,只需要包含連接子X結構,使得構件B和C具備連接子X的形態(tài)。即可令構件B和構件C的對象采用構件A的服務。

        當構件B和C類型的某個對象需要構件A的對象所提供的服務時,雖然A、B和C相互獨立,即不知道其他兩方的任何信息,但是由于他們都知道連接子X的信息,因此可以通過X形成橋梁完成三者的相互左右。典型的步驟如下:

        圖4 加入連接子X構件A、B、C之間關系 Fig.4 Relationship among componentA, B, C with connector X

        步驟一:分別聲明構件A的實例a,構件B的實例b,構件C的實例c。

        步驟二:將b抽象化成連接子類型的x1。

        步驟三:將c抽象化成連接子類型的x2。

        步驟四:a對抽象后的連接子元素x1和x2進行操作或提供服務。

        步驟五:完成服務后,根據反射機制將x1和x2還原成原有構件類型。

        此時,構件A、B、C和連接子X之間的關系如圖4所示。注意,圖4中某個B的對象只能包含一個X類型數據,對C來說也是如此。構件A對連接子X是依賴關系。通過構件連接子,可以使得構件之間建立聯(lián)系,進而將軟件構件組裝成復雜的軟件系統(tǒng),同時各個構件又能夠保持各自的獨立性。

        5 應用效果

        本方法已經在部分型號任務得到了初步驗證。由于工作量和成本限制,難以將同一型號采用不同的手段開發(fā)4遍。為了能夠對構件應用情況進行分析,本文選取同一產品類型的,包含相同功能項4個的型號任務,且這4個任務由同一團隊開發(fā),分別記為任務甲、乙、丙、丁。

        其中任務甲采用傳統(tǒng)的手工代碼編寫方式實現軟件,任務乙繼承甲軟件體系結構,部分功能采用構件化設計。任務丙和任務丁在更大范圍進行了構件化設計和應用。本節(jié)對星載軟件構件設計和組裝方法在多個型號研制中的試驗情況進行分析,并對比型號軟件在應用構件化設計方法前后的開發(fā)效率和資源消耗情況。相關數據如表1所示。

        表1 星載軟件構件應用相關數據

        5.1 構件化開發(fā)技術對型號研制效率的影響分析

        圖5 多個型號任務中構件應用規(guī)模與開發(fā)效率關系 Fig.5 Relationship between component utilization and software develop efficiency in Missions

        隨著軟件構件化程度的提高,一般來說研制效率會得到提升。本節(jié)將對構件技術相對型號軟件研制帶來的效率提升實際效果進行分析和說明。

        多個型號任務中構件應用規(guī)模與開發(fā)效率關系如圖5所示??梢钥闯?,隨著型號中構件復用程度的上升,型號開發(fā)的效率越來越高。見效最為明顯的是任務甲到乙。從乙到丁開始,隨著構件功能覆蓋度增加,型號開發(fā)效率在仍在不斷提高。根據第2.2節(jié)中的介紹,型號軟件開發(fā)時,研制人員需要對需求進行細致的分析,從而選擇合適的軟件構件,這部分的時間無法省略,因此從乙到丁效率提高趨勢會逐步減緩。

        如果認為以上型號功能大致在同一等級,則顯然,隨著構件化技術的深入應用,軟件研制速度得到極大提高。

        5.2 構件化開發(fā)技術對型號代碼量分析

        圖6 復用構件數量和代碼總行數趨勢 Fig.6 Relationship between component utilization and code linage

        由于構件采用了通用化設計,有研究者擔心通用設計將帶來代碼量的提升,進而提高衛(wèi)星資源(例如PROM)占用度,這里將對實際型號代碼量進行統(tǒng)計和分析。

        具備類似功能的型號應用構件數量和代碼總行數趨勢如圖6所示。可以看出,隨著型號對軟件構件復用個數的增加,整星綜合電子或數管應用軟件的總代碼行數不但沒有上升,反而呈下降趨勢,以任務丙最為明顯。這是因為構件代碼經過多次復用,往往代碼結構經過了多次優(yōu)化,比較精煉,另外在型號內部構件可以派生多個實例,以實現相同功能(例如需要若干個遙測虛擬信道,只需要聲明多個遙測虛擬信道構件實例即可)。

        6 結束語

        本文提出了一種基于非面向對象語言的星載軟件構件設計方法,通過以下手段解決了星載軟件運行環(huán)境和使用要求對軟件構件的需求:

        1)本文提出的星載軟件構件模型和設計方法完全基于非面向對象語言,但是具備主流構件封裝性、獨立性、可組裝(連接)等特點。

        2)結合構件主結構體和配置接口,使得構件能夠通過聲明主結構體的方式派生構件實例,形成構件實例運行內存,避免了對內存的動態(tài)開辟和回收;同時主結構體與實現體的函數指針調用方式,可以通過在軌修改函數指針指向地址,從而輕易實現對構件實例的在軌維護。

        3)本文提出的星載軟件構件設計方法,完全基于現有的星載軟件開發(fā)和運行環(huán)境,無需安裝額外的運行環(huán)境。

        根據本文的方法開發(fā)出了若干星載軟件構件,在多個型號任務中展開了應用,并且對應用效果進行了統(tǒng)計和分析。通過分析可以看到,本文提出的星載軟件構件設計和實現方法具備以下優(yōu)點:

        1)星載軟件構件的可組裝性特點,使得大量的功能通過構件組裝的形式實現。用戶在使用時無需知道構件的內部結構,且只需要根據規(guī)約獲得構件信息,大大提高了軟件開發(fā)效率。

        2)星載軟件構件的獨立性,保證了構件代碼以構件為粒度完整的復用,被復用的構件無需進行構件內部功能測試,大大提高了代碼可靠性,提高了軟件質量。

        [1] 陳志明, 劉海穎, 葉偉松.“天巡一號”微小衛(wèi)星星務故障管理設計[J]. 中國空間科學技術, 2014,34(4): 79-83.

        CHEN ZHIMING, LIU HAIYING, YE WEISONG. Fault management design of NHTX-1 SAT service system[J]. Chinese Space Science and Technology, 2014, 34(4):79-83.

        [2] GUO JIAN,ZHENG XINHUA,ZHANG YAHANG. Produce space software from software factory[C].64thInternational Astronautical Congress,Beijing,2013.

        [3] 郭堅, 葉志玲, 陸嵐. 星載軟件復用技術探討[J]. 計算機測量與控制, 2007, 15(4):541-546.

        GUO JIAN, YE ZHILING, LU LAN. Discussion on technology for onboard software reuse[J]. Computer Measurement & Control, 2007, 15(4):541-546.

        [4] 顧斌, 杜建偉, 楊春河. 構件技術在航天器控制軟件開發(fā)中的應用研究[C]. 2006中國科協(xié)年會,北京,2006.

        GU BIN, DU JIANWEI, YANG CHUNHE. Research of component in spacecraft control software[C]. 2006 China Science Association Conference,Beijing,2006.

        [5] 何熊文, 孫勇. 一種衛(wèi)星數管中心計算機軟件的工程實現[J]. 航天器工程, 2007, 16(5):47-53.

        HE XIONGWEN, SUN YONG. Engineering realization of software in central terminal unit of satellite data management system[J]. Spacecraft Engineering,2007, 16(5):47-53.

        [6] HAFEDH MILI,FATMA MILI,ALI MILI.Reusing software: issue and research direction[J].IEEE Transactions on Software Engineering, 1995, 21(6):528-535.

        [7] 黃奉孝, 高艷華, 張學軍. 基于嵌入式構件的編程語言融合技術研究[J]. 計算機工程與設計, 2012, 33(11):4138-4141.

        HUANG FENGXIAO, GAO YANHUA, ZHANG XUEJUN. Research on programming language′s syncretic technology based on embedded component[J]. Computer Engineering and Design, 2012, 33(11) : 4138-4141.

        [8] MARION POLL F. Object-oriented approach to fast display of electrophysiological data under MS-WINDOWS[J]. Neurosci Methods, 1995, 63:197-204.

        [9] MICROSOFT. Advanced COM Interop .NET framework developer′s guide[S]. Microsoft Corporation, 2003. http:∥www.msdn.microsoft.com.

        [10] 梅巖, 王力生. 基于構件的嵌入式操作系統(tǒng)開發(fā)平臺的設計[J]. 計算機工程, 2006, 32(11):97-99.

        MEI YAN, WANG LISHENG, Design of component-based embedded operating system development platform[J]. Computer Engineering,2006,32(11):97-99.

        [11] SZYPERSKI C, GRUNTZ D, MURER S. Component software: beyond object-oriented programming[M].2nd ed.Beijing:Publishing House of Electronics Industry,2004.

        [12] AOYAMA M. Component-based software engineering: Can it change the way of software development[C]∥ Proceedings of the International Conference on Software Engineering, 1998(2):111-120.

        [13] BRUCE ECKEL, CHUCK ALLISON. Thinking in C++[M].Beijing:China Machine Press,2004.

        [14] WIRTH N. What can we do about the unnecessary diversity of notation for syntactic definition [J]. Communications of the ACM,1977, 20(11): 822-823.

        張亞航 1985年生,2010年獲北京大學軟件工程專業(yè)碩士學位,工程師。研究方向為星載軟件設計、綜合電子、空間信息安全。

        (編輯:楊嬋)

        Research of On-board Software Components Based on Non-object Oriented Language

        ZHANG Yahang GUO Jian YU Junhui

        (Beijing Institute of Spacecraft System Engineering, Beijing 100094)

        In order to further improve the reusability of the on-board software and to solve the problem of the on-board software inefficient development, the characteristics of the spacecraft software and the software component technology were analyzed.Then a definition of the on-board software component was given, and an on-board software component model suitable for spacecraft was proposed based on the non-object oriented language. The on-board software components are independent, integrate, assemble and functional. Besides, the method for the on-board software component design, develop and implement was described. It can be the guide of the on-board software component development based on the non-object oriented language. Some examples were given, in which the software systems were developed according the proposed method.The results show that spacecraft software component development methods are effective, and the spacecraft software development efficiency can be increased by 200%~500%.

        Develop efficiency;Component model;Non-object oriented language;Reusability;On-board software;Spacecraft

        總裝備部預先研究(513200702)資助項目

        2014-11-19。收修改稿日期:2015-03-31

        10.3780/j.issn.1000-758X.2015.04.006

        猜你喜歡
        設計
        二十四節(jié)氣在平面廣告設計中的應用
        河北畫報(2020年8期)2020-10-27 02:54:06
        何為設計的守護之道?
        現代裝飾(2020年7期)2020-07-27 01:27:42
        《豐收的喜悅展示設計》
        流行色(2020年1期)2020-04-28 11:16:38
        基于PWM的伺服控制系統(tǒng)設計
        電子制作(2019年19期)2019-11-23 08:41:36
        基于89C52的32只三色LED搖搖棒設計
        電子制作(2019年15期)2019-08-27 01:11:50
        基于ICL8038的波形發(fā)生器仿真設計
        電子制作(2019年7期)2019-04-25 13:18:16
        瞞天過?!律O計萌到家
        藝術啟蒙(2018年7期)2018-08-23 09:14:18
        設計秀
        海峽姐妹(2017年7期)2017-07-31 19:08:17
        有種設計叫而專
        Coco薇(2017年5期)2017-06-05 08:53:16
        從平面設計到“設計健康”
        商周刊(2017年26期)2017-04-25 08:13:04
        又污又黄又无遮挡的网站| 日韩亚洲无吗av一区二区| 国产对白国语对白| 又湿又黄裸乳漫画无遮挡网站| 99热这里有免费国产精品| 国产一区二区三区资源在线观看| 久久日韩精品一区二区| 玩弄白嫩少妇xxxxx性| 国农村精品国产自线拍| 国产美女精品AⅤ在线老女人| 亚洲国产最新免费av| 西西午夜无码大胆啪啪国模| 国产精品无码不卡一区二区三区| 欧美激情精品久久999| 国产美女高潮流白浆视频| 亚洲成熟丰满熟妇高潮xxxxx | 99久久无码一区人妻| 亚洲欧洲∨国产一区二区三区| 久久久久亚洲精品天堂| 精品亚洲av一区二区| 狠狠色噜噜狠狠狠777米奇| 亚洲∧v久久久无码精品| 色婷婷色99国产综合精品| 99久久婷婷国产精品网| 欧美大屁股xxxx高跟欧美黑人| 综合久久给合久久狠狠狠97色| 水蜜桃视频在线观看免费18| 亚洲精品第一页在线观看| 伊人久久久精品区aaa片| 久久久久国产一级毛片高清版A| 国产av三级精品车模| 激情综合色综合啪啪开心| 欧洲日本一线二线三线区本庄铃| 国产av天堂亚洲国产av麻豆| 蜜桃视频一区二区三区四| 久久久久av无码免费网| 9999毛片免费看| 在线亚洲精品一区二区三区| 国产 精品 自在 线免费| 老少交欧美另类| 亚洲双色视频在线观看|