摘要: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視圖的情景,邏輯視圖和物理視圖建模,分別從系統提供的服務和功能,系統的網絡拓撲結構和通訊進行了建模,對系統進行了詳細的分析,爲系統的設計和接下來的項目開發提供了有力的支持。