軟件工程及實(shí)踐8_第1頁(yè)
軟件工程及實(shí)踐8_第2頁(yè)
軟件工程及實(shí)踐8_第3頁(yè)
軟件工程及實(shí)踐8_第4頁(yè)
軟件工程及實(shí)踐8_第5頁(yè)
已閱讀5頁(yè),還剩54頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

軟件工程與實(shí)踐中國(guó)水利水電出版社第8章面向?qū)ο笈cuml語(yǔ)言8.1傳統(tǒng)方法學(xué)傳統(tǒng)的生命周期方法學(xué)主要存在以下問(wèn)題:(1)生產(chǎn)率提高的幅度遠(yuǎn)不能滿足需要;(2)軟件重用度很低;(3)軟件仍然很難維護(hù);(4)軟件往往不能滿足用戶需要。

面向?qū)ο蟮姆椒▽W(xué)可以用下列式子來(lái)概括:面向?qū)ο?對(duì)象+類(lèi)+繼承+消息通信。

面向?qū)ο蠓椒▽W(xué)的主要優(yōu)點(diǎn)是:(1)從應(yīng)用設(shè)計(jì)到解決問(wèn)題的方案更加抽象化而且具有極強(qiáng)的對(duì)應(yīng)性。(2)在設(shè)計(jì)中容易與用戶溝通。(3)把數(shù)據(jù)和操作封裝到對(duì)象之中。(4)設(shè)計(jì)中產(chǎn)生各式各樣的部件,然后由部件組成框架,以至于整個(gè)程序。(5)應(yīng)用程序具有較好的重用性、易改進(jìn)、易維護(hù)和易擴(kuò)充。8.2面向?qū)ο蠓椒ǖ幕靖拍?/p>

對(duì)象是具有相同狀態(tài)的一組操作的集合,是封裝了數(shù)據(jù)結(jié)構(gòu)及可以施加在這些數(shù)據(jù)結(jié)構(gòu)上的操作的封裝體,這個(gè)封裝體有可以惟一地標(biāo)識(shí)它的名字,而且向外界提供一組服務(wù)(即公有的操作)。對(duì)象中的數(shù)據(jù)表示對(duì)象的狀態(tài),一個(gè)對(duì)象的狀態(tài)只能由該對(duì)象的操作來(lái)改變,只能由其他對(duì)象向該對(duì)象發(fā)送消息。對(duì)象響應(yīng)消息時(shí),按照消息模式找出與之匹配的方法,并執(zhí)行該方法。8.2.1對(duì)象

在面向?qū)ο蟮能浖夹g(shù)中,”類(lèi)”就是對(duì)具有相同數(shù)據(jù)和相同操作的一組相似對(duì)象的定義,也就是說(shuō),類(lèi)是對(duì)具有相同屬性和行為的一個(gè)或多個(gè)對(duì)象的描述。例如:植物,飛行器,人等都是類(lèi)。

“人”這個(gè)類(lèi)具有:身高、姓名、性別、年齡、家庭住址等屬性(靜態(tài)特征);另外,“人”這個(gè)類(lèi)還具有:跑步,開(kāi)車(chē),吃飯,思考等行為(動(dòng)態(tài)特征)。

8.2.2類(lèi)

實(shí)例就是由某個(gè)特定的類(lèi)所描述的一個(gè)具體的對(duì)象。當(dāng)使用”對(duì)象”這個(gè)術(shù)語(yǔ)時(shí),既可以指一個(gè)具體的對(duì)象,也可以泛指一般的對(duì)象,但是,當(dāng)使用”實(shí)例”這個(gè)術(shù)語(yǔ)時(shí),必然是指一個(gè)具體的對(duì)象。8.2.3實(shí)例

消息就是要求某個(gè)對(duì)象執(zhí)行在定義它的那個(gè)類(lèi)中的某個(gè)操作的規(guī)格說(shuō)明。

通常,一個(gè)消息由下述3部分組成:接收消息的對(duì)象;消息選擇符(也稱為消息名);零個(gè)或多個(gè)變?cè)?.2.4消息

