UML基礎(chǔ)教程_(老師的課件)很好_第1頁(yè)
UML基礎(chǔ)教程_(老師的課件)很好_第2頁(yè)
UML基礎(chǔ)教程_(老師的課件)很好_第3頁(yè)
UML基礎(chǔ)教程_(老師的課件)很好_第4頁(yè)
UML基礎(chǔ)教程_(老師的課件)很好_第5頁(yè)
已閱讀5頁(yè),還剩58頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、UML- 1 -UML- 1 -UML- 2 -UML- 2 -1. 前言前言1.1前言前言1.2UML概述概述1.3UML事物事物1.4UML關(guān)系關(guān)系1.5各各UML圖及特征圖及特征1.6各各UML圖的關(guān)系圖的關(guān)系1.7UML語法語法1.8習(xí)題習(xí)題2. 用例圖用例圖2.1用例圖用例圖概要概要2.2用例圖中的事物及解釋用例圖中的事物及解釋2.3用例圖中的關(guān)系及解釋用例圖中的關(guān)系及解釋2.4例子例子2.5習(xí)題習(xí)題3. 類圖類圖3.1類圖概要類圖概要3.2類圖中的事物及解釋類圖中的事物及解釋3.3類圖中的關(guān)系及解釋類圖中的關(guān)系及解釋3.4類圖與代碼的映射類圖與代碼的映射3.5類圖例子類圖例子3.6

2、習(xí)題習(xí)題4. 順序圖順序圖4.1概要概要4.2順序圖中的事物及解釋順序圖中的事物及解釋4.3順序圖與用例圖和類圖的關(guān)系順序圖與用例圖和類圖的關(guān)系4.4順序圖例子順序圖例子4.5 練習(xí)題練習(xí)題5. 協(xié)作圖協(xié)作圖5.1概要概要5.2協(xié)作圖中的事物及解釋協(xié)作圖中的事物及解釋5.3協(xié)作圖中的關(guān)系及解釋協(xié)作圖中的關(guān)系及解釋UML- 3 -UML- 3 -5.4對(duì)消息標(biāo)簽的詳細(xì)講解對(duì)消息標(biāo)簽的詳細(xì)講解5.5協(xié)作圖例子協(xié)作圖例子5.6協(xié)作圖與順序圖的區(qū)別和聯(lián)系協(xié)作圖與順序圖的區(qū)別和聯(lián)系5.7練習(xí)題練習(xí)題6. 狀態(tài)圖狀態(tài)圖6.1狀態(tài)圖概要狀態(tài)圖概要6.2狀態(tài)圖的組成狀態(tài)圖的組成6.3狀態(tài)圖中的事物及解釋狀態(tài)圖

3、中的事物及解釋6.4狀態(tài)的可選活動(dòng)表狀態(tài)的可選活動(dòng)表6.5簡(jiǎn)單的例子簡(jiǎn)單的例子:對(duì)象的狀態(tài)圖對(duì)象的狀態(tài)圖6.6復(fù)雜的例子復(fù)雜的例子:網(wǎng)上銀行登陸系統(tǒng)網(wǎng)上銀行登陸系統(tǒng)6.7練習(xí)練習(xí)7. 活動(dòng)圖活動(dòng)圖7.1活動(dòng)圖概要活動(dòng)圖概要7.2活動(dòng)圖活動(dòng)圖事物事物7.3活動(dòng)圖關(guān)系活動(dòng)圖關(guān)系7.4活動(dòng)圖實(shí)例活動(dòng)圖實(shí)例7.5活動(dòng)圖練習(xí)活動(dòng)圖練習(xí)8. 構(gòu)件圖構(gòu)件圖8.1構(gòu)件圖概要構(gòu)件圖概要8.2構(gòu)件圖中的事物及解釋構(gòu)件圖中的事物及解釋8.3構(gòu)件圖中的關(guān)系及解釋構(gòu)件圖中的關(guān)系及解釋8.4構(gòu)件圖的例子構(gòu)件圖的例子8.5習(xí)題習(xí)題9. 部署圖部署圖9.1部署圖概要部署圖概要9.2部署圖中的事物及解釋部署圖中的事物及解釋9.

4、3部署圖中的關(guān)系及解釋部署圖中的關(guān)系及解釋9.4部署圖的例子部署圖的例子9.5關(guān)于部署圖與構(gòu)件圖關(guān)于部署圖與構(gòu)件圖9.6習(xí)題習(xí)題 附錄附錄UML- 4 -1.1 前言前言 本資料對(duì)UML1.5各種模型圖的構(gòu)成和功能進(jìn)行說明,通過本資料的學(xué)習(xí)達(dá)到可以讀懂UML模型圖的目的。本資料不涉及模型圖作成的要點(diǎn)等相關(guān)知識(shí)。1.2 UML概述概述1.2.1 UML簡(jiǎn)介簡(jiǎn)介 UML (Unified Modeling Language)為面向?qū)ο筌浖O(shè)計(jì)提供統(tǒng)一的、標(biāo)準(zhǔn)的、可視化的建模語言。適用于描述以用例為驅(qū)動(dòng),以體系結(jié)構(gòu)為中心的軟件設(shè)計(jì)的全過程。 UML的定義包括UML語義和UML表示法兩個(gè)部分。 (1)

5、 UML語義語義:UML對(duì)語義的描述使開發(fā)者能在語義上取得一致認(rèn)識(shí),消除了因人 而異的表達(dá)方法所造成的影響。 (2) UML表示法表示法:UML表示法定義UML符號(hào)的表示法,為開發(fā)者或開發(fā)工具使用這 些圖形符號(hào)和文本語法為系統(tǒng)建模提供了標(biāo)準(zhǔn)。1.2.2 UML模型圖的構(gòu)成模型圖的構(gòu)成 事物事物(Things):UML模型中最基本的構(gòu)成元素,是具有代表性的成分的抽象 關(guān)系關(guān)系(Relationships):關(guān)系把事物緊密聯(lián)系在一起 圖圖(Diagrams ):圖是事物和關(guān)系的可視化表示UML- 5 -1.3 UML事物事物 UML包含4種事物:構(gòu)件事物 行為事物 分組事物 注釋事物1.3.1構(gòu)件

6、事物構(gòu)件事物: UML模型的靜態(tài)部分,描述概念或物理元素 它包括以下幾種:類類:具有相同屬性相同操作 相同關(guān)系相同語義的對(duì)象的描述接口接口:描述元素的外部可見行為,即服務(wù)集合的定義說明協(xié)作協(xié)作:描述了一組事物間的相互作用的集合用例用例:代表一個(gè)系統(tǒng)或系統(tǒng)的一部分行為,是一組動(dòng)作序列的集合構(gòu)件構(gòu)件:系統(tǒng)中物理存在,可替換的部件節(jié)點(diǎn)節(jié)點(diǎn):運(yùn)行時(shí)存在的物理元素 另外,參與者、信號(hào)應(yīng)用、文檔庫(kù)、頁(yè)表等都是上述基本事物的變體1.3.2行為事物行為事物:UML模型圖的動(dòng)態(tài)部分,描述跨越空間和時(shí)間的行為交互交互:實(shí)現(xiàn)某功能的一組構(gòu)件事物之間的消息的集合,涉及消息、動(dòng)作序列、鏈接狀態(tài)機(jī)狀態(tài)機(jī):描述事物或交互在

