基于UML的軟件體系結(jié)構(gòu)

摘要 本文描述了有助于軟件體系結(jié)構(gòu)開發(fā)和文檔化的一些體系結(jié)構(gòu)視點(diǎn),為大型軟件體系結(jié)構(gòu)的開發(fā)提供實(shí)際的表示方法和技術(shù)。使用UML提供的大量構(gòu)造工具來描述軟件體系結(jié)構(gòu),介紹了UML對軟件體系結(jié)構(gòu)的應(yīng)用。 

  關(guān)鍵詞 軟件體系結(jié)構(gòu);UML;建模 

  中圖分類號(hào)TP31 文獻(xiàn)標(biāo)識(shí)碼A 文章編號(hào) 1674-6708(2010)33-0230-02 

  0引言 

  軟件體系結(jié)構(gòu)(Software Architecture)是近年來軟件工程領(lǐng)域中的一個(gè)熱點(diǎn)研究方法。它的出現(xiàn)為軟件復(fù)用特別是設(shè)計(jì)方案的復(fù)用帶來了新的前景。體系結(jié)構(gòu)并非可運(yùn)行的軟件,確切的說,它是一種表示,這種表示使得軟件工程師能夠分析設(shè)計(jì)在滿足需求方面的效力,也能夠在在改變?nèi)匀幌鄬θ菀椎碾A段考慮體系結(jié)構(gòu)可能的選擇,還能夠減少和軟件構(gòu)造相關(guān)聯(lián)的風(fēng)險(xiǎn)。軟件體系結(jié)構(gòu)不包括硬件、網(wǎng)絡(luò)或物理體系結(jié)構(gòu)。軟件體系結(jié)構(gòu)不是整個(gè)系統(tǒng)的描述,而僅僅是系統(tǒng)內(nèi)的軟件和創(chuàng)建軟件所需環(huán)境的描述。 

  UML(Unified Modeling Language)統(tǒng)一建模語言,是用來對軟件密集系統(tǒng)進(jìn)行可視化建模的一種語言。UML為面向?qū)ο箝_發(fā)系統(tǒng)的產(chǎn)品進(jìn)行說明、可視化、和編制文檔的一種標(biāo)準(zhǔn)語言。UML作為一種模型語言,它使開發(fā)人員專注于建立產(chǎn)品的模型和結(jié)構(gòu),而不是選用什么程序語言和算法實(shí)現(xiàn)。當(dāng)模型建立之后,模型可以被UML工具轉(zhuǎn)化成指定的程序語言代碼。 

  UML的出現(xiàn)及其與體系結(jié)構(gòu)研究結(jié)論的結(jié)合,為體系結(jié)構(gòu)的應(yīng)用帶來了新的契機(jī)。 

  1軟件體系結(jié)構(gòu)視點(diǎn) 

  軟件體系結(jié)構(gòu)視點(diǎn)是通過把UML圖的類型運(yùn)用到具體的體系結(jié)構(gòu)開發(fā)任務(wù)而確定的。每一個(gè)視點(diǎn)有具體的建模目標(biāo)和系統(tǒng)相關(guān)者。 

  表1所列的視點(diǎn)提供了一組高度概括的軟件描述。環(huán)境視圖提供了對系統(tǒng)邊界及系統(tǒng)發(fā)生交互的外部實(shí)體集合的概述。分析視圖提供了一個(gè)以建模為中心的實(shí)體的抽象集合。 

  表2給出了一個(gè)以描述軟件設(shè)計(jì)為目的的視點(diǎn)的集合。構(gòu)件、構(gòu)件交互及構(gòu)件狀態(tài)視圖提供了一個(gè)對于邏輯運(yùn)行結(jié)構(gòu)及其功能,以及它們之間通信的映射。子系統(tǒng)結(jié)構(gòu)依賴視圖提供了一個(gè)子系統(tǒng)依賴關(guān)系和接口的圖形表示。分層子系統(tǒng)視圖提供了一個(gè)所有子系統(tǒng)高度抽象的視圖。邏輯數(shù)據(jù)視圖提供了構(gòu)件共有的數(shù)據(jù)模型描述。 

  通常,大型軟件系統(tǒng)的整體視圖時(shí)及其重要的。而一些視圖會(huì)被同時(shí)使用。例如,在構(gòu)件接口的設(shè)計(jì)中,通常要?jiǎng)?chuàng)建構(gòu)件視圖、設(shè)計(jì)交互視圖和構(gòu)件狀態(tài)視圖。 

  2實(shí)例系統(tǒng) 

  為了闡明大型系統(tǒng)的各方面的概念和視圖,選擇一銀行系統(tǒng)為范例。這個(gè)實(shí)例說明了一個(gè)完整的銀行系統(tǒng)。系統(tǒng)中的遺留部分,可以支持傳統(tǒng)的結(jié)算、存款和貸款業(yè)務(wù)。這部分包括用戶記錄存儲(chǔ)、交易歷史記錄和交易管理,也支持銀行職員和用戶查詢。遺留部分還包括和外部銀行、其他分支機(jī)構(gòu)、舊式ATM、銀行職員及客戶電話查詢的接口。新添加的部分,可以支持基于Web的用戶接口、雙向?qū)ず艚涌、移?dòng)電話瀏覽器訪問接口、增強(qiáng)型ATM和連接分支結(jié)構(gòu)的增強(qiáng)型接口。網(wǎng)絡(luò)用戶和移動(dòng)電話和瀏覽器接口不僅支持傳統(tǒng)的賬目查詢,還可以支持股票證�掛歷,資金電子過戶,支票付款和賬目轉(zhuǎn)賬。出納員、賬戶經(jīng)理和信貸員接口屬于基于企業(yè)網(wǎng)的新式接口。 

  2.1系統(tǒng)環(huán)境和領(lǐng)域分析 

  在系統(tǒng)環(huán)境和領(lǐng)域分析中需要構(gòu)件最高層次的體系結(jié)構(gòu)所需的幾種整體來表示,包括環(huán)境視圖、概念圖和整體分析視圖。概念圖比較隨意也不穩(wěn)定,沒有特定的建模方式。 

  環(huán)境視點(diǎn)包括系統(tǒng)和系統(tǒng)有接口的外部實(shí)體及系統(tǒng)和這些實(shí)體的接口,目的是使用一個(gè)視圖來描述所有外部實(shí)體及它們之間的接口信息。環(huán)境視圖往往是體系結(jié)構(gòu)組創(chuàng)建的第一個(gè)系統(tǒng)視圖,包括系統(tǒng)和外部系統(tǒng)之間的接口及系統(tǒng)和人的接口。圖1描述了銀行系統(tǒng)的環(huán)境視圖。 

  環(huán)境視圖中,操作者的名字應(yīng)該與定義的角色相匹配貨相互映射,操作者的角色可以有不同的等級(jí)。例如,網(wǎng)絡(luò)操作者可以進(jìn)一步細(xì)分為ATM網(wǎng)絡(luò)操作者和局域網(wǎng)設(shè)備操作者。 

  整體分析視點(diǎn)提供了一個(gè)關(guān)于問題領(lǐng)域的一致看法,獨(dú)立于任何細(xì)節(jié)之外。該視點(diǎn)提供實(shí)體集以及對它們之間的關(guān)系、屬性和行為的表示方法,可以用來構(gòu)造分層子系統(tǒng)視圖和子系統(tǒng)接口以來試圖,主要用來幫助理解系統(tǒng)中的關(guān)鍵實(shí)體,用來構(gòu)建系列化的部件。 

  2.2 事物和數(shù)據(jù)設(shè)計(jì)  

  圖2邏輯數(shù)據(jù)模型 

  邏輯數(shù)據(jù)體系結(jié)構(gòu)描述了實(shí)體的結(jié)構(gòu)或形式、數(shù)據(jù)關(guān)系,以及約束。邏輯數(shù)據(jù)體系結(jié)構(gòu)通常被稱作為數(shù)據(jù)框架或者邏輯數(shù)據(jù)模型。數(shù)據(jù)框架采用的帶有屬性的UML類來表述。 

  邏輯數(shù)據(jù)視點(diǎn)概括了系統(tǒng)中所有主要數(shù)據(jù)實(shí)體,是一個(gè)關(guān)注于屬性和關(guān)系的UML視圖。在該視圖中只包括由多個(gè)構(gòu)件或者子系統(tǒng)共享的數(shù)據(jù)實(shí)體。圖2描述了銀行系統(tǒng)的邏輯數(shù)據(jù)模型。 

  3結(jié)論 

  本文以銀行系統(tǒng)的分析和設(shè)計(jì)為例,介紹了如何利用UML的視點(diǎn)建模。使用了用例圖描述說明外部系統(tǒng)角色和設(shè)計(jì)中的系統(tǒng),使用類圖描述了實(shí)體集的關(guān)鍵數(shù)據(jù)視圖。 

  設(shè)計(jì)軟件的過程中應(yīng)通過一系列視圖展開,并在單一的結(jié)算中直接實(shí)現(xiàn)所有的內(nèi)容。體系結(jié)構(gòu)是系統(tǒng)的映射,它定義了系統(tǒng)的不同組成部分、它們之間的關(guān)系和交互、通信機(jī)制、以及如何修改系統(tǒng)組件、如何添加新組件等整體規(guī)則。好的體系結(jié)構(gòu)強(qiáng)調(diào)系統(tǒng)的功能和非功能兩個(gè)方面。使用UML的過程是以體系結(jié)構(gòu)為中心的,并且在過程的早期就要建立這個(gè)體系結(jié)構(gòu)。   

  參考文獻(xiàn) 

  [1]Booth G, Rumbaugh J, Jacobson I.The Unified Modeling Language User Guide[M],1999. 

  [2]JosephSchmuller.UML基礎(chǔ)案例與應(yīng)用[M].李虎,王美英,萬里威,譯.北京:人民郵電出版社,2002,6. 

  [3]Young Joon Yang,Soon Yong Kim,Gui Ja Choi,Eun Sook Cho,Chul JinKi,Soo Dong Kim.A UML-based object-orientedframework development methodology[J].Software Engi neering Conference, 1998. Proceedings.1998 Asia Pacific,1998,12:2-4. 

  [4]馬重明,張學(xué)旺,范時(shí)平.基于UML的軟件體系結(jié)構(gòu)開發(fā)方法[J].計(jì)算機(jī)工程與應(yīng)用,2006,42(4):118-120.