陳杜英,劉韶濤
(華僑大學 計算機科學與技術學院,福建 廈門 361021)
面向復用的軟構件信息系統的設計與實現
陳杜英,劉韶濤
(華僑大學 計算機科學與技術學院,福建 廈門 361021)
基于軟件體系結構,從需求分析出發,討論適合此系統的體系結構設計決策,分析系統設計的實現過程,設計并實現一個面向復用的軟構件信息系統.該系統能使管理人員有效地組織和管理各類軟構件實體和相關角色信息等,開發者可以在此高效檢索到需要的軟構件,構件生產廠商可以方便提交自己生產的構件,有效管理軟構件以提高軟件開發效率.
軟構件;信息系統;軟件體系結構;Wright語言;復用技術
軟件復用技術是解決軟件危機的有效途徑,而軟構件技術是實現成功軟件復用的關鍵因素之一[1].為了提高軟件復用的效率,需要有效的組織和管理軟構件.軟構件信息系統能有效地組織和管理大量的可復用軟構件,并提供相應的工具,支持在軟件開發過程中方便的查詢、理解、選取和使用軟構件,使基于軟構件復用的軟件開發成為現實.軟件體系結構描述語言Wright語言是美國卡耐基梅隆大學的R.Allen和D.Garlan提出的一種高級分布式學習(ADL),它為體系結構中的連接提供了形式化基礎[2].Wright語言的主要特點是,對體系結構和抽象行為的精確描述,定義體系結構風格的能力,以及一組對體系結構描述進行一致性和完整性的檢查.體系結構描述通過構件、連接件,以及他們之間的組合來描述,抽象行為通過構件的行為和連接件的膠水來描述.本文結合軟件體系結構策略,設計并實現了一種具有復用價值的軟構件信息系統.

其中:di是設計空間的維度,是對系統某一特性或設計決策的描述,di中枚舉出的可能方法稱為范疇.
在面向領域的設計過程中,使用3個空間意味著設計過程將從一個空間映射到另一個空間,從需求分析到體系結構設計再到系統設計.該過程執行從需求到設計細節的提煉.功能設計空間關注需求,尤其是那些功能屬性.體系結構設計空間可以用體系結構描述方法進行維度的度量,如構件、連接件、配置、體系結構風格與模式等.系統設計關注更多的細節,包括構件與連接器的內部結構及關鍵算法.
將系統中的參與者分為用戶和管理員兩類,其用例圖如圖1所示.用戶包括客戶、軟構件供應商和客戶端用戶.客戶需要實現的功能,有輸入信息登陸系統、輸入檢索內容返回相應的檢索結果、對檢索結果進行處理,當未檢索到所需要構件時,可以發布生成新軟構件請求.軟構件供應商端用戶提供的功能,主要有登錄系統、提交構件、查看構件發布信息.管理員的任務包括軟構件管理、軟構件入庫管理、軟構件信息管理、角色管理、軟構件信息發布平臺管理、軟構件評價管理.

圖1 系統參與者用例圖Fig.1 Use case diagram of participants in the system
該軟件項目采用的是典型的3層B/S模型的體系結構,如圖2所示.該模型在邏輯上將應用功能分為3層:表示層、功能層、數據層.1)表示層 .對應上面的用戶端的顯示,主要通過瀏覽器實現用戶端的顯示,完成用戶的請求操作.2)功能層 .對應代理層,完成客戶請求的功能實現.3)數據層 .主要是軟構件數據庫管理系統,由管理員進行維護.在體系結構階段,將整個系統分為3個子系統:用戶端子系統、代理層子系統和數據層子系統.
用戶端表示層子系統,關注表現層功能,供用戶使用 .用戶端的體系結構如圖3所示,包含7個主要構件:
1)界面,負責用戶端界面的構建與顯示;
2)查詢,負責提取客戶輸入的查詢構件的信息;
3)提取,負責獲取客戶輸入的需要提取的構件信息;
4)發布,負責為客戶填寫需要生成的新構件的內容,以及為供應商提供當前存在的需要的新構件發布信息;
5)評估,負責處理客戶的評價構件信息的輸入;
6)提交,負責處理供應商的提交構件處理;
7)構件存儲中心,負責用戶端與外面的數據通信 .在這里,后臺構件存儲中心采取兩個獨立的線程進行處理,以存放接收的消息和存放將要發送的消息.

圖2 軟構件信息系統的體系結構圖Fig.2 Architecture diagram of software component information system

圖3 用戶端的體系結構Fig.3 Architecture of client
用戶端體系結構支持6個過程:生成靈活的用戶接口、查詢構件、提取構件、評價構件、處理發布構件信息和提交構件.用戶端接口依如下步驟生成:用戶輸入登錄信息,通過驗證,登錄系統,依據用戶角色的不同,分為客戶和供應商兩種角色,分別返回相應角色登錄成功后的界面.
主要負責處理用戶的請求,向數據層子系統傳送請求,并將從數據層子系統返回的結果傳送給用戶端 .代理層構件負責用戶對象的建立、處理用戶消息并給出反饋.它有3個端口:Reg,Send和Recv.Reg負責用戶注冊與注銷,Send與Recv是負責消息交互的端口.代理層有5個頂層構件:處理中心、查詢與提取代理、提交代理、評估代理與發布代理.其中:處理中心是由構件存儲中心構件、代理管理系統與目錄功能組成的.代理層的體系結構圖,如圖4所示.