7、生命周期內(nèi)響應(yīng)事件所經(jīng)歷的狀態(tài)序列1.3.3分組事物分組事物: UML模型圖的組織部分,描述事物的組織結(jié)構(gòu)包包: 把元素組織成組的機(jī)制1.3.4注釋事物注釋事物: UML模型的解釋部分,用來對(duì)模型中的元素進(jìn)行說明,解釋注解注解 :對(duì)元素進(jìn)行約束或解釋的簡(jiǎn)單符號(hào)UML- 6 -1.4 UML關(guān)系關(guān)系1.4.1依賴依賴 依賴(dependency)是兩個(gè)事物之間的語義關(guān)系,其中一個(gè)事物(獨(dú)立事物)發(fā)生變化, 會(huì)影響到另一個(gè)事物(依賴事物)的語義1.4.2關(guān)聯(lián)關(guān)聯(lián) 關(guān)聯(lián)(association)是一種結(jié)構(gòu)關(guān)系,它指明一個(gè)事物的對(duì)象與另一個(gè)事物的對(duì)象間 的聯(lián)系1.4.3泛化泛化 泛化(generali

8、zation)是一種特殊/一般的關(guān)系。也可以看作是常說的繼承關(guān)系1.4.4實(shí)現(xiàn)實(shí)現(xiàn) 實(shí)現(xiàn)(realization)是類元之間的語義關(guān)系,其中的一個(gè)類元指定了由另一個(gè)類元保 證執(zhí)行的契約UML- 7 -1.5 各各UML圖及特征圖及特征1.5.1用例圖用例圖( Use Case Diagram ) 用例圖是從用戶角度描述系統(tǒng)功能, 是用戶所能觀察到的系統(tǒng)功能的模型圖,用例是系統(tǒng)中的一個(gè)功能單元 類圖描述系統(tǒng)中類的靜態(tài)結(jié)構(gòu)。不僅定義系統(tǒng)中的類,表示類之間的聯(lián)系如關(guān)聯(lián)、依賴、聚合等,也包括類的內(nèi)部結(jié)構(gòu)(類的屬性和操作) 類圖是以類為中心來組織的,類圖中的其他元素或?qū)儆谀硞€(gè)類或與類相關(guān)聯(lián) 1.5.2

9、類圖類圖(Class Diagram)UML- 8 -1.5 各各UML圖及特征圖及特征1.5.3 對(duì)象圖對(duì)象圖( Object Diagram )對(duì)象圖是類圖的實(shí)例,幾乎使用與類圖完全相同的標(biāo)識(shí)。他們的不同點(diǎn)在于對(duì)象圖顯示類的多個(gè)對(duì)象實(shí)例,而不是實(shí)際的類1.5.4 順序圖順序圖(Sequence Diagram)順序圖顯示對(duì)象之間的動(dòng)態(tài)合作關(guān)系,它強(qiáng)調(diào)對(duì)象之間消息發(fā)送的順序,同時(shí)顯示對(duì)象之間的交互 順序圖的一個(gè)用途是用來表示用例中的行為順序。當(dāng)執(zhí)行一個(gè)用例行為時(shí),順序圖中的每條消息對(duì)應(yīng)了一個(gè)類操作或引起狀態(tài)轉(zhuǎn)換的觸發(fā)事件 UML- 9 -1.5 各各UML圖及特征圖及特征1.5.5 協(xié)作圖協(xié)

10、作圖(Collaboration Diagram) 協(xié)作圖描述對(duì)象間的協(xié)作關(guān)系,協(xié)作圖跟順序圖 相似,顯示對(duì)象間的動(dòng)態(tài)合作關(guān)系。除顯示信息交換外,協(xié)作圖還顯示對(duì)象以及它們之間的關(guān)系. 協(xié)作圖的一個(gè)用途是表示一個(gè)類操作的實(shí)現(xiàn) 1.5.6 狀態(tài)圖狀態(tài)圖(State Chart Diagram) 狀態(tài)圖是一個(gè)類對(duì)象所可能經(jīng)歷的所有歷程的模型圖。狀態(tài)圖由對(duì)象的各個(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ā)器事件 UML- 10

11、-1.5 各各UML圖及特征圖及特征1.5.7 活動(dòng)圖活動(dòng)圖(Activity Diagram)活動(dòng)圖是狀態(tài)圖的一個(gè)變體,用來描述執(zhí)行算法的工作流程中涉及的活動(dòng)活動(dòng)圖描述了一組順序的或并發(fā)的活動(dòng) 1.5.8 構(gòu)件圖構(gòu)件圖(Component Diagram)構(gòu)件圖為系統(tǒng)的構(gòu)件建模型構(gòu)件即構(gòu)造應(yīng)用的軟件單元還包括各構(gòu)件之間的依賴關(guān)系,以便通過這些依賴關(guān)系來估計(jì)對(duì)系統(tǒng)構(gòu)件的修改給系統(tǒng)可能帶來的影響 UML- 11 -1.5 各各UML圖及特征圖及特征1.5.9 部署圖部署圖(Deployment Diagram)部署視圖描述位于節(jié)點(diǎn)實(shí)例上的運(yùn)行構(gòu)件實(shí)例的安排。節(jié)點(diǎn)是一組運(yùn)行資源,如計(jì)算機(jī)、設(shè)備或存

12、儲(chǔ)器。這個(gè)視圖允許評(píng)估分配結(jié)果和資源分配類圖順序圖需求分析需求分析BDFD/DD類圖順序圖用例圖用例文檔用例圖順序圖主要圖之間的關(guān)系主要圖之間的關(guān)系1.6 各各UML圖的關(guān)系圖的關(guān)系UML- 12 -1.7 UML語法描述語法描述NewClassInterfaceusecase類是對(duì)一組具有相同屬性、相同操作、相同關(guān)系和相同語義的對(duì)象的描述對(duì)象接口是描述了一個(gè)類或構(gòu)件的一個(gè)服務(wù)的操作集協(xié)作定義了一個(gè)交互,它是由一組共同工作以提供某種協(xié)作行為的角色和其他元素構(gòu)成的一個(gè)群體用例是對(duì)一組動(dòng)作序列的描述主動(dòng)類對(duì)象至少擁有一個(gè)進(jìn)程或線程的類構(gòu)件是系統(tǒng)中物理的、可替代的部件參與者在系統(tǒng)外部與系統(tǒng)直接交互的