方法就是對(duì)象所能執(zhí)行的操作,也就是類(lèi)中所定義的服務(wù)。方法描述了對(duì)象執(zhí)行操作的算法、響應(yīng)消息的方法。在C++語(yǔ)言中把方法稱為成員函數(shù)。我們前面介紹過(guò),類(lèi)由屬性(靜態(tài)數(shù)據(jù))和行為(操作)組成,實(shí)際上,這里的“行為”就是面向?qū)ο笾兄v到的“方法”。例如:(1)飛行器這個(gè)類(lèi)的方法有:飛行,落地等一些操作。(2)“人”這個(gè)類(lèi)的方法:跑步,開(kāi)車(chē),吃飯,思考等。8.2.5方法8.2.6屬性

屬性就是類(lèi)中所定義的數(shù)據(jù),它是對(duì)客觀世界實(shí)體所具有的性質(zhì)的抽象。類(lèi)的每個(gè)實(shí)例都有自己特有的屬性值。在C++語(yǔ)言中把屬性稱為數(shù)據(jù)成員。例如:飛行器這個(gè)類(lèi)的屬性有:顏色,身長(zhǎng),形狀等。

8.2.6繼承

繼承是子類(lèi)自動(dòng)地共享父類(lèi)中定義的數(shù)據(jù)和方法的機(jī)制。一個(gè)類(lèi)的上層可以有父類(lèi),下層可以有子類(lèi)。這種層次結(jié)構(gòu)系統(tǒng)的一個(gè)重要性質(zhì)是繼承性,一個(gè)類(lèi)直接繼承其父類(lèi)的全部描述(數(shù)據(jù)和操作)。繼承具有傳遞性。例如:飛機(jī)是飛行器的子類(lèi),它繼承了飛行器的所有屬性和方法,但是它還有自己的屬性和方法。飛機(jī)的屬性除具有飛行器屬性外,還有:乘客容量。8.2.7多態(tài)性

在面向?qū)ο蟮能浖夹g(shù)中,多態(tài)性是指子類(lèi)對(duì)象可以像父類(lèi)對(duì)象那樣使用,同樣的消息既可以發(fā)送給父類(lèi)對(duì)象也可以發(fā)送給子類(lèi)對(duì)象。然而不同層次中的每個(gè)類(lèi)卻各自按自己的需要來(lái)實(shí)現(xiàn)這個(gè)行為。當(dāng)對(duì)象接收到發(fā)送給它的消息時(shí),根據(jù)該對(duì)象所屬于的類(lèi)動(dòng)態(tài)選用在該類(lèi)中定義的實(shí)現(xiàn)算法。8.2.8重載

重載有兩種:函數(shù)重載和運(yùn)算符重載。函數(shù)重載是指在同一作用域內(nèi)的若干個(gè)參數(shù)特征不同的函數(shù)可以使用相同的函數(shù)名字;運(yùn)算符重載是指同一個(gè)運(yùn)算符可以施加于不同類(lèi)型的操作數(shù)上。8.3

UML建模語(yǔ)言

UML(統(tǒng)一建模語(yǔ)言)是面向?qū)ο蠼UZ(yǔ)言的標(biāo)準(zhǔn),它可以對(duì)任何具有靜態(tài)結(jié)構(gòu)和動(dòng)態(tài)行為的系統(tǒng)進(jìn)行建模,它的主要作用是幫助用戶進(jìn)行面向的描述和建模,它可以描述軟件從需求分析到軟件實(shí)現(xiàn)和測(cè)試的全過(guò)程。作為一種建模語(yǔ)言,UML的定義包括UML語(yǔ)義和UML表示法兩個(gè)部分。

(1)UML語(yǔ)義(2)UML表示法(

1)模型幫助我們按照實(shí)際情況或按照我們所需要的樣式對(duì)系統(tǒng)進(jìn)行可視化。

(2)模型允許我們?cè)敿?xì)說(shuō)明系統(tǒng)的結(jié)構(gòu)和行為。

