摘要:組件化編程具有開發效率高、系統可靠、易于升級維護的優點,適合大型、需求不確定型軟件系統的開發。利用組件化編程思想對載人潛水器操縱模擬器訓練評價系統軟件進行設計,設計中將系統界面與業務邏輯實現進行了分離,將數據邏輯從實現操作流程的代碼中分離,封裝成獨立的業務組件,大幅提高了程序開發效率和軟件質量。在Delphi 平臺上實現了載人潛水器操縱模擬器訓練評價軟件系統。
關鍵詞:組件化編程;載人潛水器操縱模擬器;系統設計;組件設計
中圖分類號:TP371文獻標識碼:A文章編號:1009-3044(2008)24-1341-03
Developing the Training and Evaluating Software System of the Human-occupied Vehicle Simulator Based on Component
LIU Pei-lin
(Wuxi Institute of Technology, Wuxi 214073, China)
Abstract: Component-based programming is used in the design of large software system which demand is usually uncertain. And high efficiency, reliability and easily upgrading and maintaining all are the advantages of programming in this way. The training and controlling system of human-occupied Vehicle (HOV) simulator is designed in this way in this paper. In this system interface and business logic are separately implemented and data operation are packaged into independent components. So the efficiency and quality of the development of software are substantially improved. The system is completed in Delphi Platform.
Key words: component-based programming;HOV simulator;system design;component design
1 引言
組件化程序設計是一種較好的程序設計模式,在微軟VS.net 和SUN公司的Java開發平臺上使用較廣,Delphi提供了很多第三方組件,但完全采用基于組件化思想的、在Delphi平臺上開發的軟件系統卻并不多見,本文利用 Delphi 的OOP 特性和 VCL 控件,將組件化開發的工程化方法很好地應用到了載人潛水器操縱模擬器(HOV-SIMU——Human Occupied Vehicle-Simulator)訓練評價軟件系統的項目開發中,取得了良好的開發效果。
2 基于組件的軟件系統設計
軟件設計大致經歷了基于過程的設計、面向對象的設計和基于組件的設計三個過程。隨著軟件在商業、工業、管理和研究領域日益膨脹的應用,軟件的可用性、可靠性、易于安裝和集成性正成為軟件最為重要的特征,實現這一目標的關鍵是軟件的可重用性,基于組件的軟件編程(CBD——Component-Based Programming)能夠滿足這一要求[1]。
組件也稱為構件,是實現一定功能的軟件實體,可分為源碼組件(C++ 和 Java 等)和二進制組件(微軟 COM 和 OMG ORB )。可以將組件看作是一個綜合體的一個單元,這個單元只有約定的指定接口和對外部環境的依賴,可以被獨立地配置,受第三方組合的制約。
具有獨立于應用的接口是組件最重要的特征,組件的獨立有兩方面的含義:
1)組件被集成綜合到一個應用軟件與組件的開發生命周期相互獨立,同時在應用軟件更新一個組件時,相關組件不需要重新編譯或者連接加載就可以使用;
2)組件的執行只有通過它的接口才可見。由以上關于組件獨立的含義可見基于組件的軟件設計將系統作為組件的集成體,組件被看作可重用的實體,可以通過定制和更換組件來實現系統的維護和更新。它強調真正的軟件可重用性和高度的互操作性,側重于組件的產生和裝配,這兩方面一起構成了組件化程序設計的核心。能夠真正實現軟件的并行開發和方便地維護升級。
2.1 基于組件設計的優點
2.1.1 提高了系統開發效率
1)組件是一個具有指定接口的獨立體,每個組件可以單獨開發,單獨編譯,甚至可以單獨調試和測試。當所有的組件開發完成后才把它們組合在一起,所以組件的開發過程中組件之間具有相對的獨立性,可并行開發。基于組件的軟件系統是一個組件的集合體,系統分解、細化后可并行開發,極大地縮短了程序開發周期,提高了程序開發效率。
2)組件具有較強的可重用性,只要符合接口規范,就可以將組件重用到其他應用。
2.1.2 提高了產品質量
1)基于組件開發的系統具有高內聚性、低耦合性,修改、擴展方便,提高了軟件質量。
首先,組件是一個具有特定功能的部件,組件之間通過接口進行聯系,組件的實現獨立,所以組件具有高內聚性,組件之間具有低耦合性。
其次,基于組件開發的應用系統是組件的一個集合體,程序模塊之間以接口進行交流,當需求發生部分變更時只要組件的接口不變,就不需修改與組件相關的其他組件,只需修改受影響的組件即可;同樣,程序新增功能也只需添加新的組件,除了與新加組件相關的核心組件外,不需修改其他組件。所以基于組件的應用系統修改、擴展只需涉及部分模塊,而不必對程序整體進行改動。
2)基于組件的軟件系統進行了充分的測試,系統更加可靠。
組件可以進行獨立的測試:界面實現人員可以按照事先編好的“操作手冊”來測試軟件的操作流程;開發業務流程的程序員可以進行單獨的功能測試,保證對外提供功能完好的組件;系統測試人員可以對界面實現人員和業務實現人員的代碼進行集成測試,可以做到每日構造(Daily Build),有利于進行軟件功能的持續改進。經過這樣的獨立測試和集成測試,充分保證了系統的可靠性。
2.1.3 便于系統維護升級
為了照顧用戶使用方便,系統升級一般會盡量保持升級前后界面的一致性,只升級系統功能。基于組件的應用系統可以將界面和業務實現進行分離(這也是基于組件開發的一般慣例),能夠很好地兼顧界面的一致性和功能的改進。
1)對于系統新增功能,只需增加新的組件,而不必修改原有系統結構和功能,升級非常方便。
2)各組件的軟件功能是相對獨立的, 在維護和升級一個組件時,不必變動整個應用。
2.2 基于組件的軟件系統設計
系統設計是把需求轉化為軟件系統的最重要的環節,系統設計的優劣在根本上決定了軟件系統的質量,設計內容包括體系結構設計、模塊設計、數據結構與算法設計,以及用戶界面設計等。通過以上基于組件設計的優點分析可見基于組件化思想的軟件系統是一個組件的集合體,其設計都是圍繞組件展開的,設計內容主要圍繞組件定義、組件接口、以及組件之間的關系展開。適合大型、具有不確定性需求、功能模塊能夠相對獨立劃分的軟件系統設計。
3 基于組件的載人潛水器操縱模擬器訓練評價軟件系統設計
3.1 系統分析
1)載人潛水器操縱模擬器訓練評價軟件系統由九大功能模塊組成,各模塊之間既相互關聯,又相對功能獨立,如圖1 所示。可以采用基于組件的軟件系統設計。