13、人或事物節(jié)點(diǎn)是在運(yùn)行時(shí)存在的物理元素交互它由在特定語境中共同完成一定任務(wù)的一組對(duì)象間交換的消息組成狀態(tài)機(jī)它描述了一個(gè)對(duì)象或一個(gè)交互在生命期內(nèi)響應(yīng)事件所經(jīng)歷的狀態(tài)序列包把元素組織成組的機(jī)制注釋事物是UML模型的解釋部分依賴一條可能有方向的虛線關(guān)聯(lián)一條實(shí)線,可能有方向泛化一條帶有空心箭頭的實(shí)線實(shí)現(xiàn)一條帶有空心箭頭的虛線actorNewProcessorstateNewPackagecomponetUML- 13 -1.8習(xí)題習(xí)題 判斷題1、UML中一共有九種圖:它們是用例圖、類圖、對(duì)象圖、順序圖、協(xié)作圖、狀態(tài)圖、活動(dòng)圖、構(gòu)件圖、部署圖2、用例圖是從程序員角度來描述系統(tǒng)的功能3、類圖是描述系統(tǒng)中類的

14、靜態(tài)結(jié)構(gòu),對(duì)象圖是描述系統(tǒng)中類的動(dòng)態(tài)結(jié)構(gòu)4、活動(dòng)圖和狀態(tài)圖用來描述系統(tǒng)的動(dòng)態(tài)行為5、協(xié)作圖的一個(gè)用途是表示一個(gè)類操作的實(shí)現(xiàn) 選擇題6、請(qǐng)?jiān)谙旅孢x項(xiàng)目中選出兩種可以互相轉(zhuǎn)換的圖 (a) 順序圖 (b)協(xié)作圖 (c) 活動(dòng)圖 (d) 狀態(tài)圖7、下面哪些圖可用于BD階段 (a)用例圖 (b)構(gòu)件圖 (c)類圖 (d)順序圖 答案:1.正確 2.錯(cuò)誤 3.錯(cuò)誤 4.正確 5.正確 6. (a)(b) 7.(a)(c)(d)UML- 14 -2.1 用例圖概要用例圖概要 事物名稱事物名稱解釋解釋UML表示表示參與者(Actor)在系統(tǒng)外部與系統(tǒng)直接交互的人或事物(如另一個(gè)計(jì)算機(jī)系統(tǒng)或一些可運(yùn)行的進(jìn)程)。

15、我們需要注意的是:1.參與者是角色(role)而不是具體的人,它代表了參與者在與系統(tǒng)打交道的過程中所扮演的角色。所以在系統(tǒng)的實(shí)際運(yùn)作中,一個(gè)實(shí)際用戶可能對(duì)應(yīng)系統(tǒng)的多個(gè)參與者。不同的用戶也可以只對(duì)應(yīng)于一個(gè)參與者,從而代表同一參與者的不同實(shí)例。2.參與者作為外部用戶(而不是內(nèi)部)與系統(tǒng)發(fā)生交互作用,是它的主要特征。3.在后面的順序圖等中出現(xiàn)的“參與者”,與此概念相同,但具體指代的含義,視具體情況而定。用例(Use Case)系統(tǒng)外部可見的一個(gè)系統(tǒng)功能單元。系統(tǒng)的功能由系統(tǒng)單元所提供,并通過一系列系統(tǒng)單元與一個(gè)或多個(gè)參與者之間交換的消息所表達(dá) 。創(chuàng)建新用例,確認(rèn)候選用例和劃分用例范圍的優(yōu)秀法則-“W

16、AVE”測(cè)試(見附錄) 2.2 用例圖中的事物及解釋用例圖中的事物及解釋 用例圖是被稱為參與者的外部用戶所能觀察到的系統(tǒng)功能的模型圖。 (UML參考手冊(cè)) 用例圖列出系統(tǒng)中的用例和系統(tǒng)外的參與者,并顯示哪個(gè)參與者參與了哪個(gè)用例的執(zhí)行 (或稱為發(fā)起了哪個(gè)用例)。 用例圖多用于靜態(tài)建模階段(主要是業(yè)務(wù)建模和需求建模)。UML- 15 -關(guān)系解釋圖參與者與用例之間的關(guān)系關(guān)聯(lián)表示參與者與用例之間的交互,通信途徑。(關(guān)聯(lián)有時(shí)候也用帶箭頭的實(shí)線來表示,這樣的表示能夠顯示地表明發(fā)起用例的是參與者。)用例之間的關(guān)系包含箭頭指向的用例為被包含的用例,稱為包含用例;箭頭出發(fā)的用例為基用例。包含用例是必選的,如果缺

17、少包含用例,基用例就不完整;包含用例必須被執(zhí)行,不需要滿足某種條件;其執(zhí)行并不會(huì)改變基用例的行為。 include擴(kuò)展箭頭指向的用例為被擴(kuò)展的用例,稱為擴(kuò)展用例;箭頭出發(fā)的用例為基用例。擴(kuò)展用例是可選的,如果缺少擴(kuò)展用例,不會(huì)影響到基用例的完整性;擴(kuò)展用例在一定條件下才會(huì)執(zhí)行,并且其執(zhí)行會(huì)改變基用例的行為。參與者之間的關(guān)系泛化發(fā)出箭頭的事物“is a”箭頭指向的事物。泛化關(guān)系是一般和特殊關(guān)系,發(fā)出箭頭的一方代表特殊的一方,箭頭指向的一方代表一般一方。特殊一方繼承了一般方的特性并增加了新的特性。extend2.3 用例圖中的關(guān)系及解釋用例圖中的關(guān)系及解釋UML- 16 -實(shí)例1 參與者之間的泛化

18、關(guān)系 參與者參與者:經(jīng)理,安全主管,保安 用例用例:管理人事,批準(zhǔn)預(yù)算,批準(zhǔn)安全證書,監(jiān)視周邊 在參與者之間不存在泛化關(guān)系的情況下,各個(gè)參與者參與 用例的情況分別是:經(jīng)理參與用例管理人事和批準(zhǔn)預(yù)算;安全主管參與用例批準(zhǔn)安全證書;保安參與用例監(jiān)視周邊。由于安全主管與經(jīng)理,安全主管與保安之間泛化關(guān)系的存在,意味著安全主管可以擔(dān)任經(jīng)理和保安的角色,就能夠參與經(jīng)理和保安參與的用例。這樣,安全主管就可以參與全部4個(gè)用例。但經(jīng)理或者保安卻不能擔(dān)任安全主管的角色,也就不能參與用例批準(zhǔn)安全證書。實(shí)例2 用例之間擴(kuò)展和包含關(guān)系 用例的上下文是:短途旅行但汽車的油不足以應(yīng)付全部路程。那么為汽車加油的動(dòng)作在旅行的每

