統(tǒng)一建模語言_第1頁
統(tǒng)一建模語言_第2頁
統(tǒng)一建模語言_第3頁
統(tǒng)一建模語言_第4頁
統(tǒng)一建模語言_第5頁
已閱讀5頁,還剩80頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、統(tǒng)一建模語言(統(tǒng)一建模語言(Unified Modeling Language)UML課程目標(biāo)課程目標(biāo)v面向?qū)ο蠓治龊驮O(shè)計(jì)(面向?qū)ο蠓治龊驮O(shè)計(jì)(OOA/OOD)vUP過程與過程與“瀑布瀑布”模型模型vUML簡介簡介v需求分析與用例需求分析與用例v類圖類圖vUML交互圖交互圖vUML活動(dòng)圖活動(dòng)圖vUML狀態(tài)圖狀態(tài)圖面向?qū)ο蠓治雠c設(shè)計(jì)(面向?qū)ο蠓治雠c設(shè)計(jì)(OOA/OOD)v UML不是不是OOA/OOD,也不是設(shè)計(jì)方法,它僅僅只是一種圖形表示法,也不是設(shè)計(jì)方法,它僅僅只是一種圖形表示法v 如果不掌握面向?qū)ο笏枷耄敲慈绻徽莆彰嫦驅(qū)ο笏枷?,那么UML或任何或任何Case工具(建模工具,如工具(建模

2、工具,如:Rose)將毫無意義。)將毫無意義。v UML是一種思考工具,也是一種溝通方式,因此它能幫我們更好地表是一種思考工具,也是一種溝通方式,因此它能幫我們更好地表達(dá)我們的思想(面向?qū)ο蟮脑O(shè)計(jì)思想),所以我們會(huì)將達(dá)我們的思想(面向?qū)ο蟮脑O(shè)計(jì)思想),所以我們會(huì)將OOA/OOD中中應(yīng)用應(yīng)用UML,以此來更好地表達(dá)我們的思想(設(shè)計(jì)),以此來更好地表達(dá)我們的思想(設(shè)計(jì))v 分析(分析(Analysis)對問題和需求的調(diào)查研究對問題和需求的調(diào)查研究v 設(shè)計(jì)(設(shè)計(jì)(Design)滿足需求的概念上的解決方案滿足需求的概念上的解決方案 例如:都有哪些類,它們之間的關(guān)系是什么,一個(gè)類都有哪些屬性等等例如:都

3、有哪些類,它們之間的關(guān)系是什么,一個(gè)類都有哪些屬性等等,以及這些類產(chǎn)生對象以后,這些對象之間是如何交互的,因此設(shè)計(jì)是,以及這些類產(chǎn)生對象以后,這些對象之間是如何交互的,因此設(shè)計(jì)是對分析的進(jìn)一步細(xì)化。對分析的進(jìn)一步細(xì)化。面向?qū)ο蠓治雠c設(shè)計(jì)(面向?qū)ο蠓治雠c設(shè)計(jì)(OOA/OOD)v 面向?qū)ο蠓治觯嫦驅(qū)ο蠓治觯∣bject-Oriented Analysis) 在問題域內(nèi)發(fā)現(xiàn)和描述對象,即:采用面向?qū)ο蟮姆椒?,將在問題域內(nèi)發(fā)現(xiàn)和描述對象,即:采用面向?qū)ο蟮姆椒?,將現(xiàn)實(shí)中的需求抽象成一個(gè)個(gè)的對象模型,用以映射現(xiàn)實(shí)世界中指現(xiàn)實(shí)中的需求抽象成一個(gè)個(gè)的對象模型,用以映射現(xiàn)實(shí)世界中指定問題域中的對象和實(shí)體,例

4、如:顧客、汽車和銷售人員等。定問題域中的對象和實(shí)體,例如:顧客、汽車和銷售人員等。v 面向?qū)ο笤O(shè)計(jì)(面向?qū)ο笤O(shè)計(jì)(Object-Oriented Design) 如何定義軟件對象以及它們之間如何協(xié)作,以實(shí)現(xiàn)需求。如何定義軟件對象以及它們之間如何協(xié)作,以實(shí)現(xiàn)需求。 它是它是OO(面向?qū)ο螅┓椒ㄖ幸粋€(gè)中間過渡環(huán)節(jié),其主要作用(面向?qū)ο螅┓椒ㄖ幸粋€(gè)中間過渡環(huán)節(jié),其主要作用是對是對OOA分析的結(jié)果作進(jìn)一步的規(guī)范化整理,以便能夠被分析的結(jié)果作進(jìn)一步的規(guī)范化整理,以便能夠被OOP(面向?qū)ο缶幊蹋┲苯討?yīng)用。(面向?qū)ο缶幊蹋┲苯討?yīng)用。 【示例示例】看下面一段內(nèi)容:看下面一段內(nèi)容: 東北人都是活雷鋒。東北人都是

5、活雷鋒。v 第一步:如何采用面向?qū)ο蠓治龅姆椒▉矸治??(面向?qū)ο蠓治觯┑谝徊剑喝绾尾捎妹嫦驅(qū)ο蠓治龅姆椒▉矸治觯浚嫦驅(qū)ο蠓治觯?首先這句話中都包含了哪些概念?首先這句話中都包含了哪些概念? (1)采用面向?qū)ο蟮乃枷敕治觯梢猿槿〕觯海┎捎妹嫦驅(qū)ο蟮乃枷敕治?,可以抽取出:東北人東北人 活雷鋒活雷鋒v 第二步:如何采用面向?qū)ο髞碓O(shè)計(jì)上面分析出的結(jié)果(面向?qū)ο笤O(shè)計(jì))第二步:如何采用面向?qū)ο髞碓O(shè)計(jì)上面分析出的結(jié)果(面向?qū)ο笤O(shè)計(jì)) 東北人都是活雷鋒東北人都是活雷鋒 這是一種什么關(guān)系?這是一種什么關(guān)系? 這可能是一種繼承關(guān)系:東北人都是人,東北人都是活雷鋒這可能是一種繼承關(guān)系:東北人都是人,東北人都是活

6、雷鋒v 第三步:如何實(shí)現(xiàn)上面的設(shè)計(jì)(實(shí)現(xiàn))第三步:如何實(shí)現(xiàn)上面的設(shè)計(jì)(實(shí)現(xiàn)) 考慮采用什么語言來實(shí)現(xiàn),如果采用考慮采用什么語言來實(shí)現(xiàn),如果采用Java語言,如何設(shè)計(jì)這些類,語言,如何設(shè)計(jì)這些類,如何實(shí)現(xiàn)這些類之間的繼承關(guān)系,這就需要進(jìn)行進(jìn)一步的設(shè)計(jì)類的代碼。如何實(shí)現(xiàn)這些類之間的繼承關(guān)系,這就需要進(jìn)行進(jìn)一步的設(shè)計(jì)類的代碼。 什么是建模什么是建模 建模就是給現(xiàn)實(shí)世界中的這些事物,建立一種能夠被人理解的一些模型。這里的模型可建模就是給現(xiàn)實(shí)世界中的這些事物,建立一種能夠被人理解的一些模型。這里的模型可以有很多種,例如:需求模型、概念模型等。模型其實(shí)就是我們的想法的具體表現(xiàn)。以有很多種,例如:需求模型、

7、概念模型等。模型其實(shí)就是我們的想法的具體表現(xiàn)。 例如:從哈爾濱學(xué)院去遠(yuǎn)大購物中心如何走?我們可以建立如下模型,通過模型我們就例如:從哈爾濱學(xué)院去遠(yuǎn)大購物中心如何走?我們可以建立如下模型,通過模型我們就可以知道如何走了??梢灾廊绾巫吡恕?(1)用文字來描述出這個(gè)路徑(走法)模型)用文字來描述出這個(gè)路徑(走法)模型 可以先走到學(xué)府路,然后在服裝城站乘坐可以先走到學(xué)府路,然后在服裝城站乘坐104路公交車,然后在博物館站下車,過道后路公交車,然后在博物館站下車,過道后,步行至遠(yuǎn)大購物中心。,步行至遠(yuǎn)大購物中心。 通過上面的描述,我們大致了解了去遠(yuǎn)大購物中心的走法,但是如果把上面的這段文字通過上面的描

8、述,我們大致了解了去遠(yuǎn)大購物中心的走法,但是如果把上面的這段文字描述(即:用文字描述的這種模型)給一個(gè)不認(rèn)識(shí)字的人看,他是否能到達(dá)目的地呢?顯然描述(即:用文字描述的這種模型)給一個(gè)不認(rèn)識(shí)字的人看,他是否能到達(dá)目的地呢?顯然答案是否定的,這就需要我們再從另一個(gè)方面(角度)來表達(dá)上面的描述(即:從另一個(gè)方答案是否定的,這就需要我們再從另一個(gè)方面(角度)來表達(dá)上面的描述(即:從另一個(gè)方面(角度)來建立上面如何走的模型)面(角度)來建立上面如何走的模型) (2)使用圖形來描述這個(gè)路徑(走法)模型)使用圖形來描述這個(gè)路徑(走法)模型 我們可以在紙上將上面提到的走法,畫成圖,在圖中就會(huì)出現(xiàn)各種線和圖形,

