論軟件架構建模技術與應用
摘要:2010年,我參加了湖南辰州礦業的污水監控平台的開發,在這個項目中,我擔任系統設計和開發的工作。這個系統主要是對辰州礦業的排污進行數據采集,實時監控,超標報警,數據統計和管理。本文結合作者的實踐,以辰州礦業監控平台弟弟系統架構建模為例,論述了4+1視圖模型在工作中的運用。本論文先介紹4+1模型,然后結合我參與項目的實際情況,詳細說明在這次項目中所涉及的軟件架構,最后是分析該項目取得實踐效果。
正文
軟件架構用來處理軟件高層次結構的設計與實施,它以精心選擇的形式將若干結構元素進行裝配,從而滿足系統的主要功能和性能需求。軟件架構設計的首要問題是如何表示系統架構,即如何對軟件架構建模。根據建模的側重點不同,可以將軟件架構模型分為結構模型,框架模型,動態模型,過程模型和功能模型。Kruchten於1995年提出了4+1視圖模型,將這5種模型有機的結合了一起。
4+1視圖模型分為為:邏輯視圖,物理視圖,場景,進程視圖和開發視圖。邏輯視圖,主要是支持系統的功能需求,即體現了系統提供一個什么樣的服務。在邏輯視圖中,系統分解成一系列的功能抽象,這些抽象主要來自於功能域.在OO技術中主要是通過類的繼承,封裝和抽象,用類圖來描述邏輯視圖。物理視圖,即軟件如何映射到硬件上,它通常考慮的是系統的拓撲結構,系統安裝和通信等問題。場景,將4種視圖有機的聯系起來,在UML中一般用用例圖來表示。進程視圖,體現了系統在運行中表現出來的特性,如分布性,並發性和容錯能力,系統集成性。它定義了邏輯視圖的各個類操作具體是在哪一個線程中執行的。開發視圖,主要描述系統的組織,與邏輯視圖精密相關,在UML中對應的是實現圖。其中用戶對應的是邏輯視圖,開發人員對應的是開發視圖,系統工程師對應的是物理視圖,系統集成工程師對應的是進程視圖。
辰州礦業監控平台是一個對礦業排污進行數據采集,根據集團領導的需求:公司的監測人員能夠隨時監測排污的數據,當污染數據超標時能夠即時通知相關的負責人員,能夠查詢歷史的排污數據記錄,管理員能夠通過工控機操作並管理各個數據采集儀。經過我們的分析,結合需求,我們做了如下設計:系統由B/S和C/S兩部分組成。其中B/S主要的功能包括:實時污染數據的監測和顯示,數據統計和管理,超標報警等,由礦業的PC客戶端瀏覽器和應用服務器,數據庫服務器組成。C/S的主要功能包括:控制數據采集儀器,進行數據采集,將采集的污染數據持久化,實時污染數據的顯示等,由工控機,數據采集儀,和數據庫服務器組成。
在這次系統架構建模的工作中,我們用到的建模工具是Microsoft Visio,用到的架構描述語言是UML,結合項目的實際情況,用4+1視圖模型進行建模:
1.對情景進行建模:經過我們的分析,結合客戶的需求,在這個系統中有兩類角色,一類是礦業集團辦公室的負責排污監測的各位工作人員,即用戶類,他們一般會進行排污的數據查詢工作,另外當排污超標時,系統會進行報警並通知。另外一類是礦業監控室的管理人員,他們一般在現場值班,負責對數據采集儀和工控機進行管理,監測各項排污數據,和進行排污數據的維護工作。所以系統的主要用例有如下幾個:數據查詢,超標報警,數據實時顯示,數據采集,數據維護。用例圖如下所示:
2.對邏輯視圖進行建模:在這個系統中,我們用UML的包圖來描述邏輯視圖,經過我們的分析,在C/S部分,工控機和數據采集儀之間進行如下職責划分:
* 應用層負責設備狀態的顯示,並提供模擬控制台供用戶發送調試命令。
* 應用層使用通訊層和嵌入層進行交互,但應用層不知道通訊的細節。
* 通訊層負責在SOCKETC協議之上實現一套專用的"應用協議"。
* 當應用層發送來包含調試指令的協議包,由通訊層負責按SOCKET協議將之傳遞給嵌入層。
* 當嵌入層發送來原始數據,由通訊層將之解釋成應用協議包發送給應用層。
* 嵌入層負責對調試設備的具體控制,以及高頻度地從數據采集器讀取設備狀態數據。
* 設備控制指令的物理規格被封裝在嵌入層內部,讀取數采器的具體細節也被封裝在嵌入層內部。
在B/S部分,客戶端PC和應用服務器進行如下職責划分:表現層,邏輯業務層和數據訪問層。
3.對物理視圖進行建模:我們用UML的部署圖來描述進程視圖,對系統的拓撲結構和通信進行描述。整個系統分為B/S和C/S兩部分,B/S中的客戶PC端和應用服務器,應用服務器和數據庫服務器都通過局域網進行連接。C/S中工控機和數據庫服務器通過局域網進行連接,工控機和采集儀通過數據專線進行連接,工控機和采集儀之間采用串口SOCKET通信,工控機和數據庫采集儀之間通過TCP/IP進行通信,客戶PC端和應用服務器通過HTTP進行通信。部署圖如下圖所示:
4.對進程視圖進行建模:在C/S部分,表示層分為三類線程:數據持久化線程,數據顯示線程和采集控制線程,分別用來對數據進行持久化,圖形的顯示,以及對采集儀進行控制,進行數據的采集。對應的UML建模圖如下所以:
通過對4+1視圖的情景,邏輯視圖和物理視圖建模,分別從系統提供的服務和功能,系統的網絡拓撲結構和通信進行了建模,對系統進行了詳細的分析,為系統的設計和接下來的項目開發提供了有力的支持。
