?

解決協同開發和需求變化的插件結構方法

2011-08-27 07:58焦景欣
探測與控制學報 2011年6期
關鍵詞:主程序功能模塊插件

焦景欣,李 偉,王 偉,崔 冬

(機電動態控制重點實驗室,陜西 西安 710065)

0 引言

在進行軟件系統開發工作中普遍存在兩個問題:1)同一軟件常常需要若干開發者協同進行開發。由于每個軟件開發者的編程習慣和使用的編程語言很難統一,導致后期進行軟件集成需要很大的工作量;2)開發完成后的軟件對于用戶變化的需求無法及時響應。相信大家都有這種經歷,已做的軟件系統雖然滿足了當前用戶的需要,但當用戶隨著對系統使用的深入,新的需求可能會產生,這時就需要在此基礎上進行程序修改、增加功能,但是軟件的修改甚至僅僅是很小的界面修改,就得重新編譯所有程序代碼,造成很大的效率浪費。而且在原有基礎上的代碼修改、添加必然會改變原有系統結構并增加冗余代碼。對于問題1)目前是采用動態鏈接庫文件[1-3]方法,它是將獨立的程序模塊創建為較小的DLL文件,通過不同開發人員并行開發不同的DLL模塊來提高程序開發效率。在運行時,只要當EXE程序需要調用這些DLL模塊,系統就會將它們裝載到內存空間中運行。這種方法有助于解決程序協同開發的問題,缺點是開發的動態鏈接庫文件不能脫離主程序獨立執行。對于問題2)目前是充分考慮用戶需求,通過優化程序結構[4]或采用基于設計模式的程序結構設計[5]方法來解決。但這些方法均是基于用戶需求固定條件下的程序優化,對用戶需求變化時的情況沒有考慮。針對上述方法的不足,本文引入插件結構方法。

1 模塊結構與插件結構

在傳統的軟件結構模型即模塊結構設計中,系統功能是通過各個功能模塊之間的切換調用來實現的,模塊與模塊之間普遍存在著較強的耦合關系,并且各個模塊間的關系在編譯期就已經固定,從而使得后期對系統進行修改、刪減都會破壞原有的系統結構和程序代碼。對于用戶產生的新的需求,軟件程序無法及時響應。另一方面隨著軟件系統結構越來越復雜、功能越來越多,同一軟件時常需要多人協同開發,但是由于編程習慣和程序開發人員所使用的編程語言不統一導致后期進行系統集成時工作十分繁復。為了提高軟件開發高效率,開發出高質量的軟件產品,人們一直在尋求更好的軟件結構和開發方法。設想如果程序也像搭積木似的,將增加的功能模塊直接插在原有結構上就好了。插件式體系結構方法就是在此設想基礎上最新發展的一種非常靈活的結構方法。這種結構方法的應用最初見于Adobe公司開發的Photoshop軟件[6],程序中有“濾鏡”功能組,在該功能組中可對圖像進行多種效果的處理。開發人員開發出新的濾鏡功能,無須發布一個新版本Photoshop或重新編譯Photoshop軟件,這一切的解決方案就是應用插件結構方法,通過不斷優化、升級“濾鏡”功能組來實現軟件版本的不斷更新。目前國外公司開發的商用軟件如 Wina mp、Netscape等在應對軟件版本升級頻繁時經常應用這一結構方法。

基于插件結構的方法原理是通過在進行軟件結構設計時將系統有針對性的劃分為主程序和插件兩部分。主程序只負責處理與插件的通信及調用插件的功能,而與實現具體功能相關的算法程序等則分散由若干插件來完成。插件是具體功能的執行者,插件之間沒有什么聯系和干擾,從而降低插件模塊之間的耦合度,減少插件彼此之間的依賴。采用這種方法在完成軟件的設計后,插件管理程序和各個插件模塊可以完全獨立開發,從而使軟件開發能夠協同進行提高軟件開發效率。在開發和調試過程中甚至在開發完成后,當部分插件模塊發生問題的時候,由于各個插件模塊之間相對獨立,并不會影響到其他模塊,有利于軟件測試工作的開展和進行,便于在測試和調試的過程中發現問題和解決問題。而且對部分插件的修改、優化不會影響到其他插件,避免了因為改正錯誤而引出新的問題的情況。對于新的功能需求,只需要開發對應的插件模塊即可,從而能有效解決軟件開發過程中的需求變化問題,同時給后期進行軟件升級和功能擴展提供了便利條件。圖1為傳統模塊結構模型和應用插件結構方法的插件結構模型。

圖1 模塊結構模型與插件結構模型Fig.1 Module framewor k model and plug-in framewor k model

在系統開發中應用插件結構方法,具體的實現 步驟如下:

1)依據用戶需求確定系統的通用程序功能和插件所要完成的非通用程序系列化功能或擴展功能。

2)定義主程序擴展接口和插件接口。

3)完成主程序設計,主要是對插件處理功能。