9、為了讓別我們可以在紙上將上面提到的走法,畫成圖,在圖中就會(huì)出現(xiàn)各種線和圖形,為了讓別人看明白這張圖這時(shí)就需要明確定義這條線是什么意思,這個(gè)圖形是什么意思。人看明白這張圖這時(shí)就需要明確定義這條線是什么意思,這個(gè)圖形是什么意思。 通過上面的舉例,可以看出有時(shí)為了表達(dá)同一件事,我們可以從不同的角度建立不同的通過上面的舉例,可以看出有時(shí)為了表達(dá)同一件事,我們可以從不同的角度建立不同的模型來進(jìn)行描述。模型來進(jìn)行描述。通過軟件系統(tǒng)來看模型通過軟件系統(tǒng)來看模型 一個(gè)軟件系統(tǒng)通常也是較為復(fù)雜的,如果我們要想充分了解一個(gè)軟件系統(tǒng),就一個(gè)軟件系統(tǒng)通常也是較為復(fù)雜的,如果我們要想充分了解一個(gè)軟件系統(tǒng),就需要從不同的

10、方面去描述它。首先我們要從需求的方面來了解即:這個(gè)軟件是干什需要從不同的方面去描述它。首先我們要從需求的方面來了解即:這個(gè)軟件是干什么的,都有什么樣的功能,開發(fā)出來以后誰來用它等等,這就需要我們建立需求模么的,都有什么樣的功能,開發(fā)出來以后誰來用它等等,這就需要我們建立需求模型;有了需求以后,我們就要分析這些需求,從而得出一個(gè)概念模型,在概念模型型;有了需求以后,我們就要分析這些需求,從而得出一個(gè)概念模型,在概念模型中主要描述的就是概念模型中的這些模型之間的關(guān)聯(lián)關(guān)系;有了概念模型以后我們中主要描述的就是概念模型中的這些模型之間的關(guān)聯(lián)關(guān)系;有了概念模型以后我們就可以對這些概念模型進(jìn)行實(shí)現(xiàn),在實(shí)現(xiàn)

11、階段我們就會(huì)選取采用什么結(jié)構(gòu)進(jìn)行開發(fā)就可以對這些概念模型進(jìn)行實(shí)現(xiàn),在實(shí)現(xiàn)階段我們就會(huì)選取采用什么結(jié)構(gòu)進(jìn)行開發(fā),是,是C/S結(jié)構(gòu)還是結(jié)構(gòu)還是B/S結(jié)構(gòu),采用哪種軟件技術(shù),用什么架構(gòu)搭建程序,例如:結(jié)構(gòu),采用哪種軟件技術(shù),用什么架構(gòu)搭建程序,例如:采用采用Java程序和程序和SSH技術(shù),即:選擇架構(gòu),選擇技術(shù)。接下來我們就要真正的設(shè)技術(shù),即:選擇架構(gòu),選擇技術(shù)。接下來我們就要真正的設(shè)計(jì)完成這個(gè)軟件系統(tǒng)需要哪些類、哪些頁面等等。計(jì)完成這個(gè)軟件系統(tǒng)需要哪些類、哪些頁面等等。 可以看出開發(fā)一個(gè)軟件系統(tǒng)就是需要這樣一步一步去分析它,這每一個(gè)步驟就可以看出開發(fā)一個(gè)軟件系統(tǒng)就是需要這樣一步一步去分析它,這每一

12、個(gè)步驟就相當(dāng)于我們在從不同的角度去觀察這個(gè)軟件系統(tǒng),在每一個(gè)角度里都會(huì)有與之匹配相當(dāng)于我們在從不同的角度去觀察這個(gè)軟件系統(tǒng),在每一個(gè)角度里都會(huì)有與之匹配的模型存在,因此如果要完整清晰地開發(fā)一個(gè)軟件系統(tǒng)就需要從不同的角度去分析的模型存在,因此如果要完整清晰地開發(fā)一個(gè)軟件系統(tǒng)就需要從不同的角度去分析它、設(shè)計(jì)它,從而得到多個(gè)模型,所以一個(gè)軟件系統(tǒng)會(huì)存在多個(gè)模型,正是通過這它、設(shè)計(jì)它,從而得到多個(gè)模型,所以一個(gè)軟件系統(tǒng)會(huì)存在多個(gè)模型,正是通過這一系列的模型將一個(gè)完整的軟件系統(tǒng)更好地呈現(xiàn)在用戶面前。一系列的模型將一個(gè)完整的軟件系統(tǒng)更好地呈現(xiàn)在用戶面前。 在實(shí)際的開發(fā)中,無論是需求分析階段還是分析設(shè)計(jì)階段

13、以及后來的實(shí)現(xiàn)階在實(shí)際的開發(fā)中,無論是需求分析階段還是分析設(shè)計(jì)階段以及后來的實(shí)現(xiàn)階段,它們都被劃分成兩個(gè)大的方面:段,它們都被劃分成兩個(gè)大的方面:v 靜態(tài)方面建模靜態(tài)方面建模 靜態(tài)方面建模是指需求模型、概念模型等,即靜態(tài)方面建模描述的就是一個(gè)靜態(tài)方面建模是指需求模型、概念模型等,即靜態(tài)方面建模描述的就是一個(gè)軟件系統(tǒng)都有什么功能、都有什么概念(領(lǐng)域?qū)ο螅┮约斑@些概念之間的關(guān)聯(lián)關(guān)系軟件系統(tǒng)都有什么功能、都有什么概念(領(lǐng)域?qū)ο螅┮约斑@些概念之間的關(guān)聯(lián)關(guān)系。v 動(dòng)態(tài)方面建模動(dòng)態(tài)方面建模 動(dòng)態(tài)方面建模指的是軟件系統(tǒng)中對象之間是如何交互的。例如:采用動(dòng)態(tài)方面建模指的是軟件系統(tǒng)中對象之間是如何交互的。例如:

14、采用SSH框框架,架,Action類調(diào)用業(yè)務(wù)邏輯層,業(yè)務(wù)邏輯層調(diào)用數(shù)據(jù)訪問層,這種對象之間的調(diào)類調(diào)用業(yè)務(wù)邏輯層,業(yè)務(wù)邏輯層調(diào)用數(shù)據(jù)訪問層,這種對象之間的調(diào)用就是動(dòng)態(tài)建模。用就是動(dòng)態(tài)建模。 綜上所述,軟件建模總共包括兩個(gè)方面:靜態(tài)方面(建模)和動(dòng)態(tài)方面(建模)綜上所述,軟件建??偣舶▋蓚€(gè)方面:靜態(tài)方面(建模)和動(dòng)態(tài)方面(建模) 因此分析一個(gè)軟件系統(tǒng)我們要從這兩個(gè)方面共同來描述這個(gè)軟件系統(tǒng)。因此分析一個(gè)軟件系統(tǒng)我們要從這兩個(gè)方面共同來描述這個(gè)軟件系統(tǒng)。UP與瀑布模型與瀑布模型v 什么是什么是UP? 軟件開發(fā)過程(軟件開發(fā)過程(Software Development Proess)描述了構(gòu)造、部

15、署以及維)描述了構(gòu)造、部署以及維護(hù)軟件的方式。統(tǒng)一過程(護(hù)軟件的方式。統(tǒng)一過程(The Unified Software Development Process,UP)是一種流行的構(gòu)造面向?qū)ο笙到y(tǒng)的迭代軟件開發(fā)過程,這就是)是一種流行的構(gòu)造面向?qū)ο笙到y(tǒng)的迭代軟件開發(fā)過程,這就是UP。特別是統(tǒng)一。特別是統(tǒng)一軟件過程(軟件過程(Rational Unified Process,RUP)是對統(tǒng)一過程的詳細(xì)精化,并且已)是對統(tǒng)一過程的詳細(xì)精化,并且已經(jīng)被廣泛采納。經(jīng)被廣泛采納。v UP中主要包括中主要包括3個(gè)重要概念個(gè)重要概念以架構(gòu)為中心:構(gòu)架就是各種模型,在整個(gè)過程中,需求有需求模型,分析有分析模型

