• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      解決協(xié)同開發(fā)和需求變化的插件結(jié)構(gòu)方法

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

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

      (機(jī)電動態(tài)控制重點(diǎn)實(shí)驗(yàn)室,陜西 西安 710065)

      0 引言

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

      1 模塊結(jié)構(gòu)與插件結(jié)構(gòu)

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

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

      圖1 模塊結(jié)構(gòu)模型與插件結(jié)構(gòu)模型Fig.1 Module framewor k model and plug-in framewor k model

      在系統(tǒng)開發(fā)中應(yīng)用插件結(jié)構(gòu)方法,具體的實(shí)現(xiàn) 步驟如下:

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

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

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

      4)向插件開發(fā)者提供主程序(執(zhí)行代碼),公布擴(kuò)展接口和插件要實(shí)現(xiàn)的接口。

      5)插件開發(fā)者按要求開發(fā)插件,實(shí)現(xiàn)插件接口,并提供主程序用插件。

      6)主程序開發(fā)者繼續(xù)完成內(nèi)核功能,并可隨時調(diào)用新增加擴(kuò)展接口和插件接口。

      7)實(shí)現(xiàn)步驟4)—6)的良性循環(huán),實(shí)現(xiàn)整個軟件系統(tǒng)不斷完善、更新。

      2 插件結(jié)構(gòu)在引信綜合分析平臺應(yīng)用

      具體在引信綜合分析平臺的結(jié)構(gòu)設(shè)計實(shí)現(xiàn)中,與步驟1)類似,首先依據(jù)用戶需求通過優(yōu)化程序結(jié)構(gòu)有針對性的將系統(tǒng)分為通用程序功能模塊和非通用程序功能模塊。這里的通用功能指的是系統(tǒng)模塊間共用的功能部分如信息顯示、主界面等。通用模塊功能通過主程序?qū)崿F(xiàn),而非通用功能就是指非所有用戶或者是按照用戶新的需求開發(fā)的擴(kuò)展的功能模塊,非通用功能模塊以插件的方式來實(shí)現(xiàn)。在引信綜合分析平臺系統(tǒng)中目標(biāo)特性仿真、目標(biāo)特性數(shù)據(jù)庫、測試多媒體資料庫設(shè)計為除主程序外相對獨(dú)立的插件模塊。對于步驟2)、3)、4)均是對主程序的各功能實(shí)現(xiàn),在實(shí)現(xiàn)時可統(tǒng)一進(jìn)行。步驟5)、6)是對非通用程序功能模塊即插件功能模塊功能的實(shí)現(xiàn),需要分別在各自的插件功能模塊中一一執(zhí)行,從而實(shí)現(xiàn)主程序與各插件功能模塊的互動和切換。

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

      圖2 引信綜合分析平臺系統(tǒng)結(jié)構(gòu)框圖Fig.2 The system frame of f use comprehensive analysis platfor m

      應(yīng)用插件機(jī)構(gòu)方法后的引信綜合分析平臺是一個集成了目標(biāo)激光特性仿真、目標(biāo)電磁特性仿真兩大計算分析模塊,融合目標(biāo)模型庫和目標(biāo)特性數(shù)據(jù)庫,結(jié)合測試錄像庫、測試照片庫一個集多功能、多類型、多內(nèi)容的資源信息分析系統(tǒng)。

      3 插件結(jié)構(gòu)方法應(yīng)用實(shí)例

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

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

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

      對比之前未應(yīng)用插件結(jié)構(gòu)方法的引信綜合分析平臺,現(xiàn)在的引信綜合分析平臺:1)解決了軟件開發(fā)過程中的協(xié)同開發(fā)問題。之前的引信綜合分析平臺要實(shí)現(xiàn)系統(tǒng)的協(xié)同開發(fā),開發(fā)人員必須采用統(tǒng)一的編程語言。各自編寫完成的程序模塊要不斷地逐級聯(lián)調(diào),方可進(jìn)行后續(xù)的系統(tǒng)集成。而一旦其中的一個模塊出現(xiàn)錯誤或修改,所有的聯(lián)調(diào)、集成工作就要重復(fù)進(jìn)行。而應(yīng)用插件結(jié)構(gòu)方法后,開發(fā)人員只需按照接口協(xié)議各自開發(fā)獨(dú)立的插件功能模塊,對于編程所采用的語言沒有統(tǒng)一要求。后期系統(tǒng)集成簡化為主程序?qū)Σ寮K的調(diào)用。而某個模塊的錯誤不會導(dǎo)致整個系統(tǒng)的失敗,修改、重新的編譯也僅僅局限在本模塊。2)解決了用戶需求變化時軟件系統(tǒng)無法及時響應(yīng)的問題。之前的引信綜合分析平臺要實(shí)現(xiàn)對系統(tǒng)的修改、功能擴(kuò)充,就必須對系統(tǒng)的所有程序代碼重新編譯、重新生成。而應(yīng)用插件結(jié)構(gòu)方法后,修改及功能的擴(kuò)充只是對現(xiàn)有對應(yīng)插件功能模塊的重新編譯、重新生成,對軟件系統(tǒng)及其他插件功能模塊均不產(chǎn)生影響。整個系統(tǒng)可以根據(jù)用戶變化的需求,相應(yīng)的通過插件模塊的功能完善和功能擴(kuò)充實(shí)現(xiàn)整個軟件系統(tǒng)不斷的完善、更新。

      4 結(jié)論

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

      [1]宋清昆,孫元娜,王學(xué)偉,趙陽.組態(tài)軟件實(shí)時數(shù)據(jù)庫系統(tǒng)的設(shè)計[J].自動化技術(shù)與應(yīng)用,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平臺下調(diào)用DLL實(shí)現(xiàn)PC/104數(shù)據(jù)采集[J].微計算機(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中編寫和調(diào)用DLL[J].仲愷農(nóng)業(yè)技術(shù)學(xué)院學(xué)報,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]陳一明.結(jié)構(gòu)化程序與程序結(jié)構(gòu)化[J].茂名學(xué)院學(xué)報,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]王浩.基于設(shè)計模式的程序結(jié)構(gòu)設(shè)計[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]劉瑤.插件技術(shù)初步研究[J].揚(yáng)州教育學(xué)院學(xué)報,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].探測與控制學(xué)報,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與樂高機(jī)器人通信
      電子制作(2019年22期)2020-01-14 03:16:34
      淺談數(shù)控銑削技術(shù)代碼程序的嵌套方式研究
      電控冰箱軟件模塊化設(shè)計
      日用電器(2019年12期)2019-02-26 01:53:06
      時光倒流 換回PotPlayer老圖標(biāo)
      基于ASP.NET標(biāo)準(zhǔn)的采購管理系統(tǒng)研究
      輸電線路附著物測算系統(tǒng)測算功能模塊的研究
      M市石油裝備公服平臺網(wǎng)站主要功能模塊設(shè)計與實(shí)現(xiàn)
      石油知識(2016年2期)2016-02-28 16:20:16
      MapWindowGIS插件機(jī)制及應(yīng)用
      功能模塊的設(shè)計與應(yīng)用研究
      基于Revit MEP的插件制作探討
      萨嘎县| 苏尼特右旗| 奉新县| 志丹县| 沙河市| 龙胜| 天门市| 介休市| 神木县| 青岛市| 黔东| 莱芜市| 外汇| 漳平市| 玉溪市| 漳州市| 双柏县| 鄂托克前旗| 五原县| 百色市| 额尔古纳市| 勃利县| 彭州市| 古浪县| 五台县| 慈溪市| 汝阳县| 习水县| 都兰县| 阿巴嘎旗| 邹平县| 通城县| 桐庐县| 砀山县| 肥西县| 永丰县| 乐平市| 龙口市| 高邮市| 吉林省| 大名县|