19、個(gè)場(chǎng)景(事件流)中都會(huì)出現(xiàn),不加油就不會(huì)完成旅行。吃飯則可以由司機(jī)決定是否進(jìn)行,不吃飯不會(huì)影響旅行的完成。2.4 例子例子UML- 17 -實(shí)例3. 航空售票的用例圖參與者(actor):clerk,監(jiān)督員,信用卡服務(wù)商,信息亭用例(use case): Buy tickets, Buy Subscription, Make charges, Survey sales參與者Clerk參與(或稱發(fā)起)Buy tickets和Buy Subscription 兩個(gè)用例(關(guān)聯(lián)關(guān)系)。這兩個(gè)用例的事件流都包含Make charges用例(包含關(guān)系)。系統(tǒng)由:Buy tickets, Buy Subsc

20、ription, Make charges, Survey sales組成。該系統(tǒng)主要包含:Buy tickets, Buy Subscription, Make charges, Survey sales這幾個(gè)功能。該系統(tǒng)主要面向的用戶(參與者):clerk,監(jiān)督員,信用卡服務(wù)商,信息亭。 信息亭 Clerk Buy tickets Buy Subscription 信用卡服務(wù)商 Make charges 監(jiān)督員 Survey sales 參與者 用例 Box Office 系統(tǒng) 關(guān)系 UML- 18 -右圖中的參與者有? (a) 1 (b) 2 (c) 3(d) 4右圖中的用例有?(a)

21、1(b) 2(c) 3(d) 42和3之間是什么關(guān)系?5和6呢?(a) 擴(kuò)展,包含(b) 包含,擴(kuò)展5缺少了3仍然是個(gè)完整的用例?(a) 是的(b) 不是4能夠參與2嗎?1能夠參與5嗎?(a) 可以,不可以 (b) 不可以,可以習(xí)題答案:1、(a)(d) 2、(b)(c) 3、(b) 4、(b) 5、(b)2.5 習(xí)題習(xí)題UML- 19 -UML- 19 -3.2 類圖中的事物及解釋類圖中的事物及解釋3.2.1 類類 從上到下分為三部分,分別是類名、屬性和操作。類名是必須有的 類如果有屬性,則每一個(gè)屬性都必須有一個(gè)名字,另外還可以有其它的描述信息,如可見性、數(shù)據(jù)類型、缺省值等 類如果有操作,則

22、每一個(gè)操作也都有一個(gè)名字,其它可選的信息包括可見性、參數(shù)的名字、參數(shù)類型、參數(shù)缺省值和操作的返回值的類型等Account- balance : double = 1+ Deposit(amount : double) : int+ ComputeInterest() : double可見性可見性-代表private+代表public#代表protected也可以使用圖形表示返回值類型返回值類型操作名稱操作名稱斜體為抽象操作缺省值缺省值類名類名斜體為抽象類屬性名稱屬性名稱參數(shù)列表參數(shù)列表3.1 類圖概要類圖概要 類圖以反映類的結(jié)構(gòu)(屬性、操作)以及類之間的關(guān)系為主要目的,描述了軟件系統(tǒng)的結(jié)構(gòu),是

23、一種靜態(tài)建模方法 類圖中的“類”與面向?qū)ο笳Z言中的“類”的概念是對(duì)應(yīng)的,是對(duì)現(xiàn)實(shí)世界中的事物的抽象UML- 20 -UML- 20 -Shape(標(biāo)準(zhǔn)圖形)Shape+ Draw ()(變體圖形)接口Vehicle- fMaxSpeed : float+ Start() : int+ Stop() : int抽象類模版參數(shù)模版參數(shù)模版類3.2 類圖中的事物及解釋類圖中的事物及解釋3.2.2 接口接口 一組操作的集合,只有操作的聲明而沒有實(shí)現(xiàn)3.2.3 抽象類抽象類 不能被實(shí)例化的類,一般至少包含一個(gè)抽象操作3.2.4 模版類模版類 一種參數(shù)化的類,在編譯時(shí)把模版參數(shù)綁定到不同的數(shù)據(jù)類型,從而產(chǎn)

24、生不同的類UML- 21 -UML- 21 -UML表示法表示法角色角色類的角色是“事物“多重性多重性(用數(shù)字和*表示)1*:1個(gè)或多個(gè)1個(gè)類圖有1個(gè)或多個(gè)類1個(gè)類屬于1個(gè)或多個(gè)類圖ClassDiagramClass+thing+diagram1.*1.*use1.*1.*方向方向雙向關(guān)聯(lián)(省略箭頭)名字名字關(guān)系的名字是“使用”實(shí)例實(shí)例聚合關(guān)系 特殊關(guān)聯(lián)關(guān)系,指明一個(gè)聚集(整體)和組成部分之間的關(guān)系組合關(guān)系 語義更強(qiáng)的聚合,部分和整體具有相同的生命周期UML表示法表示法UML表示法表示法ThingClassDiagramRelation(空心菱形)實(shí)例實(shí)例類圖包含有事物和關(guān)系,類圖不存在了,事

25、物和關(guān)系還可用于其它的類圖ClassAssociation(實(shí)心菱形)實(shí)例實(shí)例類與關(guān)聯(lián)關(guān)系之間有組合關(guān)系,類不存在了,則相應(yīng)的關(guān)聯(lián)關(guān)系也不存在3.3 類圖中的關(guān)系及解釋類圖中的關(guān)系及解釋3.3.1 關(guān)聯(lián)關(guān)系關(guān)聯(lián)關(guān)系描述了類的結(jié)構(gòu)之間的關(guān)系。具有方向、名字、角色和多重性等信息。一般的關(guān) 聯(lián)關(guān)系語義較弱。也有兩種語義較強(qiáng),分別是聚合與組合UML- 22 -UML- 22 -UML表示法表示法3.3.3 實(shí)現(xiàn)關(guān)系實(shí)現(xiàn)關(guān)系 對(duì)應(yīng)于類和接口之間的關(guān)系UML表示法表示法類Circle、Rectangle實(shí)現(xiàn)了接口Shape的操作Shape+ Draw ()Circle+ Draw ()Rectangle+

26、 Drarw ()RelationAssociationGeneralizationRealizationDependency關(guān)聯(lián)、泛化、實(shí)現(xiàn)、依賴都是一種關(guān)系ThingClassInterface類、接口都是一種事物3.3.2 泛化關(guān)系泛化關(guān)系 在面向?qū)ο笾幸话惴Q為繼承關(guān)系,存在于父類與子類、父接口與子接口之間3.3.4 依賴關(guān)系依賴關(guān)系描述了一個(gè)類的變化對(duì)依賴于它的類產(chǎn)生影響的情況。有多種表現(xiàn)形式, 例如綁定(bind)、友元(friend)等UML表示法表示法模板類Stack定義了棧相關(guān)的操作;IntStack將參數(shù)T與實(shí)際類型int綁定,使得所有操作都針對(duì)int類型的數(shù)據(jù)類Mement