(3)模型給出一個(gè)知道我們構(gòu)造系統(tǒng)的模板。

(4)模型對(duì)我們的決策進(jìn)行文檔化。

8.3.1為什么要建模

UML有兩套建模機(jī)制:靜態(tài)建模機(jī)制和動(dòng)態(tài)建模機(jī)制。靜可描形,動(dòng)可描行。動(dòng)和靜是辯證的兩面,在UML中,靜態(tài)建??梢悦枋鱿到y(tǒng)的組織和結(jié)構(gòu),而動(dòng)態(tài)建模則可描述系統(tǒng)的行為和動(dòng)作。靜態(tài)建模機(jī)制包括用例圖、類(lèi)圖、對(duì)象圖、包、組件圖和配置圖。動(dòng)態(tài)建模機(jī)制包括消息、狀態(tài)圖、時(shí)序圖、協(xié)作圖和活動(dòng)圖。

8.3.2UML建模機(jī)制(1)UML基本構(gòu)造元素:事務(wù)、關(guān)系和圖。(2)UML的事務(wù)有四種:結(jié)構(gòu)事務(wù)、行為事務(wù)、分組事務(wù)和注釋事務(wù)。(3)UML的關(guān)系有四種:依賴、關(guān)聯(lián)、泛化、實(shí)現(xiàn)。(4)UML的圖有十種:用例圖、類(lèi)圖、對(duì)象圖、包圖、狀態(tài)圖、活動(dòng)圖、序列圖、協(xié)作圖、組件圖、部署圖(有的書(shū)叫實(shí)施圖)。

8.3.3UML的結(jié)構(gòu)1.結(jié)構(gòu)事物結(jié)構(gòu)事物主要包括7種,分別是類(lèi)、接口、協(xié)作、用例、活動(dòng)類(lèi)、組件和節(jié)點(diǎn)。類(lèi)是具有相同屬性、相同方法、相同語(yǔ)義和相同關(guān)系的一組對(duì)象的集合。接口是指類(lèi)或組件所提供的、可以完成特定功能的一組操作的集合,換句話說(shuō),接口描述了類(lèi)或組件的對(duì)外的、可見(jiàn)的動(dòng)作。協(xié)作定義了交互的操作,是一些角色和其他元素一起工作,提供一些合作的動(dòng)作。用例定義了系統(tǒng)執(zhí)行的一組操作,對(duì)特定的用戶產(chǎn)生可以觀察的結(jié)果。活動(dòng)類(lèi)是對(duì)擁有線程并可發(fā)起控制活動(dòng)的對(duì)象(往往稱為主動(dòng)對(duì)象)的抽象。組件是物理上可替換的,實(shí)現(xiàn)了一個(gè)或多個(gè)接口的系統(tǒng)元素。節(jié)點(diǎn)是一個(gè)物理元素,它在運(yùn)行時(shí)存在,代表一個(gè)可計(jì)算的資源,如一臺(tái)數(shù)據(jù)庫(kù)服務(wù)器等。

8.3.4UML中的事務(wù)

2.行為事物行為事物主要有兩種:交互和狀態(tài)機(jī)。在UML圖中,交互的消息通常畫(huà)成帶箭頭的直線狀態(tài)機(jī)是對(duì)象的一個(gè)或多個(gè)狀態(tài)的集合。

3.組織事物組織事物是UML模型中負(fù)責(zé)分組的部分,可以把它看作一個(gè)個(gè)盒子,每個(gè)盒子里面的對(duì)象關(guān)系相對(duì)復(fù)雜,而盒子與盒子之間的關(guān)系相對(duì)簡(jiǎn)單。組織事物只有一種,稱為包。包是一種有組織地將一系列元素分組的機(jī)制。4.輔助事物輔助事物,也稱注釋事物,屬于這一類(lèi)的只有注釋。注釋即是UML模型的解釋部分。在UML圖中,一般表示為折起一角的矩形。