圖4 代理層的體系結構圖Fig.4 Architecture of the agent layer
主要負責處理SCISPAP端的消息請求,軟構件相關信息的管理,維護系統的運行.數據層負責軟構件信息系統數據庫的維護,由管理員進行操作,包括軟構件用戶的角色管理、軟構件的入庫管理、軟構件的基本信息維護管理、軟構件發布信息管理、軟構件評價管理.這些管理都將使得軟構件數據庫中心受到相應的影響,從而改變數據庫中心數據.圖5為數據層的體系結構.

圖5 數據層的體系結構圖Fig.5 Architecture of the data layer
對于管理軟構件的信息系統,必須具有存儲數據量大,滿足使用方便、操作靈活和安全性好等特點.系統在設計時應該滿足以下6個目標:1)搭建網絡軟構件信息系統,系統可以進行大量構件的存儲和管理操作,并保證安全性;2)提供軟構件信息的高效提交、檢索和提取等操作;3)提供為構件評價管理功能;4)提供構件信息發布有效管理;5)可以進行日志管理操作,方便事后查看;6)系統運行穩定高效安全.
將體系結構轉化為實現相關模型,使用Wright語言來描述構件間消息傳遞關系及其空間分布,揭示構件之間的交互過程[4].以客戶查詢軟構件和供應商提交構件為例,用戶與系統的交互流程:
1)客戶向系統發送查詢構件的請求→系統向構件存儲中心發起查詢的請求→構件存儲中心返回查詢結果給系統→系統返回查詢結果或查詢失敗信息;
2)供應商向系統發送提交構件的請求→系統向構件管理者發送提交構件的請求→構件處于審核狀態→構件管理者審核提交構件→審核成功后則將構件錄入構件存儲中心→構件存儲中心返回結果給系統→系統將結果返回給管理者→管理者將結果返回給系統→系統提交成功或審核失敗,管理者通知系統提交失敗,系統將處理返回提交成功或失敗結果.
使用Wright語言,描述以上2個交互過程[5].


∥客戶發送查詢消息,系統接收此消息,構件存儲中心接收系統查詢消息,構件存儲中心再返回結果
∥供應商發送提交消息,系統接收此消息,構件管理中心接收系統消息,構件管理中心再返回處理結果
∥系統接收提交構件消息,觸發審核處理,審核處理完,向構件存儲中心發起處理結構,構件存儲中心將返回結果,系統將處理完發送審核處理結果.


基于構件的軟件開發是一種高效的軟件重用技術,通過結合軟件體系結構技術,研究了軟件體系結構的整體設計方案.該設計行為被抽象成設計空間,把它分為功能設計空間、體系結構設計空間與系統設計空間.這是SADPBA的核心概念,即以體系結構為中心的設計過程.然而,原型軟構件信息系統仍存在一些問題,下一步工作主要是進一步優化系統性能,努力提高系統的查全率、查準率,以及提高系統響應時間,同時考慮人工智能方法改進軟構件的檢索效率,進一步提高系統檢索的能力.
[1]彭博,王晉,李亞芬.面向 Web領域的構件庫系統的設計與實現[J].計算機應用技術,2009(20):1-3.
[2]馮沖,江賀,馮靜芳.軟件體系結構理論與實踐[M].北京:人民郵電出版社,2004:32-36.
[3]覃征,邢劍寬,董金春,等.軟件體系結構[M].北京:清華大學出版社,2008:139-140,148-153.
[4]張友生,李雄.軟件體系結構原理、方法與實踐[M].北京:清華大學出版社,2009:112.
[5]王燁.UML與 WRIGHTADL在企業設備管理系統中得應用[D].蘇州:蘇州大學,2006:41-45
Design and Implementation of Software Component Information System Oriented Reuse
CHEN Du-ying,LIU Shao-tao
(College of Computer Science and Technology,Huaqiao University,Xiamen 361021,China)
A software architecture suitable for the information system is discussed,the implementing procedures of the system design are analyzed based on software architecture and requirement analysis of the system and a software components information system oriented reuse designed and implemented.The system can facilitate the managers to effectively organize and manage all kinds of software components,its related roles′information,and can help the developers effectively retrieve the components they need,can facilitate the providers of components to submit the components they developed and can effectively manage software components to improve the efficiency of software development.
software component;information system;software architecture;Wright language;reuse technology
陳志賢 英文審校:吳逢鐵)
TP 311.52
A
1000-5013(2012)03-0269-06
2011-11-12
劉韶濤(1969-),男,副教授,主要從事軟件體系結構與軟件復用的研究.E-mail:shaotaol@hqu.edu.cn.
國務院僑辦科研基金資助項目(09QZR02)