張 楠
(西安科技大學 計算機科學與技術學院,陜西 西安 710054)
論計算機嵌入式軟件構件提取與組裝
張楠
(西安科技大學 計算機科學與技術學院,陜西西安710054)
隨著計算機硬件性能的逐步提升,計算機對嵌入式軟件的規模及復雜度的要求也越來越高。因此,必須采用有效的構件軟件開發方法。采用構件提取、組裝等方法進行軟件系統構建,可以提高軟件系統的可靠性,滿足計算機硬件的需求。文章就計算機嵌入式軟件構件的提取、組裝技術進行重點探討。
計算機;嵌入式軟件;構件;提取;組裝
在計算機嵌入式系統開發與設計的過程中,嵌入式軟件的開發占據著至關重要的地位。目前,嵌入式系統在很多領域均有十分廣泛的應用,不僅能夠極大地提升系統處理速度,拓展存儲空間,還能有效降低損耗。對于傳統軟件構件開發而言,多關注過程形式的開發,但以嵌入式軟件構建開發為基礎常具有更強的演化能力。
在嵌入式軟件開發中,軟件構件占據著重要的地位,也是軟件開發過程中不得不關注的主要組成部分。需要通過特定的體系結構,采用有效的開發推進技術,實現相應的各項功能。為了方便用戶操作,更好地服務用戶,要求構件必須設置相應的接口以滿足用戶需求。與傳統軟件開發不同,嵌入式軟件構件開發具有諸多優勢,能夠結合硬件生成方式實現定制化開發與組裝,實現了各種技術的綜合應用,提升了開發的效率,達到資源節約的目的。當然,為了確保嵌入式軟件構件開發過程的可靠性,需要先對開發技術加以評估,確保其綜合性能,突出系統的可移植性、高可靠性、高效、高配置性等諸多優勢,除去冗余部分,及時辨別錯誤,提高系統的綜合效率。
嵌入式軟件操作便捷、功能強大,實現了即插即用,優化了操作工序,為用戶帶來了更大的便捷,同時,還可以結合用戶的個性化需求,提供不同的服務,在具體應用過程中,可提供具有契約性的接口,便于信息交流。對于相同構件而言,可結合具體情況,設置多個接口,所有接口都需要滿足有關規定的要求,確保其科學運行。本質而言,構件的組裝主要是利用連接件、接口等,在多個構件間構建起獨特的聯系,實現對構件的控制,確保充分發揮其技術優勢,服務用戶生活和工作。在嵌入式軟件運營時需要加強檢修,及時對存在的問題加以處理,采取科學的防范措施,確保軟件構建性能。
從已有嵌入式軟件中將可用部分所形成構件提取出來,是獲取構件的重要方式,也是嵌入式軟件構件技術的重要組成部分。結合嵌入式軟件特點,在構件提取過程中,如果采用正向工程,可能會引發構件細節不完善等問題,但如果采用逆向工程,可能會無從下手。因此,最好將正向、逆向工程有機結合進行構件提取。嵌入式軟件構建提取主要包括系統的細化,模型的構建,分層完成,性能測量等幾個環節。其中,系統的細化、模型的構建屬于正向工程,分層完成則為逆向工程。
(1)系統的細化。系統細化方法包括兩種,一種是知識匹配法,另一種是結構分析法。其中,前者主要是通過分析軟件語義元素,將系統程序中語義相同或相似實體加以關聯,作為備選構件。該方法是建立在數據挖掘技術、專家系統等的基礎上。后者包括橫、縱向分化兩種。橫向分化主要是通過找到系統業務構件,明確其專用性及對應領域。縱向分化是通過找到系統通用構件加以重用。系統橫向包括項目管理、放樣、建站、偏心測量、坐標計算等模塊,這些模塊通過提取形成相應的構件,并在該領域應用。
(2)模型構建與分層完成。嵌入式軟件開發與硬件環境密不可分,因此,可以采用全站儀軟件系統,如μC/OS-II嵌入式系統。在模型構建過程中,需要對硬件、系統抽象加以思考,以便滿足構件通用性、重用性等要求。在模型構建時,還需要考慮所開發軟件的可剪裁性。嵌入式軟件構件主要包括3層結構,第一層是接口層,負責為構件提供相應的接口。第二層是調用層,明確構件所需接口。第三層為實現層,對構建實現途徑加以描述。結合嵌入式軟件的需求,在模型構建時需要設置配置層,確保所提取構件具有相應的可剪裁性特點。調用層包括硬件和系統抽象層兩層,前者負責實現各硬件平臺的抽象,后者負責對相應系統進行抽象。
(3)性能測量。對于嵌入式軟件構件而言,其性能需要從如下方面進行測量:一是重用性,這是構件最關鍵的特點。例如,對于圖形用戶接口(Graphical User Interface,GUI)構件而言,必須考慮到顯示、輸入等多種技術,才能有效移植。二是可靠性,系統可靠性取決于各構件的可靠性。因此,必須確保系統的容錯性,從整體方面考慮錯誤的截獲、處理、報告等多個方面。三是效率性,主要包括空間、時間效率。要求系統開發時必須考慮到算法時間的復雜性。由于系統存儲空間有限,還需要對其空間復雜度進行衡量。四是配置性,要求嵌入式軟件構件應通過配置將冗余部分去除,便于開發者結合自身需求加以配置。
在嵌入式構件組裝中,系統結構設計模型發揮著關鍵的作用,成為指導構件組裝的藍圖,嵌入式構件組裝需要對構件本質屬性進行定義,并對接口結構、構建及應用框架加以規定,明確構件間的交互機制,如此方可實現組裝。本文以軟件體系作為指導,結合CBSD法進行構件組裝,并對應用系統進行開發。該環境不同于普通開發環境,需要提供全面的從高層設計到最終實現的系統化方案。
由于構件組裝是借助于現有構件,形成新的系統。因此,也可以通過分層細化完成。將復合構件通過層層分解,形成樹型結構,確保構件外部功能分別映射到成員構件對應功能方面,這樣就實現了復合構件間信息的層層消解,最終實現原子構件間的有效連接。在接口處,將原子構件連接映射為另一構件在實體中的連接,無需對構件對應實體進行改動,即可生成帶有實體的多對象原子構件。
嵌入式軟件系統開發語言多采用的是C/C++語言,采用其對構件組裝過程加以描述,并就軟件實時性、資源有限性提出解決方案。若無嵌入式構件庫,可以通過采用C/C++語言所實現的部分構件進行實驗,在組裝時可采用編程語言加以描述。C/C++語言給予系統程序極大的硬件控制能力,能夠使所有處理器生成高效、緊湊代碼。在構件組裝時,主要涉及構件接口與環境接口的匹配,可以采用復合構件制作法,原子構件進行對外交互,并負責與其他協作構件構建起相應的關系。在構件組裝時,會生成新的C++類,各構件所對應控制對象是相應的協作對象,也是新類中的嵌入對象。嵌入式軟件系統構件組裝可以采用C語言進行描述,現有構件Componentl 2,其對外所提供的接口聲明,在頭文件中,涉及結構體的定義、函數名、所允許的外部引用變量等等,當然,對于所允許的外部引用變量而言,需要在頭文件中進行聲明,且前面需要增加extern等關鍵字。
綜上所述,近些年來,嵌入式產品市場前景廣闊,該領域的競爭也越來越激烈。隨著應用的逐步增長,嵌入式軟件開發也越來越受關注。與此同時,市場對于嵌入式軟件的規模、復雜性、可靠性、開發周期等都提出了更高的要求,因此,開發人員必須注重采用先進的構件提取、組裝技術,最大化地降低開發成本,減少開發周期,才能更好地順應市場需求,拓展市場份額。
[1]曹敬宇,柴瑋巖,王博,等.嵌入式分布計算環境下高效軟件構件化框架研究[J].兵工學報,2013(4):315-317.
[2]黃志球.嵌入式機載軟件安全性分析標準、方法及工具研究綜述[J].軟件學報,2014(2):200-205.
[3]部平吉.計算機嵌入式軟件框架下的構件提取及組裝思路構建[J].電子制作,2015(3):355-358.
[4]李越.計算機嵌入式軟件構件提取與組裝技術[J].中國新通信,2015(19):55.
[5]熊光澤,詹瑾瑜.嵌入式系統軟/硬件協同設計技術綜述[J].計算機應用,2006(4):757-760,764.
[6]曹敬瑜.一種基于嵌入式軟件構件管理方法[J].電腦開發與應用,2012(10):55-57,60.
Discussion on the extraction and assembly of computer embedded software component
Zhang Nan
(Computer Science and Technology College of Xi'an University of Science and Technology, Xi'an 710054, China)
With the gradual improvement of the performance of computer hardware, the requirements of computers' embedded software scale and complexity are higher and higher.Therefore, it is necessary to adopt effective development method of component software. Adopting the method of component extraction and assembly to design the software system is able to improve the reliability of the software system to meet the needs of computer hardware. This paper focuses on the discussion of extraction and assembly technology of embedded software component.
computer; embedded software; component; extraction; assembly
張楠(1987— ),女,陜西西安,助理工程師;研究方向:計算機嵌入式。