教程.ppt_第1頁(yè)
教程.ppt_第2頁(yè)
教程.ppt_第3頁(yè)
教程.ppt_第4頁(yè)
教程.ppt_第5頁(yè)
已閱讀5頁(yè),還剩58頁(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)介

1、UML 基礎(chǔ)教程,整理:,目錄,1. 前言 1.1前言 1.2UML概述 1.3UML事物 1.4UML關(guān)系 1.5各UML圖及特征 1.6各UML圖的關(guān)系 1.7UML語(yǔ)法 1.8習(xí)題 2. 用例圖 2.1用例圖概要 2.2用例圖中的事物及解釋 2.3用例圖中的關(guān)系及解釋 2.4例子 2.5習(xí)題 3. 類圖 3.1類圖概要 3.2類圖中的事物及解釋 3.3類圖中的關(guān)系及解釋 3.4類圖與代碼的映射 3.5類圖例子 3.6習(xí)題 4. 順序圖 4.1概要 4.2順序圖中的事物及解釋 4.3順序圖與用例圖和類圖的關(guān)系 4.4順序圖例子 4.5 練習(xí)題 5. 協(xié)作圖 5.1概要 5.2協(xié)作圖中的事物

2、及解釋 5.3協(xié)作圖中的關(guān)系及解釋,目錄,5.4對(duì)消息標(biāo)簽的詳細(xì)講解 5.5協(xié)作圖例子 5.6協(xié)作圖與順序圖的區(qū)別和聯(lián)系 5.7練習(xí)題 6. 狀態(tài)圖 6.1狀態(tài)圖概要 6.2狀態(tài)圖的組成 6.3狀態(tài)圖中的事物及解釋 6.4狀態(tài)的可選活動(dòng)表 6.5簡(jiǎn)單的例子:對(duì)象的狀態(tài)圖 6.6復(fù)雜的例子:網(wǎng)上銀行登陸系統(tǒng) 6.7練習(xí) 7. 活動(dòng)圖 7.1活動(dòng)圖概要 7.2活動(dòng)圖事物 7.3活動(dòng)圖關(guān)系 7.4活動(dòng)圖實(shí)例 7.5活動(dòng)圖練習(xí) 8. 構(gòu)件圖 8.1構(gòu)件圖概要 8.2構(gòu)件圖中的事物及解釋 8.3構(gòu)件圖中的關(guān)系及解釋 8.4構(gòu)件圖的例子 8.5習(xí)題 9. 部署圖 9.1部署圖概要 9.2部署圖中的事物及解

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

4、認(rèn)識(shí),消除了因人 而異的表達(dá)方法所造成的影響。 (2) UML表示法:UML表示法定義UML符號(hào)的表示法,為開(kāi)發(fā)者或開(kāi)發(fā)工具使用這 些圖形符號(hào)和文本語(yǔ)法為系統(tǒng)建模提供了標(biāo)準(zhǔn)。 1.2.2 UML模型圖的構(gòu)成 事物(Things):UML模型中最基本的構(gòu)成元素,是具有代表性的成分的抽象 關(guān)系(Relationships):關(guān)系把事物緊密聯(lián)系在一起 圖(Diagrams ):圖是事物和關(guān)系的可視化表示,1. 前言,1.3UML事物 UML包含4種事物:構(gòu)件事物 行為事物 分組事物 注釋事物 1.3.1構(gòu)件事物: UML模型的靜態(tài)部分,描述概念或物理元素 它包括以下幾種: 類:具有相同屬性相同操作

5、相同關(guān)系相同語(yǔ)義的對(duì)象的描述 接口:描述元素的外部可見(jiàn)行為,即服務(wù)集合的定義說(shuō)明 協(xié)作:描述了一組事物間的相互作用的集合 用例:代表一個(gè)系統(tǒng)或系統(tǒng)的一部分行為,是一組動(dòng)作序列的集合 構(gòu)件:系統(tǒng)中物理存在,可替換的部件 節(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ī):描述事物或交互在生命周期內(nèi)響應(yīng)事件所經(jīng)歷的狀態(tài)序列 1.3.3分組事物: UML模型圖的組織部分,描述事物的組織結(jié)構(gòu) 包:把元素組織成組的機(jī)