1.關(guān)聯(lián)關(guān)系關(guān)聯(lián)關(guān)系是”

...hasa...”(具有)的關(guān)系。在UML圖中,關(guān)聯(lián)關(guān)系用一條實(shí)線表示。有一些修飾可以應(yīng)用于關(guān)聯(lián)。(1).

名字:可以給關(guān)系取名字。見(jiàn)圖8-1。8.3.5UML中的關(guān)系

(2)角色:關(guān)系的兩端代表不同的兩種角色。見(jiàn)圖8-2。(3).重?cái)?shù):表示有多少對(duì)象通過(guò)一個(gè)關(guān)系的實(shí)例相連。見(jiàn)圖8-3。2.聚合關(guān)系聚合關(guān)系指的是整體與部分的關(guān)系。通常在定義一個(gè)整體類(lèi)后,再去分析這個(gè)整體類(lèi)的組成結(jié)構(gòu)。從而找出一些組成類(lèi),該整體類(lèi)和組成類(lèi)之間就形成了聚合關(guān)系。例如一個(gè)航母編隊(duì)包括海空母艦、驅(qū)護(hù)艦艇、艦載飛機(jī)及核動(dòng)力攻擊潛艇等。需求描述中”包含”、”組成”、”分為…部分”等詞常意味著聚合關(guān)系。見(jiàn)圖8-5。

聚合是”

...ownsa...”(擁有)的關(guān)系。它的UML表示法:空心菱形+實(shí)線+箭頭,見(jiàn)圖8-6

3.組合關(guān)系組合關(guān)系也表示類(lèi)之間整體和部分的關(guān)系,但是組合關(guān)系中部分和整體具有統(tǒng)一的生存期。一旦整體對(duì)象不存在,部分對(duì)象也將不存在。部分對(duì)象與整體對(duì)象之間具有共生死的關(guān)系。組合關(guān)系是”

...isapartof...”(是…的一部分)的關(guān)系。它的UML表示法:實(shí)心菱形+實(shí)線+箭頭,見(jiàn)圖8-7。聚合和組合的區(qū)別在于:

(1)聚合關(guān)系是”has-a”關(guān)系,組合關(guān)系是”contains-a”關(guān)系;

(2)聚合關(guān)系表示整體與部分的關(guān)系比較弱,而組合比較強(qiáng);

(3)聚合關(guān)系中代表部分事物的對(duì)象與代表聚合事物的對(duì)象的生存期無(wú)關(guān),一旦刪除了聚合對(duì)象不一定就刪除了代表部分事物的對(duì)象。組合中一旦刪除了組合對(duì)象,同時(shí)也就刪除了代表部分事物的對(duì)象。我們用淺顯的例子來(lái)說(shuō)明聚合和組合的區(qū)別?!眹?guó)破家亡”,國(guó)滅了,家自然也沒(méi)有了,”國(guó)”和”家”顯然也是組合關(guān)系。(4)在聚合關(guān)系中,部分可以獨(dú)立于聚合而存在,部分的所有權(quán)也可以由幾個(gè)聚合來(lái)共享,比如打印機(jī)就可以在辦公室內(nèi)被廣大同事共用。

(5)組合比聚合對(duì)于組合者和被組合者的關(guān)心定義的更加有約束,組合者不但要知道被組合者的情況,他們的生命周期都是由組合者來(lái)控制的。4.依賴關(guān)系對(duì)于兩個(gè)對(duì)象X、Y,如果對(duì)象X發(fā)生變化,可能會(huì)引起對(duì)另一個(gè)對(duì)象Y的變化,則稱Y依賴于X。依賴關(guān)系是一種”

