《電子技術應用》
您所在的位置:首頁 > 嵌入式技术 > 设计应用 > 基于复用的多级资源库ARMS平台的应用
基于复用的多级资源库ARMS平台的应用
来源:微型机与应用2011年第10期
任玉双1, 程建平2, 高隆林2, 韩 锋2
(1. 山东师范大学 信息科学与工程学院,山东 济南 250014; 2. 中创软件工程股份有限公司
摘要: 运用了构建ARMS(Asset Repository Management System)平台的重要基础设施——多级资源库,为企业级资源的积累、复用、锤炼提供了基本的工具保障。介绍了软件复用技术,提出了一种能快速进行软件开发的新型解决方案。详细分析了多级资源库的体系结构、ARMS系统平台的功能及相关技术,从资源开发、版本发布、反馈处理等方面研究了ARMS系统平台的应用。实践表明,多级资源库ARMS平台的研究与开发,有效地解决了软件资产的复用和安全管理问题,提高软件复用率,加快软件开发速度。给出了实践项目中ARMS平台软件开发的流程图。
Abstract:
Key words :

摘  要: 運用了構建ARMS(Asset Repository Management System)平臺的重要基礎設施——多級資源庫,為企業(yè)級資源的積累、復用、錘煉提供了基本的工具保障。介紹了軟件復用技術,提出了一種能快速進行軟件開發(fā)的新型解決方案。詳細分析了多級資源庫的體系結構、ARMS系統(tǒng)平臺的功能及相關技術,從資源開發(fā)、版本發(fā)布、反饋處理等方面研究了ARMS系統(tǒng)平臺的應用。實踐表明,多級資源庫ARMS平臺的研究與開發(fā),有效地解決了軟件資產的復用和安全管理問題,提高軟件復用率,加快軟件開發(fā)速度。給出了實踐項目中ARMS平臺軟件開發(fā)的流程圖。
關鍵詞: ARMS平臺;多級資源庫;復用;軟件復用技術;資源開發(fā)

    ARMS(Asset Repository Management System)是一個資源庫管理系統(tǒng)平臺,通過這個平臺對資源庫中的資源進行有效地管理和使用,提高了企業(yè)開發(fā)人員的工作效率,改善了用戶的使用效率。ARMS這一平臺提供了軟件開發(fā)的綜合解決方案,能夠提高開發(fā)效率,簡化繁瑣流程,保證產品的穩(wěn)定性、可用性。新的軟件開發(fā)過程模型的各個階段都是圍繞著可復用軟件資源實施的,因此合理而有效地使用資源庫是軟件資產復用成功的關鍵。
    軟件復用技術是軟件工程領域的一個研究熱點。復用概念的第一次引入是在1968年NATO軟件工程會議上,Mcllroy的論文“大量生產的軟件構件”中[1]。隨著復用實踐的深入,將會積累大量自主開發(fā)的資源、購買的商業(yè)資源和其他組織開發(fā)的資源,這些可復用資源構成了龐大的企業(yè)資產,而資源庫作為分類和管理軟件資產的基礎設施就變得十分重要了。在資源庫的支持下,直接使用已有的合格的資源開發(fā)應用系統(tǒng),避免了對資源的重復開發(fā),從而提高軟件開發(fā)效率和軟件質量。軟件資源庫作為管理軟件資源及促進軟件復用的核心機制,將基于復用的開發(fā)和面向復用的開發(fā)過程與工具集成在一個統(tǒng)一的框架中,當前軟件界對可復用資源庫及其相關問題進行了深入研究,并取得不少成果[2]。
    本文為了有效地解決軟件資產的復用和安全管理問題,采用多級資源庫,避免了獨立庫綜合性差的缺陷,對于深層次的科學研究,它所提供的不是單一的信息,而是一個系統(tǒng)的立體資源、信息群。
1 軟件復用
1.1 軟件復用技術

    軟件復用是指利用現(xiàn)有的軟件資源來構造新的軟件系統(tǒng)。該軟件成分可能是已有的資源,也可能是專門開發(fā)設計的可復用的軟件資源。其中,可復用的現(xiàn)有軟件成分是軟件復用技術的核心。復用成分的獲取、管理和利用是構成軟件復用技術的三個基本要素[3]。
1.2 軟件復用的優(yōu)點[4]
    實踐證明,軟件復用可以有效提高軟件開發(fā)效率和軟件質量,是解決“軟件危機”的一條比較切實可行的途徑。軟件復用的優(yōu)點可歸納為以下六個方面:
    (1)提高軟件生產率:軟件復用最明顯的好處在于提高生產率,減少開發(fā)代價。生產率的提高不僅體現(xiàn)在代碼開發(fā)階段,同樣適用于分析、設計及測試等其他階段。
    (2)提高軟件質量:使用高度優(yōu)化、在實踐中經(jīng)受過檢驗的可復用構架、資源構造系統(tǒng),可以提高系統(tǒng)的性能和可靠性。
    (3)減少系統(tǒng)維護量:使用優(yōu)化、檢驗過的資源,避免了很多可能發(fā)生的錯誤;而多個系統(tǒng)間資源的重復使用,同時減少了系統(tǒng)維護量。
    (4)提高互操作性:軟件復用的更為專業(yè)化的好處在于提高了系統(tǒng)間的互操作性。相同的構架、接口可以有效地實現(xiàn)系統(tǒng)間的互操作。
    (5)支持快速原型:利用可復用資源庫可以快速有效地構造應用系統(tǒng)的原型,以獲得用戶對系統(tǒng)功能的反饋,縮短系統(tǒng)的開發(fā)周期。
    (6)減少培訓開銷:使用相同的構架、資源構造和實施不同的系統(tǒng),可以使開發(fā)和維護人員減少對不同技術所需要的培訓。
2 多級資源庫及ARMS系統(tǒng)平臺
2.1 多級資源庫的體系結構 
   
    本文采用多級資源庫,為方便對資源庫中的資源進行管理和使用,必須采用合理的權限管理方案,即采用多級資源庫的三級權限管理模式:對資源設置檢索、使用(下載執(zhí)行碼和使用文檔)、獲取源碼三級權限。通過使用合理的權限管理模式,更好地解決了軟件資產復用的問題,保證了資源庫中軟件資產的安全管理。整個資源庫體系分為公司級資源庫和項目級資源庫,公司級資源庫滿足企業(yè)整體資源共享管理的需要,項目級資源庫滿足項目團隊共享資源的需要。多級資源庫體系的基于角色的用戶管理機制,使系統(tǒng)具有靈活的權限分配和安全的控制方式。對開源資源不控制訪問權限,公司級資源庫起到遠程代理功能。多級資源庫體系結構如圖1所示。

 

 

2.2 ARMS系統(tǒng)平臺的功能及相關技術
2.2.1 對資源存儲、檢索、升級、反饋的服務與管理

     資源庫為資源的存儲而開發(fā),為了更好地讓軟件開發(fā)者發(fā)現(xiàn)和使用資源,ARMS系統(tǒng)平臺提供了相應的資源分類組織、檢索、升級以及反饋等功能。同時由于資源庫系統(tǒng)的開放性,相應的權限管理和維護功能也是必不可少的[5]。
    (1)資源存儲:新的資源經(jīng)過測試審核合格后提交到資源庫中供用戶使用,資源庫中存儲的不僅僅是軟件實體本身,還應該包括軟件附帶的相應屬性取值和描述信息,資源的描述信息中包含有描述依賴關系和相關文檔等。ARMS系統(tǒng)平臺必須實現(xiàn)詳細記錄資源描述信息的存儲方案,對新添加資源的描述信息進行整理和規(guī)范化,以方便資源庫的存儲管理。
    (2)資源檢索:資源的檢索是ARMS系統(tǒng)平臺的核心功能,提供較好的基于分類的資源檢索能力,實現(xiàn)合適的檢索方案。采用用戶最常使用的檢索工具,盡量減輕用戶的操作負擔,并且能夠對檢索到的資源查看其相應的功能說明、描述信息及文檔等,縮短檢索時間,實現(xiàn)高效的查詢。當檢索資源時,首先檢索本地資源,即項目級資源,如果資源不存在則進行公司級檢索,最后檢索外部資源庫,達到資源歸類及共享使用的效果。
    (3)資源升級:通過持續(xù)集成服務來完成版本升級功能,采用Hudson作為持續(xù)集成工具。Hudson根據(jù)配置文件的內容,定時從版本控制庫中提取資源,一旦發(fā)現(xiàn)內容有變更,就調用持續(xù)構建文件執(zhí)行構建工作。然后進行相應的初始化、編譯、打包等工作,完成版本升級處理。
  (4)資源使用情況反饋:對資源進行存儲以后需要對其進行使用和評價,考慮到資源在實際應用中可能出現(xiàn)不適應性的問題,增加了資源使用的反饋機制,使用者可以對資源的應用情況提交相應的反饋意見,對資源的正確性、可靠性、實時性等進行評價,從而為資源的升級和修改提供依據(jù)[5]。
2.2.2 相關技術
    本文ARMS系統(tǒng)平臺主要采用Maven技術,Maven作為Apache的一個開源項目,旨在給項目管理提供更多的支持。
    Maven的基本原理很簡單,采用遠程資源庫(Remote Repository)和本地資源庫(Local Repository)以及一個類似build.xml 的pom.xml,將pom.xml中定義的jar文件從遠程資源庫下載到本地資源庫,各個應用使用同一個本地資源庫的jar,同一個版本的jar只需下載一次,而且避免每個應用都去拷貝jar。Maven基本原理框架結構如圖2所示。同時它采用了現(xiàn)在流行的插件體系架構,只保留最小的核心,其余功能都通過插件的形式提供,所以Maven下載很小,在執(zhí)行Maven任務時,才會自動下載需要的插件[6]。

    要創(chuàng)建遠程資源庫,只需將這個資源庫的目錄部署在網(wǎng)站中。Maven 建議使用遠程資源庫以便于集中維護,最大程度地實現(xiàn)項目之間資源的共享。為避免每次構建時都要下載文件,Maven 在首次下載必需的相關性資源時就自動地將其高速緩存在本地資源庫中。
3 多級資源庫ARMS平臺的應用
    針對傳統(tǒng)開發(fā)模式存在不停地更換程序中的JAR 包、需要了解各種依賴關系和版本號、明知重復開發(fā)的東西但卻不知如何獲得它的復用、涉足一個新行業(yè)領域后無從下手只能從零開始等問題,開發(fā)了ARMS系統(tǒng)平臺。利用這個ARMS系統(tǒng)平臺能夠更好地復用已有的軟件資源,開發(fā)出新的產品,有效地解決了當前開發(fā)中的棘手問題,加快了開發(fā)速度。
3.1 資源開發(fā)
    在對資源庫系統(tǒng)中的資源進行開發(fā)組裝時,總會涉及資源間的關系關聯(lián)問題。例如,資源A的實現(xiàn)依賴于資源B,則在用A進行組裝模塊時,必然用到資源B。ARMS系統(tǒng)平臺主要采用Maven構建工具開發(fā)軟件資源,Maven技術能夠實現(xiàn)資源批量導入導出,利用本地資源庫中的資源進行開發(fā),盡量避免使用依賴資源,保證依賴資源的自動獲取和升級更新,減少代碼庫的積存。
3.2 版本發(fā)布
    開發(fā)擁有多個模塊的應用程序時,在某些情況下每個模塊的更新都很頻繁,需要不斷地獲取最新子模塊。構建系統(tǒng)需要以簡單的方式來實時更新。Maven中快照是通過持續(xù)集成服務器來獲得最新源代碼生成的產品。定義一個快照版本意味著Maven將尋找最新的依賴。默認情況下Maven會按日生成一次快照。當定義了一個非快照的依賴,Maven將會下載依賴一次而不會再去獲取它。
    ARMS平臺的版本發(fā)布階段,首先從源碼庫中提交代碼到持續(xù)集成服務器中,通過持續(xù)構建,每日一次迭代形成小版本發(fā)布即為快照版本,然后通過測試人員的檢測并匯總變更記錄,進而快速迭代形成穩(wěn)定發(fā)布版本,在此過程中采用雙重迭代方法。版本發(fā)布流程如圖3所示。

3.3 反饋處理
  隨著資源庫系統(tǒng)的不斷發(fā)展和網(wǎng)上資源庫的不斷完善,可能在不同的地理位置存在著多個資源庫,這些資源庫可以是同構或異構, 相應的有各自對應的反饋信息,通過提取工具和轉換、集成工具,可以將各個信息源中的數(shù)據(jù)方便地集成到中央的統(tǒng)一信息庫中,用戶只需訪問該中央信息庫即可[7]。新版本的發(fā)布是否可行需要得到用戶的信息反饋,資源的后期度量是基于復用者的反饋信息。如何收集用戶反饋數(shù)據(jù),進行合理的組織,也是亟須解決的問題。首先應通過用戶提交的反饋信息擬定新的需求;然后制定迭代計劃,在哪個版本解決哪些缺陷,添加哪些新功能,制定相應的線路圖;然后通過開發(fā)者開發(fā)的新版本,測試并發(fā)布。
4  ARMS平臺支撐軟件開發(fā)流程圖
    ARMS平臺支撐軟件開發(fā)的流程圖如圖4所示。

    ARMS平臺支撐軟件開發(fā)的優(yōu)越性:對于開發(fā)人員,ARMS系統(tǒng)平臺提供的是一種更便捷、更高效、更輕松的研發(fā)解決方案,通過配置一個文件獲得整個項目的管理:(1)約定優(yōu)于配置的理念,在一個約定好的環(huán)境和規(guī)則下做游戲,ARMS提供的開發(fā)方案中就是基于Maven的這種概念;(2)開發(fā)過程中清楚版本的概念很重要,這是提升產品質量的基礎,而基于構件的開發(fā)正是以此為出發(fā)點對項目中的依賴包進行依賴管理和配置;(3)配置好依賴,在這之后可以隨需添加,剩下的事情只需交給ARMS去做,開發(fā)人員只專注于開發(fā)工作而不是被復雜混亂的依賴所累。 
    利用ARMS平臺進行軟件開發(fā),充分使用了資源庫中的資源,大大提高了軟件資源的復用率。若采用傳統(tǒng)的系統(tǒng)開發(fā)方法,同樣規(guī)模的軟件需要更大的工作量,而通過使用新的開發(fā)方法,使其開發(fā)更靈活,效率更高;減少了開發(fā)時間及成本,提高了軟件開發(fā)效率和產品的質量,減少了系統(tǒng)的維護代價。
    論文研究的多級資源庫給項目開發(fā)提供了一個切實的基礎,基于這一工具開發(fā)的ARMS系統(tǒng)平臺能夠克服傳統(tǒng)開發(fā)方法的不足,提高軟件資源的復用率,加快軟件開發(fā)的速度。通過公司項目實踐,利用ARMS系統(tǒng)平臺進行軟件開發(fā),基于軟件復用驗證了新的開發(fā)方法的可行性;由于軟件資源開發(fā)設計范圍廣,本文利用ARMS系統(tǒng)平臺支撐開發(fā)軟件的開發(fā)模式還存在許多不足之處,希望能根據(jù)需求在以后的實踐中完善。
參考文獻
[1] HAFENDH M, FATMA M, ALI M. Reusing software:Issues and research directions[J].IEEE Transactions on Software  Engineering,1995, 21(6):528-562.
[2] 賈曉輝.可復用構件庫及其檢索技術的研究與應用[D].上海:東華大學,2005.
[3] 張秀愛.軟件復用技術研究[J]. 電腦知識與技術,2008,3(6):1214-1215.
[4] 郭立峰,郭耀,常繼傳.NATO軟件復用標準簡介[M].北京:北京大學出版社,2005.
[5] 杜建偉,顧斌.基于流程的構件庫管理系統(tǒng)及其實現(xiàn)[J].計算機系統(tǒng)應用,2007(8):16-19.
[6] 張清立.Maven的基本原理和Maven2的新特性[EB/OL].http://blog.csdn.net/zql2002/archive/2008/06/12/2537502.aspx,2008.
[7] 王希辰.數(shù)據(jù)倉庫技術與可復用構件庫系統(tǒng)研究[J].中國傳煤大學學報(自然科學版), 2006,13(2):68-73.

此內容為AET網(wǎng)站原創(chuàng),未經(jīng)授權禁止轉載。

相關內容