6、制 1.3.4注釋事物: UML模型的解釋部分,用來(lái)對(duì)模型中的元素進(jìn)行說(shuō)明,解釋 注解:對(duì)元素進(jìn)行約束或解釋的簡(jiǎn)單符號(hào),1. 前言,1.4 UML關(guān)系 1.4.1依賴 依賴(dependency)是兩個(gè)事物之間的語(yǔ)義關(guān)系,其中一個(gè)事物(獨(dú)立事物)發(fā)生變化, 會(huì)影響到另一個(gè)事物(依賴事物)的語(yǔ)義 1.4.2關(guān)聯(lián) 關(guān)聯(lián)(association)是一種結(jié)構(gòu)關(guān)系,它指明一個(gè)事物的對(duì)象與另一個(gè)事物的對(duì)象間 的聯(lián)系 1.4.3泛化 泛化(generalization)是一種特殊/一般的關(guān)系。也可以看作是常說(shuō)的繼承關(guān)系 1.4.4實(shí)現(xiàn) 實(shí)現(xiàn)(realization)是類元之間的語(yǔ)義關(guān)系,其中的一個(gè)類元指定了

7、由另一個(gè)類元保 證執(zhí)行的契約,1. 前言,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)(類的屬性和操作) 類圖是以類為中心來(lái)組織的,類圖中的其他元素或?qū)儆谀硞€(gè)類或與類相關(guān)聯(lián),1.5.2類圖(Class Diagram),1. 前言,1.5 各UML圖及特征 1.5.3 對(duì)象圖( Object Diagram ),對(duì)象圖是類圖的實(shí)例,幾乎使用與類圖完全相同的

8、標(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è)用途是用來(lái)表示用例中的行為順序。當(dāng)執(zhí)行一個(gè)用例行為時(shí),順序圖中的每條消息對(duì)應(yīng)了一個(gè)類操作或引起狀態(tài)轉(zhuǎn)換的觸發(fā)事件,1. 前言,1.5 各UML圖及特征 1.5.5 協(xié)作圖(Collaboration Diagram),協(xié)作圖描述對(duì)象間的協(xié)作關(guān)系,協(xié)作圖跟順序圖 相似,顯示對(duì)象間的動(dòng)態(tài)合作關(guān)系。除顯示信息交換外,協(xié)作圖還顯示對(duì)象以及它們之間的關(guān)系. 協(xié)作圖的一個(gè)用途是表示一個(gè)類

9、操作的實(shí)現(xiàn),1.5.6 狀態(tài)圖(State Chart Diagram),狀態(tài)圖是一個(gè)類對(duì)象所可能經(jīng)歷的所有歷程的模型圖。狀態(tài)圖由對(duì)象的各個(gè)狀態(tài)和連接這些狀態(tài)的轉(zhuǎn)換組成,1. 前言,1.5 各UML圖及特征 1.5.7 活動(dòng)圖(Activity Diagram),活動(dòng)圖是狀態(tài)圖的一個(gè)變體,用來(lái)描述執(zhí)行算法的工作流程中涉及的活動(dòng) 活動(dòng)圖描述了一組順序的或并發(fā)的活動(dòng),1.5.8 構(gòu)件圖(Component Diagram),構(gòu)件圖為系統(tǒng)的構(gòu)件建模型構(gòu)件即構(gòu)造應(yīng)用的軟件單元還包括各構(gòu)件之間的依賴關(guān)系,以便通過(guò)這些依賴關(guān)系來(lái)估計(jì)對(duì)系統(tǒng)構(gòu)件的修改給系統(tǒng)可能帶來(lái)的影響,1. 前言,1.5 各UML圖及特征

10、 1.5.9 部署圖(Deployment Diagram),部署視圖描述位于節(jié)點(diǎn)實(shí)例上的運(yùn)行構(gòu)件實(shí)例的安排。節(jié)點(diǎn)是一組運(yùn)行資源,如計(jì)算機(jī)、設(shè)備或存儲(chǔ)器。這個(gè)視圖允許評(píng)估分配結(jié)果和資源分配,1.6 各UML圖的關(guān)系,1. 前言,1.7 UML語(yǔ)法描述,1. 前言,1.8習(xí)題 判斷題 1、UML中一共有九種圖:它們是用例圖、類圖、對(duì)象圖、順序圖、協(xié)作圖、狀態(tài)圖、活動(dòng)圖、構(gòu)件圖、部署圖 2、用例圖是從程序員角度來(lái)描述系統(tǒng)的功能 3、類圖是描述系統(tǒng)中類的靜態(tài)結(jié)構(gòu),對(duì)象圖是描述系統(tǒng)中類的動(dòng)態(tài)結(jié)構(gòu) 4、活動(dòng)圖和狀態(tài)圖用來(lái)描述系統(tǒng)的動(dòng)態(tài)行為 5、協(xié)作圖的一個(gè)用途是表示一個(gè)類操作的實(shí)現(xiàn) 選擇題 6、請(qǐng)?jiān)谙旅?/p>