...usesa...”(使用)關(guān)系,特定事物的改變有可能會(huì)影響到使用該事物的事物,反之不成立。在你想顯示一個(gè)事物使用另一個(gè)事物時(shí)使用依賴關(guān)系。通常情況下,依賴關(guān)系體現(xiàn)在某個(gè)類(lèi)的方法使用另一個(gè)類(lèi)作為參數(shù)。在UML中你可以在其它的事物之間使用依賴關(guān)系,特別是包和節(jié)點(diǎn)之間。在UML圖中,依賴關(guān)系用一條帶有箭頭的虛線來(lái)表示。人和空氣是一種依賴關(guān)系,UML圖見(jiàn)圖8-10。一個(gè)人自創(chuàng)生就需要不停的呼吸,而人的呼吸功能之所以能維持生命就在于吸進(jìn)來(lái)的氣體發(fā)揮了作用,所以說(shuō)空氣只不過(guò)是人類(lèi)的一個(gè)工具,而人并不持有對(duì)它的引用。5.泛化關(guān)系泛化是一般事物(稱為超類(lèi)或父類(lèi))和該事物的較為特殊的種類(lèi)(稱為子類(lèi))之間的關(guān)系,子類(lèi)繼承父類(lèi)的屬性和操作,除此之外通常子類(lèi)還添加新的屬性和操作,或者修改了父類(lèi)的某些操作。泛化意味著子類(lèi)的對(duì)象可以用在父類(lèi)的對(duì)象可能出現(xiàn)的地方,但反過(guò)來(lái)則不成立。泛化關(guān)系的子類(lèi)和父類(lèi)是“akindof”的關(guān)系。圖8-11給出了教師,學(xué)生和來(lái)賓繼承人”類(lèi)”的泛化關(guān)系。

若在邏輯上B是A的”一種”,并且A的所有功能和屬性對(duì)B而言都有意義,則允許B繼承A的功能和屬性。例如,教師是人,Teacher是Person的”一種”。那么類(lèi)Teacher可以從類(lèi)Person派生(繼承)。如果A是基類(lèi),B是A的派生類(lèi),那么B將繼承A的數(shù)據(jù)和函數(shù)。如果類(lèi)A和類(lèi)B毫不相關(guān),不可以為了使B的功能更多些而讓B繼承A的功能和屬性。

6.實(shí)現(xiàn)關(guān)系實(shí)現(xiàn)關(guān)系將一種模型元素(如類(lèi))與另一種模型元素(如接口)連接起來(lái),它表示不繼承結(jié)構(gòu)而只繼承行為。大多少情況下,實(shí)現(xiàn)關(guān)系用來(lái)規(guī)定接口和實(shí)現(xiàn)接口的類(lèi)或組件之間的關(guān)系。在UML圖中,實(shí)現(xiàn)關(guān)系一般用帶有一條帶有空心箭頭的虛線來(lái)表示。

圖8-12實(shí)現(xiàn)關(guān)系8.3.6UML中的視圖

視圖被劃分成3個(gè)視圖域:結(jié)構(gòu)分類(lèi)視圖、動(dòng)態(tài)行為視圖和模型管理視圖。結(jié)構(gòu)分類(lèi)視圖。它描述了系統(tǒng)中的結(jié)構(gòu)成員及其相互關(guān)系。類(lèi)元包括類(lèi)、用例、組件和節(jié)點(diǎn)。類(lèi)元為研究系統(tǒng)動(dòng)態(tài)行為奠定了基礎(chǔ)。類(lèi)元視圖包括靜態(tài)視圖、用例視圖和實(shí)現(xiàn)視圖和配置視圖。動(dòng)態(tài)行為視圖。它描述了系統(tǒng)隨時(shí)間變化的行為。行為用從靜態(tài)視圖中抽取的系統(tǒng)的瞬間值的變化來(lái)描述。動(dòng)態(tài)行為視圖包括狀態(tài)視圖、活動(dòng)視圖和交互視圖。模型管理視圖。它說(shuō)明了模型的分層組織結(jié)構(gòu)。包是模型的基本組織單元。特殊的包還包括模型和子系統(tǒng)。模型管理視圖跨越了其他視圖,并根據(jù)系統(tǒng)開(kāi)發(fā)和配置組織這些視圖。8.4UML的圖序號(hào)模型種類(lèi)十種圖形建模機(jī)制1用例模型用例圖靜態(tài)建模2靜態(tài)模型類(lèi)圖、對(duì)象圖、包圖靜態(tài)建模3行為模型狀態(tài)圖、活動(dòng)圖動(dòng)態(tài)建模4交互模型序列圖、協(xié)作圖動(dòng)態(tài)建模5實(shí)現(xiàn)模型組件圖、部署圖靜態(tài)建模