27、o和類Originator建立了友元依賴關(guān)系,以便Originator使用Memento的私有變量stateUML- 23 -UML- 23 -C+代碼class Vehiclepublic: virtual int Start() = 0; virtual int Stop() = 0; virtual int Run(float fSpeed) = 0;private: float fMaxSpeed;Java代碼public abstract class Vehicle public abstract int Start(); public abstract int Stop(); pu

28、blic abstract int Run(float fSpeed); private float fMaxSpeed;Vehicleabstract - fMaxSpeed : float+Start ()Stop ()Run (float fSpeed): int: int: int3.4 類圖與代碼的映射類圖與代碼的映射3.4.1 類的映射類的映射UML- 24 -UML- 24 -3.4.2 關(guān)聯(lián)關(guān)系的映射關(guān)聯(lián)關(guān)系的映射 C+代碼class Dialog private: Button btnOK; Button btnCancel; TextBox txtInfo;class Bu

29、tton;class TextBox;組合關(guān)系,代碼表現(xiàn)為Dialog的屬性有Button和TextBox的對(duì)象TextBoxButtonDialog- btnOK : Button- btnCancel : Button- txtInfo : TextBox3.4.3 泛化關(guān)系的映射泛化關(guān)系的映射Java代碼public class SavingsAccount extends Account C+代碼class SavingsAccount : public Account ;UML- 25 -UML- 25 -C+代碼class Shape public: virtual void Dr

30、aw() = 0;class Circle : public Shapepublic: void Draw();private; Point ptCenter; int nRadius;Java代碼public interface Shape public abstract void Draw();public class Circle implements Shapepublic void Draw();private Point ptCenter;private int nRadius;Shape+ Draw ()Circle-ptCenternRadius: Point: int+ Dr

31、aw ()Rectangle-ptUpperLeftnWidthnHeight: Point: int: int+ Drarw ()在C+語言里面,使用抽象類代替接口,使用泛化關(guān)系代替實(shí)現(xiàn)關(guān)系在Java語言里面,有相應(yīng)的關(guān)鍵字interface、implements3.4.4 實(shí)現(xiàn)關(guān)系的映射實(shí)現(xiàn)關(guān)系的映射 3.4.5 依賴關(guān)系的映射依賴關(guān)系的映射綁定依賴TStack- size : int+ Push(elem : T) : int+ Pop() : int+ GetTop() : const T&IntStackFloatStackC+代碼templateclass Stack privat

32、e: int size;public: int Push(T elem); int Pop(); const T& GetTop();typedef Stack FloatStack;C+代碼(編譯器生成)class FloatStack private: int size;public: int Push(float elem); int Pop(); const float& GetTop();UML- 26 -UML- 26 -Graphics: 基本圖形和組合圖形的父類,聲明了所有圖形共同的操作,如Draw;也聲明了專用于組合圖形管理子圖形的操作,如Add、RemoveLine、Rec

33、tangle: 基本圖形類GroupGraphics: 組合圖形類,與父類有組合關(guān)系,從而可以組合所有圖形對(duì)象(基本圖形和組合圖形)泛化組合組合模式3.5 類圖例子類圖例子3.5.1 圖形編輯器圖形編輯器 圖形編輯器一般都具有一些基本圖形,如直線、矩形等,用戶可以直接使用基本圖形畫圖,也可以把基本圖形組合在一起創(chuàng)建復(fù)雜圖形 如果區(qū)別對(duì)待基本圖形和組合圖形,會(huì)使代碼變得復(fù)雜,而且多數(shù)情況下用戶認(rèn)為二者是一樣的 組合模式可以用相同的方式處理兩種圖形UML- 27 -UML- 27 -3.5.2 演出售票系統(tǒng)演出售票系統(tǒng) 在用例驅(qū)動(dòng)的開發(fā)過程中,通過分析各個(gè)用例及參與者得到類圖。分析用例圖的過程中需

34、要根據(jù)面向?qū)ο蟮脑瓌t設(shè)計(jì)類和關(guān)系,根據(jù)用例的細(xì)節(jié)設(shè)計(jì)類的屬性和操作在這里只考慮以下三個(gè)用例:Buy tickets: 買個(gè)人票Buy Subscription: 買套票Make charges: 信用卡付款信息亭 Clerk Buy tickets Buy Subscription 信用卡服務(wù)商 Make charges 監(jiān)督員 Survey sales 參與者 用例 Box Office 關(guān)系 SubscriptionSeriesseries : intIndividualReservationTicketno : int3.60.13.60.110.110.1Reservationdate

35、 : DateCustomername : stringphone : string1.*11.*1Seatno : intcolomn : introw : intavailable : bool1111Performanceno : intdate : Datetime : Time0.*10.*1CreditCardServiceCharge(cardnumber, cost)kjoskShowAvailability(seatlist)DemandPayment(cost)PrintTickets(performance, seats)EjectCard()BoxOfficeReque

36、st(count, performance)Select(seats)InsertCard(cardnumber, password)Authorized()用例圖用例圖類圖類圖使用泛化關(guān)系處理客戶購(gòu)買個(gè)人票和套票兩種不同情況設(shè)計(jì)類的屬性和操作UML- 28 -UML- 28 -(1)哪兩個(gè)類之間存在組合關(guān)系哪兩個(gè)類之間存在組合關(guān)系vMenu、MenuItem vMenuItem、CommandvCommand、OpenCommandvCommand、PasteCommand(2)OpenCommand和和PasteCommand是什么關(guān)系是什么關(guān)系v組合v泛化v聚合沒關(guān)系Command+ E

37、xecute()OpenCommand+ Execute()PasteCommand+ Execute()MenuItem- command : Command*+ Click()1.*0.*1.*+executive0.*Menu+ Add(item : MenuItem)(3)編輯菜單編輯菜單(EditMenu)是一種菜單,下面哪個(gè)圖較好的描述了二者之間的關(guān)系是一種菜單,下面哪個(gè)圖較好的描述了二者之間的關(guān)系(4)下面哪份代碼下面哪份代碼(C+)最接近于圖中對(duì)最接近于圖中對(duì)MenuItem的描述的描述EditMenuMenu+ Add(item : MenuItem) Menu+ Add(i

38、tem : MenuItem)EditMenuEditMenuMenu+ Add(item : MenuItem) Menu+ Add(item : MenuItem)EditMenuclass MenuItemprivate: virtual void Click() =0;public: Command* command; class MenuItempublic: virtual void Click() = 0;private: Command* command; class MenuItemprivate: virtual void Click() = 0; void undo();