11、選項(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),2.1 用例圖概要,2. 用例圖,2.2 用例圖中的事物及解釋,用例圖是被稱為參與者的外部用戶所能觀察到的系統(tǒng)功能的模型圖。 (UML參考手冊(cè)) 用例圖列出系統(tǒng)中的用例和系統(tǒng)外的參與者,并顯示哪個(gè)參與者參與了哪個(gè)用例的執(zhí)行 (或稱為發(fā)起了哪個(gè)用例)。 用例圖多用于靜態(tài)建模階段(主要是業(yè)務(wù)建模和需求建模)。,2. 用例圖

12、,extend,2.3用例圖中的關(guān)系及解釋,2. 用例圖,實(shí)例1 參與者之間的泛化關(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)系 用例的上下

13、文是:短途旅行但汽車的油不足以應(yīng)付全部路程。那么為汽車加油的動(dòng)作在旅行的每個(gè)場(chǎng)景(事件流)中都會(huì)出現(xiàn),不加油就不會(huì)完成旅行。吃飯則可以由司機(jī)決定是否進(jìn)行,不吃飯不會(huì)影響旅行的完成。,2.4 例子,2. 用例圖,實(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 char

14、ges用例(包含關(guān)系)。 系統(tǒng)由:Buy tickets, Buy Subscription, Make charges, Survey sales組成。 該系統(tǒng)主要包含:Buy tickets, Buy Subscription, Make charges, Survey sales這幾個(gè)功能。 該系統(tǒng)主要面向的用戶(參與者):clerk,監(jiān)督員,信用卡服務(wù)商,信息亭。,2. 用例圖,右圖中的參與者有? (a) 1 (b) 2 (c) 3(d) 4 右圖中的用例有? (a) 1(b) 2 (c) 3(d) 4 2和3之間是什么關(guān)系?5和6呢? (a) 擴(kuò)展,包含(b) 包含,擴(kuò)展 5缺少了3

15、仍然是個(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í)題,3. 類圖,3.2 類圖中的事物及解釋 3.2.1 類 從上到下分為三部分,分別是類名、屬性和操作。類名是必須有的 類如果有屬性,則每一個(gè)屬性都必須有一個(gè)名字,另外還可以有其它的描述信息,如可見(jiàn)性、數(shù)據(jù)類型、缺省值等 類如果有操作,則每一個(gè)操作也都有一個(gè)名字,其它可選的信息包括可見(jiàn)性、參數(shù)的名字、參數(shù)類型、參數(shù)缺省值和操作的返回值的類型等,3.1 類圖概要 類圖以反映類的結(jié)

16、構(gòu)(屬性、操作)以及類之間的關(guān)系為主要目的,描述了軟件系統(tǒng)的結(jié)構(gòu),是一種靜態(tài)建模方法 類圖中的“類”與面向?qū)ο笳Z(yǔ)言中的“類”的概念是對(duì)應(yīng)的,是對(duì)現(xiàn)實(shí)世界中的事物的抽象,3. 類圖,抽象類,3.2 類圖中的事物及解釋 3.2.2 接口 一組操作的集合,只有操作的聲明而沒(méi)有實(shí)現(xiàn) 3.2.3 抽象類 不能被實(shí)例化的類,一般至少包含一個(gè)抽象操作 3.2.4 模版類 一種參數(shù)化的類,在編譯時(shí)把模版參數(shù)綁定到不同的數(shù)據(jù)類型,從而產(chǎn)生不同的類,3. 類圖,聚合關(guān)系 特殊關(guān)聯(lián)關(guān)系,指明一個(gè)聚集(整體)和組成部分之間的關(guān)系 組合關(guān)系 語(yǔ)義更強(qiáng)的聚合,部分和整體具有相同的生命周期,3.3 類圖中的關(guān)系及解釋 3.

17、3.1 關(guān)聯(lián)關(guān)系 描述了類的結(jié)構(gòu)之間的關(guān)系。具有方向、名字、角色和多重性等信息。一般的關(guān) 聯(lián)關(guān)系語(yǔ)義較弱。也有兩種語(yǔ)義較強(qiáng),分別是聚合與組合,3. 類圖,3.3.3 實(shí)現(xiàn)關(guān)系 對(duì)應(yīng)于類和接口之間的關(guān)系,類Circle、Rectangle實(shí)現(xiàn)了接口Shape的操作,關(guān)聯(lián)、泛化、實(shí)現(xiàn)、依賴都是一種關(guān)系,類、接口都是一種事物,3.3.2 泛化關(guān)系 在面向?qū)ο笾幸话惴Q為繼承關(guān)系,存在于父類與子類、父接口與子接口之間,3.3.4 依賴關(guān)系 描述了一個(gè)類的變化對(duì)依賴于它的類產(chǎn)生影響的情況。有多種表現(xiàn)形式, 例如綁定(bind)、友元(friend)等,模板類Stack定義了棧相關(guān)的操作;IntStack將