類(lèi)圖可用于表示邏輯類(lèi)。邏輯類(lèi)通常就是業(yè)務(wù)人員所談及的事物種類(lèi)。類(lèi)在類(lèi)圖上使用包含三個(gè)部分的矩形來(lái)描述,如圖8-13所示。8.4.1類(lèi)圖

用例圖主要用來(lái)圖示化系統(tǒng)的主事件流程,它主要用來(lái)描述客戶的需求,即用戶希望系統(tǒng)具備的完成一定功能的動(dòng)作----軟件的功能模塊,所以是設(shè)計(jì)系統(tǒng)分析階段的起點(diǎn),設(shè)計(jì)人員根據(jù)客戶的需求來(lái)創(chuàng)建和解釋用例圖,用來(lái)描述軟件應(yīng)具備哪些功能模塊以及這些模塊之間的調(diào)用關(guān)系。

用例圖包括:用例和參與者。8.4.2用例圖

圖8-16給出來(lái)了在線購(gòu)物系統(tǒng)的用例圖,給出了角色和用例之間的關(guān)系,以及內(nèi)部用例之間的關(guān)系。角色:游客,會(huì)員,管理員。用例:商品信息,購(gòu)買(mǎi)信息,用戶信息。8.4.3對(duì)象圖

對(duì)象圖顯示某時(shí)刻對(duì)象和對(duì)象之間的關(guān)系,是類(lèi)圖的變化,一個(gè)對(duì)象圖可看成一個(gè)類(lèi)圖的實(shí)例,對(duì)象圖表示的是類(lèi)的對(duì)象實(shí)例而不是真實(shí)的類(lèi)。由于對(duì)象存在生命周期,因此對(duì)象圖只能在系統(tǒng)某一時(shí)間段存在。對(duì)象圖中并無(wú)新的表示法(除了對(duì)象名下要加下劃線以外),與類(lèi)圖中的表示法一樣,可以認(rèn)為,只有對(duì)象而無(wú)類(lèi)的類(lèi)圖就是一個(gè)”對(duì)象圖”。

4.輔助事物輔助事物,也稱注釋事物,屬于這一類(lèi)的只有注釋。注釋即是UML模型的解釋部分。在UML圖中,一般表示為折起一角的矩形。

為了簡(jiǎn)單地表示出復(fù)雜的類(lèi)圖,可以把類(lèi)組合成包packages。一個(gè)包是UML上有邏輯關(guān)系的元件的集合。包圖由包和包之間的關(guān)系組成,模型如圖。

8.4.4包圖1、包的名稱

包的名稱有兩種形式:簡(jiǎn)單名和路徑名,其中簡(jiǎn)單名僅包含一個(gè)簡(jiǎn)單的名稱,路徑名是以包處于的外圍包的名字作為前綴。

2、包圖的組成

包可以擁有其他元素,比如類(lèi)、接口、組件、節(jié)點(diǎn)、協(xié)作、用例和圖,甚至可以是其它包。一個(gè)”包圖”可以是任何一種的UML圖組成,通常是UML用例圖或UML類(lèi)圖。包是一個(gè)UML結(jié)構(gòu),它使得你能夠把諸如用例或類(lèi)之類(lèi)模型元件組織為組。包被描述成文件夾,可以應(yīng)用在任何一種UML圖上。序列圖。

