摘要:對(duì)基于UML(Unified Modeling Language)的“4+1”視圖模型進(jìn)行描述,從場(chǎng)景、概念視圖、過(guò)程視圖、構(gòu)件視圖、物理視圖5個(gè)視角完整的描述一個(gè)系統(tǒng)的體系結(jié)構(gòu),并將該視圖模型應(yīng)用到鋼材庫(kù)管理系統(tǒng)的體系結(jié)構(gòu)描述中。實(shí)踐表明:它是面向?qū)ο筌浖_(kāi)發(fā)方法中高效而實(shí)用的軟件體系結(jié)構(gòu)建模方法。
關(guān)鍵詞:軟件體系結(jié)構(gòu);多視圖;模型;UML
1 引言
在描述軟件體系結(jié)構(gòu)時(shí),不僅要考慮系統(tǒng)功能方面,實(shí)際上系統(tǒng)的物理分布、過(guò)程通訊等問(wèn)題也要加以考慮。UML提供了可視化的圖形表示方法及語(yǔ)義化的元模型描述規(guī)范,提供了靜態(tài)和動(dòng)態(tài)兩種建模機(jī)制。利用UML的半形式化特性及嵌入的擴(kuò)充機(jī)制,可以從多個(gè)視圖描述軟件體系結(jié)構(gòu)。本文利用UML的“4+1”視圖模型,分別從概念、過(guò)程、構(gòu)件、物理、場(chǎng)景等五個(gè)不同的視角來(lái)描述鋼材庫(kù)管理系統(tǒng)的軟件體系結(jié)構(gòu),5個(gè)視角結(jié)合在一起反映鋼材庫(kù)系統(tǒng)的體系結(jié)構(gòu)的全部?jī)?nèi)容。
2 “4+1”視圖的體系結(jié)構(gòu)模型
對(duì)一個(gè)軟件體系結(jié)構(gòu)的描述可以從不同的視角來(lái)描述?!?+1”視圖模型中的5個(gè)體系結(jié)構(gòu)視角反映了系統(tǒng)構(gòu)造的主要方面,能夠全面系統(tǒng)地描述一個(gè)軟件系統(tǒng)的體系結(jié)構(gòu)。
“4+1”模型從邏輯、開(kāi)發(fā)、過(guò)程、物理和場(chǎng)景5個(gè)不同的視角來(lái)描述軟件體系結(jié)構(gòu)的全部?jī)?nèi)容,如圖1所示。對(duì)比軟件體系結(jié)構(gòu)各個(gè)視角與軟件開(kāi)發(fā)的各階段,邏輯視角、開(kāi)發(fā)視角、過(guò)程視角和物理視角分別對(duì)應(yīng)于軟件開(kāi)發(fā)的需求分析、總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)和實(shí)現(xiàn)階段。
“4+1”視圖模型反映了系統(tǒng)構(gòu)造的幾個(gè)方面,體現(xiàn)體系結(jié)構(gòu)構(gòu)造的抽象特征,體現(xiàn)系統(tǒng)的體系結(jié)構(gòu)風(fēng)格;反映了基于構(gòu)件的軟件開(kāi)發(fā)方法的一些特征;對(duì)于“體系結(jié)構(gòu)模型的實(shí)現(xiàn)”,“如何構(gòu)造這些視圖以及視圖之間的映射關(guān)系”給予指導(dǎo)。
邏輯視角:描述系統(tǒng)的功能需求及它們之間的相互關(guān)系;按照應(yīng)用領(lǐng)域的概念描述體系結(jié)構(gòu)。這些概念與實(shí)現(xiàn)它們的代碼有關(guān)系,但并不總有直接映射的關(guān)系。體系結(jié)構(gòu)在該視圖中設(shè)計(jì)系統(tǒng)的功能特性。例如,概念視圖的一個(gè)普通目標(biāo)是組織體系結(jié)構(gòu)以便能夠方便的增加、刪除及修改系統(tǒng)的功能。這對(duì)于系統(tǒng)演化非常重要,同時(shí)能支持體系結(jié)構(gòu)的重用。
過(guò)程視角:過(guò)程角度側(cè)重于系統(tǒng)的運(yùn)行性;從系統(tǒng)的行為出發(fā),考察各個(gè)構(gòu)件之間的協(xié)作/交互/通訊關(guān)系,反映系統(tǒng)的行為結(jié)構(gòu)。該視圖基于系統(tǒng)的需求場(chǎng)景,同時(shí)遵循框架視圖的制約,是系統(tǒng)核心結(jié)構(gòu)之一。
開(kāi)發(fā)視角:開(kāi)發(fā)角度負(fù)責(zé)軟件模塊的組織和管理;該視圖以構(gòu)件為著眼點(diǎn),是系統(tǒng)開(kāi)發(fā)的核心結(jié)構(gòu)之一,是框架視圖的設(shè)計(jì)模式,是對(duì)框架視圖的細(xì)化。
物理視角:物理角度解決系統(tǒng)的拓?fù)浣Y(jié)構(gòu)、系統(tǒng)安裝及通信等問(wèn)題;描述系統(tǒng)的軟件與硬件之間的映射關(guān)系并反映其分布特性,展示軟件在生命周期的不同階段中所必須的物理環(huán)境或硬件配置以及分布狀況。
場(chǎng)景:場(chǎng)景則對(duì)應(yīng)于用戶需求和系統(tǒng)功能實(shí)例的抽象,設(shè)計(jì)者通過(guò)分析如何滿足每個(gè)場(chǎng)景所要求的約束來(lái)分析軟件的體系結(jié)構(gòu)。場(chǎng)景是整個(gè)體系結(jié)構(gòu)設(shè)計(jì)的依據(jù),是以上六個(gè)視圖構(gòu)造的著眼點(diǎn)。它對(duì)應(yīng)于重要的用戶需求和系統(tǒng)功能實(shí)例的抽象,設(shè)計(jì)者通過(guò)分析“如何滿足每個(gè)場(chǎng)景所要求的約束”來(lái)設(shè)計(jì)軟件的體系結(jié)構(gòu)。
綜上所述,概念視圖定義系統(tǒng)的目標(biāo);構(gòu)件視圖、過(guò)程視圖提供詳細(xì)的解決方法;物理視圖解決系統(tǒng)的拓?fù)浣Y(jié)構(gòu)、系統(tǒng)安裝及通信等問(wèn)題;場(chǎng)景反映完成上述任務(wù)的組織結(jié)構(gòu)。概念視圖是高層體系結(jié)構(gòu);構(gòu)件視圖、過(guò)程視圖構(gòu)成體系結(jié)構(gòu)的核心,是系統(tǒng)開(kāi)發(fā)的關(guān)鍵結(jié)構(gòu),為低層體系結(jié)構(gòu);物理視圖則為輔助體系結(jié)構(gòu)。
3 基于UML的鋼材庫(kù)管理系統(tǒng)體系結(jié)構(gòu)“4+1”
視圖描述
3.1 “4+1”視圖體系結(jié)構(gòu)的構(gòu)造
“4+1”視圖體系結(jié)構(gòu)模型的構(gòu)造涉及多種角色,并且分別完成不同的任務(wù):
(1)用戶與系統(tǒng)分析師通過(guò)需求工程獲得待開(kāi)發(fā)系統(tǒng)的功能和非功能需求,將其轉(zhuǎn)化為功能場(chǎng)景與質(zhì)量場(chǎng)景,即“4+1”視圖模型中的場(chǎng)景。
(2)體系結(jié)構(gòu)設(shè)計(jì)師完成如下任務(wù):
①將功能場(chǎng)景轉(zhuǎn)化為概念視圖,并征求用戶的確認(rèn),得到待解決問(wèn)題的定義;
②根據(jù)已有的體系結(jié)構(gòu)知識(shí),選擇和確定構(gòu)件視圖、過(guò)程視圖;
③在得到核心體系結(jié)構(gòu)模型后,開(kāi)發(fā)物理視圖;
(3)構(gòu)件工程師依據(jù)構(gòu)件視圖、過(guò)程視圖、數(shù)據(jù)視圖開(kāi)發(fā)相應(yīng)的構(gòu)件;
(4)集成工程師依據(jù)構(gòu)件視圖集成部署構(gòu)件;
(5)組織管理者按照?qǐng)鼍胺峙溟_(kāi)發(fā)任務(wù)。
對(duì)于體系結(jié)構(gòu)的構(gòu)造而言,只考慮體系結(jié)構(gòu)設(shè)計(jì)師相應(yīng)的工作,即如何得到上述四個(gè)視圖。下面具體討論各個(gè)視圖的構(gòu)造與基于UML的描述方法。
3.2 場(chǎng)景描述
場(chǎng)景可以采用UML中的用例圖來(lái)描述。用例圖包含的主要實(shí)體有:用例、參與者和系統(tǒng)邊界。用例通過(guò)系統(tǒng)與一個(gè)或多個(gè)參與者之間的一系列消息來(lái)描述系統(tǒng)中的交互作用,用于表示系統(tǒng)的一項(xiàng)外部功能需求,即從用戶角度分析所得的需求;參與者用于描述與系統(tǒng)功能有關(guān)的外部實(shí)體,可以是用戶,也可以是外部系統(tǒng);系統(tǒng)邊界用于界定系統(tǒng)功能范圍。
鋼材庫(kù)管理系統(tǒng)的軟件體系結(jié)構(gòu)圖中,共涉及九個(gè)用例,分別對(duì)應(yīng)九個(gè)基本的系統(tǒng)功能。外部角色有四個(gè),分別是:客戶、業(yè)務(wù)人員、供應(yīng)商、系統(tǒng)管理員。在場(chǎng)景描述中,分別從四個(gè)外部角色的角度對(duì)系統(tǒng)提出功能需求。鋼材庫(kù)管理系統(tǒng)體系結(jié)構(gòu)的場(chǎng)景描述如圖2所示。
3.3 概念視圖描述
在概念視圖中,組件是角色和用例,連接件是角色和用例之間的關(guān)系以及多個(gè)用例之間的關(guān)系。在構(gòu)造概念視圖時(shí),著眼點(diǎn)是功能場(chǎng)景,考慮系統(tǒng)的功能分解,但不考慮其實(shí)現(xiàn)。具體來(lái)說(shuō),將需求工程得到的功能場(chǎng)景抽取為視圖中的一個(gè)功能組件;進(jìn)而考慮這些功能組件之間的關(guān)系。 概念視圖可以采用UML用例圖來(lái)表示,從所有參與者的角度出發(fā),通過(guò)用例來(lái)描述他們對(duì)系統(tǒng)概念的不同理解,每一個(gè)用例名相當(dāng)于一個(gè)概念功能的名稱。
在鋼材庫(kù)管理系統(tǒng)體系結(jié)構(gòu)的概念視圖中,給出了該體系結(jié)構(gòu)的系統(tǒng)功能需求的抽象描述,即系統(tǒng)提供給最終用戶的服務(wù)。鋼材庫(kù)管理系統(tǒng)主要完成對(duì)供應(yīng)商的開(kāi)戶,對(duì)貨物的質(zhì)檢、入庫(kù)、出庫(kù)等功能。鋼材庫(kù)管理系統(tǒng)體系結(jié)構(gòu)中的概念視圖如圖3所示。
3.4 過(guò)程視圖描述
過(guò)程視圖主要通過(guò)對(duì)過(guò)程動(dòng)態(tài)模型建模來(lái)實(shí)現(xiàn),用UML中的活動(dòng)圖來(lái)描述。過(guò)程視圖幫助設(shè)計(jì)人員更細(xì)致的分析概念視圖和場(chǎng)景中的用例,分析
視圖和場(chǎng)景中用例工作流之間的交互。大型軟件系統(tǒng)非常復(fù)雜,很多過(guò)程可能是并行的,活動(dòng)圖支持并行的行為。
鋼材庫(kù)管理系統(tǒng)體系結(jié)構(gòu)中的過(guò)程視圖如圖4所示,包括權(quán)限檢查、開(kāi)戶、質(zhì)檢、入庫(kù)、出庫(kù)、查詢、異常處理等組件。
3.5 構(gòu)件視圖描述
構(gòu)件視圖用于描述軟件開(kāi)發(fā)中程序模塊的靜態(tài)組織結(jié)構(gòu),由程序庫(kù)或子系統(tǒng)組成,用UML中的構(gòu)件圖來(lái)表示。它考慮軟件內(nèi)部的特性,描述軟件開(kāi)發(fā)以及軟件的組織,顯示系統(tǒng)結(jié)構(gòu)的劃分。在構(gòu)件視圖中,組件就是程序模塊,程序模塊之間的關(guān)系是連接件。
在鋼材庫(kù)管理系統(tǒng)中,包含這樣一些組件:完成質(zhì)檢功能的質(zhì)檢組件、對(duì)入庫(kù)貨物進(jìn)行信息錄入與出單的入庫(kù)組件、負(fù)責(zé)出庫(kù)工作的出庫(kù)組件及它們所對(duì)應(yīng)的數(shù)據(jù)庫(kù)組件。這些組件及其相互關(guān)系如圖5所示。
3.6 物理視圖描述
物理視圖描述如何把軟件映射到硬件上,它通常考慮系統(tǒng)性能、規(guī)模和可擴(kuò)展性等,主要通過(guò)UML中的配置圖加以實(shí)現(xiàn)。配置圖定義系統(tǒng)中軟硬件的邏輯或物理的拓?fù)浣Y(jié)構(gòu),它可以顯示計(jì)算節(jié)點(diǎn)的拓?fù)浣Y(jié)構(gòu)和通信路徑、節(jié)點(diǎn)上運(yùn)行的軟件組件、組件包含的邏輯單元等。
鋼材庫(kù)管理系統(tǒng)是一個(gè)采用C/S體系結(jié)構(gòu)風(fēng)格的系統(tǒng),其體系結(jié)構(gòu)中的物理視圖如圖6所示。客戶端和服務(wù)器端是節(jié)點(diǎn),兩個(gè)節(jié)點(diǎn)之間通過(guò)TCP/IP協(xié)議進(jìn)行連接。在客戶端,開(kāi)戶單、入庫(kù)單和出庫(kù)單填寫(xiě)界面作為相應(yīng)的構(gòu)件。
4 結(jié)論
針對(duì)基于UML的“4+1”視圖體系結(jié)構(gòu)模型描述的特點(diǎn),分別闡述各視圖的定義及其基于UML的描述方法,最后將該模型應(yīng)用到鋼材庫(kù)管理系統(tǒng)的體系結(jié)構(gòu)描述中,證明了將該模型用于面向?qū)ο蟮能浖_(kāi)發(fā)方法中描述軟件體系結(jié)構(gòu)的可行性及易用性。
參考文獻(xiàn)
[1]J.Wiley. The Art of Software Architecture:Design[J]. Methods and Techniques.2003.
[2]M.Bernardo, P.Ciancarini, L.Donatiello. On the formalization of architectural types with Process algebras.In D.S.Rosenblum, editor,Proc.of the 8th ACM Int.Symp.on the Foundations of software Engineering (FSE-8):14~148.ACM press, November 2000.
[3]馬重明,張學(xué)旺,范時(shí)平.基于UML的軟件體系結(jié)構(gòu)開(kāi)發(fā)方法[J].計(jì)算機(jī)工程與應(yīng)用.2006(4).
[4]黃正寶,張廣泉.一種新型的軟件體系結(jié)構(gòu)描述方法研究[J].微電子學(xué)與計(jì)算機(jī).2006,23(12).