18、參數(shù)T與實(shí)際類型int綁定,使得所有操作都針對(duì)int類型的數(shù)據(jù),類Memento和類Originator建立了友元依賴關(guān)系,以便Originator使用Memento的私有變量state,3. 類圖,C+代碼 class Vehicle public: 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 Star

19、t(); public abstract int Stop(); public abstract int Run(float fSpeed); private float fMaxSpeed; ,3.4 類圖與代碼的映射 3.4.1 類的映射,3. 類圖,3.4.2 關(guān)聯(lián)關(guān)系的映射,C+代碼 class Dialog private: Button btnOK; Button btnCancel; TextBox txtInfo; ; class Button ; class TextBox ;,組合關(guān)系,代碼表現(xiàn)為Dialog的屬性有Button和TextBox的對(duì)象,3.4.3 泛化關(guān)系的

20、映射,Java代碼 public class SavingsAccount extends Account ,C+代碼 class SavingsAccount : public Account ;,3. 類圖,C+代碼 class Shape public: virtual void Draw() = 0; ; class Circle : public Shape public: void Draw(); private; Point ptCenter; int nRadius; ;,Java代碼 public interface Shape public abstract void Dr

21、aw(); public class Circle implements Shape public void Draw(); private Point ptCenter; private int nRadius; ,在C+語(yǔ)言里面,使用抽象類代替接口,使用泛化關(guān)系代替實(shí)現(xiàn)關(guān)系 在Java語(yǔ)言里面,有相應(yīng)的關(guān)鍵字interface、implements,3.4.4 實(shí)現(xiàn)關(guān)系的映射,3.4.5 依賴關(guān)系的映射,綁定依賴,C+代碼 template class Stack private: int size; public: int Push(T elem); int Pop(); const T

22、,C+代碼(編譯器生成) class FloatStack private: int size; public: int Push(float elem); int Pop(); const float,3. 類圖,Graphics: 基本圖形和組合圖形的父類,聲明了所有圖形共同的操作,如Draw;也聲明了專用于組合圖形管理子圖形的操作,如Add、Remove Line、Rectangle: 基本圖形類 GroupGraphics: 組合圖形類,與父類有組合關(guān)系,從而可以組合所有圖形對(duì)象(基本圖形和組合圖形),泛化,組合,組合模式,3.5 類圖例子 3.5.1 圖形編輯器 圖形編輯器一般都具有

23、一些基本圖形,如直線、矩形等,用戶可以直接使用基本圖形畫圖,也可以把基本圖形組合在一起創(chuàng)建復(fù)雜圖形 如果區(qū)別對(duì)待基本圖形和組合圖形,會(huì)使代碼變得復(fù)雜,而且多數(shù)情況下用戶認(rèn)為二者是一樣的 組合模式可以用相同的方式處理兩種圖形,3. 類圖,3.5.2 演出售票系統(tǒng) 在用例驅(qū)動(dòng)的開(kāi)發(fā)過(guò)程中,通過(guò)分析各個(gè)用例及參與者得到類圖。分析用例圖的過(guò)程中需要根據(jù)面向?qū)ο蟮脑瓌t設(shè)計(jì)類和關(guān)系,根據(jù)用例的細(xì)節(jié)設(shè)計(jì)類的屬性和操作,在這里只考慮以下三個(gè)用例: Buy tickets: 買個(gè)人票 Buy Subscription: 買套票 Make charges: 信用卡付款,用例圖,類圖,使用泛化關(guān)系處理客戶購(gòu)買個(gè)人票