39、public: Command* command;class menuitempublic: virtual void Click() = 0;private: Command* command; 3.6 習(xí)題習(xí)題右圖描述了菜單(Menu)、菜單項(xiàng)(MenuItem)、抽象命令類(Command)和具體命令類(OpenCommand, PasteCommand)之間的關(guān)系,完成1-4題UML- 29 -UML- 29 -右圖描述了圖形接口右圖描述了圖形接口(Graphics)、線段、線段(Segment)、矩形、矩形(Rectangle)、點(diǎn)、點(diǎn)(Point)和三維點(diǎn)和三維點(diǎn)(Point3D)

40、之間的關(guān)系,之間的關(guān)系, 完成完成5-7題題(5)下面哪個(gè)關(guān)系沒有在圖中出現(xiàn)下面哪個(gè)關(guān)系沒有在圖中出現(xiàn) 關(guān)聯(lián) 泛化 實(shí)現(xiàn) 依賴(6)下面對(duì)圖中下面對(duì)圖中四處的多重性的描述哪個(gè)不正確四處的多重性的描述哪個(gè)不正確 0.* 1 0.* 1(7)下面哪份代碼下面哪份代碼(Java)最接近于圖中對(duì)最接近于圖中對(duì)Segment的描述的描述public class Segment implements Graphicsprivatc void Draw();public Point ptStart;public Point ptEnd;public class Segment extends Graphic

41、spublic void Draw();private Point ptStart;private Point ptEnd;public class Segment implements Graphicsprivate Point ptStart;private Point ptEnd;public void Draw();public class segment implements graphicspublic void Draw();private Point ptStart;private Point ptEnd;Graphics+ Draw ()Segment-ptStartptEn

42、d: Point: Point+ Draw ()Rectangle-ptUpperLeftnWidthnHeight: Point: int: int+ Drarw ()Point-xy: int: int+ Draw ()Point3D-xyz: int: int: int+ Draw ()UML- 30 -UML- 30 -UML- 30 -概要概要 順序圖用來表示用例中的行為順序。當(dāng)執(zhí)行一個(gè)用例行為時(shí),順序圖中的每條消息對(duì)應(yīng)了一個(gè)類操作或狀態(tài)機(jī)中引起轉(zhuǎn)換的事件。 順序圖展示對(duì)象之間的交互,這些交互是指在場(chǎng)景或用例的事件流中發(fā)生的。 順序圖屬于動(dòng)態(tài)建模。 順序圖的重點(diǎn)在消息序列上,也就是說

43、,描述消息是如何在對(duì)象間發(fā)送和接收的。表示了對(duì)象之間傳送消息的時(shí)間順序。 瀏覽順序圖的方法是:從上到下查看對(duì)象間交換的消息。順序圖中的事物及解釋順序圖中的事物及解釋事物名稱解釋圖參與者與系統(tǒng)、子系統(tǒng)或類發(fā)生交互作用的外部用戶(參見用例圖定義)。對(duì)象順序圖的橫軸上是與序列有關(guān)的對(duì)象。對(duì)象的表示方法是:矩形框中寫有對(duì)象或類名,且名字下面有下劃線。生命線坐標(biāo)軸縱向的虛線表示對(duì)象在序列中的執(zhí)行情況(即發(fā)送和接收的消息,對(duì)象的活動(dòng))這條虛線稱為對(duì)象的“生命線”。消息符號(hào)消息用從一個(gè)對(duì)象的生命線到另一個(gè)對(duì)象生命線的箭頭表示。箭頭以時(shí)間順序在圖中從上到下排列。UML- 31 -UML- 31 -UML- 3

44、1 -順序圖與用例圖和類圖的關(guān)系順序圖與用例圖和類圖的關(guān)系UML- 32 -UML- 32 -UML- 32 -順序圖例子順序圖例子簡(jiǎn)單的例子簡(jiǎn)單的例子從參與者到對(duì)象和從對(duì)象從參與者到對(duì)象和從對(duì)象到參與者之間發(fā)送的消息到參與者之間發(fā)送的消息從對(duì)象傳遞給另一個(gè)對(duì)從對(duì)象傳遞給另一個(gè)對(duì)象的消息象的消息在類圖中的類的在類圖中的類的對(duì)象對(duì)象使用系統(tǒng)的使用系統(tǒng)的參與者,這參與者,這個(gè)系統(tǒng)是為個(gè)系統(tǒng)是為某個(gè)用例的某個(gè)用例的某個(gè)場(chǎng)景設(shè)某個(gè)場(chǎng)景設(shè)計(jì)的計(jì)的對(duì)象生命線表示從上到下對(duì)象生命線表示從上到下的時(shí)間順序,消息的時(shí)間順序,消息1在消息在消息2之前發(fā)生,消息之前發(fā)生,消息2在消息在消息3之前發(fā)生之前發(fā)生窄長(zhǎng)方框

45、用以強(qiáng)調(diào)這個(gè)窄長(zhǎng)方框用以強(qiáng)調(diào)這個(gè)部分處于活動(dòng)狀態(tài)部分處于活動(dòng)狀態(tài)消息格式: operation (parameter list) 向哪個(gè)對(duì)象發(fā)消息實(shí)際上就是調(diào)用它的類中的操作,就是調(diào)用箭頭指向的對(duì)象所在類的 一個(gè)operation。例:訂單類發(fā)消息給客戶類調(diào)用客戶類中的“驗(yàn)證客戶”操作UML- 33 -UML- 33 -UML- 33 -復(fù)雜的例子復(fù)雜的例子信息亭售票中心信用卡服務(wù)從這個(gè)例子中可以看出:Kjosk類中的操作有 Show Available (seat-list) Demand Payment (cost) printtickets (performance, seats) ej

46、ect cardBox Office中的操作有 Request (count, performance) Select Seats Insert Card (Card Number) authorizedCredit Card Service類中的操作有 charge(card number, cost) 此圖是描述購(gòu)票這個(gè)用例的順序圖。顧客在信息亭與售票中心通話觸發(fā)了這個(gè)用例的執(zhí)行。順序圖中付款這個(gè)用例包括售票中心與信息亭和信用卡服務(wù)處使用消息進(jìn)行通信過程。此圖中存在的事物有:此圖中存在的事物有: 對(duì)象(信息亭 Kjosk ,售票中心 Box Office, 信用卡服務(wù) Credit Car

47、d Service ),生命線,消息符號(hào)。信息亭發(fā)Request (count, performance)消息給售票中心,表示調(diào)用售票中心類的Request (count, performance)操作,來查詢演出的信息。售票中心發(fā)Show Available(seat-list)消息給信息亭,表示調(diào)用信息亭類中的Show Available(seat-list)操作,給出可用的座位表。UML- 34 -UML- 34 -UML- 34 -1 指出左圖中的參與者?A B C D2 哪些是對(duì)象?A B C D3 Server類調(diào)用了CreditService類中的什么操作?A B C D4.5