4)向插件開發者提供主程序(執行代碼),公布擴展接口和插件要實現的接口。

5)插件開發者按要求開發插件,實現插件接口,并提供主程序用插件。

6)主程序開發者繼續完成內核功能,并可隨時調用新增加擴展接口和插件接口。

7)實現步驟4)—6)的良性循環,實現整個軟件系統不斷完善、更新。

2 插件結構在引信綜合分析平臺應用

具體在引信綜合分析平臺的結構設計實現中,與步驟1)類似,首先依據用戶需求通過優化程序結構有針對性的將系統分為通用程序功能模塊和非通用程序功能模塊。這里的通用功能指的是系統模塊間共用的功能部分如信息顯示、主界面等。通用模塊功能通過主程序實現,而非通用功能就是指非所有用戶或者是按照用戶新的需求開發的擴展的功能模塊,非通用功能模塊以插件的方式來實現。在引信綜合分析平臺系統中目標特性仿真、目標特性數據庫、測試多媒體資料庫設計為除主程序外相對獨立的插件模塊。對于步驟2)、3)、4)均是對主程序的各功能實現,在實現時可統一進行。步驟5)、6)是對非通用程序功能模塊即插件功能模塊功能的實現,需要分別在各自的插件功能模塊中一一執行,從而實現主程序與各插件功能模塊的互動和切換。

圖2為應用插件結構方法后的引信綜合分析平臺系統結構。在引信綜合分析平臺系統中目標特性仿真、目標特性數據庫、測試多媒體資料庫插件模塊,各自實現計算仿真分析、數據信息管理、測試多媒體信息存儲、查閱功能,其中目標特性仿真插件模塊又分為目標電磁特性仿真、目標激光特性仿真子模塊,目標特性數據庫插件模塊分為目標特性模型庫、目標特性數據庫子模塊,測試多媒體資料庫插件模塊分為測試照片庫和測試錄像庫子模塊。各個插件模塊能夠獨立運行,也可以進行插件間的自由組合。如用戶要進行目標特性的仿真計算,只需將目標特性仿真插件模塊導入主程序即可進行仿真計算操作,而目標特性數據庫插件模塊、測試多媒體信息庫插件模塊未經調用就不在主程序中顯示,若有需要,再行導入即可,從而提高軟件的執行效率。目標特性仿真插件模塊、目標特性數據庫插件模塊、測試多媒體資料庫插件模塊彼此間又可自由組合構成新的功能操作平臺滿足不同用戶的功能需求。通過步驟7)實現各插件功能的完善和功能擴展。從而實現系統對用戶需求的響應。

圖2 引信綜合分析平臺系統結構框圖Fig.2 The system frame of f use comprehensive analysis platfor m

應用插件機構方法后的引信綜合分析平臺是一個集成了目標激光特性仿真、目標電磁特性仿真兩大計算分析模塊,融合目標模型庫和目標特性數據庫,結合測試錄像庫、測試照片庫一個集多功能、多類型、多內容的資源信息分析系統。

3 插件結構方法應用實例

在未應用插件結構方法前,引信綜合分析平臺是采用傳統模塊結構編制的集成目標電磁特性和目標激光特性兩大仿真計算模塊的仿真計算軟件。后隨著用戶對軟件的深入使用,提出了進一步進行仿真算法優化、加入目標特性數據庫和目標模型庫的需求,由此需要對引信綜合分析平臺的軟件進行必要的修改和功能擴充。但在采用模塊結構編制的軟件系統中實現程序的修改、功能擴充就得重新編譯程序所有代碼并再次重新進行軟件生成,需加入的目標特性數據庫和目標模型庫,雖是前期已開發的程序軟件,但介于當時的用戶需求所采用的編程語言與現開發綜合分析平臺的編程語言完全不同,導致綜合分析平臺無法直接調用使用。而要正常的進行程序開發,所有的系統結構、程序代碼均包括目標特性數據庫和目標模型庫都得重新設計、重新編程,需要的時間和工作量巨大?,F有條件下采用動態鏈接庫文件方法可以實現軟件的協同開發但無法將現有的目標特性數據庫和目標模型庫做成DLL文件進行調用,若通過優化程序結構或應用基于設計模式的程序結構設計方法只是基于現有需求固定條件下的程序優化,對于軟件開發的效率提升沒有實際作用,而一旦產生新的需求又得重復進行整個軟件開發的工作。

通過在引信綜合分析平臺應用插件結構方法,將目標電磁特性和目標激光特性仿真計算模塊、目標特性數據庫、目標模型庫、測試多媒體信息庫等所有的功能模塊均以插件形式實現,主程序只負責處理與插件的通信及調用插件的功能[7]。主程序和各個插件功能模塊獨立開發,從而使軟件開發能夠協同進行。其中對于原有的目標特性數據庫和目標模型庫軟件無需重新開發,只需依據它與主程序的接口規則封裝成插件模塊后,綜合分析平臺主程序即可調用使用。既滿足了用戶的新的功能擴展需求,又縮短了軟件開發的周期。當用戶需求產生變化時,只需對對應的插件功能模塊進行修改、優化,無需對整個系統的結構框架和程序代碼進行修改和重新編譯。若要實現功能的擴展需求,只需按照接口協議開發新的插件功能模塊,再通過主程序再行導入調用即可。圖3為應用插件結構方法后引信綜合分析平臺主界面。應用插件結構方法后引信綜合分析平臺的系統功能的完善及系統的升級,均是通過各自獨立的插件功能模塊的更新、完善實現。由此協同開發和需求變化帶來的問題都得到了順利的解決。