24、和套票兩種不同情況,設(shè)計(jì)類的屬性和操作,3. 類圖,(1)哪兩個(gè)類之間存在組合關(guān)系 Menu、MenuItem MenuItem、Command Command、OpenCommand Command、PasteCommand (2)OpenCommand和PasteCommand是什么關(guān)系 組合 泛化 聚合 沒(méi)關(guān)系,(3)編輯菜單(EditMenu)是一種菜單,下面哪個(gè)圖較好的描述了二者之間的關(guān)系,(4)下面哪份代碼(C+)最接近于圖中對(duì)MenuItem的描述,3.6 習(xí)題 右圖描述了菜單(Menu)、菜單項(xiàng)(MenuItem)、抽象命令類(Command)和具體命令類(OpenComman

25、d, PasteCommand)之間的關(guān)系,完成1-4題,3. 類圖,右圖描述了圖形接口(Graphics)、線段(Segment)、矩形(Rectangle)、點(diǎn)(Point)和三維點(diǎn)(Point3D)之間的關(guān)系, 完成5-7題,(5)下面哪個(gè)關(guān)系沒(méi)有在圖中出現(xiàn) 關(guān)聯(lián) 泛化 實(shí)現(xiàn) 依賴 (6)下面對(duì)圖中四處的多重性的描述哪個(gè)不正確 0.* 1 0.* 1 (7)下面哪份代碼(Java)最接近于圖中對(duì)Segment的描述,4. 順序圖,UML,- 30 -,4.1 概要 順序圖用來(lái)表示用例中的行為順序。當(dāng)執(zhí)行一個(gè)用例行為時(shí),順序圖中的每條消息對(duì)應(yīng)了一個(gè)類操作或狀態(tài)機(jī)中引起轉(zhuǎn)換的事件。 順序圖展

26、示對(duì)象之間的交互,這些交互是指在場(chǎng)景或用例的事件流中發(fā)生的。 順序圖屬于動(dòng)態(tài)建模。 順序圖的重點(diǎn)在消息序列上,也就是說(shuō),描述消息是如何在對(duì)象間發(fā)送和接收的。表示了對(duì)象之間傳送消息的時(shí)間順序。 瀏覽順序圖的方法是:從上到下查看對(duì)象間交換的消息。,4.2 順序圖中的事物及解釋,4. 順序圖,UML,- 31 -,4.3 順序圖與用例圖和類圖的關(guān)系,4. 順序圖,UML,- 32 -,4.4 順序圖例子,簡(jiǎn)單的例子,從參與者到對(duì)象和從對(duì)象到參與者之間發(fā)送的消息,從對(duì)象傳遞給另一個(gè)對(duì)象的消息,在類圖中的類的對(duì)象,使用系統(tǒng)的參與者,這個(gè)系統(tǒng)是為某個(gè)用例的某個(gè)場(chǎng)景設(shè)計(jì)的,對(duì)象生命線表示從上到下的時(shí)間順序,

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

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

29、Service ),生命線,消息符號(hào)。 信息亭發(fā)Request (count, performance)消息給售票中心,表示調(diào)用售票中心類的Request (count, performance)操作,來(lái)查詢演出的信息。 售票中心發(fā)Show Available(seat-list)消息給信息亭,表示調(diào)用信息亭類中的Show Available(seat-list)操作,給出可用的座位表。,4. 順序圖,UML,- 34 -,1 指出左圖中的參與者? A B C D 2 哪些是對(duì)象? A B C D 3 Server類調(diào)用了CreditService類中的什么操作? A B C D,4.5 練習(xí)

30、題,1. A 2. B 3. B,5.1 概要,5. 協(xié)作圖,協(xié)作圖是一種交互圖,強(qiáng)調(diào)的是發(fā)送和接收消息的對(duì)象之間的組織結(jié)構(gòu),使用協(xié)作圖來(lái)說(shuō)明系統(tǒng)的動(dòng)態(tài) 情況。 協(xié)作圖主要描述協(xié)作對(duì)象間的交互和鏈接,顯示對(duì)象、對(duì)象間的鏈接以及對(duì)象間如何發(fā)送消息。 協(xié)作圖可以表示類操作的實(shí)現(xiàn)。,UML,- 35 -,UML,- 35 -,5.2 協(xié)作圖中的事物及解釋,標(biāo)簽,5.3 協(xié)作圖中的關(guān)系及解釋,UML,- 36 -,UML,- 36 -,5. 協(xié)作圖,5.4 消息標(biāo)簽,消息標(biāo)簽的Format: 前綴 守衛(wèi)條件 序列表達(dá)式 返回值 := 消息名 前綴的語(yǔ)法規(guī)則: 序列號(hào),序列號(hào),序列號(hào) / (前綴用來(lái)同步

31、線程,意思是在發(fā)送當(dāng)前消息之前指定序列號(hào)的消息被處理.例:1.1a, 1.1b/),守衛(wèi)條件的語(yǔ)法規(guī)則: 條件短句 說(shuō)明:條件短句通常用偽代碼或真正的程序語(yǔ)言來(lái)表示。 例: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á)式 返回值 := 消息名,5.5 協(xié)作圖與順序圖的區(qū)別和聯(lián)系,協(xié)作圖和順序圖都表示出了對(duì)象間的交互作用,但是它們側(cè)重點(diǎn)不同。 順序圖清楚地表示了交互作