16、,設(shè)計(jì)有設(shè)計(jì)模型,測試有測試模型,這些模型就構(gòu)成了軟件的整體構(gòu)架用例驅(qū)動(dòng):用例就是我們要開發(fā)的這個(gè)軟件的目標(biāo),要確定用戶使用這個(gè)軟件究竟要干什么,他如何用,用它來促進(jìn)整個(gè)過程。迭代和增量式開發(fā):在一開始的時(shí)候,在了解了整個(gè)軟件的整體需求后,從中挑出最重要,最不可缺少的20%左右的需求建立用例模型,然后進(jìn)行詳細(xì)分析,待這20%需求完成后就會(huì)做出一個(gè)基本成型的產(chǎn)品,然后再采用用例驅(qū)動(dòng)模型分析剩余的需求,逐一細(xì)化添加到已有的系統(tǒng)中,不斷循環(huán)往復(fù)將所有需求全部完成,至此一個(gè)完整的軟件系統(tǒng)開發(fā)完畢。v UP也可以引進(jìn)其它方法中的有用的實(shí)踐,比如極限編程(也可以引進(jìn)其它方法中的有用的實(shí)踐,比如極限編程(E

17、xtreme Programming,XP)。)。XP中的測試驅(qū)動(dòng)開發(fā)(中的測試驅(qū)動(dòng)開發(fā)(test-driven development)、重構(gòu)()、重構(gòu)(refactoring)和持續(xù)集)和持續(xù)集成(成(continuous integration)等。)等。v 幾點(diǎn)說明:幾點(diǎn)說明: 極限編程:主要重視溝通與反饋:包括項(xiàng)目小組與客戶之間的溝通,項(xiàng)目小組內(nèi)部溝通,其實(shí)就是不斷的溝通,通過溝通不斷修改設(shè)計(jì)方案,最終實(shí)現(xiàn)全部系統(tǒng)功能。 持續(xù)集成:指的是一開始先開發(fā)出一個(gè)最核心的小系統(tǒng),然后在這個(gè)基礎(chǔ)上逐步將后續(xù)新的需求增加至現(xiàn)有系統(tǒng)中,這樣在這個(gè)過程中客戶可以參與進(jìn)來,及時(shí)提出問題,及時(shí)修正設(shè)計(jì)方

18、案,問題提出的越早越好迭代和增量式開發(fā)迭代和增量式開發(fā)這個(gè)階段只分析整個(gè)這個(gè)階段只分析整個(gè)項(xiàng)目中最為重要的項(xiàng)目中最為重要的20%左右的需求左右的需求參見下方注釋參見下方注釋側(cè)重于測試和部署階段側(cè)重于測試和部署階段側(cè)重于代碼實(shí)現(xiàn)階段側(cè)重于代碼實(shí)現(xiàn)階段不同的階段都是采用迭代逐步完不同的階段都是采用迭代逐步完成,最后將完成整個(gè)系統(tǒng)成,最后將完成整個(gè)系統(tǒng)什么是瀑布模型開發(fā)什么是瀑布模型開發(fā)v 試圖在編程這前(詳細(xì))定義所有或大部分需求試圖在編程這前(詳細(xì))定義所有或大部分需求v 通常于編程之前創(chuàng)建出完整的設(shè)計(jì)通常于編程之前創(chuàng)建出完整的設(shè)計(jì)v 試圖在開始前定義試圖在開始前定義“可靠的可靠的”計(jì)劃或時(shí)間表

19、計(jì)劃或時(shí)間表瀑布模型開發(fā)不適用于需求變化瀑布模型開發(fā)不適用于需求變化的情況!的情況!為什么要使用為什么要使用UMLv 如何來描述一架飛機(jī)?如何來描述一架飛機(jī)? 計(jì)算機(jī)圖形學(xué),名言:一幅圖頂?shù)蒙弦磺€(gè)字計(jì)算機(jī)圖形學(xué),名言:一幅圖頂?shù)蒙弦磺€(gè)字UML簡介簡介v 標(biāo)準(zhǔn)定義標(biāo)準(zhǔn)定義 統(tǒng)一建模語言(統(tǒng)一建模語言(Unified Modeling Language,UML)是描述)是描述、構(gòu)造和文檔化系統(tǒng)制品的、構(gòu)造和文檔化系統(tǒng)制品的可視化可視化語言。語言。v UML是可視化語言是可視化語言 UML是圖形化語言 圖形便于交流(一幅圖抵上千文字) 用用UML實(shí)際上就是在寫文檔,只不過這個(gè)文檔是用圖形寫出來的

20、。實(shí)際上就是在寫文檔,只不過這個(gè)文檔是用圖形寫出來的。v UML的定義包括的定義包括UML語義和語義和UML表示法兩個(gè)部分。表示法兩個(gè)部分。 UML語義:UML對語義的描述使開發(fā)者能在語義上取得一致認(rèn)識(shí),消除了因人而異的表達(dá)方法所造成的影響。 UML表示法:定義了UML符號(hào)的表示方法,為開發(fā)者或開發(fā)工具使用這些圖形符號(hào)和文本語法為系統(tǒng)建模提供了標(biāo)準(zhǔn)。UML發(fā)展發(fā)展v 應(yīng)用應(yīng)用UML的三種方式的三種方式 草圖 典型特征,可以隨時(shí)丟棄,但是為什么還要畫呢?因?yàn)樵诜治鰰r(shí)會(huì)有各種想法,可以先畫出草圖,然后進(jìn)行討論,這樣較為節(jié)省時(shí)間,最后確定一個(gè)基本完善的圖。在這個(gè)期間會(huì)有一些圖被丟棄,如果這些圖畫的比

21、較全面,則會(huì)浪費(fèi)很多的時(shí)間。草圖主要是用來進(jìn)行溝通使用的。 藍(lán)圖 藍(lán)圖是對草圖的進(jìn)一步細(xì)化,但是需要指出的是,在需求變化頻繁的情況下,當(dāng)原始的需求所對應(yīng)的藍(lán)圖已經(jīng)被確定,這種情況下,就要求藍(lán)圖不要繪制的過于精細(xì),否則需要一旦變化,以前所繪制的藍(lán)圖就會(huì)全部作廢,這也從另一個(gè)角度說明了UML怎么用,我們應(yīng)該大概簡略繪制,不要面面俱到。 編程語言 通常不把UML看作是一種編程語言,之所以把它稱為語言,是因?yàn)樵赨ML中有類的概念、有接口的概念等,但是UML本身并沒有相應(yīng)的編程語句,所以嚴(yán)格意義上來說,UML不是一門編程語言,而為了表述方便,把它稱之為UML語言罷了。注:設(shè)計(jì)和開發(fā)在實(shí)際應(yīng)用過程中是有一

22、定偏差的,有時(shí)藍(lán)圖也可以在軟件系統(tǒng)全部完成后再進(jìn)行后期繪注:設(shè)計(jì)和開發(fā)在實(shí)際應(yīng)用過程中是有一定偏差的,有時(shí)藍(lán)圖也可以在軟件系統(tǒng)全部完成后再進(jìn)行后期繪制,在開發(fā)前期只繪制相應(yīng)的草圖。這樣做的目的是當(dāng)軟件系統(tǒng)開發(fā)完畢后,相對比較穩(wěn)定,這樣對制,在開發(fā)前期只繪制相應(yīng)的草圖。這樣做的目的是當(dāng)軟件系統(tǒng)開發(fā)完畢后,相對比較穩(wěn)定,這樣對應(yīng)的應(yīng)的UML圖也確定下來了,將來圖也確定下來了,將來UML圖為后續(xù)的維護(hù)人員提供良好幫助,維護(hù)人員可以通過圖為后續(xù)的維護(hù)人員提供良好幫助,維護(hù)人員可以通過UML圖圖快速了解整個(gè)軟件系統(tǒng)??焖倭私庹麄€(gè)軟件系統(tǒng)。 UML作用作用 UML是以后工作中用到的一種工具,是面向?qū)ο笫且?/p>

23、后工作中用到的一種工具,是面向?qū)ο笏枷敕治龊驮O(shè)計(jì)所使用的工具。在軟件開發(fā)中最重要的思想分析和設(shè)計(jì)所使用的工具。在軟件開發(fā)中最重要的是想法(即:是想法(即:OOAD思想),而思想),而UML不過是我們想法不過是我們想法的一種表達(dá)工具。想法(即:的一種表達(dá)工具。想法(即:OOAD思想)才是最重思想)才是最重要的,如果沒想法(即:要的,如果沒想法(即:OOAD思想)那么思想)那么UML也就也就沒有用武之地了。沒有用武之地了。 UML是我們想法的表達(dá)工具,在學(xué)習(xí)時(shí)就是要學(xué)是我們想法的表達(dá)工具,在學(xué)習(xí)時(shí)就是要學(xué)習(xí)習(xí)UML的各種表示法,這種不同的表示法是通過不同的各種表示法,這種不同的表示法是通過不同的圖