圖3 引信綜合分析平臺主界面Fig.3 The main interface of f use comprehensive analysis platfor m

對比之前未應用插件結構方法的引信綜合分析平臺,現在的引信綜合分析平臺:1)解決了軟件開發過程中的協同開發問題。之前的引信綜合分析平臺要實現系統的協同開發,開發人員必須采用統一的編程語言。各自編寫完成的程序模塊要不斷地逐級聯調,方可進行后續的系統集成。而一旦其中的一個模塊出現錯誤或修改,所有的聯調、集成工作就要重復進行。而應用插件結構方法后,開發人員只需按照接口協議各自開發獨立的插件功能模塊,對于編程所采用的語言沒有統一要求。后期系統集成簡化為主程序對插件模塊的調用。而某個模塊的錯誤不會導致整個系統的失敗,修改、重新的編譯也僅僅局限在本模塊。2)解決了用戶需求變化時軟件系統無法及時響應的問題。之前的引信綜合分析平臺要實現對系統的修改、功能擴充,就必須對系統的所有程序代碼重新編譯、重新生成。而應用插件結構方法后,修改及功能的擴充只是對現有對應插件功能模塊的重新編譯、重新生成,對軟件系統及其他插件功能模塊均不產生影響。整個系統可以根據用戶變化的需求,相應的通過插件模塊的功能完善和功能擴充實現整個軟件系統不斷的完善、更新。

4 結論

本文引入了一種基于插件體系結構的方法。該方法在不改變軟件原有結構的前提下,通過修改、升級插件來解決需求變化時軟件的功能完善和程序編制時的協同開發。通過在引信綜合分析平臺系統開發中應用此結構方法,證明這是一種能有效解決軟件開發過程中協同開發和需求變化的方法。

[1]宋清昆,孫元娜,王學偉,趙陽.組態軟件實時數據庫系統的設計[J].自動化技術與應用,2008,27(1):55-57.SONG Qingkun,SUN Yuanna,WANG Xuewei,ZHAO Yang.RTDBS of a configuration soft ware[J].Techniques of Auto mation & Applications,2008,27(1):55-57.

[2]袁魏華,韓裕生,張偉偉,等.Lab VIEW平臺下調用DLL實現PC/104數據采集[J].微計算機信息,2008,24(4-2):57-61.YUAN Weihua,HAN Yusheng,ZHANG Weiwei,et al.Realization of data acquisition based on calling DLL in lab VIEW[J].Micro Computer Infor mation,2008,24(4-2):57-61.

[3]黃明志.在C++ Builder中編寫和調用DLL[J].仲愷農業技術學院學報,2005,18(3):29-33.HUANG Mingzhi.Creating and linking DLL in C++Builder[J].Jour nal of Zhongkai University of Agriculture and Technology,2005,18(3):29-33.

[4]陳一明.結構化程序與程序結構化[J].茂名學院學報,2008,18(1):42-44.CHENG Yi ming.Structured programs and program str uct uralization[J].Jour nal of Mao ming University,2008,18(1):42-44.

[5]王浩.基于設計模式的程序結構設計[J].中國科技信息,2004,24:29-31.WANG Hao.Program framework plan based on design mode[J].China Science And Technology Infor mation,2004,24:29-31.

[6]劉瑤.插件技術初步研究[J].揚州教育學院學報,2003,21(3):35-37.LIU Yao.Research of delphi plugin[J].Journal of Yangzhou College of Education,2003,21(3);35-37.

[7]焦景欣,代亮,胡含凱,等.采用雙緩存的視景仿真圖像顯示效果改善方法[J].探測與控制學報,2010,32(5):92-95.JIAO Jingxin,Dai Liang,HU Hangkai,et al.To i mprove the display of visual scene si mulation by using double buffer[J].Journal of Detection & Control,2010,32(5):92-95.

猜你喜歡
主程序功能模塊插件
自動升級程序在船舶監測系統中的應用
自編插件完善App Inventor與樂高機器人通信
淺談數控銑削技術代碼程序的嵌套方式研究
基于OSGi的軍用指揮軟件插件機制研究
電控冰箱軟件模塊化設計
時光倒流 換回PotPlayer老圖標
基于jQUerY的自定義插件開發
商業模式是新媒體的核心
基于ASP.NET標準的采購管理系統研究
高校二手交易網絡平臺功能及技術框架分析與設計
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合