32、用中的時(shí)間順序(強(qiáng)調(diào)時(shí)間),但沒(méi)有明確表示對(duì)象間的關(guān)系。 協(xié)作圖清楚地表示了對(duì)象間的關(guān)系(強(qiáng)調(diào)空間),但時(shí)間順序必須從順序號(hào)獲得。 協(xié)作圖和順序圖可以相互轉(zhuǎn)化。 (進(jìn)行協(xié)作圖和順序圖的比較,請(qǐng)參考練習(xí)題2),UML,- 37 -,5.6 協(xié)作圖例子,1. 打印操作的協(xié)作圖,5. 協(xié)作圖,actor發(fā)送Print消息給Computer,Computer發(fā)送Print消息給PrintServer,如果打印機(jī)空閑,PrintServer發(fā)送Print消息給printer,2.乘坐電梯的協(xié)作圖,圖中存在的事物有: 參與者 按鈕對(duì)象 電梯控制對(duì)象 命令對(duì)象 工作隊(duì)列 電梯對(duì)象 圖中存在的關(guān)系有: 鏈接,

33、參與者需要乘坐電梯,他從系統(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ā)執(zhí)行。,UML,- 38 -,5. 協(xié)作圖,5.7 練習(xí)題,請(qǐng)指出下面的消息標(biāo)簽各部分的內(nèi)容。 1:display( ) A. 序列表達(dá)式:消息名 B.返回值:消息名 C.序列表達(dá)式:消息名 mode=display 1.2.3.7: redraw( ) A.序列表達(dá)式

34、 返回值 消息名 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( ) A. 前綴 序列表達(dá)式 消息名 B. 后綴 守衛(wèi)條件 消息名,UML,- 39 -,5. 協(xié)作圖,3. 練習(xí)題答案 1. A BBCA 2. AA,2. 請(qǐng)對(duì)比本章中的協(xié)作圖與其相應(yīng)的順序圖,做練習(xí)題。,請(qǐng)?jiān)谙聢D中指出,循環(huán)計(jì)算各個(gè)電梯的工作隊(duì)

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

36、2.2轉(zhuǎn)移 轉(zhuǎn)移是由一種狀態(tài)到另一種狀態(tài)的遷移。這種轉(zhuǎn)移由被建模實(shí)體內(nèi)部或外部 事件觸發(fā)。 對(duì)一個(gè)類來(lái)說(shuō),轉(zhuǎn)移通常是調(diào)用了一個(gè)可以引起狀態(tài)發(fā)生重要變化的操作的 結(jié)果。,6.狀態(tài)圖,消息(屬性)條件/動(dòng)作,6.3 狀態(tài)圖中的事物及解釋,6.4 狀態(tài)的可選活動(dòng)表,6.狀態(tài)圖,6.5 例子 (1) 對(duì)象的狀態(tài)圖 圖中包含以下?tīng)顟B(tài) 初始狀態(tài) Available狀態(tài) Locked狀態(tài) Sold狀態(tài) 狀態(tài)間的轉(zhuǎn)移 初始狀態(tài)Available狀態(tài) 票被預(yù)訂(lock):AvailableLocked 預(yù)定后付款(buy):LockedSold 預(yù)定解除(unlock):LockedAvailable 預(yù)定過(guò)

37、期(time out):LockedAvailable 直接購(gòu)買(assigned to):AvailableSold 換其它票(exchang) ,該票重有效:SoldAvailable,6.狀態(tài)圖,(2)網(wǎng)上銀行登陸系統(tǒng),登陸要求提交個(gè)人社會(huì)保險(xiǎn)號(hào)(SSN)和密碼(PIN)經(jīng)驗(yàn)證有效后登陸成功。 登陸過(guò)程包括以下?tīng)顟B(tài): 初態(tài)(Initial state) 獲取社會(huì)保險(xiǎn)號(hào)狀態(tài)(Getting SSN) 獲取密碼狀態(tài)(Getting PIN) 驗(yàn)證狀態(tài)(Validating) 拒絕狀態(tài)(Rejecting) 終態(tài) (Final state),狀態(tài)轉(zhuǎn)移 的過(guò)程,有兩個(gè)不同的終態(tài),6.狀態(tài)圖,6.