48、練習(xí)題練習(xí)題1. A 2. B 3. B UML- 35 -UML- 35 -概要概要協(xié)作圖是一種交互圖,強(qiáng)調(diào)的是發(fā)送和接收消息的對(duì)象之間的組織結(jié)構(gòu),使用協(xié)作圖來說明系統(tǒng)的動(dòng)態(tài)情況。 協(xié)作圖主要描述協(xié)作對(duì)象間的交互和鏈接,顯示對(duì)象、對(duì)象間的鏈接以及對(duì)象間如何發(fā)送消息。協(xié)作圖可以表示類操作的實(shí)現(xiàn)。UML- 35 -UML- 35 -協(xié)作圖中的事物及解釋協(xié)作圖中的事物及解釋事物名稱解釋圖參與者發(fā)出主動(dòng)操作的對(duì)象,負(fù)責(zé)發(fā)送初始消息,啟動(dòng)一個(gè)操作。對(duì)象對(duì)象是類的實(shí)例,負(fù)責(zé)發(fā)送和接收消息,與順序圖中的符號(hào)相同,冒號(hào)前為對(duì)象名,冒號(hào)后為類名。消息流(由箭頭和標(biāo)簽組成)箭頭指示消息的流向,從消息的發(fā)出者指向

49、接收者。標(biāo)簽對(duì)消息作說明,其中,順序號(hào)指出消息的發(fā)生順序,并且指明了消息的嵌套關(guān)系;冒號(hào)后面是消息的名字。Actorfirstbuton:button標(biāo)簽協(xié)作圖中的關(guān)系及解釋協(xié)作圖中的關(guān)系及解釋關(guān)系名稱關(guān)系名稱解釋解釋關(guān)系實(shí)例關(guān)系實(shí)例鏈接用線條來表示鏈接,鏈接表示兩個(gè)對(duì)象共享一個(gè)消息,位于對(duì)象之間或參與者與對(duì)象之間UML- 36 -UML- 36 - 消息標(biāo)簽消息標(biāo)簽 消息標(biāo)簽的Format: 前綴 守衛(wèi)條件 序列表達(dá)式 返回值 := 消息名 前綴的語法規(guī)則: 序列號(hào),序列號(hào),序列號(hào) / (前綴用來同步線程,意思是在發(fā)送當(dāng)前消息之前指定序列號(hào)的消息被處理.例:1.1a, 1.1b/) 守衛(wèi)條件

50、的語法規(guī)則: 條件短句 說明:條件短句通常用偽代碼或真正的程序語言來表示。 例:x=0 返回值和消息名:返回值表示一個(gè)消息的返回結(jié)果,消息名指出了消息的名字和所需參數(shù)。 例:x:=calc ( n ) 下面是一個(gè)完整的消息標(biāo)簽: 1.1a, 1.1b, 1.1c / x=0 1.2 *i:=1.n : x := calc( n ) 前綴 守衛(wèi)條件 序列表達(dá)式 返回值 := 消息名協(xié)作圖與順序圖的區(qū)別和聯(lián)系協(xié)作圖與順序圖的區(qū)別和聯(lián)系 協(xié)作圖和順序圖都表示出了對(duì)象間的交互作用,但是它們側(cè)重點(diǎn)不同。 順序圖清楚地表示了交互作用中的時(shí)間順序(強(qiáng)調(diào)時(shí)間),但沒有明確表示對(duì)象間的關(guān)系。 協(xié)作圖清楚地表示了

51、對(duì)象間的關(guān)系(強(qiáng)調(diào)空間),但時(shí)間順序必須從順序號(hào)獲得。 協(xié)作圖和順序圖可以相互轉(zhuǎn)化。 (進(jìn)行協(xié)作圖和順序圖的比較,請(qǐng)參考練習(xí)題2)UML- 37 -協(xié)作圖例子協(xié)作圖例子1. 打印操作的協(xié)作圖actor發(fā)送Print消息給Computer,Computer發(fā)送Print消息給PrintServer,如果打印機(jī)空閑,PrintServer發(fā)送Print消息給printer2.乘坐電梯的協(xié)作圖:button:Elevator Control:Queue:Elevator:Ordernew : Actor1 : GetElevator(floorid)1.1 *all queues : len:=Le

52、ngth()1.3: Invoke(job)1.2: Create( )2: nextjob:=Get.job( )Push( )圖中存在的事物有:圖中存在的事物有: 參與者 按鈕對(duì)象 電梯控制對(duì)象 命令對(duì)象 工作隊(duì)列 電梯對(duì)象圖中存在的關(guān)系有圖中存在的關(guān)系有: 鏈接 參與者需要乘坐電梯,他從系統(tǒng)外部按下按鈕,讓電梯到達(dá)他想去的樓層。此時(shí),電梯系統(tǒng)的操作被啟動(dòng),電梯控制對(duì)象以循環(huán)的方式檢查所有的電梯,從中選擇一個(gè)工作隊(duì)列長(zhǎng)度最短的。然后,它創(chuàng)建一個(gè)作業(yè)命令,并將該命令放入對(duì)應(yīng)電梯的工作隊(duì)列,接著激活隊(duì)列。電梯對(duì)象并發(fā)運(yùn)行,從它的隊(duì)列中選擇一個(gè)作業(yè)并執(zhí)行。電梯是一個(gè)活動(dòng)對(duì)象,它與它的控制線程并發(fā)

53、執(zhí)行。UML- 38 -5.7 練習(xí)題練習(xí)題請(qǐng)指出下面的消息標(biāo)簽各部分的內(nèi)容。1:display( ) A. 序列表達(dá)式:消息名 B.返回值:消息名 C.序列表達(dá)式:消息名mode=display 1.2.3.7: redraw( ) A.序列表達(dá)式 返回值 消息名 B.守衛(wèi)條件 序列表達(dá)式 消息名2 *n:=a . . z : prim:=nextPrim(prim) A. 守衛(wèi)條件 序列表達(dá)式 消息名 B.序列表達(dá)式 返回值 消息名3.1 x0 : foo( ) A.序列表達(dá)式 守衛(wèi)條件 B.守衛(wèi)條件 消息名 C.序列表達(dá)式 消息名 1.1a, 1.1b/1.2 : continue( )

54、 A. 前綴 序列表達(dá)式 消息名 B. 后綴 守衛(wèi)條件 消息名UML- 39 -:button:Elevator Control:Queue:Elevator:Ordernew : Actor1 : GetElevator(floorid)1.1 *all queues : len:=Length()2: nextjob:=Get.job( )1.2: Create( )Push( )1.3: Invoke(job)3. 練習(xí)題答案1. A BBCA2. AA2. 請(qǐng)對(duì)比本章中的協(xié)作圖與其相應(yīng)的順序圖,做練習(xí)題。請(qǐng)?jiān)谙聢D中指出,循環(huán)計(jì)算各個(gè)電梯的工作隊(duì)列長(zhǎng)度的消息的順序號(hào)。A 1.1 B1.2

