




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第2章統(tǒng)一建模語(yǔ)言UML第2章統(tǒng)一建模語(yǔ)言UML本章內(nèi)容2.1UML概述
2.2UML的關(guān)系
2.3用例圖2.4類(lèi)圖和對(duì)象圖2.5交互作用圖2.6活動(dòng)圖2.7用例驅(qū)動(dòng)開(kāi)發(fā)2.8RationalRose的安裝與使用本章內(nèi)容2.1UML概述2.1UML概述
建模的目的
UML簡(jiǎn)介
UML的術(shù)語(yǔ)和概念
UML的組成2.1UML概述建模的目的2.1.1建模的目的
建模的必要性
對(duì)于多數(shù)程序員而言,在腦海里設(shè)想一個(gè)軟件的實(shí)現(xiàn)與用代碼來(lái)實(shí)現(xiàn)這個(gè)軟件是沒(méi)有距離的,怎么想,就怎么用代碼來(lái)實(shí)現(xiàn)它。這種做法會(huì)產(chǎn)生下列問(wèn)題:不利于交流。如果不建立模型,軟件系統(tǒng)中的有些東西很難用文本的編程語(yǔ)言來(lái)表達(dá)清楚。如果程序員在修改代碼時(shí),沒(méi)有將他腦海中的模型記錄下來(lái),這個(gè)信息可能會(huì)永遠(yuǎn)丟失,不便于軟件維護(hù)。2.1.1建模的目的建模的必要性
建模的重要性模型是對(duì)現(xiàn)實(shí)世界的簡(jiǎn)化,建模是為了更好地理解正在開(kāi)發(fā)的系統(tǒng)。建模原理每一種模型可以在不同的精度級(jí)別上表示,最好的模型是與現(xiàn)實(shí)相聯(lián)系的。單個(gè)模型是不充分的。對(duì)重要的系統(tǒng)應(yīng)采用一組幾乎獨(dú)立的模型進(jìn)行建模。面向?qū)ο蠼乃惴ǖ慕嵌冉#ńY(jié)構(gòu)化)從面向?qū)ο蟮慕嵌冉=5哪康?/p>
建模的重要性建模的目的2.1.2UML簡(jiǎn)介
UML的發(fā)展UML不僅結(jié)合了Booch、OMT和OOSE方法,而且對(duì)其做了進(jìn)一步的發(fā)展,統(tǒng)一了符號(hào)體系,并從其它的方法和軟件工程實(shí)踐中吸收了許多經(jīng)過(guò)實(shí)際檢驗(yàn)的概念和技術(shù);UML是GradyBooch、JamesRumbaugh、IvarJacobson和許多其他人員集體智慧的結(jié)晶,并最終統(tǒng)一為大眾所接受的標(biāo)準(zhǔn)建模語(yǔ)言。2.1.2UML簡(jiǎn)介UML的發(fā)展
UML的特點(diǎn)UML是一種語(yǔ)言UML是一種可視化語(yǔ)言UML是一種可用于詳細(xì)描述的語(yǔ)言UML是一種構(gòu)造語(yǔ)言UML是一種文檔化語(yǔ)言
UML的功能為軟件系統(tǒng)的產(chǎn)出建立可視化模型規(guī)約軟件系統(tǒng)的產(chǎn)出構(gòu)造軟件系統(tǒng)的產(chǎn)出UML簡(jiǎn)介
UML的特點(diǎn)UML簡(jiǎn)介2.1.3UML的術(shù)語(yǔ)和概念
系統(tǒng)和模型系統(tǒng)和子系統(tǒng)模型視圖用例視圖設(shè)計(jì)視圖過(guò)程視圖實(shí)現(xiàn)視圖配置視圖圖系統(tǒng)和子系統(tǒng)2.1.3UML的術(shù)語(yǔ)和概念系統(tǒng)和模型系統(tǒng)和子系統(tǒng)
包
包是一個(gè)用來(lái)將模型單元分組的通用機(jī)制,可以將一個(gè)系統(tǒng)看作一個(gè)單一的、高級(jí)的包。可見(jiàn)性引入與輸出類(lèi)屬關(guān)系UML的術(shù)語(yǔ)和概念
包UML的術(shù)語(yǔ)和概念
注釋注釋是附加在元素或元素集上,用來(lái)表示約束或注釋的圖形符號(hào)。
UML的術(shù)語(yǔ)和概念
注釋UML的術(shù)語(yǔ)和概念
協(xié)作協(xié)作是一組類(lèi)、接口和其他元素的群體,它們共同工作,提供比各組成部分的功能總和更強(qiáng)的合作行為。UML的術(shù)語(yǔ)和概念
協(xié)作UML的術(shù)語(yǔ)和概念
對(duì)象對(duì)象(Object)代表了類(lèi)的一個(gè)特定實(shí)例,具有身份(Identity)和屬性值(AttributeValues)。為了與上下文中的其他對(duì)象相區(qū)別,每個(gè)對(duì)象都應(yīng)該有一個(gè)名字。對(duì)象可以用3種方式命名:對(duì)象名、對(duì)象名和類(lèi)名、或只用類(lèi)名。UML的術(shù)語(yǔ)和概念
對(duì)象UML的術(shù)語(yǔ)和概念
消息消息是對(duì)象間的通信,它傳達(dá)了要執(zhí)行動(dòng)作的信息,它能觸發(fā)事件。UML的術(shù)語(yǔ)和概念
消息UML的術(shù)語(yǔ)和概念
接口接口是用來(lái)規(guī)定類(lèi)或組件服務(wù)的操作的集合。接口可以有名字,以與其他的接口相區(qū)分。實(shí)踐中,接口名通常是從問(wèn)題域的詞匯表中抽取出的短名詞或名詞詞組。和類(lèi)一樣,接口可以參與類(lèi)屬關(guān)系、關(guān)聯(lián)關(guān)系和依賴(lài)關(guān)系。另外,接口還可以參與實(shí)現(xiàn)關(guān)系。UML的術(shù)語(yǔ)和概念
接口UML的術(shù)語(yǔ)和概念接口的符號(hào)如圖所示有3中表示方法。第一種是圖標(biāo)(Icon)形式,第二種是修飾(Decoration)形式,第三種是標(biāo)簽(Label)形式。對(duì)于后兩種表示方法,還可以將屬性、或操作、或兩部分都隱藏起來(lái)UML的術(shù)語(yǔ)和概念
接口的符號(hào)如圖所示有3中表示方法。第一種是圖標(biāo)(Icon)形
類(lèi)型類(lèi)型是類(lèi)的構(gòu)造型,用于描述對(duì)象的域。UML的術(shù)語(yǔ)和概念
類(lèi)型UML的術(shù)語(yǔ)和概念
角色角色是一個(gè)參與特定語(yǔ)境的實(shí)體的行為。UML的術(shù)語(yǔ)和概念
角色UML的術(shù)語(yǔ)和概念
實(shí)例實(shí)例是抽象的具體表示,對(duì)它可使用一組操作,它有用來(lái)存儲(chǔ)操作結(jié)果的狀態(tài)。名稱(chēng)操作狀態(tài)主動(dòng)對(duì)象連接類(lèi)范圍的屬性和操作暫時(shí)UML的術(shù)語(yǔ)和概念
實(shí)例UML的術(shù)語(yǔ)和概念
事件事件是對(duì)一個(gè)在時(shí)間和空間上占有一定位置的有意義的事情的規(guī)格說(shuō)明。種類(lèi)消息信號(hào)調(diào)用UML的術(shù)語(yǔ)和概念
事件UML的術(shù)語(yǔ)和概念UML的擴(kuò)充機(jī)制UML支持自身的擴(kuò)充與調(diào)整,以便使其與一個(gè)特定的方法、組織或用戶(hù)相一致,UML中包含3種主要的擴(kuò)充組件:原型、標(biāo)記值和約束。原型:能夠說(shuō)清領(lǐng)域中的詞匯,且看起來(lái)仍像原有構(gòu)造塊的新事物。標(biāo)記值:為UML事物增加新的特性。約束:增加新的語(yǔ)義或改變已存在的規(guī)則。UML的術(shù)語(yǔ)和概念
UML的擴(kuò)充機(jī)制UML的術(shù)語(yǔ)和概念
狀態(tài)機(jī)說(shuō)明對(duì)象在生命期中響應(yīng)事件所經(jīng)歷的狀態(tài)序列,以及它們對(duì)事件的響應(yīng)。狀態(tài):對(duì)象生命期中的一個(gè)條件或狀況,在此期間,對(duì)象將滿(mǎn)足某些條件,執(zhí)行某些活動(dòng),或等待某些事件。初態(tài):狀態(tài)機(jī)或子狀態(tài)的缺省開(kāi)始位置;終態(tài):狀態(tài)機(jī)或外圍狀態(tài)的執(zhí)行已經(jīng)完成。轉(zhuǎn)換:一個(gè)轉(zhuǎn)換是兩個(gè)狀態(tài)之間的一種關(guān)系,表示對(duì)象將在第一個(gè)狀態(tài)中執(zhí)行一定的動(dòng)作,并在某個(gè)特定事件發(fā)生而某個(gè)特定的條件滿(mǎn)足時(shí)進(jìn)入第二個(gè)狀態(tài)。UML的術(shù)語(yǔ)和概念
狀態(tài)機(jī)UML的術(shù)語(yǔ)和概念
時(shí)間和空間時(shí)間標(biāo)記:表示事件發(fā)生時(shí)刻的符號(hào),由交互中的消息名形成的表達(dá)式。時(shí)間表達(dá)式:用來(lái)判斷絕對(duì)或相對(duì)時(shí)間值的表達(dá)式。時(shí)間約束:關(guān)于絕對(duì)或相對(duì)時(shí)間值的語(yǔ)義陳述。位置:一個(gè)構(gòu)件在一個(gè)節(jié)點(diǎn)上的位置。實(shí)時(shí)系統(tǒng):是時(shí)間關(guān)鍵系統(tǒng)。事件可以在規(guī)則或不規(guī)則的時(shí)間發(fā)生;對(duì)一個(gè)事件的響應(yīng)必須在可預(yù)料的絕對(duì)時(shí)間或者相對(duì)于事件本身的時(shí)間發(fā)生。UML的術(shù)語(yǔ)和概念
時(shí)間和空間UML的術(shù)語(yǔ)和概念UML的內(nèi)容UML語(yǔ)義UML表示法
UML的構(gòu)成元素結(jié)構(gòu)元素:模型的靜態(tài)部分,描述概念或物理元素。包括類(lèi)、接口、協(xié)作、用例、主動(dòng)類(lèi)、組件和節(jié)點(diǎn)。行為元素:模型的動(dòng)態(tài)部分,描述跨越時(shí)間和空間的行為。包括交互和狀態(tài)機(jī)。分組元素:模型的組織部分,如包。注釋元素:模型的解釋部分,用來(lái)描述、說(shuō)明和標(biāo)注模型的任何元素,如注解。2.1.4UML的組成
UML的內(nèi)容2.1.4UML的組成關(guān)系
關(guān)系說(shuō)明元素之間的相互聯(lián)系,即事物之間的聯(lián)系,在面向?qū)ο蠼V校兴姆N很重要的關(guān)系:依賴(lài)(Dependency)關(guān)系類(lèi)屬(Generalization)關(guān)系關(guān)聯(lián)(Association)關(guān)系實(shí)現(xiàn)(Realization)關(guān)系UML的組成
關(guān)系UML的組成圖
圖是由一組元素和關(guān)系組成的連通圖,包括靜態(tài)結(jié)構(gòu)圖和動(dòng)態(tài)行為圖類(lèi)圖對(duì)象圖組件圖配置圖用例圖UML的組成
順序圖協(xié)作圖狀態(tài)圖活動(dòng)圖圖UML的組成2.2UML的關(guān)系
依賴(lài)關(guān)系類(lèi)屬關(guān)系關(guān)聯(lián)關(guān)系實(shí)現(xiàn)關(guān)系
2.2UML的關(guān)系依賴(lài)關(guān)系2.2.1依賴(lài)關(guān)系
依賴(lài)關(guān)系描述了類(lèi)之間的使用關(guān)系。如果一個(gè)模型元素發(fā)生變化會(huì)影響另一個(gè)模型元素(這種影響不必是可逆的),那么就說(shuō)在這兩個(gè)模型元素之間存在依賴(lài)關(guān)系。例如:有兩個(gè)元素X、Y,如果修改元素X的定義會(huì)引起對(duì)元素Y的定義的修改,則稱(chēng)元素Y依賴(lài)于元素X。2.2.1依賴(lài)關(guān)系依賴(lài)關(guān)系描述了類(lèi)之間的使用關(guān)系。依賴(lài)關(guān)系
依賴(lài)關(guān)系的UML符號(hào)表示是帶箭頭的虛線(xiàn),指向被依賴(lài)的模型元素。依賴(lài)關(guān)系依賴(lài)關(guān)系的UML符號(hào)表示是帶箭頭的虛線(xiàn),指向被依賴(lài)依賴(lài)關(guān)系在類(lèi)圖中,依賴(lài)可以由許多原因引起,例如,一個(gè)類(lèi)向另一個(gè)類(lèi)發(fā)送消息(也即,一個(gè)類(lèi)的操作調(diào)用另一個(gè)類(lèi)的操作),或者一個(gè)類(lèi)是另一個(gè)類(lèi)的數(shù)據(jù)成員,或者一個(gè)類(lèi)是另一個(gè)類(lèi)的某個(gè)操作參數(shù),那么就可以說(shuō)這兩個(gè)類(lèi)之間存在著依賴(lài)關(guān)系。語(yǔ)義上,所有的關(guān)系(包括關(guān)聯(lián)關(guān)系、類(lèi)屬關(guān)系、實(shí)現(xiàn)關(guān)系)都是各種各樣的依賴(lài)關(guān)系,因?yàn)檫@3種關(guān)系具有很重要的語(yǔ)義,所以在UML中被分離出來(lái)成為獨(dú)立的關(guān)系。依賴(lài)關(guān)系在類(lèi)圖中,依賴(lài)可以由許多原因引起,例如,一個(gè)類(lèi)向另一2.2.2類(lèi)屬關(guān)系
類(lèi)之間的類(lèi)屬關(guān)系表示子類(lèi)繼承一個(gè)或多個(gè)父類(lèi)的結(jié)構(gòu)與行為。類(lèi)屬關(guān)系描述了類(lèi)之間的“是一種”(is-a-kind-of)的關(guān)系,類(lèi)屬關(guān)系用來(lái)連接一般類(lèi)與特殊類(lèi),用來(lái)描述父類(lèi)與子類(lèi)或父與子的關(guān)系,子類(lèi)繼承父類(lèi)的特性,尤其是屬性和操作。類(lèi)屬關(guān)系的UML符號(hào)表示是帶空心箭頭的實(shí)線(xiàn),箭頭指向父元素。2.2.2類(lèi)屬關(guān)系類(lèi)之間的類(lèi)屬關(guān)系表示子類(lèi)繼承一個(gè)或多個(gè)
一個(gè)類(lèi)可以有零個(gè)到多個(gè)父類(lèi),沒(méi)有父類(lèi)且有一個(gè)或多個(gè)子類(lèi)的類(lèi)被稱(chēng)為根類(lèi)或基類(lèi)。沒(méi)有子類(lèi)的類(lèi)被稱(chēng)為葉類(lèi)。一個(gè)類(lèi)可以有零個(gè)到多個(gè)父類(lèi),沒(méi)有父類(lèi)且有一個(gè)或多個(gè)子
如果在繼承關(guān)系中,每個(gè)類(lèi)只能有一個(gè)父類(lèi),則是單繼承。
如果一個(gè)類(lèi)有多于一個(gè)的父類(lèi)存在,則被稱(chēng)為多繼承。
如果在繼承關(guān)系中,每個(gè)類(lèi)只能有一個(gè)父類(lèi),則是單繼承。2.2.3關(guān)聯(lián)關(guān)系關(guān)聯(lián)關(guān)系是一種結(jié)構(gòu)關(guān)系,規(guī)定了一種事物的對(duì)象可以與另一種事物的對(duì)象相連。例如,雇員為公司工作,一個(gè)公司有很多部門(mén),就可以認(rèn)為雇員和公司、公司和部門(mén)之間存在某種語(yǔ)義上的聯(lián)系,在類(lèi)圖模型中,就可以在類(lèi)Employee(雇員)和類(lèi)Company(公司)、類(lèi)Company(公司)和類(lèi)Department(部門(mén))之間建立關(guān)聯(lián)關(guān)系。關(guān)聯(lián)關(guān)系的UML符號(hào)表示是一條實(shí)線(xiàn)。2.2.3關(guān)聯(lián)關(guān)系關(guān)聯(lián)關(guān)系是一種結(jié)構(gòu)關(guān)系,規(guī)定了一種事物的關(guān)聯(lián)關(guān)系
可以應(yīng)用于關(guān)聯(lián)關(guān)系的四種基本修飾是:名稱(chēng):描述關(guān)系的性質(zhì)。角色:關(guān)聯(lián)中靠近它一端的類(lèi)對(duì)另外一端的類(lèi)呈現(xiàn)的職責(zé)。階元(Multiplicity):說(shuō)明一個(gè)關(guān)聯(lián)的實(shí)例中有多少個(gè)相互連接的對(duì)象。聚合(Aggregation):整體對(duì)象擁有部分對(duì)象。關(guān)聯(lián)關(guān)系可以應(yīng)用于關(guān)聯(lián)關(guān)系的四種基本修飾是:關(guān)聯(lián)名通常是一個(gè)動(dòng)詞或動(dòng)詞詞組,用來(lái)表示關(guān)聯(lián)關(guān)系的類(lèi)型或目的。所選擇的關(guān)聯(lián)名應(yīng)該有助于理解該模型。關(guān)聯(lián)名通常是一個(gè)動(dòng)詞或動(dòng)詞詞組,用來(lái)表示關(guān)聯(lián)關(guān)系的類(lèi)型或目的
關(guān)聯(lián)關(guān)系中的相關(guān)術(shù)語(yǔ)和概念角色階元導(dǎo)航聚合關(guān)系組合關(guān)系關(guān)聯(lián)類(lèi)可見(jiàn)性限定符接口說(shuō)明符關(guān)聯(lián)關(guān)系關(guān)聯(lián)關(guān)系中的相關(guān)術(shù)語(yǔ)和概念關(guān)聯(lián)關(guān)系2.2.4實(shí)現(xiàn)關(guān)系
實(shí)現(xiàn)關(guān)系是分類(lèi)器之間的語(yǔ)義關(guān)系,一個(gè)分類(lèi)器規(guī)定合同,另一個(gè)分類(lèi)器保證實(shí)現(xiàn)這個(gè)合同。可以在兩種情況下使用實(shí)現(xiàn)關(guān)系:實(shí)現(xiàn)被用在接口與實(shí)現(xiàn)它們的類(lèi)或組件之間;實(shí)現(xiàn)被用在用例和實(shí)現(xiàn)該用例的協(xié)作之間。實(shí)現(xiàn)關(guān)系的UML符號(hào)表示是一條帶有空心箭頭的虛線(xiàn)。2.2.4實(shí)現(xiàn)關(guān)系實(shí)現(xiàn)關(guān)系是分類(lèi)器之間的語(yǔ)義關(guān)系,一個(gè)分第2章電子商務(wù)應(yīng)用系統(tǒng)與開(kāi)發(fā)課件2.3用例圖
用例圖概述用例圖的構(gòu)成用例圖的應(yīng)用
2.3用例圖用例圖概述2.3.1用例圖概述
參與者觸發(fā)用例,并與用例進(jìn)行信息交換。單個(gè)參與者可以和多個(gè)用例連接,一個(gè)用例也可以與多個(gè)參與者連接。對(duì)同一個(gè)用例而言,不同參與者有著不同活動(dòng):可以從用例獲取值,也可以輸出信息到用例中。在參與者和用例之間存在的關(guān)聯(lián)關(guān)系通常被稱(chēng)為通信關(guān)聯(lián),因?yàn)樗碇鴧⑴c者與用例之間的通信。2.3.1用例圖概述參與者觸發(fā)用例,并與用例進(jìn)行信息交換用例圖概述不帶箭頭的線(xiàn)段代表關(guān)聯(lián)是雙向?qū)Ш剑◤膮⑴c者到用例,并從用例到參與者);帶箭頭的線(xiàn)段代表關(guān)聯(lián)是單向?qū)Ш剑◤膮⑴c者到用例,或從用例到參與者),導(dǎo)航的方向表明了是參與者發(fā)起了和用例的通信還是用例發(fā)起了和參與者的通信。用例捕捉了系統(tǒng)的行為但沒(méi)有規(guī)定怎樣實(shí)現(xiàn)這些行為,這一點(diǎn)很重要,因?yàn)橄到y(tǒng)分析(規(guī)定行為)應(yīng)該盡可能多地不被實(shí)現(xiàn)的細(xì)節(jié)(規(guī)定怎樣執(zhí)行行為)所影響。最終,用例需要被實(shí)現(xiàn),在UML中用來(lái)實(shí)現(xiàn)用例的元素是協(xié)作(Collaboration)。用例圖概述不帶箭頭的線(xiàn)段代表關(guān)聯(lián)是雙向?qū)Ш剑◤膮⑴c者到用例,
協(xié)作是一起工作以實(shí)現(xiàn)用例行為的類(lèi)和其他元素構(gòu)成的群體,顯式說(shuō)明用例的實(shí)現(xiàn)。協(xié)作是一起工作以實(shí)現(xiàn)用例行為的類(lèi)和其他元素構(gòu)成的群體,顯式2.3.2用例圖的構(gòu)成
參與者在UML中,參與者代表與系統(tǒng)交互的人、硬件、或另一個(gè)系統(tǒng),是用例使用者與用例交互時(shí)所扮演的角色。參與者的UML符號(hào)表示是圖示的“小人”,并可在符號(hào)下標(biāo)出參與者名。參與者可以只向系統(tǒng)輸入信息或只從系統(tǒng)接受信息,也可以既可以輸入信息給系統(tǒng),還可以接受系統(tǒng)的輸出信息。參與者與參與者之間也可以存在類(lèi)屬關(guān)系。為了準(zhǔn)確獲取用例,首先需要識(shí)別系統(tǒng)的參與者,可以通過(guò)問(wèn)題的答案來(lái)幫助發(fā)現(xiàn)系統(tǒng)的參與者。2.3.2用例圖的構(gòu)成參與者識(shí)別參與者須注意的問(wèn)題:盡管參與者在用例圖中是用類(lèi)似人的圖形來(lái)表示,但參與者并不一定必須是人。參與者代表角色。一個(gè)實(shí)體可以扮演多種角色(參與者),在確定實(shí)體的參與者身份時(shí),應(yīng)考慮其所扮演的角色,而不是實(shí)體的頭銜或名稱(chēng)。角色不是對(duì)職位建模。用例圖的構(gòu)成識(shí)別參與者須注意的問(wèn)題:用例圖的構(gòu)成
用例用例描述了系統(tǒng)所執(zhí)行的一組動(dòng)作序列,系統(tǒng)執(zhí)行該動(dòng)作序列來(lái)為參與者產(chǎn)生一個(gè)可供觀(guān)察的結(jié)果。用例的UML符號(hào)表示是橢圓,并可在符號(hào)下標(biāo)出用例名。在實(shí)踐中,用例的名字通常是用動(dòng)詞詞組命名從問(wèn)題域中發(fā)現(xiàn)的一些行為。用例表示了系統(tǒng)的功能,也就是系統(tǒng)提供給參與者的功能。系統(tǒng)的用例構(gòu)成了系統(tǒng)的所有使用功能。用例圖的構(gòu)成用例用例圖的構(gòu)成用例圖的構(gòu)成構(gòu)造一個(gè)好的用例應(yīng)該遵循的原則:一個(gè)用例應(yīng)該描述一個(gè)從頭至尾的完整的功能,用例要與參與者交互。用例的獲取是需求分析時(shí)首先要做的工作,大部分用例將在需求分析時(shí)產(chǎn)生,并且隨著工作深入會(huì)發(fā)現(xiàn)更多的用例,這些都應(yīng)及時(shí)添加到已有的用例集中。用例集中的每個(gè)用例都是一個(gè)潛在的需求。參與者的識(shí)別對(duì)識(shí)別用例很有用。面對(duì)一個(gè)大系統(tǒng),可先列出參與者清單,再對(duì)每個(gè)參與者列出它的用例,問(wèn)題就會(huì)容易很多。在識(shí)別出了參與者后,可以通過(guò)一些問(wèn)題的答案來(lái)幫助發(fā)現(xiàn)系統(tǒng)的用例。用例圖的構(gòu)成構(gòu)造一個(gè)好的用例應(yīng)該遵循的原則:用例圖的構(gòu)成對(duì)于每個(gè)用例,都可以用事件流來(lái)規(guī)定用例的行為。用例的事件流是對(duì)完成用例規(guī)定行為所需要的事件的描述。在描述用例的事件流時(shí),既可以用非正式的結(jié)構(gòu)化文本,也可以用正式的結(jié)構(gòu)化文本,還可以用偽代碼。在創(chuàng)建事件流文檔時(shí),每個(gè)項(xiàng)目都應(yīng)使用一個(gè)標(biāo)準(zhǔn)模板,模板內(nèi)容如下所示:
X“用例名”
X.1簡(jiǎn)單描述
X.2前置條件
X.3后置條件
X.4事件流
X.4.1基流
X.4.2分支流(可選)
X.4.3替代流用例圖的構(gòu)成對(duì)于每個(gè)用例,都可以用事件流來(lái)規(guī)定用例的行為。用
用例間的關(guān)系類(lèi)屬關(guān)系(Generalization)用例間的類(lèi)屬關(guān)系如同類(lèi)間的類(lèi)屬關(guān)系。也就是說(shuō),子用例繼承父用例的行為和含義,子用例可添加新行為或覆蓋父用例的行為。包含關(guān)系(Include)多個(gè)用例可能具有一些相同的功能,共享的功能通常被放在一個(gè)單獨(dú)的用例中,可在該用例和其他需要使用其功能的用例之間創(chuàng)建Include關(guān)系。使用Include關(guān)系可以避免重復(fù)描述同樣的事件流,因?yàn)楣驳男袨楸环湃胍粋€(gè)專(zhuān)門(mén)的用例中,這個(gè)專(zhuān)門(mén)的用例是被基用例包含的。用例圖的構(gòu)成用例間的關(guān)系用例圖的構(gòu)成擴(kuò)充關(guān)系(Extend)擴(kuò)充關(guān)系用來(lái)說(shuō)明可選的、只在特定條件下運(yùn)行的行為,具有擴(kuò)充關(guān)系的用例基于參與者的選擇,可以運(yùn)行幾個(gè)不同的流。用例間的擴(kuò)充關(guān)系表示基用例在指定的擴(kuò)充點(diǎn)隱式地含有另一個(gè)用例的行為。基用例可以獨(dú)立存在,但在特定條件下,它的行為會(huì)被另一個(gè)用例的行為擴(kuò)充。基用例只在被稱(chēng)為擴(kuò)充點(diǎn)的特定點(diǎn)被擴(kuò)充。可以認(rèn)為,擴(kuò)充用例將行為推進(jìn)基用例。包含關(guān)系(抽取公共行為)和擴(kuò)充關(guān)系(識(shí)別變種)對(duì)于創(chuàng)建簡(jiǎn)單、易于理解的系統(tǒng)用例集是非常重要的。用例圖的構(gòu)成擴(kuò)充關(guān)系(Extend)用例圖的構(gòu)成2.3.3用例圖的應(yīng)用為系統(tǒng)的上下文建模為系統(tǒng)的上下文建模,涉及到圍繞整個(gè)系統(tǒng)劃一條線(xiàn),并確保位于系統(tǒng)外的參與者與系統(tǒng)相互作用。這個(gè)上下文定義了系統(tǒng)存在的環(huán)境。在建立用例圖時(shí),首先要確定圍繞系統(tǒng)的參與者,確定參與者是很重要的,因?yàn)檫@樣就確定了與系統(tǒng)交互作用的一類(lèi)事物。對(duì)系統(tǒng)的需求建模需求規(guī)定了用戶(hù)期望系統(tǒng)做什么。需求的表達(dá)可以有很多方式,例如:事件流描述、活動(dòng)圖。系統(tǒng)的全部或大部分功能需求可以表達(dá)為用例。UML的用例圖對(duì)于管理這些需求是很重要的。為系統(tǒng)的需求建模涉及到規(guī)定系統(tǒng)應(yīng)該做什么,不需要知道系統(tǒng)應(yīng)該怎樣實(shí)現(xiàn)這些行為,即用例圖用來(lái)規(guī)定系統(tǒng)的行為。2.3.3用例圖的應(yīng)用為系統(tǒng)的上下文建模2.4類(lèi)圖和對(duì)象圖
類(lèi)的相關(guān)概念類(lèi)圖對(duì)象圖
2.4類(lèi)圖和對(duì)象圖類(lèi)的相關(guān)概念2.4.1類(lèi)的相關(guān)概念
類(lèi)是一組具有相同屬性、操作、關(guān)系和語(yǔ)義的對(duì)象的描述,是現(xiàn)實(shí)世界中的事物的抽象,當(dāng)這些事物存在于真實(shí)世界中時(shí),他們是類(lèi)的實(shí)例,并被稱(chēng)為對(duì)象。類(lèi)的UML符號(hào)表示是劃分為3個(gè)格子的長(zhǎng)方形,頂部的格子放類(lèi)名,中間格子放類(lèi)的屬性、屬性的類(lèi)型和值,下面的格子放操作、操作的參數(shù)表和返回類(lèi)型。有實(shí)例的建模元素稱(chēng)為類(lèi)元,它具有結(jié)構(gòu)特征(屬性)和行為特征(操作)。包括類(lèi)、接口、數(shù)據(jù)類(lèi)型、信號(hào)、構(gòu)件、節(jié)點(diǎn)、用例和子系統(tǒng)。2.4.1類(lèi)的相關(guān)概念類(lèi)是一組具有相同屬性、操作、關(guān)系類(lèi)的名稱(chēng)每個(gè)類(lèi)都有一個(gè)名字,以與其他類(lèi)相區(qū)別。在實(shí)踐中,類(lèi)名通常用問(wèn)題域中的短名詞或名詞詞組來(lái)表示。通常將類(lèi)名中的每個(gè)組成詞的第一個(gè)字母大寫(xiě),如Student、HelloWorld等。類(lèi)的命名應(yīng)盡量用問(wèn)題域中的術(shù)語(yǔ),應(yīng)明確、無(wú)歧義,以利于開(kāi)發(fā)人員與用戶(hù)之間的相互理解與交流。類(lèi)的屬性屬性描述了類(lèi)的所有對(duì)象所共有的特性。一個(gè)類(lèi)可以有一個(gè)或多個(gè)屬性或者根本沒(méi)有屬性。屬性是類(lèi)的對(duì)象所包含的數(shù)據(jù)或狀態(tài)的抽象。在特定的時(shí)刻,類(lèi)的對(duì)象對(duì)類(lèi)的每個(gè)屬性都有特定的值。不同的屬性具有不同的可見(jiàn)性,可見(jiàn)性用來(lái)描述特征能否為其他類(lèi)元使用。常見(jiàn)的可見(jiàn)性有公用的(public)、私有的(private)、受保護(hù)的(protected)類(lèi)的相關(guān)概念
類(lèi)的名稱(chēng)類(lèi)的相關(guān)概念類(lèi)的操作操作是類(lèi)的所有對(duì)象所共有的行為的抽象。操作用于修改、檢索類(lèi)的屬性或執(zhí)行某些動(dòng)作。一個(gè)類(lèi)可以有任何數(shù)量的操作或根本沒(méi)有操作。操作通常也被稱(chēng)為功能或方法,但是它們被約束在類(lèi)的內(nèi)部,只能作用到該類(lèi)的對(duì)象上。操作名、返回類(lèi)型和參數(shù)表組成操作的接口。類(lèi)的類(lèi)型邊界類(lèi)實(shí)體類(lèi)控制類(lèi)類(lèi)的相關(guān)概念
類(lèi)的操作類(lèi)的相關(guān)概念2.4.2類(lèi)圖
概述類(lèi)圖是面向?qū)ο蠼W畛R?jiàn)的圖,它是顯示一組類(lèi)、接口、協(xié)作以及它們之間關(guān)系的圖。類(lèi)圖由類(lèi)、接口、協(xié)作、依賴(lài)關(guān)系、類(lèi)屬關(guān)系、實(shí)現(xiàn)關(guān)系以及關(guān)聯(lián)關(guān)系這幾部分組成,像其他的圖一樣,類(lèi)圖也可以含有注釋和約束。劃分雖然在軟件開(kāi)發(fā)的不同階段都使用類(lèi)圖,但這些類(lèi)圖描述了不同層次的抽象。在需求分析階段,類(lèi)圖是所研究的問(wèn)題域中的概念;在設(shè)計(jì)階段,類(lèi)圖描述類(lèi)與類(lèi)之間的接口;在實(shí)現(xiàn)階段,類(lèi)圖描述軟件系統(tǒng)中類(lèi)的實(shí)現(xiàn)。要正確的理解類(lèi)圖,首先應(yīng)正確的理解3種層次:概念層、說(shuō)明層、實(shí)現(xiàn)層。2.4.2類(lèi)圖概述類(lèi)圖
如何篩選得到分析類(lèi)并畫(huà)出分析類(lèi)圖在系統(tǒng)分析階段的前半部分內(nèi)容中,使用用例圖、活動(dòng)圖和用例的一種結(jié)構(gòu)化文檔描述方法對(duì)系統(tǒng)的需求進(jìn)行了分析。下一步的工作是找出實(shí)體類(lèi)、控制類(lèi)和邊界類(lèi),然后再使用協(xié)作圖分析它們之間的交互情況,從而不僅又一次明確了功能需求,也為在設(shè)計(jì)階段設(shè)計(jì)出真正的可編程的類(lèi)打下了基礎(chǔ),因此這是一個(gè)承前啟后的過(guò)程。以“圖書(shū)選購(gòu)”這一個(gè)功能為例。類(lèi)圖如何篩選得到分析類(lèi)并畫(huà)出分析類(lèi)圖類(lèi)圖
設(shè)計(jì)階段類(lèi)圖的作用對(duì)簡(jiǎn)單的協(xié)作建模對(duì)數(shù)據(jù)庫(kù)概念設(shè)計(jì)建模
類(lèi)圖的應(yīng)用對(duì)系統(tǒng)的詞匯建模對(duì)簡(jiǎn)單的協(xié)作建模對(duì)邏輯數(shù)據(jù)庫(kù)模式建模類(lèi)圖設(shè)計(jì)階段類(lèi)圖的作用2.4.3對(duì)象圖
概述表示在某一時(shí)間點(diǎn)上一組對(duì)象以及它們之間的關(guān)系的圖,模擬類(lèi)圖中所含有的類(lèi)的實(shí)例。它為處在時(shí)域空間某一點(diǎn)的系統(tǒng)建模,描繪了系統(tǒng)的對(duì)象、對(duì)象的狀態(tài)及對(duì)象間的關(guān)系。對(duì)象圖主要用來(lái)為對(duì)象結(jié)構(gòu)建模。對(duì)象圖可以看作是類(lèi)圖的一個(gè)實(shí)例。對(duì)象是類(lèi)的實(shí)例,對(duì)象之間的連接是類(lèi)之間的關(guān)聯(lián)關(guān)系的實(shí)例。對(duì)象圖常用于描述復(fù)雜類(lèi)圖的一個(gè)實(shí)例。對(duì)象圖中通常含有:對(duì)象(Objects)、連接(Links),對(duì)象圖可以含有注解和約束;對(duì)象圖也可以含有包或子系統(tǒng),包或子系統(tǒng)用來(lái)將模型的元素封裝成比較大的模塊。2.4.3對(duì)象圖概述對(duì)象圖
應(yīng)用對(duì)象圖通常用于為對(duì)象結(jié)構(gòu)建模。對(duì)象圖可以用來(lái)可視化、規(guī)范、構(gòu)造、并文檔化系統(tǒng)中特定實(shí)例的存在以及實(shí)例間的關(guān)系。為對(duì)象結(jié)構(gòu)建模時(shí),需要考慮以下幾點(diǎn):確定想要模擬的機(jī)制。機(jī)制代表了所模擬的部分系統(tǒng)的由類(lèi)、接口等交互作用產(chǎn)生的功能或行為。對(duì)于每個(gè)機(jī)制,識(shí)別參加這個(gè)協(xié)作的類(lèi)、接口以及其他元素,并確定這些元素間的關(guān)系。考慮貫穿這個(gè)機(jī)制的一個(gè)腳本,顯示在腳本的某一時(shí)間點(diǎn)參與這個(gè)機(jī)制的對(duì)象。如果必要,揭示每個(gè)對(duì)象的狀態(tài)和屬性值。類(lèi)似地,揭示對(duì)象間的連接,這些連接是關(guān)聯(lián)關(guān)系的實(shí)例。對(duì)象圖應(yīng)用2.5交互作用圖
顯示一個(gè)交互,由一組對(duì)象和它們之間的關(guān)系構(gòu)成,其中包括在對(duì)象間傳遞的消息。順序圖和協(xié)作圖都被稱(chēng)為交互作用圖。順序圖強(qiáng)調(diào)消息的時(shí)間順序,適合于描述實(shí)時(shí)系統(tǒng);協(xié)作圖強(qiáng)調(diào)發(fā)送和接收消息的對(duì)象的組織結(jié)構(gòu),描述了對(duì)象間的關(guān)系。交互作用圖的組成元素:對(duì)象;連接;消息;注解和約束。2.5交互作用圖顯示一個(gè)交互,由一組對(duì)象和它們之間的關(guān)系2.5.1交互
交互是由實(shí)現(xiàn)某一目標(biāo)的一組對(duì)象之間進(jìn)行交換的一組消息所構(gòu)成的行為。它包括連接和消息,連接是關(guān)聯(lián)的一個(gè)實(shí)例,它指明了一個(gè)對(duì)象向另一個(gè)對(duì)象發(fā)送消息的路徑;消息是傳送信息的對(duì)象之間所進(jìn)行的通訊的詳述。消息的傳送將引起如下動(dòng)作:調(diào)用(Call)返回(Return)發(fā)送(Send)創(chuàng)建(Create)撤消(Destroy)2.5.1交互交互是由實(shí)現(xiàn)某一目標(biāo)的一組對(duì)象之間進(jìn)行交2.5.2順序圖概述
順序圖存在兩個(gè)軸:水平軸表示不同的對(duì)象,垂直軸表示時(shí)間。順序圖中的對(duì)象用一個(gè)帶有垂直虛線(xiàn)的矩形框表示,并標(biāo)有對(duì)象名和類(lèi)名,對(duì)于對(duì)象,可以只標(biāo)對(duì)象名,也可以只標(biāo)類(lèi)名,還可以都標(biāo)出。垂直虛線(xiàn)是對(duì)象的生命線(xiàn),用于表示在某段時(shí)間內(nèi)對(duì)象是存在的。對(duì)象間的通信通過(guò)在對(duì)象的生命線(xiàn)間畫(huà)消息來(lái)表示。2.5.2順序圖概述順序圖存在兩個(gè)軸:水平軸表示不同的對(duì)順序圖概述
順序圖中的消息可以是信號(hào)、操作調(diào)用等。當(dāng)收到消息時(shí),接收對(duì)象立即開(kāi)始執(zhí)行活動(dòng),即對(duì)象被激活了,通過(guò)對(duì)象生命線(xiàn)上的一個(gè)細(xì)長(zhǎng)矩形框來(lái)表示激活。消息以帶有標(biāo)簽的箭頭表示。消息還可帶有條件表達(dá)式,表示分支或決定是否發(fā)送消息。如果用于表示分支,則每個(gè)分支是相互排斥的,即在某一時(shí)刻僅可發(fā)送分支中的一個(gè)消息。順序圖概述順序圖中的消息可以是信號(hào)、操作調(diào)用等。當(dāng)收到消息
順序圖強(qiáng)調(diào)了消息的時(shí)間順序。在畫(huà)順序圖時(shí),首先將參與交互作用的對(duì)象沿著X軸放在圖的頂端,將啟動(dòng)交互作用的對(duì)象放在左邊,將從屬的對(duì)象放在右邊,將這些對(duì)象發(fā)送和接收的消息按照時(shí)間增加的順序沿著Y軸由上而下地放置。順序圖強(qiáng)調(diào)了消息的時(shí)間順序。在畫(huà)順序圖時(shí),首先將參與交互作
當(dāng)消息的源和目標(biāo)為對(duì)象或類(lèi)時(shí),標(biāo)簽是響應(yīng)消息時(shí)所調(diào)用的方法的簽名。不過(guò),如果源或目標(biāo)中有一方是參與者,那么消息就以描述交流信息的簡(jiǎn)要文本為標(biāo)簽。當(dāng)消息的源和目標(biāo)為對(duì)象或類(lèi)時(shí),標(biāo)簽是響應(yīng)消息時(shí)所調(diào)用的方法順序圖概述
順序圖區(qū)別于協(xié)作圖的兩個(gè)特點(diǎn):有對(duì)象生命線(xiàn)。有控制中心。順序圖概述順序圖區(qū)別于協(xié)作圖的兩個(gè)特點(diǎn):2.5.3協(xié)作圖概述在形成協(xié)作圖時(shí),首先要將參與交互作用的對(duì)象放在圖中,然后聯(lián)結(jié)這些對(duì)象,并用對(duì)象接收和發(fā)送的消息來(lái)裝飾這些連接。協(xié)作圖沒(méi)有時(shí)間維,所以消息和并發(fā)線(xiàn)程的時(shí)間順序必須由序列號(hào)表示。協(xié)作圖描述了兩個(gè)方面:對(duì)交互作用的對(duì)象的靜態(tài)結(jié)構(gòu)的描述,包括相關(guān)的對(duì)象的關(guān)系、屬性和操作;為完成工作在對(duì)象間交換的消息的時(shí)間順序的描述。第一個(gè)方面被稱(chēng)為協(xié)作所提供的“上下文”,第二個(gè)方面被稱(chēng)為協(xié)作支持的“交互作用”。2.5.3協(xié)作圖概述在形成協(xié)作圖時(shí),首先要將參與交互作用的
對(duì)象間的連接關(guān)系是類(lèi)圖中類(lèi)之間關(guān)系的實(shí)例。通過(guò)在對(duì)象間的連接上標(biāo)記帶有消息串的消息來(lái)表達(dá)對(duì)象間的消息傳遞,也即描述對(duì)象間的交互。協(xié)作圖中的連接用于表示對(duì)象間的各種關(guān)系,消息的箭頭指明消息的流動(dòng)方向,消息串說(shuō)明要發(fā)送的消息、消息的參數(shù)、消息的返回值以及消息的序列號(hào)等信息。對(duì)象間的連接關(guān)系是類(lèi)圖中類(lèi)之間關(guān)系的實(shí)例。通過(guò)在對(duì)象間的連協(xié)作圖概述
協(xié)作圖區(qū)別于順序圖的兩個(gè)特點(diǎn):有路徑有序列號(hào)協(xié)作圖概述協(xié)作圖區(qū)別于順序圖的兩個(gè)特點(diǎn):2.5.4交互作用圖的應(yīng)用
在用交互作用圖為系統(tǒng)的動(dòng)態(tài)方面建模時(shí),上下文可以是整個(gè)系統(tǒng)、一個(gè)子系統(tǒng)、一個(gè)操作或一個(gè)類(lèi),還可以用交互作用圖來(lái)為用例的一個(gè)腳本建模。當(dāng)為系統(tǒng)的動(dòng)態(tài)方面建模時(shí),通常有以下兩種方式:
按時(shí)間順序?yàn)榭刂屏鹘P枰褂庙樞驁D按時(shí)間順序?yàn)榭刂屏鹘!?/p>
按組織結(jié)構(gòu)為控制流建模在按組織結(jié)構(gòu)為控制流建模的情況下,使用協(xié)作圖。
2.5.4交互作用圖的應(yīng)用在用交互作用圖為系統(tǒng)的動(dòng)態(tài)方2.6活動(dòng)圖
活動(dòng)圖概述活動(dòng)圖的組成元素活動(dòng)圖的應(yīng)用
2.6活動(dòng)圖活動(dòng)圖概述2.6.1活動(dòng)圖概述
活動(dòng)圖是一個(gè)流圖,描述了從活動(dòng)到活動(dòng)的流。一個(gè)活動(dòng)是在狀態(tài)機(jī)中進(jìn)行的一個(gè)非原子執(zhí)行單元,它由一系列的動(dòng)作組成。動(dòng)作由可執(zhí)行的原子計(jì)算組成,這些計(jì)算會(huì)導(dǎo)致系統(tǒng)狀態(tài)的改變或者返回一個(gè)值。例如調(diào)用另一個(gè)操作、發(fā)送一個(gè)信號(hào)、創(chuàng)建或破壞一個(gè)對(duì)象、或者是純粹的計(jì)算(例如計(jì)算一個(gè)表達(dá)式的值)等都是動(dòng)作。活動(dòng)圖主要包含下列元素:活動(dòng)狀態(tài)和動(dòng)作狀態(tài)躍遷對(duì)象注釋和約束2.6.1活動(dòng)圖概述活動(dòng)圖是一個(gè)流圖,描述了從活動(dòng)到活動(dòng)2.6.2活動(dòng)圖的組成元素
動(dòng)作狀態(tài)和活動(dòng)狀態(tài)躍遷源狀態(tài)(SourceState)與目標(biāo)狀態(tài)(TargetState)觸發(fā)事件(EventTrigger)護(hù)衛(wèi)條件(GuardCondition)動(dòng)作(Action)
分支分叉和聯(lián)結(jié)泳道對(duì)象流2.6.2活動(dòng)圖的組成元素動(dòng)作狀態(tài)和活動(dòng)狀態(tài)2.6.3活動(dòng)圖的應(yīng)用
活動(dòng)圖可以用來(lái)為系統(tǒng)的動(dòng)態(tài)方面建模,這些動(dòng)態(tài)方面包括系統(tǒng)中任意一種抽象(包括類(lèi)、接口、組件、節(jié)點(diǎn))的活動(dòng),通常活動(dòng)圖的上下文可以是系統(tǒng)、子系統(tǒng)、操作或類(lèi)。活動(dòng)圖還可以用來(lái)描述用例腳本。活動(dòng)圖的應(yīng)用通常分為兩種情況:
對(duì)工作流建模對(duì)操作建模
2.6.3活動(dòng)圖的應(yīng)用活動(dòng)圖可以用來(lái)為系統(tǒng)的動(dòng)態(tài)方面建模2.7用例驅(qū)動(dòng)開(kāi)發(fā)
用例驅(qū)動(dòng)開(kāi)發(fā)概述在UML中,用例規(guī)定了系統(tǒng)或部分系統(tǒng)的行為,它描述了系統(tǒng)所執(zhí)行的一組動(dòng)作序列,系統(tǒng)執(zhí)行該動(dòng)作序列來(lái)為參與者產(chǎn)生一個(gè)可供觀(guān)察的結(jié)果。用例著眼于為用戶(hù)增加價(jià)值,提供了一種捕獲功能需求的系統(tǒng)且直觀(guān)的方法。所有用例合在一起構(gòu)成用例模型。用例模型用于系統(tǒng)開(kāi)發(fā)的各個(gè)階段。
2.7用例驅(qū)動(dòng)開(kāi)發(fā)用例驅(qū)動(dòng)開(kāi)發(fā)概述用例驅(qū)動(dòng)開(kāi)發(fā)用例模型用于需求分析階段,它的建立是系統(tǒng)開(kāi)發(fā)者和用戶(hù)反復(fù)討論的結(jié)果,表明了開(kāi)發(fā)者和用戶(hù)對(duì)需求規(guī)格定義達(dá)成的共識(shí)。開(kāi)發(fā)人員捕獲需求形成用例模型;開(kāi)發(fā)人員以用例模型作為輸入創(chuàng)建分析模型;開(kāi)發(fā)人員以分析模型作為輸入創(chuàng)建設(shè)計(jì)模型,并進(jìn)一步創(chuàng)建實(shí)施模型;開(kāi)發(fā)人員把設(shè)計(jì)模型中的類(lèi)實(shí)現(xiàn)為實(shí)現(xiàn)模型中的構(gòu)件;測(cè)試人員驗(yàn)證系統(tǒng)確實(shí)能夠?qū)崿F(xiàn)用例所描述的功能。用例驅(qū)動(dòng)開(kāi)發(fā)用例模型用于需求分析階段,它的建立是系統(tǒng)開(kāi)發(fā)者和用例驅(qū)動(dòng)開(kāi)發(fā)用例不僅啟動(dòng)了開(kāi)發(fā)過(guò)程,而且使其結(jié)合為一體。
基于用例的銀行系統(tǒng)分析、設(shè)計(jì)和實(shí)現(xiàn)用例驅(qū)動(dòng)開(kāi)發(fā)用例不僅啟動(dòng)了開(kāi)發(fā)過(guò)程,而且使其結(jié)合為一體。基2.8RationalRose的安裝與使用
安裝RationalRoseEnterpriseEdition2002forWindows
啟動(dòng)RationalRoseEnterpriseEdition
掌握靜態(tài)圖的畫(huà)法
用例圖、類(lèi)圖、組件圖、配置圖掌握動(dòng)態(tài)圖的畫(huà)法
狀態(tài)圖、活動(dòng)圖、順序圖、協(xié)作圖2.8RationalRose的安裝與使用安裝Ra復(fù)習(xí)思考題1.()是軟件需求分析到最終實(shí)現(xiàn)的第一步。
(A)類(lèi)圖 (B)對(duì)象圖
(C)用例圖 (D)順序圖2.交互圖可以分為以下幾種()。
(A)活動(dòng)圖(B)順序圖
(C)配置圖(D)協(xié)作圖3.判斷:接口是用來(lái)規(guī)定類(lèi)或組件服務(wù)的操作集,每個(gè)類(lèi)只能實(shí)現(xiàn)一個(gè)接口。4.常用的建模方法有哪些?試分別闡述。5.詳細(xì)論述類(lèi)圖在設(shè)計(jì)階段的作用及類(lèi)圖的應(yīng)用。復(fù)習(xí)思考題1.()是軟件需求分析到最終實(shí)現(xiàn)的第一步TheEndTheEnd第2章統(tǒng)一建模語(yǔ)言UML第2章統(tǒng)一建模語(yǔ)言UML本章內(nèi)容2.1UML概述
2.2UML的關(guān)系
2.3用例圖2.4類(lèi)圖和對(duì)象圖2.5交互作用圖2.6活動(dòng)圖2.7用例驅(qū)動(dòng)開(kāi)發(fā)2.8RationalRose的安裝與使用本章內(nèi)容2.1UML概述2.1UML概述
建模的目的
UML簡(jiǎn)介
UML的術(shù)語(yǔ)和概念
UML的組成2.1UML概述建模的目的2.1.1建模的目的
建模的必要性
對(duì)于多數(shù)程序員而言,在腦海里設(shè)想一個(gè)軟件的實(shí)現(xiàn)與用代碼來(lái)實(shí)現(xiàn)這個(gè)軟件是沒(méi)有距離的,怎么想,就怎么用代碼來(lái)實(shí)現(xiàn)它。這種做法會(huì)產(chǎn)生下列問(wèn)題:不利于交流。如果不建立模型,軟件系統(tǒng)中的有些東西很難用文本的編程語(yǔ)言來(lái)表達(dá)清楚。如果程序員在修改代碼時(shí),沒(méi)有將他腦海中的模型記錄下來(lái),這個(gè)信息可能會(huì)永遠(yuǎn)丟失,不便于軟件維護(hù)。2.1.1建模的目的建模的必要性
建模的重要性模型是對(duì)現(xiàn)實(shí)世界的簡(jiǎn)化,建模是為了更好地理解正在開(kāi)發(fā)的系統(tǒng)。建模原理每一種模型可以在不同的精度級(jí)別上表示,最好的模型是與現(xiàn)實(shí)相聯(lián)系的。單個(gè)模型是不充分的。對(duì)重要的系統(tǒng)應(yīng)采用一組幾乎獨(dú)立的模型進(jìn)行建模。面向?qū)ο蠼乃惴ǖ慕嵌冉#ńY(jié)構(gòu)化)從面向?qū)ο蟮慕嵌冉=5哪康?/p>
建模的重要性建模的目的2.1.2UML簡(jiǎn)介
UML的發(fā)展UML不僅結(jié)合了Booch、OMT和OOSE方法,而且對(duì)其做了進(jìn)一步的發(fā)展,統(tǒng)一了符號(hào)體系,并從其它的方法和軟件工程實(shí)踐中吸收了許多經(jīng)過(guò)實(shí)際檢驗(yàn)的概念和技術(shù);UML是GradyBooch、JamesRumbaugh、IvarJacobson和許多其他人員集體智慧的結(jié)晶,并最終統(tǒng)一為大眾所接受的標(biāo)準(zhǔn)建模語(yǔ)言。2.1.2UML簡(jiǎn)介UML的發(fā)展
UML的特點(diǎn)UML是一種語(yǔ)言UML是一種可視化語(yǔ)言UML是一種可用于詳細(xì)描述的語(yǔ)言UML是一種構(gòu)造語(yǔ)言UML是一種文檔化語(yǔ)言
UML的功能為軟件系統(tǒng)的產(chǎn)出建立可視化模型規(guī)約軟件系統(tǒng)的產(chǎn)出構(gòu)造軟件系統(tǒng)的產(chǎn)出UML簡(jiǎn)介
UML的特點(diǎn)UML簡(jiǎn)介2.1.3UML的術(shù)語(yǔ)和概念
系統(tǒng)和模型系統(tǒng)和子系統(tǒng)模型視圖用例視圖設(shè)計(jì)視圖過(guò)程視圖實(shí)現(xiàn)視圖配置視圖圖系統(tǒng)和子系統(tǒng)2.1.3UML的術(shù)語(yǔ)和概念系統(tǒng)和模型系統(tǒng)和子系統(tǒng)
包
包是一個(gè)用來(lái)將模型單元分組的通用機(jī)制,可以將一個(gè)系統(tǒng)看作一個(gè)單一的、高級(jí)的包。可見(jiàn)性引入與輸出類(lèi)屬關(guān)系UML的術(shù)語(yǔ)和概念
包UML的術(shù)語(yǔ)和概念
注釋注釋是附加在元素或元素集上,用來(lái)表示約束或注釋的圖形符號(hào)。
UML的術(shù)語(yǔ)和概念
注釋UML的術(shù)語(yǔ)和概念
協(xié)作協(xié)作是一組類(lèi)、接口和其他元素的群體,它們共同工作,提供比各組成部分的功能總和更強(qiáng)的合作行為。UML的術(shù)語(yǔ)和概念
協(xié)作UML的術(shù)語(yǔ)和概念
對(duì)象對(duì)象(Object)代表了類(lèi)的一個(gè)特定實(shí)例,具有身份(Identity)和屬性值(AttributeValues)。為了與上下文中的其他對(duì)象相區(qū)別,每個(gè)對(duì)象都應(yīng)該有一個(gè)名字。對(duì)象可以用3種方式命名:對(duì)象名、對(duì)象名和類(lèi)名、或只用類(lèi)名。UML的術(shù)語(yǔ)和概念
對(duì)象UML的術(shù)語(yǔ)和概念
消息消息是對(duì)象間的通信,它傳達(dá)了要執(zhí)行動(dòng)作的信息,它能觸發(fā)事件。UML的術(shù)語(yǔ)和概念
消息UML的術(shù)語(yǔ)和概念
接口接口是用來(lái)規(guī)定類(lèi)或組件服務(wù)的操作的集合。接口可以有名字,以與其他的接口相區(qū)分。實(shí)踐中,接口名通常是從問(wèn)題域的詞匯表中抽取出的短名詞或名詞詞組。和類(lèi)一樣,接口可以參與類(lèi)屬關(guān)系、關(guān)聯(lián)關(guān)系和依賴(lài)關(guān)系。另外,接口還可以參與實(shí)現(xiàn)關(guān)系。UML的術(shù)語(yǔ)和概念
接口UML的術(shù)語(yǔ)和概念接口的符號(hào)如圖所示有3中表示方法。第一種是圖標(biāo)(Icon)形式,第二種是修飾(Decoration)形式,第三種是標(biāo)簽(Label)形式。對(duì)于后兩種表示方法,還可以將屬性、或操作、或兩部分都隱藏起來(lái)UML的術(shù)語(yǔ)和概念
接口的符號(hào)如圖所示有3中表示方法。第一種是圖標(biāo)(Icon)形
類(lèi)型類(lèi)型是類(lèi)的構(gòu)造型,用于描述對(duì)象的域。UML的術(shù)語(yǔ)和概念
類(lèi)型UML的術(shù)語(yǔ)和概念
角色角色是一個(gè)參與特定語(yǔ)境的實(shí)體的行為。UML的術(shù)語(yǔ)和概念
角色UML的術(shù)語(yǔ)和概念
實(shí)例實(shí)例是抽象的具體表示,對(duì)它可使用一組操作,它有用來(lái)存儲(chǔ)操作結(jié)果的狀態(tài)。名稱(chēng)操作狀態(tài)主動(dòng)對(duì)象連接類(lèi)范圍的屬性和操作暫時(shí)UML的術(shù)語(yǔ)和概念
實(shí)例UML的術(shù)語(yǔ)和概念
事件事件是對(duì)一個(gè)在時(shí)間和空間上占有一定位置的有意義的事情的規(guī)格說(shuō)明。種類(lèi)消息信號(hào)調(diào)用UML的術(shù)語(yǔ)和概念
事件UML的術(shù)語(yǔ)和概念UML的擴(kuò)充機(jī)制UML支持自身的擴(kuò)充與調(diào)整,以便使其與一個(gè)特定的方法、組織或用戶(hù)相一致,UML中包含3種主要的擴(kuò)充組件:原型、標(biāo)記值和約束。原型:能夠說(shuō)清領(lǐng)域中的詞匯,且看起來(lái)仍像原有構(gòu)造塊的新事物。標(biāo)記值:為UML事物增加新的特性。約束:增加新的語(yǔ)義或改變已存在的規(guī)則。UML的術(shù)語(yǔ)和概念
UML的擴(kuò)充機(jī)制UML的術(shù)語(yǔ)和概念
狀態(tài)機(jī)說(shuō)明對(duì)象在生命期中響應(yīng)事件所經(jīng)歷的狀態(tài)序列,以及它們對(duì)事件的響應(yīng)。狀態(tài):對(duì)象生命期中的一個(gè)條件或狀況,在此期間,對(duì)象將滿(mǎn)足某些條件,執(zhí)行某些活動(dòng),或等待某些事件。初態(tài):狀態(tài)機(jī)或子狀態(tài)的缺省開(kāi)始位置;終態(tài):狀態(tài)機(jī)或外圍狀態(tài)的執(zhí)行已經(jīng)完成。轉(zhuǎn)換:一個(gè)轉(zhuǎn)換是兩個(gè)狀態(tài)之間的一種關(guān)系,表示對(duì)象將在第一個(gè)狀態(tài)中執(zhí)行一定的動(dòng)作,并在某個(gè)特定事件發(fā)生而某個(gè)特定的條件滿(mǎn)足時(shí)進(jìn)入第二個(gè)狀態(tài)。UML的術(shù)語(yǔ)和概念
狀態(tài)機(jī)UML的術(shù)語(yǔ)和概念
時(shí)間和空間時(shí)間標(biāo)記:表示事件發(fā)生時(shí)刻的符號(hào),由交互中的消息名形成的表達(dá)式。時(shí)間表達(dá)式:用來(lái)判斷絕對(duì)或相對(duì)時(shí)間值的表達(dá)式。時(shí)間約束:關(guān)于絕對(duì)或相對(duì)時(shí)間值的語(yǔ)義陳述。位置:一個(gè)構(gòu)件在一個(gè)節(jié)點(diǎn)上的位置。實(shí)時(shí)系統(tǒng):是時(shí)間關(guān)鍵系統(tǒng)。事件可以在規(guī)則或不規(guī)則的時(shí)間發(fā)生;對(duì)一個(gè)事件的響應(yīng)必須在可預(yù)料的絕對(duì)時(shí)間或者相對(duì)于事件本身的時(shí)間發(fā)生。UML的術(shù)語(yǔ)和概念
時(shí)間和空間UML的術(shù)語(yǔ)和概念UML的內(nèi)容UML語(yǔ)義UML表示法
UML的構(gòu)成元素結(jié)構(gòu)元素:模型的靜態(tài)部分,描述概念或物理元素。包括類(lèi)、接口、協(xié)作、用例、主動(dòng)類(lèi)、組件和節(jié)點(diǎn)。行為元素:模型的動(dòng)態(tài)部分,描述跨越時(shí)間和空間的行為。包括交互和狀態(tài)機(jī)。分組元素:模型的組織部分,如包。注釋元素:模型的解釋部分,用來(lái)描述、說(shuō)明和標(biāo)注模型的任何元素,如注解。2.1.4UML的組成
UML的內(nèi)容2.1.4UML的組成關(guān)系
關(guān)系說(shuō)明元素之間的相互聯(lián)系,即事物之間的聯(lián)系,在面向?qū)ο蠼V校兴姆N很重要的關(guān)系:依賴(lài)(Dependency)關(guān)系類(lèi)屬(Generalization)關(guān)系關(guān)聯(lián)(Association)關(guān)系實(shí)現(xiàn)(Realization)關(guān)系UML的組成
關(guān)系UML的組成圖
圖是由一組元素和關(guān)系組成的連通圖,包括靜態(tài)結(jié)構(gòu)圖和動(dòng)態(tài)行為圖類(lèi)圖對(duì)象圖組件圖配置圖用例圖UML的組成
順序圖協(xié)作圖狀態(tài)圖活動(dòng)圖圖UML的組成2.2UML的關(guān)系
依賴(lài)關(guān)系類(lèi)屬關(guān)系關(guān)聯(lián)關(guān)系實(shí)現(xiàn)關(guān)系
2.2UML的關(guān)系依賴(lài)關(guān)系2.2.1依賴(lài)關(guān)系
依賴(lài)關(guān)系描述了類(lèi)之間的使用關(guān)系。如果一個(gè)模型元素發(fā)生變化會(huì)影響另一個(gè)模型元素(這種影響不必是可逆的),那么就說(shuō)在這兩個(gè)模型元素之間存在依賴(lài)關(guān)系。例如:有兩個(gè)元素X、Y,如果修改元素X的定義會(huì)引起對(duì)元素Y的定義的修改,則稱(chēng)元素Y依賴(lài)于元素X。2.2.1依賴(lài)關(guān)系依賴(lài)關(guān)系描述了類(lèi)之間的使用關(guān)系。依賴(lài)關(guān)系
依賴(lài)關(guān)系的UML符號(hào)表示是帶箭頭的虛線(xiàn),指向被依賴(lài)的模型元素。依賴(lài)關(guān)系依賴(lài)關(guān)系的UML符號(hào)表示是帶箭頭的虛線(xiàn),指向被依賴(lài)依賴(lài)關(guān)系在類(lèi)圖中,依賴(lài)可以由許多原因引起,例如,一個(gè)類(lèi)向另一個(gè)類(lèi)發(fā)送消息(也即,一個(gè)類(lèi)的操作調(diào)用另一個(gè)類(lèi)的操作),或者一個(gè)類(lèi)是另一個(gè)類(lèi)的數(shù)據(jù)成員,或者一個(gè)類(lèi)是另一個(gè)類(lèi)的某個(gè)操作參數(shù),那么就可以說(shuō)這兩個(gè)類(lèi)之間存在著依賴(lài)關(guān)系。語(yǔ)義上,所有的關(guān)系(包括關(guān)聯(lián)關(guān)系、類(lèi)屬關(guān)系、實(shí)現(xiàn)關(guān)系)都是各種各樣的依賴(lài)關(guān)系,因?yàn)檫@3種關(guān)系具有很重要的語(yǔ)義,所以在UML中被分離出來(lái)成為獨(dú)立的關(guān)系。依賴(lài)關(guān)系在類(lèi)圖中,依賴(lài)可以由許多原因引起,例如,一個(gè)類(lèi)向另一2.2.2類(lèi)屬關(guān)系
類(lèi)之間的類(lèi)屬關(guān)系表示子類(lèi)繼承一個(gè)或多個(gè)父類(lèi)的結(jié)構(gòu)與行為。類(lèi)屬關(guān)系描述了類(lèi)之間的“是一種”(is-a-kind-of)的關(guān)系,類(lèi)屬關(guān)系用來(lái)連接一般類(lèi)與特殊類(lèi),用來(lái)描述父類(lèi)與子類(lèi)或父與子的關(guān)系,子類(lèi)繼承父類(lèi)的特性,尤其是屬性和操作。類(lèi)屬關(guān)系的UML符號(hào)表示是帶空心箭頭的實(shí)線(xiàn),箭頭指向父元素。2.2.2類(lèi)屬關(guān)系類(lèi)之間的類(lèi)屬關(guān)系表示子類(lèi)繼承一個(gè)或多個(gè)
一個(gè)類(lèi)可以有零個(gè)到多個(gè)父類(lèi),沒(méi)有父類(lèi)且有一個(gè)或多個(gè)子類(lèi)的類(lèi)被稱(chēng)為根類(lèi)或基類(lèi)。沒(méi)有子類(lèi)的類(lèi)被稱(chēng)為葉類(lèi)。一個(gè)類(lèi)可以有零個(gè)到多個(gè)父類(lèi),沒(méi)有父類(lèi)且有一個(gè)或多個(gè)子
如果在繼承關(guān)系中,每個(gè)類(lèi)只能有一個(gè)父類(lèi),則是單繼承。
如果一個(gè)類(lèi)有多于一個(gè)的父類(lèi)存在,則被稱(chēng)為多繼承。
如果在繼承關(guān)系中,每個(gè)類(lèi)只能有一個(gè)父類(lèi),則是單繼承。2.2.3關(guān)聯(lián)關(guān)系關(guān)聯(lián)關(guān)系是一種結(jié)構(gòu)關(guān)系,規(guī)定了一種事物的對(duì)象可以與另一種事物的對(duì)象相連。例如,雇員為公司工作,一個(gè)公司有很多部門(mén),就可以認(rèn)為雇員和公司、公司和部門(mén)之間存在某種語(yǔ)義上的聯(lián)系,在類(lèi)圖模型中,就可以在類(lèi)Employee(雇員)和類(lèi)Company(公司)、類(lèi)Company(公司)和類(lèi)Department(部門(mén))之間建立關(guān)聯(lián)關(guān)系。關(guān)聯(lián)關(guān)系的UML符號(hào)表示是一條實(shí)線(xiàn)。2.2.3關(guān)聯(lián)關(guān)系關(guān)聯(lián)關(guān)系是一種結(jié)構(gòu)關(guān)系,規(guī)定了一種事物的關(guān)聯(lián)關(guān)系
可以應(yīng)用于關(guān)聯(lián)關(guān)系的四種基本修飾是:名稱(chēng):描述關(guān)系的性質(zhì)。角色:關(guān)聯(lián)中靠近它一端的類(lèi)對(duì)另外一端的類(lèi)呈現(xiàn)的職責(zé)。階元(Multiplicity):說(shuō)明一個(gè)關(guān)聯(lián)的實(shí)例中有多少個(gè)相互連接的對(duì)象。聚合(Aggregation):整體對(duì)象擁有部分對(duì)象。關(guān)聯(lián)關(guān)系可以應(yīng)用于關(guān)聯(lián)關(guān)系的四種基本修飾是:關(guān)聯(lián)名通常是一個(gè)動(dòng)詞或動(dòng)詞詞組,用來(lái)表示關(guān)聯(lián)關(guān)系的類(lèi)型或目的。所選擇的關(guān)聯(lián)名應(yīng)該有助于理解該模型。關(guān)聯(lián)名通常是一個(gè)動(dòng)詞或動(dòng)詞詞組,用來(lái)表示關(guān)聯(lián)關(guān)系的類(lèi)型或目的
關(guān)聯(lián)關(guān)系中的相關(guān)術(shù)語(yǔ)和概念角色階元導(dǎo)航聚合關(guān)系組合關(guān)系關(guān)聯(lián)類(lèi)可見(jiàn)性限定符接口說(shuō)明符關(guān)聯(lián)關(guān)系關(guān)聯(lián)關(guān)系中的相關(guān)術(shù)語(yǔ)和概念關(guān)聯(lián)關(guān)系2.2.4實(shí)現(xiàn)關(guān)系
實(shí)現(xiàn)關(guān)系是分類(lèi)器之間的語(yǔ)義關(guān)系,一個(gè)分類(lèi)器規(guī)定合同,另一個(gè)分類(lèi)器保證實(shí)現(xiàn)這個(gè)合同。可以在兩種情況下使用實(shí)現(xiàn)關(guān)系:實(shí)現(xiàn)被用在接口與實(shí)現(xiàn)它們的類(lèi)或組件之間;實(shí)現(xiàn)被用在用例和實(shí)現(xiàn)該用例的協(xié)作之間。實(shí)現(xiàn)關(guān)系的UML符號(hào)表示是一條帶有空心箭頭的虛線(xiàn)。2.2.4實(shí)現(xiàn)關(guān)系實(shí)現(xiàn)關(guān)系是分類(lèi)器之間的語(yǔ)義關(guān)系,一個(gè)分第2章電子商務(wù)應(yīng)用系統(tǒng)與開(kāi)發(fā)課件2.3用例圖
用例圖概述用例圖的構(gòu)成用例圖的應(yīng)用
2.3用例圖用例圖概述2.3.1用例圖概述
參與者觸發(fā)用例,并與用例進(jìn)行信息交換。單個(gè)參與者可以和多個(gè)用例連接,一個(gè)用例也可以與多個(gè)參與者連接。對(duì)同一個(gè)用例而言,不同參與者有著不同活動(dòng):可以從用例獲取值,也可以輸出信息到用例中。在參與者和用例之間存在的關(guān)聯(lián)關(guān)系通常被稱(chēng)為通信關(guān)聯(lián),因?yàn)樗碇鴧⑴c者與用例之間的通信。2.3.1用例圖概述參與者觸發(fā)用例,并與用例進(jìn)行信息交換用例圖概述不帶箭頭的線(xiàn)段代表關(guān)聯(lián)是雙向?qū)Ш剑◤膮⑴c者到用例,并從用例到參與者);帶箭頭的線(xiàn)段代表關(guān)聯(lián)是單向?qū)Ш剑◤膮⑴c者到用例,或從用例到參與者),導(dǎo)航的方向表明了是參與者發(fā)起了和用例的通信還是用例發(fā)起了和參與者的通信。用例捕捉了系統(tǒng)的行為但沒(méi)有規(guī)定怎樣實(shí)現(xiàn)這些行為,這一點(diǎn)很重要,因?yàn)橄到y(tǒng)分析(規(guī)定行為)應(yīng)該盡可能多地不被實(shí)現(xiàn)的細(xì)節(jié)(規(guī)定怎樣執(zhí)行行為)所影響。最終,用例需要被實(shí)現(xiàn),在UML中用來(lái)實(shí)現(xiàn)用例的元素是協(xié)作(Collaboration)。用例圖概述不帶箭頭的線(xiàn)段代表關(guān)聯(lián)是雙向?qū)Ш剑◤膮⑴c者到用例,
協(xié)作是一起工作以實(shí)現(xiàn)用例行為的類(lèi)和其他元素構(gòu)成的群體,顯式說(shuō)明用例的實(shí)現(xiàn)。協(xié)作是一起工作以實(shí)現(xiàn)用例行為的類(lèi)和其他元素構(gòu)成的群體,顯式2.3.2用例圖的構(gòu)成
參與者在UML中,參與者代表與系統(tǒng)交互的人、硬件、或另一個(gè)系統(tǒng),是用例使用者與用例交互時(shí)所扮演的角色。參與者的UML符號(hào)表示是圖示的“小人”,并可在符號(hào)下標(biāo)出參與者名。參與者可以只向系統(tǒng)輸入信息或只從系統(tǒng)接受信息,也可以既可以輸入信息給系統(tǒng),還可以接受系統(tǒng)的輸出信息。參與者與參與者之間也可以存在類(lèi)屬關(guān)系。為了準(zhǔn)確獲取用例,首先需要識(shí)別系統(tǒng)的參與者,可以通過(guò)問(wèn)題的答案來(lái)幫助發(fā)現(xiàn)系統(tǒng)的參與者。2.3.2用例圖的構(gòu)成參與者識(shí)別參與者須注意的問(wèn)題:盡管參與者在用例圖中是用類(lèi)似人的圖形來(lái)表示,但參與者并不一定必須是人。參與者代表角色。一個(gè)實(shí)體可以扮演多種角色(參與者),在確定實(shí)體的參與者身份時(shí),應(yīng)考慮其所扮演的角色,而不是實(shí)體的頭銜或名稱(chēng)。角色不是對(duì)職位建模。用例圖的構(gòu)成識(shí)別參與者須注意的問(wèn)題:用例圖的構(gòu)成
用例用例描述了系統(tǒng)所執(zhí)行的一組動(dòng)作序列,系統(tǒng)執(zhí)行該動(dòng)作序列來(lái)為參與者產(chǎn)生一個(gè)可供觀(guān)察的結(jié)果。用例的UML符號(hào)表示是橢圓,并可在符號(hào)下標(biāo)出用例名。在實(shí)踐中,用例的名字通常是用動(dòng)詞詞組命名從問(wèn)題域中發(fā)現(xiàn)的一些行為。用例表示了系統(tǒng)的功能,也就是系統(tǒng)提供給參與者的功能。系統(tǒng)的用例構(gòu)成了系統(tǒng)的所有使用功能。用例圖的構(gòu)成用例用例圖的構(gòu)成用例圖的構(gòu)成構(gòu)造一個(gè)好的用例應(yīng)該遵循的原則:一個(gè)用例應(yīng)該描述一個(gè)從頭至尾的完整的功能,用例要與參與者交互。用例的獲取是需求分析時(shí)首先要做的工作,大部分用例將在需求分析時(shí)產(chǎn)生,并且隨著工作深入會(huì)發(fā)現(xiàn)更多的用例,這些都應(yīng)及時(shí)添加到已有的用例集中。用例集中的每個(gè)用例都是一個(gè)潛在的需求。參與者的識(shí)別對(duì)識(shí)別用例很有用。面對(duì)一個(gè)大系統(tǒng),可先列出參與者清單,再對(duì)每個(gè)參與者列出它的用例,問(wèn)題就會(huì)容易很多。在識(shí)別出了參與者后,可以通過(guò)一些問(wèn)題的答案來(lái)幫助發(fā)現(xiàn)系統(tǒng)的用例。用例圖的構(gòu)成構(gòu)造一個(gè)好的用例應(yīng)該遵循的原則:用例圖的構(gòu)成對(duì)于每個(gè)用例,都可以用事件流來(lái)規(guī)定用例的行為。用例的事件流是對(duì)完成用例規(guī)定行為所需要的事件的描述。在描述用例的事件流時(shí),既可以用非正式的結(jié)構(gòu)化文本,也可以用正式的結(jié)構(gòu)化文本,還可以用偽代碼。在創(chuàng)建事件流文檔時(shí),每個(gè)項(xiàng)目都應(yīng)使用一個(gè)標(biāo)準(zhǔn)模板,模板內(nèi)容如下所示:
X“用例名”
X.1簡(jiǎn)單描述
X.2前置條件
X.3后置條件
X.4事件流
X.4.1基流
X.4.2分支流(可選)
X.4.3替代流用例圖的構(gòu)成對(duì)于每個(gè)用例,都可以用事件流來(lái)規(guī)定用例的行為。用
用例間的關(guān)系類(lèi)屬關(guān)系(Generalization)用例間的類(lèi)屬關(guān)系如同類(lèi)間的類(lèi)屬關(guān)系。也就是說(shuō),子用例繼承父用例的行為和含義,子用例可添加新行為或覆蓋父用例的行為。包含關(guān)系(Include)多個(gè)用例可能具有一些相同的功能,共享的功能通常被放在一個(gè)單獨(dú)的用例中,可在該用例和其他需要使用其功能的用例之間創(chuàng)建Include關(guān)系。使用Include關(guān)系可以避免重復(fù)描述同樣的事件流,因?yàn)楣驳男袨楸环湃胍粋€(gè)專(zhuān)門(mén)的用例中,這個(gè)專(zhuān)門(mén)的用例是被基用例包含的。用例圖的構(gòu)成用例間的關(guān)系用例圖的構(gòu)成擴(kuò)充關(guān)系(Extend)擴(kuò)充關(guān)系用來(lái)說(shuō)明可選的、只在特定條件下運(yùn)行的行為,具有擴(kuò)充關(guān)系的用例基于參與者的選擇,可以運(yùn)行幾個(gè)不同的流。用例間的擴(kuò)充關(guān)系表示基用例在指定的擴(kuò)充點(diǎn)隱式地含有另一個(gè)用例的行為。基用例可以獨(dú)立存在,但在特定條件下,它的行為會(huì)被另一個(gè)用例的行為擴(kuò)充。基用例只在被稱(chēng)為擴(kuò)充點(diǎn)的特定點(diǎn)被擴(kuò)充。可以認(rèn)為,擴(kuò)充用例將行為推進(jìn)基用例。包含關(guān)系(抽取公共行為)和擴(kuò)充關(guān)系(識(shí)別變種)對(duì)于創(chuàng)建簡(jiǎn)單、易于理解的系統(tǒng)用例集是非常重要的。用例圖的構(gòu)成擴(kuò)充關(guān)系(Extend)用例圖的構(gòu)成2.3.3用例圖的應(yīng)用為系統(tǒng)的上下文建模為系統(tǒng)的上下文建模,涉及到圍繞整個(gè)系統(tǒng)劃一條線(xiàn),并確保位于系統(tǒng)外的參與者與系統(tǒng)相互作用。這個(gè)上下文定義了系統(tǒng)存在的環(huán)境。在建立用例圖時(shí),首先要確定圍繞系統(tǒng)的參與者,確定參與者是很重要的,因?yàn)檫@樣就確定了與系統(tǒng)交互作用的一類(lèi)事物。對(duì)系統(tǒng)的需求建模需求規(guī)定了用戶(hù)期望系統(tǒng)做什么。需求的表達(dá)可以有很多方式,例如:事件流描述、活動(dòng)圖。系統(tǒng)的全部或大部分功能需求可以表達(dá)為用例。UML的用例圖對(duì)于管理這些需求是很重要的。為系統(tǒng)的需求建模涉及到規(guī)定系統(tǒng)應(yīng)該做什么,不需要知道系統(tǒng)應(yīng)該怎樣實(shí)現(xiàn)這些行為,即用例圖用來(lái)規(guī)定系統(tǒng)的行為。2.3.3用例圖的應(yīng)用為系統(tǒng)的上下文建模2.4類(lèi)圖和對(duì)象圖
類(lèi)的相關(guān)概念類(lèi)圖對(duì)象圖
2.4類(lèi)圖和對(duì)象圖類(lèi)的相關(guān)概念2.4.1類(lèi)的相關(guān)概念
類(lèi)是一組具有相同屬性、操作、關(guān)系和語(yǔ)義的對(duì)象的描述,是現(xiàn)實(shí)世界中的事物的抽象,當(dāng)這些事物存在于真實(shí)世界中時(shí),他們是類(lèi)的實(shí)例,并被稱(chēng)為對(duì)象。類(lèi)的UML符號(hào)表示是劃分為3個(gè)格子的長(zhǎng)方形,頂部的格子放類(lèi)名,中間格子放類(lèi)的屬性、屬性的類(lèi)型和值,下面的格子放操作、操作的參數(shù)表和返回類(lèi)型。有實(shí)例的建模元素稱(chēng)為類(lèi)元,它具有結(jié)構(gòu)特征(屬性)和行為特征(操作)。包括類(lèi)、接口、數(shù)據(jù)類(lèi)型、信號(hào)、構(gòu)件、節(jié)點(diǎn)、用例和子系統(tǒng)。2.4.1類(lèi)的相關(guān)概念類(lèi)是一組具有相同屬性、操作、關(guān)系類(lèi)的名稱(chēng)每個(gè)類(lèi)都有一個(gè)名字,以與其他類(lèi)相區(qū)別。在實(shí)踐中,類(lèi)名通常用問(wèn)題域中的短名詞或名詞詞組來(lái)表示。通常將類(lèi)名中的每個(gè)組成詞的第一個(gè)字母大寫(xiě),如Student、HelloWorld等。類(lèi)的命名應(yīng)盡量用問(wèn)題域中的術(shù)語(yǔ),應(yīng)明確、無(wú)歧義,以利于開(kāi)發(fā)人員與用戶(hù)之間的相互理解與交流。類(lèi)的屬性屬性描述了類(lèi)的所有對(duì)象所共有的特性。一個(gè)類(lèi)可以有一個(gè)或多個(gè)屬性或者根本沒(méi)有屬性。屬性是類(lèi)的對(duì)象所包含的數(shù)據(jù)或狀態(tài)的抽象。在特定的時(shí)刻,類(lèi)的對(duì)象對(duì)類(lèi)的每個(gè)屬性都有特定的值。不同的屬性具有不同的可見(jiàn)性,可見(jiàn)性用來(lái)描述特征能否為其他類(lèi)元使用。常見(jiàn)的可見(jiàn)性有公用的(public)、私有的(private)、受保護(hù)的(protected)類(lèi)的相關(guān)概念
類(lèi)的名稱(chēng)類(lèi)的相關(guān)概念類(lèi)的操作操作是類(lèi)的所有對(duì)象所共有的行為的抽象。操作用于修改、檢索類(lèi)的屬性或執(zhí)行某些動(dòng)作。一個(gè)類(lèi)可以有任何數(shù)量的操作或根本沒(méi)有操作。操作通常也被稱(chēng)為功能或方法,但是它們被約束在類(lèi)的內(nèi)部,只能作用到該類(lèi)的對(duì)象上。操作名、返回類(lèi)型和參數(shù)表組成操作的接口。類(lèi)的類(lèi)型邊界類(lèi)實(shí)體類(lèi)控制類(lèi)類(lèi)的相關(guān)概念
類(lèi)的操作類(lèi)的相關(guān)概念2.4.2類(lèi)圖
概述類(lèi)圖是面向?qū)ο蠼W畛R?jiàn)的圖,它是顯示一組類(lèi)、接口、協(xié)作以及它們之間關(guān)系的圖。類(lèi)圖由類(lèi)、接口、協(xié)作、依賴(lài)關(guān)系、類(lèi)屬關(guān)系、實(shí)現(xiàn)關(guān)系以及關(guān)聯(lián)關(guān)系這幾部分組成,像其他的圖一樣,類(lèi)圖也可以含有注釋和約束。劃分雖然在軟件開(kāi)發(fā)的不同階段都使用類(lèi)圖,但這些類(lèi)圖描述了不同層次的抽象。在需求分析階段,類(lèi)圖是所研究的問(wèn)題域中的概念;在設(shè)計(jì)階段,類(lèi)圖描述類(lèi)與類(lèi)之間的接口;在實(shí)現(xiàn)階段,類(lèi)圖描述軟件系統(tǒng)中類(lèi)的實(shí)現(xiàn)。要正確的理解類(lèi)圖,首先應(yīng)正確的理解3種層次:概念層、說(shuō)明層、實(shí)現(xiàn)層。2.4.2類(lèi)圖概述類(lèi)圖
如何篩選得到分析類(lèi)并畫(huà)出分析類(lèi)圖在系統(tǒng)分析階段的前半部分內(nèi)容中,使用用例圖、活動(dòng)圖和用例的一種結(jié)構(gòu)化文檔描述方法對(duì)系統(tǒng)的需求進(jìn)行了分析。下一步的工作是找出實(shí)體類(lèi)、控制類(lèi)和邊界類(lèi),然后再使用協(xié)作圖分析它們之間的交互情況,從而不僅又一次明確了功能需求,也為在設(shè)計(jì)階段設(shè)計(jì)出真正的可編程的類(lèi)打下了基礎(chǔ),因此這是一個(gè)承前啟后的過(guò)程。以“圖書(shū)選購(gòu)”這一個(gè)功能為例。類(lèi)圖如何篩選得到分析類(lèi)并畫(huà)出分析類(lèi)圖類(lèi)圖
設(shè)計(jì)階段類(lèi)圖的作用對(duì)簡(jiǎn)單的協(xié)作建模對(duì)數(shù)據(jù)庫(kù)概念設(shè)計(jì)建模
類(lèi)圖的應(yīng)用對(duì)系統(tǒng)的詞匯建模對(duì)簡(jiǎn)單的協(xié)作建模對(duì)邏輯數(shù)據(jù)庫(kù)模式建模類(lèi)圖設(shè)計(jì)階段類(lèi)圖的作用2.4.3對(duì)象圖
概述表示在某一時(shí)間點(diǎn)上一組對(duì)象以及它們之間的關(guān)系的圖,模擬類(lèi)圖中所含有的類(lèi)的實(shí)例。它為處在時(shí)域空間某一點(diǎn)的系統(tǒng)建模,描繪了系統(tǒng)的對(duì)象、對(duì)象的狀態(tài)及對(duì)象間的關(guān)系。對(duì)象圖主要用來(lái)為對(duì)象結(jié)構(gòu)建模。對(duì)象圖可以看作是類(lèi)圖的一個(gè)實(shí)例。對(duì)象是類(lèi)的實(shí)例,對(duì)象之間的連接是類(lèi)之間的關(guān)聯(lián)關(guān)系的實(shí)例。對(duì)象圖常用于描述復(fù)雜類(lèi)圖的一個(gè)實(shí)例。對(duì)象圖中通常含有:對(duì)象(Objects)、連接(Links),對(duì)象圖可以含有注解和約束;對(duì)象圖也可以含有包或子系統(tǒng),包或子系統(tǒng)用來(lái)將模型的元素封裝成比較大的模塊。2.4.3對(duì)象圖概述對(duì)象圖
應(yīng)用對(duì)象圖通常用于為對(duì)象結(jié)構(gòu)建模。對(duì)象圖可以用來(lái)可視化、規(guī)范、構(gòu)造、并文檔化系統(tǒng)中特定實(shí)例的存在以及實(shí)例間的關(guān)系。為對(duì)象結(jié)構(gòu)建模時(shí),需要考慮以下幾點(diǎn):確定想要模擬的機(jī)制。機(jī)制代表了所模擬的部分系統(tǒng)的由類(lèi)、接口等交互作用產(chǎn)生的功能或行為。對(duì)于每個(gè)機(jī)制,識(shí)別參加這個(gè)協(xié)作的類(lèi)、接口以及其他元素,并確定這些元素間的關(guān)系。考慮貫穿這個(gè)機(jī)制的一個(gè)腳本,顯示在腳本的某一時(shí)間點(diǎn)參與這個(gè)機(jī)制的對(duì)象。如果必要,揭示每個(gè)對(duì)象的狀態(tài)和屬性值。類(lèi)似地,揭示對(duì)象間的連接,這些連接是關(guān)聯(lián)關(guān)系的實(shí)例。對(duì)象圖應(yīng)用2.5交互作用圖
顯示一個(gè)交互,由一組對(duì)象和它們之間的關(guān)系構(gòu)成,其中包括在對(duì)象間傳遞的消息。順序圖和協(xié)作圖都被稱(chēng)為交互作用圖。順序圖強(qiáng)調(diào)消息的時(shí)間順序,適合于描述實(shí)時(shí)系統(tǒng);協(xié)作圖強(qiáng)調(diào)發(fā)送和接收消息的對(duì)象的組織結(jié)構(gòu),描述了對(duì)象間的關(guān)系。交互作用圖的組成元素:對(duì)象;連接;消息;注解和約束。2.5交互作用圖顯示一個(gè)交互,由一組對(duì)象和它們之間的關(guān)系2.5.1交互
交互是由實(shí)現(xiàn)某一目標(biāo)的一組對(duì)象之間進(jìn)行交換的一組消息所構(gòu)成的行為。它包括連接和消息,連接是關(guān)聯(lián)的一個(gè)實(shí)例,它指明了一個(gè)對(duì)象向另一個(gè)對(duì)象發(fā)送消息的路徑;消息是傳送信息的對(duì)象之間所進(jìn)行的通訊的詳述。消息的傳送將引起如下動(dòng)作:調(diào)用(Call)返回(Return)發(fā)送(Send)創(chuàng)建(Create)撤消(Destroy)2.5.1交互交互是由實(shí)現(xiàn)某一目標(biāo)的一組對(duì)象之間進(jìn)行交2.5.2順序圖概述
順序圖存在兩個(gè)軸:水平軸表示不同的對(duì)象,垂直軸表示時(shí)間。順序圖中的對(duì)象用一個(gè)帶有垂直虛線(xiàn)的矩形框表示,并標(biāo)有對(duì)象名和類(lèi)名,對(duì)于對(duì)象,可以只標(biāo)對(duì)象名,也可以只標(biāo)類(lèi)名,還可以都標(biāo)出。垂直虛線(xiàn)是對(duì)象的生命線(xiàn),用于表示在某段時(shí)間內(nèi)對(duì)象是存在的。對(duì)象間的通信通過(guò)在對(duì)象的生命線(xiàn)間畫(huà)消息來(lái)表示。2.5.2順序圖概述順序圖存在兩個(gè)軸:水平軸表示不同的對(duì)順序圖概述
順序圖中的消息可以是信號(hào)、操作調(diào)用等。當(dāng)收到消息時(shí),接收對(duì)象立即開(kāi)始執(zhí)行活動(dòng),即對(duì)象被激活了,通過(guò)對(duì)象生命線(xiàn)上的一個(gè)細(xì)長(zhǎng)矩形框來(lái)表示激活。消息以帶有標(biāo)簽的箭頭表示。消息還可帶有條件表達(dá)式,表示分支或決定是否發(fā)送消息。如果用于表示分支,則每個(gè)分支是相互排斥的,即在某一時(shí)刻僅可發(fā)送分支中的一個(gè)消息。順序圖概述順序圖中的消息可以是信號(hào)、操作調(diào)用等。當(dāng)收到消息
順序圖強(qiáng)調(diào)了消息的時(shí)間順序。在畫(huà)順序圖時(shí),首先將參與交互作用的對(duì)象沿著X軸放在圖的頂端,將啟動(dòng)交互作用的對(duì)象放在左邊,將從屬的對(duì)象放在右邊,將這些對(duì)象發(fā)送和接收的消息按照時(shí)間增加的順
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 設(shè)備電流報(bào)警管理制度
- 設(shè)備計(jì)劃?rùn)z修管理制度
- 設(shè)計(jì)主管組員管理制度
- 設(shè)計(jì)投標(biāo)規(guī)章管理制度
- 設(shè)計(jì)項(xiàng)目制度管理制度
- 診所醫(yī)保財(cái)務(wù)管理制度
- 診所藥房安全管理制度
- 試驗(yàn)檢測(cè)安全管理制度
- 財(cái)務(wù)資金借支管理制度
- 財(cái)政完善權(quán)責(zé)管理制度
- 語(yǔ)文課堂精彩兩分鐘PPT課件
- 三生事業(yè)六大價(jià)值
- 鋯石基本特征及地質(zhì)應(yīng)用
- 絲網(wǎng)除沫器小計(jì)算
- 制缽機(jī)的設(shè)計(jì)(機(jī)械CAD圖紙)
- 學(xué)校財(cái)務(wù)管理制度
- 三年級(jí)下冊(cè)美術(shù)課件-第15課色彩拼貼畫(huà)|湘美版(共11張PPT)
- 水稻病蟲(chóng)統(tǒng)防統(tǒng)治工作總結(jié)
- 水在不同溫度下的折射率、粘度和介電常數(shù)
- howdoyoucometoschoolPPT課件
- 四柱特高弟子班絕密資料——席學(xué)易
評(píng)論
0/150
提交評(píng)論