序列圖顯示具體用例(或者是用例的一部分)的詳細(xì)流程。它幾乎是自描述的,并且顯示了流程中中不同對(duì)象之間的調(diào)用關(guān)系,同時(shí)還可以很詳細(xì)地顯示對(duì)不同對(duì)象的不同調(diào)用。序列圖有兩個(gè)維度:垂直維度和水平維度。垂直維度以發(fā)生的時(shí)間順序顯示消息/調(diào)用的序列;水平維度顯示消息被發(fā)送到的對(duì)象實(shí)例。8.4.5交互圖

其中的aServlet對(duì)象表示驅(qū)動(dòng)類(lèi)實(shí)例。

aServlet向名為gen的ReportGenerator類(lèi)實(shí)例發(fā)送一條消息。該消息被標(biāo)為generateCDSalesReport,表示ReportGenerator對(duì)象實(shí)現(xiàn)了這個(gè)消息處理程序。進(jìn)一步理解可發(fā)現(xiàn),generateCDSalesReport消息標(biāo)簽在括號(hào)中包括了一個(gè)cdId,表明aServlet隨該消息傳遞一個(gè)名為cdId的參數(shù)。當(dāng)gen實(shí)例接收到一條generateCDSalesReport消息時(shí),它會(huì)接著調(diào)用CDSalesReport類(lèi),并返回一個(gè)aCDReport的實(shí)例。然后gen實(shí)例對(duì)返回的aCDReport實(shí)例進(jìn)行調(diào)用,在每次消息調(diào)用時(shí)向它傳遞參數(shù)。在該序列的結(jié)尾,gen實(shí)例向它的調(diào)用者aServlet返回一個(gè)aCDReport。

2.協(xié)作圖

UML交互圖的另一種形式是協(xié)作圖。協(xié)作圖和序列圖在語(yǔ)義上相同,但協(xié)作圖排列對(duì)象的方式比較自由,完全由繪圖者的喜好決定。在協(xié)作圖中,交互動(dòng)作的次序由消息的編號(hào)決定。一些人偏愛(ài)這種繪圖方式,許多功能比較完善的UML工具允許用戶將一個(gè)圖在協(xié)作圖符號(hào)和序列圖符號(hào)之間來(lái)回轉(zhuǎn)換。

狀態(tài)圖是描述一個(gè)實(shí)體基于事件反應(yīng)的動(dòng)態(tài)行為,顯示了該實(shí)體如何根據(jù)當(dāng)前所處的狀態(tài)對(duì)不同的時(shí)間做出反應(yīng)的。通常我們創(chuàng)建一個(gè)UML狀態(tài)圖是為了研究類(lèi)、角色、子系統(tǒng)、或組件的復(fù)雜行為。(1)初始起點(diǎn),它使用實(shí)心圓來(lái)繪制;(2)狀態(tài)之間的轉(zhuǎn)換,它使用具有開(kāi)箭頭的線段來(lái)繪制;(3)狀態(tài),它使用圓角矩形來(lái)繪制;(4)判斷點(diǎn),它使用空心圓來(lái)繪制;(5)一個(gè)或者多個(gè)終止點(diǎn),它們使用內(nèi)部包含實(shí)心圓的圓來(lái)繪制。8.4.6狀態(tài)圖

例如,貸款處理系統(tǒng)最初處于LoanApplication(貸款申請(qǐng))狀態(tài)。當(dāng)貸款審查后,如果符合基本條件轉(zhuǎn)到Loanpre-approval(貸款預(yù)批)過(guò)程;否則轉(zhuǎn)到LoanRejected(貸款拒絕)狀態(tài)。如果Loanpre-approval過(guò)程完成這個(gè)判斷(它是在轉(zhuǎn)換過(guò)程期間做出的)使用一個(gè)判斷點(diǎn)來(lái)表示--即轉(zhuǎn)換線條間的空心圓。通過(guò)該狀態(tài)圖可知,如果沒(méi)有經(jīng)過(guò)LoanClosing狀態(tài),貸款不可能從LoanPre-Approved狀態(tài)進(jìn)入LoaninMaintenance狀態(tài)。而且,所有貸款都將結(jié)束于LoanRejected或者LoaninMa

溫馨提示

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

評(píng)論

0/150

提交評(píng)論