55、 C1.3 D2請(qǐng)說明消息1.3所進(jìn)行的操作Invoke(job),應(yīng)屬于哪個(gè)類所具有的方法。A Queue類 B ElevatorControl類 C Elevator類 D Button類 UML- 40 -6.1 狀態(tài)圖概要狀態(tài)圖概要6.1.1狀態(tài)圖狀態(tài)圖說明對(duì)象在它的生命期中響應(yīng)事件所經(jīng)歷的狀態(tài)序列,以及它們對(duì)那些事件的響應(yīng)。6.1.2狀態(tài)圖用于狀態(tài)圖用于揭示Actor、類、子系統(tǒng)和組件的復(fù)雜特性。 為實(shí)時(shí)系統(tǒng)建模。 6.2 狀態(tài)圖的組成狀態(tài)圖的組成6.2.1狀態(tài)狀態(tài)對(duì)象的狀態(tài)是指在這個(gè)對(duì)象的生命期中的一個(gè)條件或狀況,在此期間對(duì)象將滿足某些條件、執(zhí)行某些活動(dòng),或等待某些事件。6.2.2

56、轉(zhuǎn)移轉(zhuǎn)移轉(zhuǎn)移是由一種狀態(tài)到另一種狀態(tài)的遷移。這種轉(zhuǎn)移由被建模實(shí)體內(nèi)部或外部事件觸發(fā)。對(duì)一個(gè)類來說,轉(zhuǎn)移通常是調(diào)用了一個(gè)可以引起狀態(tài)發(fā)生重要變化的操作的結(jié)果。UML- 41 -狀態(tài)狀態(tài)上格放置名稱,下格說明處于該狀態(tài)時(shí),系統(tǒng)或?qū)ο笠龅墓ぷ?見可選活動(dòng)表) 轉(zhuǎn)移轉(zhuǎn)移轉(zhuǎn)移上標(biāo)出觸發(fā)轉(zhuǎn)移的事件表達(dá)式。如果轉(zhuǎn)移上未標(biāo)明事件,則表示在源狀態(tài)的內(nèi)部活動(dòng)執(zhí)行完畢后自動(dòng)觸發(fā)轉(zhuǎn)移 開始開始初始狀態(tài)(一個(gè))結(jié)束結(jié)束終態(tài)(可以多個(gè))消息消息(屬性屬性)條件條件/動(dòng)作動(dòng)作6.3 狀態(tài)圖中的事物及解釋狀態(tài)圖中的事物及解釋轉(zhuǎn)換種類轉(zhuǎn)換種類描述描述語法語法入口動(dòng)作入口動(dòng)作進(jìn)入某一狀態(tài)時(shí)執(zhí)行的動(dòng)作entry/action出口

57、動(dòng)作出口動(dòng)作離開某一狀態(tài)時(shí)執(zhí)行的動(dòng)作exit/action外部轉(zhuǎn)換外部轉(zhuǎn)換引起狀態(tài)轉(zhuǎn)換或自身轉(zhuǎn)換,同時(shí)執(zhí)行一個(gè)具體的動(dòng)作,包括引起入口動(dòng)作和出口動(dòng)作被執(zhí)行的轉(zhuǎn)換e(a:T)exp/action內(nèi)部轉(zhuǎn)換內(nèi)部轉(zhuǎn)換引起一個(gè)動(dòng)作的執(zhí)行但不引起狀態(tài)的改變或不引起入口動(dòng)作或出口動(dòng)作的執(zhí)行e(a:T)exp/action6.4 狀態(tài)的可選活動(dòng)表狀態(tài)的可選活動(dòng)表UML- 42 -6.5 例子例子 (1) 對(duì)象的狀態(tài)圖對(duì)象的狀態(tài)圖 圖中包含以下狀態(tài)圖中包含以下狀態(tài)初始狀態(tài)Available狀態(tài)Locked狀態(tài)Sold狀態(tài) 狀態(tài)間的轉(zhuǎn)移狀態(tài)間的轉(zhuǎn)移初始狀態(tài)Available狀態(tài)票被預(yù)訂(lock):Availab

58、leLocked預(yù)定后付款(buy):LockedSold預(yù)定解除(unlock):LockedAvailable預(yù)定過期(time out):LockedAvailable直接購(gòu)買(assigned to):AvailableSold換其它票(exchang) ,該票重有效:SoldAvailable Available Locked Sold 初 始 狀 態(tài) assigned to subscription lock time out unlock buy 狀 態(tài) exchange 轉(zhuǎn) 換 觸 發(fā) 器 事 件 UML- 43 - (2)網(wǎng)上銀行登陸系統(tǒng)網(wǎng)上銀行登陸系統(tǒng)登陸要求提交個(gè)人社會(huì)保

59、險(xiǎn)號(hào)登陸要求提交個(gè)人社會(huì)保險(xiǎn)號(hào)(SSN)和密碼和密碼(PIN)經(jīng)驗(yàn)證有效后登陸成功。經(jīng)驗(yàn)證有效后登陸成功。登陸過程包括以下狀態(tài)登陸過程包括以下狀態(tài):初態(tài)初態(tài)(Initial state) 獲取社會(huì)保險(xiǎn)號(hào)狀態(tài)獲取社會(huì)保險(xiǎn)號(hào)狀態(tài)(Getting SSN)獲取密碼狀態(tài)獲取密碼狀態(tài)(Getting PIN)驗(yàn)證狀態(tài)驗(yàn)證狀態(tài)(Validating)拒絕狀態(tài)拒絕狀態(tài)(Rejecting)終態(tài)終態(tài) (Final state)出發(fā)狀態(tài)出發(fā)狀態(tài)動(dòng)作動(dòng)作到達(dá)狀態(tài)到達(dá)狀態(tài)Initial state移動(dòng)鼠標(biāo)到 SSNGetting SSNGetting SSN鍵入非tab鍵,顯示鍵入內(nèi)容Getting SSN鍵入ta

60、b鍵,或移動(dòng)鼠標(biāo)到BINGetting PIN提交ValidatingGetting PIN鍵入非shift-tab鍵,顯示 “ * ”Getting PIN鍵入shift-tab鍵,或移動(dòng)鼠標(biāo)到SSNGetting SSN提交Validating Validating驗(yàn)證提交信息有效,狀態(tài)轉(zhuǎn)移Final state驗(yàn)證提交信息無效,顯示錯(cuò)誤信息Rejecting Rejecting退出Final state重試,清除無效的SSN,PINGetting SSN狀態(tài)轉(zhuǎn)移的過程UML- 44 -6.7 練習(xí)練習(xí) 分析下面的狀態(tài)圖,回答問題下降狀態(tài)在第一層上升狀態(tài)向第一層下降空閑狀態(tài)上升到達(dá)到達(dá)上升

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論