38、7 練習(xí) 分析下面的狀態(tài)圖,回答問(wèn)題,(1) 以下那些圖形元素是對(duì)狀態(tài)的描述? (a) 超時(shí) (b) 到達(dá) (c) 在第一層 (2) 空閑狀態(tài) 超時(shí)后轉(zhuǎn)移到_狀態(tài) (a) 向第一層下降(b) 上升狀態(tài) (c) 終態(tài),習(xí)題答案 (1)(c) (2)(a),6.狀態(tài)圖,7. 活動(dòng)圖,7.1 活動(dòng)圖概要 描述系統(tǒng)的動(dòng)態(tài)行為。 包含活動(dòng)狀態(tài)(ActionState),活動(dòng)狀態(tài)是指業(yè)務(wù)用例的一個(gè)執(zhí)行步驟或一個(gè)操作,不是普通對(duì)象的狀態(tài)。 活動(dòng)圖適合描述在沒(méi)有外部事件觸發(fā)的情況下的系統(tǒng)內(nèi)部的邏輯執(zhí)行過(guò)程;否則,狀態(tài)圖更容易描述。 類似于傳統(tǒng)意義上的流程圖。 活動(dòng)圖主要用于: 業(yè)務(wù)建模時(shí),用于詳述業(yè)務(wù)用例,描

39、述一項(xiàng)業(yè)務(wù)的執(zhí)行過(guò)程; 設(shè)計(jì)時(shí),描述操作的流程。,7.2活動(dòng)圖事物,7. 活動(dòng)圖,7.3 活動(dòng)圖關(guān)系,7.4 活動(dòng)圖實(shí)例 1. 一般的活動(dòng)圖 本活動(dòng)圖描述一個(gè)處理訂單的用例執(zhí)行過(guò) (1)執(zhí)行setup order (2)根據(jù)order的類型是執(zhí)行不同的分支: single order:執(zhí)行assign seat、charge credit card subscription:同時(shí)執(zhí)行assignseats、debit account或 award bonus single order與subscription兩步可同時(shí)進(jìn)行 (3) 最后mail packet。,7. 活動(dòng)圖,2. 帶泳道的活動(dòng)

40、圖 本例為一個(gè)按活動(dòng)職責(zé)(帶泳道)組織的處理訂單用例的活動(dòng)圖(模型中的活動(dòng)按職責(zé)組織)?;顒?dòng)被按職責(zé)分配到用線分開(kāi)的不同區(qū)域(泳道): Customer Sales Stockroom (1)顧客要求服務(wù),Sales負(fù)責(zé)接收定 單,并提交到Stockroom (2) Stockroom處理定單,與此同時(shí), Customer付款,并由Sales處 Deliverorder至Customer。,7. 活動(dòng)圖,7.5 活動(dòng)圖練習(xí) 1. 請(qǐng)選擇下面所列的活動(dòng)圖的事物中,表示信號(hào)的是( ),表示對(duì)象流的是( )。,2. 關(guān)于右面的活動(dòng)圖,下面的說(shuō)法中不正確的是( )。 A aPrinter:Printe

41、r是信號(hào)。 B 操作開(kāi)始從“刪除報(bào)文框”活動(dòng)開(kāi)始。 C 在“創(chuàng)建PS文件”和”刪除報(bào)文框”活動(dòng)中 發(fā)送“print(file)”信號(hào)。 D 信號(hào)發(fā)送的方向是從左到右。 習(xí)題答案 1 C, B 2 C,8. 構(gòu)件圖,構(gòu)件圖用于靜態(tài)建模,是表示構(gòu)件類型的組織以及各種構(gòu)件之間依賴關(guān)系的圖。 構(gòu)件圖通過(guò)對(duì)構(gòu)件間依賴關(guān)系的描述來(lái)估計(jì)對(duì)系統(tǒng)構(gòu)件的修改給系統(tǒng)可能帶來(lái)的影響。,8.2 構(gòu)件圖中的事物及解釋,可替換的物理部分包括軟件代碼、腳本或命令行文件,也可以表示運(yùn)行時(shí)的對(duì)象,文檔,數(shù)據(jù)庫(kù)等。 節(jié)點(diǎn)(node)是運(yùn)行時(shí)的物理對(duì)象,代表一個(gè)計(jì)算機(jī)資源。具體請(qǐng)參見(jiàn)教程“部署圖(deployment diagram

42、)”部分。,8.3 構(gòu)件圖中的關(guān)系及解釋,8.1 構(gòu)件圖概要,8. 構(gòu)件圖,實(shí)例1. 圖中的構(gòu)件名稱是Dictionary字典。 該構(gòu)件向外提供兩個(gè)接口,即兩個(gè)服務(wù)Spell-check拼寫檢查、Synonyms同義詞。,圖中“Planner計(jì)劃者”構(gòu)件向外提供一個(gè)“update更新”接口服務(wù)。 同時(shí),該構(gòu)件要求外部接口提供一個(gè)“Reservations預(yù)定”服務(wù)。,實(shí)例2.,8.4 構(gòu)件圖的例子,8. 構(gòu)件圖,實(shí)例3,圖中依賴關(guān)系包括: 顧客需要信息亭接口提供服務(wù) 售票員需要職員接口提供服務(wù) 信用卡付款需要信用卡代理提供服務(wù) 職員接口需要預(yù)訂銷售、個(gè)人銷售和團(tuán)體銷售提供服務(wù) 管理接口需要數(shù)據(jù)