24、形來展現(xiàn)的。的圖形來展現(xiàn)的。學(xué)習(xí)學(xué)習(xí)UML的要素的要素v 表示法表示法 圖形圖形 這是我們后續(xù)學(xué)習(xí)的重點(diǎn),我們就是要學(xué)習(xí)這是我們后續(xù)學(xué)習(xí)的重點(diǎn),我們就是要學(xué)習(xí)UML中中各種圖形的表示方法。各種圖形的表示方法。v 工具工具 繪制繪制UML圖形的軟件工具圖形的軟件工具 繪制繪制UML的工具軟件,它是的工具軟件,它是UML知識(shí)體系中最不重知識(shí)體系中最不重要的,因?yàn)槔L制要的,因?yàn)槔L制UML圖形的工具有很多種,例如:圖形的工具有很多種,例如:Ration Rose。vUML模型圖的構(gòu)成模型圖的構(gòu)成 事物(Things):UML模型中最基本的構(gòu)成元素,是具有代表性的成分的抽象 關(guān)系(Relationshi

25、ps):關(guān)系把事物緊密聯(lián)系在一起 圖(Diagrams ):圖是事物和關(guān)系的可視化表示UML事物事物UML事物包含事物包含4種具體事物:種具體事物:v構(gòu)件事物:構(gòu)件事物: UML模型的靜態(tài)部分,描述概念或物理元素模型的靜態(tài)部分,描述概念或物理元素構(gòu)件事物包括以下幾種:類:具有相同屬性相同操作 相同關(guān)系相同語義的對象的描述接口:描述元素的外部可見行為,即服務(wù)集合的定義說明協(xié)作:描述了一組事物間的相互作用的集合用例:代表一個(gè)系統(tǒng)或系統(tǒng)的一部分行為,是一組動(dòng)作序列的集合構(gòu)件:系統(tǒng)中物理存在,可替換的部件節(jié)點(diǎn):運(yùn)行時(shí)存在的物理元素另外:參與者、信號(hào)應(yīng)用、文檔庫、頁表等都是上述基本事物的變體v行為事物:

26、行為事物:UML模型圖的動(dòng)態(tài)部分,描述跨越空間和時(shí)間的行為模型圖的動(dòng)態(tài)部分,描述跨越空間和時(shí)間的行為交互:實(shí)現(xiàn)某功能的一組構(gòu)件事物之間的消息的集合,涉及消息、動(dòng)作序列、鏈接狀態(tài)機(jī):描述事物或交互在生命周期內(nèi)響應(yīng)事件所經(jīng)歷的狀態(tài)序列v分組事物:分組事物: UML模型圖的組織部分,描述事物的組織結(jié)構(gòu)模型圖的組織部分,描述事物的組織結(jié)構(gòu)包:把元素組織成組的機(jī)制子系統(tǒng)v注釋事物:注釋事物: UML模型的解釋部分,用來對模型中的元素進(jìn)行說明、解釋模型的解釋部分,用來對模型中的元素進(jìn)行說明、解釋注解:對元素進(jìn)行約束或解釋的簡單符號(hào)UML關(guān)系關(guān)系v UML關(guān)系關(guān)系 依賴 依賴(dependency)是兩個(gè)事