2)HOV-SIMU是一個與載人潛水器(HOV)同步研制的系統,其用戶群包括最終用戶、交付使用前的各類專家、設計人員等,用戶群比較復雜;HOV研制在國內尚屬首次,沒有資料可以借鑒,其操縱模擬器是仿真 HOV 的工作環境,隨著研究的深入,對載人潛水器的認識會深化,仿真內容也會深化。具備需求不確定、需要不斷更新等基于組件化思想設計系統的一些典型特征,適合用組件化思想進行設計。
3.2 系統設計
依據載人潛水器操縱模擬器訓練評價軟件系統結構,按照專家系統和平臺化的思想對載人潛水器操縱模擬器訓練評價軟件系統進行了構建[2],構建中將系統組件分為對應的九類,實現中實體與組件的對應關系如圖2所示。組件之間有層次結構的關系,也有服務器/客戶機模式的關系。
3.3 組件設計與實現
1)將系統組件分成三類
常見的組件有通訊組件、業務組件和數據連接組件。每個組件定義好一組接口,供界面實現人員和其他組件設計人員使用。組件只能通過外部接口(函數)來使用。HOV-SIM 訓練評價軟件系統按照用途將組件分成了上述三類。訓練評價系統用于訓練、評價潛水器駕駛員的操作技能,但其不能獨立工作,必須借助于其他分系統的配合才能工作,所以系統中包含了用于通訊的服務器和客戶端組件。專家知識需要數據庫存儲、處理,訓練結果需要保存,所以操作數據庫是系統中一個非常重要、需反復重用的內容,將其作為系統核心組件,即圖2中的公共數據源組件。設備操作、故障假定等與特定的訓練內容相關,將其設計成業務邏輯組件。
2)組件設計強調高內聚性、低耦合性組件通過接口對外提供特定的業務功能,組件之間的無數據耦合,對每一類數據的操作都封裝成彼此獨立的業務組件。
3)組件實現
組件實現按照輸入(I)-〉處理(P)-〉輸出(O)的思想進行內部設計和實現,可以驗證輸入的有效性,即邊界條件。
其規則為:
if 輸入有效 then
輸出正確結果
else
輸出錯誤
這樣實現保證了組件可以獨立進行測試。

基于以上思想設計的HOV-SIM 訓練評價軟件系統訓練結果記錄組件(Log)如表1所示,實現了訓練過程中對學員的操作記錄和相關參數的記錄。該組件的Delphi類名為TLogComp,在軟件運行目錄下自動生成兩個文件,分別對應于該學員的本次訓練的操作記錄和參數記錄,其文件名命名規范分別為學員_訓練開始的日期和時間_2.txt和學員_訓練開始的日期和時間_1.txt。
4 結束語
本文利用組件化思想將HOV-SIM 訓練評價軟件系統劃分為九個子模塊,再進一步對應開發為九類組件,進而將數據邏輯從實現操作流程的代碼中分離了出來,封裝成了彼此獨立的業務組件,大幅提高了開發效率和軟件質量;業務組件之間具有松耦合的關系,可以單獨進行開發和測試,使得小組規模上的并行開發成為可能;最后將系統界面打包成 exe 文件,業務組件生成為 dll 文件,遵循了大型管理信息系統(MIS)、網絡通訊系統、CAE 軟件等的開發規范,便于系統維護、升級。
參考文獻:
[1] Crnkovic I. Component-based software engineering—new challenges in software development[J] Software Focus, 2001, (2):127-133.
[2] 王麗榮, 萬建成, 孫延濤. 基于組件和設計模式的倉庫系統框架[J]. 小型微型計算機系統, 2003,24(6):1058-1063.
[3] 朱慶生, 楊曉紅. 組件化程序設計方法及組件標準[J]. 重慶大學學報(自然科學版), 2001,24(6):120-123.
[4] 李維. Inside VCL(深入核心——VCL架構剖析)[D]. 北京: 電子工業出版社,2003.