43、庫(kù)狀態(tài)提供服務(wù) 售票處需要付款和購(gòu)買提供服務(wù) 等等,圖中實(shí)現(xiàn)關(guān)系包括: 信用卡付款提供付款服務(wù) 票數(shù)據(jù)庫(kù)提供購(gòu)買和狀態(tài)查詢服務(wù) 售票處提供預(yù)訂購(gòu)買、個(gè)人購(gòu)買和團(tuán)體購(gòu)買服務(wù),情景一: 購(gòu)買個(gè)人票可以通過(guò)公用信息亭訂購(gòu)也可直接向售票員購(gòu)買,但購(gòu)買團(tuán)體票只能通過(guò)售票員。 情景二: 買票的人可以根據(jù)任意選擇預(yù)訂銷售或個(gè)人銷售或團(tuán)體銷售中的一種方式,售票處為了方便銷售,需要信用卡付款服務(wù)的支持,同時(shí)也必然需要票數(shù)據(jù)庫(kù)處在有票可賣的狀況中。,情景描述,8. 構(gòu)件圖,1. 構(gòu)件圖用于那種建模階段? A.動(dòng)態(tài)建模B.靜態(tài)建模 2. 一個(gè)構(gòu)件只能對(duì)特定的另一個(gè)構(gòu)件提供特定的一種服務(wù)。這種說(shuō)法正確嗎? A.正確B

44、.錯(cuò)誤 3. 構(gòu)件圖用于描述系統(tǒng)中各物理部件之間的服務(wù)的依賴提供關(guān)系。這種說(shuō)法正確嗎? A.正確B.錯(cuò)誤 4. 構(gòu)件圖中實(shí)線箭頭表示服務(wù)的依賴,虛線箭頭表示服務(wù)的提供。這種說(shuō)法正確嗎? A.正確B.錯(cuò)誤 習(xí)題答案:1.B 2.B 3.A 4.B,8.5 習(xí)題,9. 部署圖,9.2 部署圖中的事物及解釋,部署圖用于靜態(tài)建模,是表示運(yùn)行時(shí)過(guò)程節(jié)點(diǎn)結(jié)構(gòu)、構(gòu)件實(shí)例及其對(duì)象結(jié)構(gòu)的圖。 如果含有依賴關(guān)系的構(gòu)件實(shí)例放置在不同節(jié)點(diǎn)上,部署視圖可以展示出執(zhí)行過(guò)程中的瓶頸。 部署圖的兩種表現(xiàn)形式:實(shí)例層部署圖和描述層部署圖(會(huì)在后面的實(shí)例中給出)。,9.1 部署圖概要,9. 部署圖,9.4 部署圖的例子 實(shí)例1 實(shí)例層部署圖,實(shí)例層部署圖描述各節(jié)點(diǎn)和它們之間的連接。 本圖中的信息與上張描述層部署圖中的內(nèi)容是相互對(duì)應(yīng)的。 圖中的關(guān)系是各個(gè)節(jié)點(diǎn)之間存在的通信關(guān)系。,9.3 部署圖中的關(guān)系及解釋,9. 部署圖,實(shí)例2 描述層部署圖,圖中顧客購(gòu)票的情景如下: 顧客通過(guò)位于Kiosk節(jié)點(diǎn)的顧客接口控件進(jìn)行購(gòu)票的操作,該顧客接口構(gòu)件的購(gòu)票操作依賴于處于TicketServer節(jié)點(diǎn)上的售票構(gòu)件提供的服務(wù),售票構(gòu)件要完成售票操作,又要依賴統(tǒng)一節(jié)點(diǎn)上信用卡付款構(gòu)件提供的付款服務(wù)

溫馨提示

  • 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)論