27、物之間的語義關(guān)系,其中一個(gè)事物(獨(dú)立事物)發(fā)生變化,會(huì)影響到另一個(gè)事物(依賴事物)的語義。 關(guān)聯(lián) 關(guān)聯(lián)(association)是一種結(jié)構(gòu)關(guān)系,它指明一個(gè)事物的對象與另一個(gè)事物的對象間的聯(lián)系。 關(guān)聯(lián)還包括:聚合與組合 泛化 泛化(generalization)是一種特殊/一般的關(guān)系。也可以看作是常說的繼承關(guān)系。 實(shí)現(xiàn) 就是一個(gè)類實(shí)現(xiàn)某個(gè)或某幾個(gè)接口,也可以說是對某一種或某幾種規(guī)范(接口)的細(xì)節(jié)實(shí)現(xiàn)。UML圖(圖(diagram)v 用例圖(用例圖(Use Case Diagram)v 類圖(類圖(Class Diagram)v 對象圖(對象圖(Object Diagram)v 順序圖(順序圖(

28、Sequence Diagram)v 狀態(tài)圖(狀態(tài)圖(Statechart Diagram)v 活動(dòng)圖(活動(dòng)圖(Activity Diagram)v 協(xié)作圖(協(xié)作圖(Collaboration Diagram)v 構(gòu)件圖(構(gòu)件圖(Component Diagram)v 部署圖(部署圖(Deployment Diagram)類圖(類圖(Class Diagram) 類圖描述系統(tǒng)中類的靜態(tài)結(jié)構(gòu)。不僅定義系統(tǒng)中的類,類圖描述系統(tǒng)中類的靜態(tài)結(jié)構(gòu)。不僅定義系統(tǒng)中的類,還還表示類之間的聯(lián)系表示類之間的聯(lián)系,如如:關(guān)聯(lián)、依賴、聚合等,也包括類的內(nèi)部結(jié)構(gòu)關(guān)聯(lián)、依賴、聚合等,也包括類的內(nèi)部結(jié)構(gòu)(類的屬性和操作類

29、的屬性和操作)。類圖)。類圖能夠讓能夠讓我們在正確編寫代碼以前對系統(tǒng)有一個(gè)全面的認(rèn)識(shí)。類圖是一種模型類型,確切的我們在正確編寫代碼以前對系統(tǒng)有一個(gè)全面的認(rèn)識(shí)。類圖是一種模型類型,確切的說,是一種靜態(tài)模型類型。類圖表示類、接口和它們之間的協(xié)作關(guān)系。說,是一種靜態(tài)模型類型。類圖表示類、接口和它們之間的協(xié)作關(guān)系。 類圖是以類為中心來組織的,類圖中的其他元素或?qū)儆谀硞€(gè)類或與類相關(guān)聯(lián)。類圖是以類為中心來組織的,類圖中的其他元素或?qū)儆谀硞€(gè)類或與類相關(guān)聯(lián)。示例:示例:對象圖(對象圖(Object Diagram) 對象圖是類圖的實(shí)例,幾乎使用與類圖完全相同的標(biāo)識(shí)。他們對象圖是類圖的實(shí)例,幾乎使用與類圖完全相

30、同的標(biāo)識(shí)。他們的不同點(diǎn)在于對象圖顯示類的多個(gè)對象實(shí)例,而不是實(shí)際的類。的不同點(diǎn)在于對象圖顯示類的多個(gè)對象實(shí)例,而不是實(shí)際的類。 它描述的不是類之間的關(guān)系,而是對象之間的關(guān)系。它描述的不是類之間的關(guān)系,而是對象之間的關(guān)系。示例:示例: 用例圖(用例圖(Use Case Diagram) 用例圖是用例圖是從用戶角度描述系統(tǒng)功能,從用戶角度描述系統(tǒng)功能, 是用戶所能觀察到的系統(tǒng)功能的模型圖,是用戶所能觀察到的系統(tǒng)功能的模型圖,用例是系統(tǒng)中的一個(gè)功能單元。用例是系統(tǒng)中的一個(gè)功能單元。 用例圖描述了角色以及角色與用例之間的連接關(guān)系。說明的是誰要使用系統(tǒng),用例圖描述了角色以及角色與用例之間的連接關(guān)系。說明

31、的是誰要使用系統(tǒng),以及他們使用該系統(tǒng)可以做些什么。一個(gè)用例圖包含了多個(gè)模型元素,如:系統(tǒng)、以及他們使用該系統(tǒng)可以做些什么。一個(gè)用例圖包含了多個(gè)模型元素,如:系統(tǒng)、參與者和用例,并且顯示了這些元素之間的各種關(guān)系,如:泛化、關(guān)聯(lián)和依賴。參與者和用例,并且顯示了這些元素之間的各種關(guān)系,如:泛化、關(guān)聯(lián)和依賴。示例:示例:順序圖(序列圖)(順序圖(序列圖)(Sequence Diagram) 順序圖顯示對象之間的動(dòng)態(tài)合作關(guān)系,它強(qiáng)調(diào)對象之間消息發(fā)送的順序,同時(shí)顯示對象順序圖顯示對象之間的動(dòng)態(tài)合作關(guān)系,它強(qiáng)調(diào)對象之間消息發(fā)送的順序,同時(shí)顯示對象之間的交互之間的交互,即:,即:順序圖在用例圖的基礎(chǔ)上進(jìn)一步用

32、來顯示參與者如何以一系列順序的步驟順序圖在用例圖的基礎(chǔ)上進(jìn)一步用來顯示參與者如何以一系列順序的步驟與系統(tǒng)的對象交互的模型。順序圖可以用來展示對象之間是如何進(jìn)行交互的。順序圖將顯示與系統(tǒng)的對象交互的模型。順序圖可以用來展示對象之間是如何進(jìn)行交互的。順序圖將顯示的重點(diǎn)放在消息序列(方法調(diào)用)上,即強(qiáng)調(diào)消息是如何在對象之間被發(fā)送和接收的。的重點(diǎn)放在消息序列(方法調(diào)用)上,即強(qiáng)調(diào)消息是如何在對象之間被發(fā)送和接收的。 順序圖的一個(gè)用途是用來表示用例中的行為順序。當(dāng)執(zhí)行一個(gè)用例行為時(shí),順序圖中的順序圖的一個(gè)用途是用來表示用例中的行為順序。當(dāng)執(zhí)行一個(gè)用例行為時(shí),順序圖中的每條消息對應(yīng)了一個(gè)類操作或引起狀態(tài)轉(zhuǎn)

33、換的觸發(fā)事件每條消息對應(yīng)了一個(gè)類操作或引起狀態(tài)轉(zhuǎn)換的觸發(fā)事件 。示例:示例:活動(dòng)圖(活動(dòng)圖(Activity Diagram) 活動(dòng)圖是狀態(tài)圖的一個(gè)變體,用來描述執(zhí)行算法的工作流程中涉及的活動(dòng),活動(dòng)圖活動(dòng)圖是狀態(tài)圖的一個(gè)變體,用來描述執(zhí)行算法的工作流程中涉及的活動(dòng),活動(dòng)圖描描述了用例要求所要進(jìn)行的活動(dòng)(工作流程),以及活動(dòng)間的約束關(guān)系,有利于識(shí)別并行活述了用例要求所要進(jìn)行的活動(dòng)(工作流程),以及活動(dòng)間的約束關(guān)系,有利于識(shí)別并行活動(dòng)。能夠演示出系統(tǒng)中哪些地方存在功能,以及這些功能和系統(tǒng)中其他組件的功能如何共動(dòng)。能夠演示出系統(tǒng)中哪些地方存在功能,以及這些功能和系統(tǒng)中其他組件的功能如何共同滿足前面使

34、用用例圖建模的商務(wù)(業(yè)務(wù))需求。同滿足前面使用用例圖建模的商務(wù)(業(yè)務(wù))需求。 活動(dòng)圖描述了一組順序的或并發(fā)的活動(dòng),活動(dòng)圖描述了一組順序的或并發(fā)的活動(dòng),活動(dòng)圖相當(dāng)于程序設(shè)計(jì)的流程圖?;顒?dòng)圖相當(dāng)于程序設(shè)計(jì)的流程圖。示例:示例:狀態(tài)圖(狀態(tài)圖(Statechart Diagram) 狀態(tài)圖是一個(gè)類對象可能經(jīng)歷的所有歷程的模型圖,狀態(tài)圖狀態(tài)圖是一個(gè)類對象可能經(jīng)歷的所有歷程的模型圖,狀態(tài)圖描述了類的對象所有可能描述了類的對象所有可能經(jīng)歷經(jīng)歷的狀態(tài),以及事件發(fā)生時(shí)狀態(tài)的轉(zhuǎn)移條件??梢圆东@對象、子系統(tǒng)和系統(tǒng)的生命周期的狀態(tài),以及事件發(fā)生時(shí)狀態(tài)的轉(zhuǎn)移條件。可以捕獲對象、子系統(tǒng)和系統(tǒng)的生命周期。他們可以告知一個(gè)

35、對象可以擁有的狀態(tài),并且事件。他們可以告知一個(gè)對象可以擁有的狀態(tài),并且事件(如消息的接收、時(shí)間的流逝、錯(cuò)誤如消息的接收、時(shí)間的流逝、錯(cuò)誤、條件變?yōu)檎娴?、條件變?yōu)檎娴?會(huì)怎么隨著時(shí)間的推移來影響這些狀態(tài)。一個(gè)狀態(tài)圖應(yīng)該連接到所有具會(huì)怎么隨著時(shí)間的推移來影響這些狀態(tài)。一個(gè)狀態(tài)圖應(yīng)該連接到所有具有清晰的可標(biāo)識(shí)狀態(tài)和復(fù)雜行為的類;該圖可以確定類的行為,以及該行為如何根據(jù)當(dāng)前有清晰的可標(biāo)識(shí)狀態(tài)和復(fù)雜行為的類;該圖可以確定類的行為,以及該行為如何根據(jù)當(dāng)前的狀態(tài)變化,也可以展示哪些事件將會(huì)改變類的對象的狀態(tài)。狀態(tài)圖是對類圖的補(bǔ)充。的狀態(tài)變化,也可以展示哪些事件將會(huì)改變類的對象的狀態(tài)。狀態(tài)圖是對類圖的補(bǔ)充。

36、狀態(tài)圖由對象的各個(gè)狀態(tài)和連接這些狀態(tài)的轉(zhuǎn)換組成。狀態(tài)圖由對象的各個(gè)狀態(tài)和連接這些狀態(tài)的轉(zhuǎn)換組成。示例:示例: Available Locked Sold 初始狀態(tài) assigned to subscription lock time out unlock buy 狀態(tài) exchange 轉(zhuǎn)換 觸發(fā)器事件 協(xié)作圖(協(xié)作圖(Collaboration Diagram) 協(xié)作圖描述對象間的協(xié)作關(guān)系,協(xié)作圖協(xié)作圖描述對象間的協(xié)作關(guān)系,協(xié)作圖與與順序圖相似,顯示對象間的動(dòng)態(tài)合作關(guān)系。除順序圖相似,顯示對象間的動(dòng)態(tài)合作關(guān)系。除顯示信息交換外,協(xié)作圖還顯示對象以及它們之間的關(guān)系顯示信息交換外,協(xié)作圖還顯示對

37、象以及它們之間的關(guān)系。協(xié)作圖可以看成是類圖和順序協(xié)作圖可以看成是類圖和順序圖的交集,協(xié)作圖建模對象或者角色,以及它們彼此之間是如何通信的。如果強(qiáng)調(diào)時(shí)間和圖的交集,協(xié)作圖建模對象或者角色,以及它們彼此之間是如何通信的。如果強(qiáng)調(diào)時(shí)間和順序,則使用順序圖;如果強(qiáng)調(diào)上下級關(guān)系,則選擇協(xié)作圖;這兩種圖(順序圖與協(xié)作圖順序,則使用順序圖;如果強(qiáng)調(diào)上下級關(guān)系,則選擇協(xié)作圖;這兩種圖(順序圖與協(xié)作圖)合稱為交互圖。)合稱為交互圖。 協(xié)作圖的一個(gè)用途是表示一個(gè)類操作的實(shí)現(xiàn)。協(xié)作圖的一個(gè)用途是表示一個(gè)類操作的實(shí)現(xiàn)。示例:示例:構(gòu)件圖(構(gòu)件圖(Component Diagram) 構(gòu)件圖(組件圖)為系統(tǒng)的構(gòu)件建模型

38、構(gòu)件圖(組件圖)為系統(tǒng)的構(gòu)件建模型構(gòu)件即構(gòu)造應(yīng)用的軟件單構(gòu)件即構(gòu)造應(yīng)用的軟件單元元還包括各構(gòu)件之間的依賴關(guān)系,以便通過這些依賴關(guān)系來估計(jì)對系還包括各構(gòu)件之間的依賴關(guān)系,以便通過這些依賴關(guān)系來估計(jì)對系統(tǒng)構(gòu)件的修改給系統(tǒng)可能帶來的影響。統(tǒng)構(gòu)件的修改給系統(tǒng)可能帶來的影響。 構(gòu)件圖主要用來建模軟件的組件及其相互之間的關(guān)系,這些圖由構(gòu)構(gòu)件圖主要用來建模軟件的組件及其相互之間的關(guān)系,這些圖由構(gòu)件標(biāo)記符和構(gòu)件之間的關(guān)系構(gòu)成。在組件圖中,構(gòu)件時(shí)軟件單個(gè)組成部件標(biāo)記符和構(gòu)件之間的關(guān)系構(gòu)成。在組件圖中,構(gòu)件時(shí)軟件單個(gè)組成部分,它可以是一個(gè)文件,產(chǎn)品、可執(zhí)行文件和腳本等。分,它可以是一個(gè)文件,產(chǎn)品、可執(zhí)行文件和腳本

39、等。示例:示例: 部署圖(部署圖(Deployment Diagram) 部署圖是用來建模系統(tǒng)的物理部署。例如計(jì)算機(jī)和設(shè)備,以及它們部署圖是用來建模系統(tǒng)的物理部署。例如計(jì)算機(jī)和設(shè)備,以及它們之間是如何連接的。部署圖的使用者是開發(fā)人員、系統(tǒng)集成人員和測試之間是如何連接的。部署圖的使用者是開發(fā)人員、系統(tǒng)集成人員和測試人員。部署圖用于表示一組物理結(jié)點(diǎn)的集合及結(jié)點(diǎn)間的相互關(guān)系,從而人員。部署圖用于表示一組物理結(jié)點(diǎn)的集合及結(jié)點(diǎn)間的相互關(guān)系,從而建立了系統(tǒng)物理層面的模型。建立了系統(tǒng)物理層面的模型。 示例:示例:九大類型圖應(yīng)用領(lǐng)域九大類型圖應(yīng)用領(lǐng)域v 側(cè)重點(diǎn)不同側(cè)重點(diǎn)不同 用例圖:側(cè)重描述用戶需求, 類圖:

40、側(cè)重描述系統(tǒng)具體實(shí)現(xiàn); v 描述的角度(方面)不同描述的角度(方面)不同 類圖:描述的是系統(tǒng)的結(jié)構(gòu) 順序圖(序列圖):描述的是系統(tǒng)的行為 v 抽象的層次不同抽象的層次不同 構(gòu)件圖(組件):描述系統(tǒng)的模塊結(jié)構(gòu),抽象層次較高, 類圖:是描述具體模塊的結(jié)構(gòu),抽象層次一般, 對象圖:描述了具體的模塊實(shí)現(xiàn),抽象層次較低。 v 可以將這九種模型圖分為三大類:可以將這九種模型圖分為三大類: 結(jié)構(gòu)分類、動(dòng)態(tài)行為和模型管理結(jié)構(gòu)分類、動(dòng)態(tài)行為和模型管理 結(jié)構(gòu)分類包括:用例圖、類圖、對象圖、構(gòu)件圖和部署圖, 動(dòng)態(tài)行為包括:狀態(tài)圖、活動(dòng)圖、順序圖和協(xié)作圖, 模型管理包括:類圖UML各圖之間的關(guān)系各圖之間的關(guān)系v 術(shù)語

41、說明術(shù)語說明 BD:Base Design 基本設(shè)計(jì) DD:Detailed Design 詳細(xì)設(shè)計(jì) FD:Functional Design 功能設(shè)計(jì) 類圖順序圖需求分析需求分析BDFD/DD類圖順序圖用例圖用例文檔用例圖順序圖主要圖之間的關(guān)系主要圖之間的關(guān)系UML視圖視圖 為復(fù)雜的系統(tǒng)建模是一件困難和耗時(shí)的事情,從理想化的角度來說,整個(gè)系為復(fù)雜的系統(tǒng)建模是一件困難和耗時(shí)的事情,從理想化的角度來說,整個(gè)系統(tǒng)像是一張圖畫,這張圖畫清晰而又直觀地描述了系統(tǒng)的結(jié)構(gòu)和功能,既易于理統(tǒng)像是一張圖畫,這張圖畫清晰而又直觀地描述了系統(tǒng)的結(jié)構(gòu)和功能,既易于理解又易于交流。但事實(shí)上,要畫出這張圖畫幾乎是不可能

42、的,因?yàn)橐粋€(gè)簡單的圖解又易于交流。但事實(shí)上,要畫出這張圖畫幾乎是不可能的,因?yàn)橐粋€(gè)簡單的圖畫并不能完全反映出系統(tǒng)中需要的所有信息。畫并不能完全反映出系統(tǒng)中需要的所有信息。 描述一個(gè)系統(tǒng)涉及到該系統(tǒng)的許多方面,比如:功能性方面(它包括靜態(tài)結(jié)描述一個(gè)系統(tǒng)涉及到該系統(tǒng)的許多方面,比如:功能性方面(它包括靜態(tài)結(jié)構(gòu)和動(dòng)態(tài)交互),非功能性方面(定時(shí)需求、可靠性、展開性等)和組織管理方構(gòu)和動(dòng)態(tài)交互),非功能性方面(定時(shí)需求、可靠性、展開性等)和組織管理方面(工作組、映射、代碼模塊等)。完整地描述系統(tǒng),通常的做法是用一組視圖面(工作組、映射、代碼模塊等)。完整地描述系統(tǒng),通常的做法是用一組視圖反映系統(tǒng)的各個(gè)方

43、面,每個(gè)視圖代表完整系統(tǒng)描述中的一個(gè)抽象,顯示這個(gè)系統(tǒng)反映系統(tǒng)的各個(gè)方面,每個(gè)視圖代表完整系統(tǒng)描述中的一個(gè)抽象,顯示這個(gè)系統(tǒng)中的一個(gè)特定的方面,每個(gè)視圖由一組圖構(gòu)成,圖中包含了強(qiáng)調(diào)系統(tǒng)中某一方面中的一個(gè)特定的方面,每個(gè)視圖由一組圖構(gòu)成,圖中包含了強(qiáng)調(diào)系統(tǒng)中某一方面的信息,視圖與視圖之間有時(shí)會(huì)產(chǎn)生輕微的重疊,從而使得一個(gè)圖實(shí)際上可能是的信息,視圖與視圖之間有時(shí)會(huì)產(chǎn)生輕微的重疊,從而使得一個(gè)圖實(shí)際上可能是多個(gè)視圖的一個(gè)組成部分,如果用不同的視圖觀察系統(tǒng),每次只集中地觀察系統(tǒng)多個(gè)視圖的一個(gè)組成部分,如果用不同的視圖觀察系統(tǒng),每次只集中地觀察系統(tǒng)的一個(gè)方面,視圖中的圖應(yīng)該簡單,易于交流且與其他的圖(圖

44、用圖形符號(hào)表示的一個(gè)方面,視圖中的圖應(yīng)該簡單,易于交流且與其他的圖(圖用圖形符號(hào)表示, 圖形符號(hào)代表系統(tǒng)中的模型元素)和視圖的關(guān)聯(lián)關(guān)系。圖形符號(hào)代表系統(tǒng)中的模型元素)和視圖的關(guān)聯(lián)關(guān)系。 UML中的視圖包括:用例視圖(中的視圖包括:用例視圖(Use-case view)、邏輯)、邏輯視圖(視圖(Logical view)、組件視圖()、組件視圖(Component view)、并)、并發(fā)視圖(發(fā)視圖(Concurrency View )、部署視圖()、部署視圖(Deployment View)等五種。)等五種。 要注意區(qū)分要注意區(qū)分圖圖與與視圖視圖的概念:的概念:圖由各種圖形元素組成圖由各種圖形

45、元素組成,用于展,用于展示系統(tǒng)的某個(gè)部分或方面,而示系統(tǒng)的某個(gè)部分或方面,而視圖是由特定的一組圖組成的視圖是由特定的一組圖組成的,某些,某些圖可能同時(shí)從屬于多個(gè)視圖,體現(xiàn)出視圖之間的重疊。圖可能同時(shí)從屬于多個(gè)視圖,體現(xiàn)出視圖之間的重疊。 注:一個(gè)圖可能同時(shí)出現(xiàn)在不同的視圖中,如:順序圖可以出注:一個(gè)圖可能同時(shí)出現(xiàn)在不同的視圖中,如:順序圖可以出現(xiàn)在邏輯視圖中也可以同時(shí)出現(xiàn)在并發(fā)視圖中?,F(xiàn)在邏輯視圖中也可以同時(shí)出現(xiàn)在并發(fā)視圖中。用例視圖用例視圖 用例視圖(用例視圖(Use-case view)用于描述系統(tǒng)應(yīng)該具有的功能)用于描述系統(tǒng)應(yīng)該具有的功能集。從外部角色的視角來展示系統(tǒng)的功能。角色與系統(tǒng)進(jìn)

46、行交互,它集。從外部角色的視角來展示系統(tǒng)的功能。角色與系統(tǒng)進(jìn)行交互,它可以是一個(gè)用戶,也可以是另外一個(gè)系統(tǒng)。用例是對系統(tǒng)功能需求的可以是一個(gè)用戶,也可以是另外一個(gè)系統(tǒng)。用例是對系統(tǒng)功能需求的概括描述,系統(tǒng)的使用被描述為用例視圖中的多個(gè)用例。用例視圖常概括描述,系統(tǒng)的使用被描述為用例視圖中的多個(gè)用例。用例視圖常常通過用例圖進(jìn)行描述,有時(shí)也需要活動(dòng)圖的輔助。用例視圖在系統(tǒng)常通過用例圖進(jìn)行描述,有時(shí)也需要活動(dòng)圖的輔助。用例視圖在系統(tǒng)建模中處于中心地位,是其他視圖的驅(qū)動(dòng)因素。用例視圖在系統(tǒng)需求建模中處于中心地位,是其他視圖的驅(qū)動(dòng)因素。用例視圖在系統(tǒng)需求分析時(shí)起著重要的作用,系統(tǒng)開發(fā)的最終目標(biāo)就是要與用

47、例視圖中的分析時(shí)起著重要的作用,系統(tǒng)開發(fā)的最終目標(biāo)就是要與用例視圖中的描述相一致。描述相一致。 用例視圖主要為用戶、設(shè)計(jì)人員、開發(fā)人員和測試人員而設(shè)置用例視圖主要為用戶、設(shè)計(jì)人員、開發(fā)人員和測試人員而設(shè)置。用例視圖靜態(tài)地描述系統(tǒng)功能,為了動(dòng)態(tài)地觀察系統(tǒng)功能,偶爾也。用例視圖靜態(tài)地描述系統(tǒng)功能,為了動(dòng)態(tài)地觀察系統(tǒng)功能,偶爾也用活動(dòng)圖用活動(dòng)圖 (activity diagram)描述。)描述。邏輯視圖邏輯視圖 用例視圖只考慮系統(tǒng)應(yīng)提供什么樣的功能,對這些功能的內(nèi)部運(yùn)作用例視圖只考慮系統(tǒng)應(yīng)提供什么樣的功能,對這些功能的內(nèi)部運(yùn)作情況不予考慮,為了揭示系統(tǒng)內(nèi)部的設(shè)計(jì)和協(xié)作狀況,要使用邏輯視圖情況不予考慮

48、,為了揭示系統(tǒng)內(nèi)部的設(shè)計(jì)和協(xié)作狀況,要使用邏輯視圖描述系統(tǒng)。描述系統(tǒng)。 邏輯視圖(邏輯視圖(Logical view)用來顯示系統(tǒng)內(nèi)部的功能是怎樣設(shè)計(jì))用來顯示系統(tǒng)內(nèi)部的功能是怎樣設(shè)計(jì)的,它利用系統(tǒng)的靜態(tài)結(jié)構(gòu)和動(dòng)態(tài)行為來刻畫系統(tǒng)功能(即:用系統(tǒng)的的,它利用系統(tǒng)的靜態(tài)結(jié)構(gòu)和動(dòng)態(tài)行為來刻畫系統(tǒng)功能(即:用系統(tǒng)的靜態(tài)結(jié)構(gòu)和動(dòng)態(tài)行為來展示系統(tǒng)內(nèi)部的功能是如何實(shí)現(xiàn)的)。靜態(tài)結(jié)構(gòu)靜態(tài)結(jié)構(gòu)和動(dòng)態(tài)行為來展示系統(tǒng)內(nèi)部的功能是如何實(shí)現(xiàn)的)。靜態(tài)結(jié)構(gòu)描述類、對象和它們之間的關(guān)系等。動(dòng)態(tài)行為主要描述對象之間的動(dòng)態(tài)描述類、對象和它們之間的關(guān)系等。動(dòng)態(tài)行為主要描述對象之間的動(dòng)態(tài)協(xié)作,當(dāng)對象之間彼此發(fā)送消息給給定的方法(方

49、法調(diào)用)時(shí)產(chǎn)生動(dòng)態(tài)協(xié)作,當(dāng)對象之間彼此發(fā)送消息給給定的方法(方法調(diào)用)時(shí)產(chǎn)生動(dòng)態(tài)協(xié)作,一致性(協(xié)作,一致性(persistence)和并發(fā)性()和并發(fā)性(concurrency)等性質(zhì),)等性質(zhì),以及接口和類的內(nèi)部結(jié)構(gòu)都要在邏輯視圖中定義。以及接口和類的內(nèi)部結(jié)構(gòu)都要在邏輯視圖中定義。 靜態(tài)結(jié)構(gòu)在類圖和對象圖中描述,動(dòng)態(tài)建模用狀態(tài)圖、順序圖(序靜態(tài)結(jié)構(gòu)在類圖和對象圖中描述,動(dòng)態(tài)建模用狀態(tài)圖、順序圖(序列圖)、協(xié)作圖和活動(dòng)圖描述。列圖)、協(xié)作圖和活動(dòng)圖描述。組件視圖組件視圖 組件視圖(組件視圖(Component view)用來顯示代碼組件的組織)用來顯示代碼組件的組織方式。它描述了實(shí)現(xiàn)模塊(方式

50、。它描述了實(shí)現(xiàn)模塊(implementation module)和它)和它們之間的依賴關(guān)系。們之間的依賴關(guān)系。 組件視圖由組件圖構(gòu)成。組件是代碼模塊,不同類型的代碼組件視圖由組件圖構(gòu)成。組件是代碼模塊,不同類型的代碼模塊形成不同的組件,組件按照一定的結(jié)構(gòu)和依賴關(guān)系呈現(xiàn)。組模塊形成不同的組件,組件按照一定的結(jié)構(gòu)和依賴關(guān)系呈現(xiàn)。組件的附加信息(比如,為組件分配資源)或其他管理信息(比如件的附加信息(比如,為組件分配資源)或其他管理信息(比如,進(jìn)展工作的進(jìn)展報(bào)告)也可以加入到組件視圖中。組件視圖主,進(jìn)展工作的進(jìn)展報(bào)告)也可以加入到組件視圖中。組件視圖主要供開發(fā)者使用。要供開發(fā)者使用。并發(fā)(進(jìn)程)視圖

51、并發(fā)(進(jìn)程)視圖 并發(fā)視圖(并發(fā)視圖(Concurrency View)用來顯示系統(tǒng)的并發(fā)工作)用來顯示系統(tǒng)的并發(fā)工作狀況。并發(fā)視圖將系統(tǒng)劃分為進(jìn)程和處理機(jī)方式,通過劃分引入并發(fā)狀況。并發(fā)視圖將系統(tǒng)劃分為進(jìn)程和處理機(jī)方式,通過劃分引入并發(fā)機(jī)制,利用并發(fā)高效地使用資源、并行執(zhí)行和處理異步事件。除了劃機(jī)制,利用并發(fā)高效地使用資源、并行執(zhí)行和處理異步事件。除了劃分系統(tǒng)為并發(fā)執(zhí)行的控制線程外,并發(fā)視圖還必須處理通信和這些線分系統(tǒng)為并發(fā)執(zhí)行的控制線程外,并發(fā)視圖還必須處理通信和這些線程之間的同步問題。并發(fā)視圖所描述的方面屬于系統(tǒng)中的非功能性質(zhì)程之間的同步問題。并發(fā)視圖所描述的方面屬于系統(tǒng)中的非功能性質(zhì)方

52、面。方面。 并發(fā)視圖供系統(tǒng)開發(fā)者和集成者(并發(fā)視圖供系統(tǒng)開發(fā)者和集成者(integrator)使用。它由動(dòng))使用。它由動(dòng)態(tài)圖(狀態(tài)圖、序列圖、協(xié)作圖、活動(dòng)圖)和執(zhí)行圖(組件圖、部署態(tài)圖(狀態(tài)圖、序列圖、協(xié)作圖、活動(dòng)圖)和執(zhí)行圖(組件圖、部署圖)構(gòu)成。圖)構(gòu)成。 并發(fā)視圖使用較少。并發(fā)視圖使用較少。部署視圖部署視圖 部署視圖(部署視圖(Deployment View)用來顯示系)用來顯示系統(tǒng)的物理架構(gòu),即:利用統(tǒng)的物理架構(gòu),即:利用節(jié)點(diǎn)來展示系統(tǒng)部署的物理架節(jié)點(diǎn)來展示系統(tǒng)部署的物理架構(gòu)。節(jié)點(diǎn)可以是電腦或者設(shè)備,將這些節(jié)點(diǎn)相互連接起來構(gòu)。節(jié)點(diǎn)可以是電腦或者設(shè)備,將這些節(jié)點(diǎn)相互連接起來就可以分析和展

53、示在物理架構(gòu)中系統(tǒng)是如何部署的。就可以分析和展示在物理架構(gòu)中系統(tǒng)是如何部署的。 展開視圖提供給開發(fā)者、集成者和測試者。展開視圖提供給開發(fā)者、集成者和測試者。 部署視圖主要包含:部署圖部署視圖主要包含:部署圖UML圖形元素概覽圖形元素概覽NewClassInterfaceusecase類類是對一組具有相同屬性、是對一組具有相同屬性、相同操作、相同關(guān)系和相相同操作、相同關(guān)系和相同語義的對象的描述同語義的對象的描述對對象象接接口口是描述了一個(gè)類或構(gòu)件的是描述了一個(gè)類或構(gòu)件的一個(gè)服務(wù)的操作集一個(gè)服務(wù)的操作集協(xié)協(xié)作作定義了一個(gè)交互,它是由定義了一個(gè)交互,它是由一組共同工作以提供某種一組共同工作以提供某種

54、協(xié)作行為的角色和其他元協(xié)作行為的角色和其他元素構(gòu)成的一個(gè)群體素構(gòu)成的一個(gè)群體用用例例是對一組動(dòng)作序列的描述是對一組動(dòng)作序列的描述主主動(dòng)動(dòng)類類對象至少擁有一個(gè)進(jìn)程或?qū)ο笾辽贀碛幸粋€(gè)進(jìn)程或線程的類線程的類構(gòu)構(gòu)件件是系統(tǒng)中物理的、可替代是系統(tǒng)中物理的、可替代的部件的部件參參與與者者在系統(tǒng)外部與系統(tǒng)直接交在系統(tǒng)外部與系統(tǒng)直接交互的人或事物互的人或事物節(jié)點(diǎn)節(jié)點(diǎn)是在運(yùn)行時(shí)存在的物理是在運(yùn)行時(shí)存在的物理元素元素交互交互它由在特定語境中共同它由在特定語境中共同完成一定任務(wù)的一組對完成一定任務(wù)的一組對象間交換的消息組成象間交換的消息組成狀態(tài)機(jī)狀態(tài)機(jī)它描述了一個(gè)對象或一它描述了一個(gè)對象或一個(gè)交互在生命期內(nèi)響應(yīng)個(gè)交

55、互在生命期內(nèi)響應(yīng)事件所經(jīng)歷的狀態(tài)序列事件所經(jīng)歷的狀態(tài)序列包包把元素組織成組的機(jī)制把元素組織成組的機(jī)制注釋注釋事物事物是是UML模型的解釋部分模型的解釋部分依賴依賴一條可能有方向的虛線一條可能有方向的虛線關(guān)聯(lián)關(guān)聯(lián)一條實(shí)線,可能有方向一條實(shí)線,可能有方向泛化泛化一條帶有空心箭頭的實(shí)一條帶有空心箭頭的實(shí)線線實(shí)現(xiàn)實(shí)現(xiàn)一條帶有空心箭頭的虛一條帶有空心箭頭的虛線線actorNewProcessorstateNewPackagecomponetUML常用圖分類常用圖分類v 靜態(tài)建模靜態(tài)建模 類圖 組件圖 部署圖v 動(dòng)態(tài)建模動(dòng)態(tài)建模 用例圖 順序圖 活動(dòng)圖 狀態(tài)圖 對象圖 協(xié)作圖v 學(xué)習(xí)順序?qū)W習(xí)順序 從最重要

56、的部分開始學(xué)習(xí),主要學(xué)習(xí)以下圖的表示法: 用例圖用例圖 類圖類圖 順序圖順序圖 活動(dòng)圖活動(dòng)圖 狀態(tài)圖狀態(tài)圖UML用例圖(用例圖(Use Case Diagram) 用例模型是把應(yīng)滿足用戶需求的基本功能(集)聚合起來表示的強(qiáng)大工具。對于正在構(gòu)造用例模型是把應(yīng)滿足用戶需求的基本功能(集)聚合起來表示的強(qiáng)大工具。對于正在構(gòu)造的新系統(tǒng),用例描述系統(tǒng)應(yīng)該作什么;對于已構(gòu)造完畢的系統(tǒng),用例則反映了系統(tǒng)能夠完成什的新系統(tǒng),用例描述系統(tǒng)應(yīng)該作什么;對于已構(gòu)造完畢的系統(tǒng),用例則反映了系統(tǒng)能夠完成什么樣的功能。構(gòu)建用例模型是通過開發(fā)者與客戶(或最終使用者)共同協(xié)商完成的,他們要反么樣的功能。構(gòu)建用例模型是通過開發(fā)

57、者與客戶(或最終使用者)共同協(xié)商完成的,他們要反復(fù)討論需求的規(guī)格說明,達(dá)成共識(shí),明確系統(tǒng)的基本功能,為后續(xù)階段的工作打下基礎(chǔ)。復(fù)討論需求的規(guī)格說明,達(dá)成共識(shí),明確系統(tǒng)的基本功能,為后續(xù)階段的工作打下基礎(chǔ)。 用例模型的基本組成部件是用例、參與者(角色)和關(guān)系(用例之間的關(guān)系)用例模型的基本組成部件是用例、參與者(角色)和關(guān)系(用例之間的關(guān)系)。用例用于。用例用于描述系統(tǒng)的功能,也就是從外部用戶的角度觀察,系統(tǒng)應(yīng)支持哪些功能,幫助分析人員理解系描述系統(tǒng)的功能,也就是從外部用戶的角度觀察,系統(tǒng)應(yīng)支持哪些功能,幫助分析人員理解系統(tǒng)的行為,它是對系統(tǒng)功能的宏觀描述。一個(gè)完整的系統(tǒng)中通常包含若干個(gè)用例,每

58、個(gè)用例具統(tǒng)的行為,它是對系統(tǒng)功能的宏觀描述。一個(gè)完整的系統(tǒng)中通常包含若干個(gè)用例,每個(gè)用例具體說明應(yīng)完成的功能,代表系統(tǒng)的所有基本功能(集)。角色是與系統(tǒng)進(jìn)行交互的外部實(shí)體,體說明應(yīng)完成的功能,代表系統(tǒng)的所有基本功能(集)。角色是與系統(tǒng)進(jìn)行交互的外部實(shí)體,它可以是系統(tǒng)用戶,也可以是其它系統(tǒng)或硬件設(shè)備,總之,凡是需要與系統(tǒng)交互的任何東西都它可以是系統(tǒng)用戶,也可以是其它系統(tǒng)或硬件設(shè)備,總之,凡是需要與系統(tǒng)交互的任何東西都可以稱作角色。系統(tǒng)的邊界線以內(nèi)的區(qū)域(即用例的活動(dòng)區(qū)域)則抽象表示系統(tǒng)能夠?qū)崿F(xiàn)的所可以稱作角色。系統(tǒng)的邊界線以內(nèi)的區(qū)域(即用例的活動(dòng)區(qū)域)則抽象表示系統(tǒng)能夠?qū)崿F(xiàn)的所有基本功能。在一個(gè)

59、基本功能(集)已經(jīng)實(shí)現(xiàn)的系統(tǒng)中,系統(tǒng)運(yùn)轉(zhuǎn)的大致過程是:外部角色先有基本功能。在一個(gè)基本功能(集)已經(jīng)實(shí)現(xiàn)的系統(tǒng)中,系統(tǒng)運(yùn)轉(zhuǎn)的大致過程是:外部角色先初始化用例,然后用例執(zhí)行其所代表的功能,執(zhí)行完后用例便給角色返回一些值,這個(gè)值可以初始化用例,然后用例執(zhí)行其所代表的功能,執(zhí)行完后用例便給角色返回一些值,這個(gè)值可以是角色需要的來自系統(tǒng)中的任何東西。是角色需要的來自系統(tǒng)中的任何東西。 在用例模型中,系統(tǒng)仿佛是實(shí)現(xiàn)各種用例的在用例模型中,系統(tǒng)仿佛是實(shí)現(xiàn)各種用例的“黑盒子黑盒子”我們只關(guān)心該系統(tǒng)實(shí)現(xiàn)了哪些功能我們只關(guān)心該系統(tǒng)實(shí)現(xiàn)了哪些功能,并不關(guān)心內(nèi)部的具體實(shí)現(xiàn)細(xì)節(jié)(比如,系統(tǒng)是如何做的?用例是如何實(shí)現(xiàn)的

60、?)。用例模型,并不關(guān)心內(nèi)部的具體實(shí)現(xiàn)細(xì)節(jié)(比如,系統(tǒng)是如何做的?用例是如何實(shí)現(xiàn)的?)。用例模型主要應(yīng)用在工程開發(fā)的初期,進(jìn)行系統(tǒng)需求分析時(shí)使用。通過分析描述使開發(fā)者在頭腦中明確主要應(yīng)用在工程開發(fā)的初期,進(jìn)行系統(tǒng)需求分析時(shí)使用。通過分析描述使開發(fā)者在頭腦中明確需要開發(fā)的系統(tǒng)功能有哪些。需要開發(fā)的系統(tǒng)功能有哪些。 用例模型由用例圖構(gòu)成。用例圖中顯示參與者(角色)、用例和用例之間的關(guān)系用例模型由用例圖構(gòu)成。用例圖中顯示參與者(角色)、用例和用例之間的關(guān)系。用例圖在宏觀上給出模型的總體輪廓,而用例的真正實(shí)現(xiàn)細(xì)節(jié)描述則以文本的方式書寫用例圖在宏觀上給出模型的總體輪廓,而用例的真正實(shí)現(xiàn)細(xì)節(jié)描述則以文本的

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論