![教程.ppt_第1頁](http://file1.renrendoc.com/fileroot2/2020-1/11/3b6ddd4d-ace0-401f-994c-286bb0edcd66/3b6ddd4d-ace0-401f-994c-286bb0edcd661.gif)
![教程.ppt_第2頁](http://file1.renrendoc.com/fileroot2/2020-1/11/3b6ddd4d-ace0-401f-994c-286bb0edcd66/3b6ddd4d-ace0-401f-994c-286bb0edcd662.gif)
![教程.ppt_第3頁](http://file1.renrendoc.com/fileroot2/2020-1/11/3b6ddd4d-ace0-401f-994c-286bb0edcd66/3b6ddd4d-ace0-401f-994c-286bb0edcd663.gif)
![教程.ppt_第4頁](http://file1.renrendoc.com/fileroot2/2020-1/11/3b6ddd4d-ace0-401f-994c-286bb0edcd66/3b6ddd4d-ace0-401f-994c-286bb0edcd664.gif)
![教程.ppt_第5頁](http://file1.renrendoc.com/fileroot2/2020-1/11/3b6ddd4d-ace0-401f-994c-286bb0edcd66/3b6ddd4d-ace0-401f-994c-286bb0edcd665.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、UML 基礎教程,整理:,目錄,1. 前言 1.1前言 1.2UML概述 1.3UML事物 1.4UML關系 1.5各UML圖及特征 1.6各UML圖的關系 1.7UML語法 1.8習題 2. 用例圖 2.1用例圖概要 2.2用例圖中的事物及解釋 2.3用例圖中的關系及解釋 2.4例子 2.5習題 3. 類圖 3.1類圖概要 3.2類圖中的事物及解釋 3.3類圖中的關系及解釋 3.4類圖與代碼的映射 3.5類圖例子 3.6習題 4. 順序圖 4.1概要 4.2順序圖中的事物及解釋 4.3順序圖與用例圖和類圖的關系 4.4順序圖例子 4.5 練習題 5. 協(xié)作圖 5.1概要 5.2協(xié)作圖中的事物
2、及解釋 5.3協(xié)作圖中的關系及解釋,目錄,5.4對消息標簽的詳細講解 5.5協(xié)作圖例子 5.6協(xié)作圖與順序圖的區(qū)別和聯(lián)系 5.7練習題 6. 狀態(tài)圖 6.1狀態(tài)圖概要 6.2狀態(tài)圖的組成 6.3狀態(tài)圖中的事物及解釋 6.4狀態(tài)的可選活動表 6.5簡單的例子:對象的狀態(tài)圖 6.6復雜的例子:網(wǎng)上銀行登陸系統(tǒng) 6.7練習 7. 活動圖 7.1活動圖概要 7.2活動圖事物 7.3活動圖關系 7.4活動圖實例 7.5活動圖練習 8. 構件圖 8.1構件圖概要 8.2構件圖中的事物及解釋 8.3構件圖中的關系及解釋 8.4構件圖的例子 8.5習題 9. 部署圖 9.1部署圖概要 9.2部署圖中的事物及解
3、釋 9.3部署圖中的關系及解釋 9.4部署圖的例子 9.5關于部署圖與構件圖 9.6習題 附錄,1. 前言,1.1前言 本資料對UML1.5各種模型圖的構成和功能進行說明,通過本資料的學習達到可以讀懂UML模型圖的目的。本資料不涉及模型圖作成的要點等相關知識。 1.2UML概述 1.2.1 UML簡介 UML (Unified Modeling Language)為面向對象軟件設計提供統(tǒng)一的、標準的、可視化的建模語言。適用于描述以用例為驅動,以體系結構為中心的軟件設計的全過程。 UML的定義包括UML語義和UML表示法兩個部分。 (1) UML語義:UML對語義的描述使開發(fā)者能在語義上取得一致
4、認識,消除了因人 而異的表達方法所造成的影響。 (2) UML表示法:UML表示法定義UML符號的表示法,為開發(fā)者或開發(fā)工具使用這 些圖形符號和文本語法為系統(tǒng)建模提供了標準。 1.2.2 UML模型圖的構成 事物(Things):UML模型中最基本的構成元素,是具有代表性的成分的抽象 關系(Relationships):關系把事物緊密聯(lián)系在一起 圖(Diagrams ):圖是事物和關系的可視化表示,1. 前言,1.3UML事物 UML包含4種事物:構件事物 行為事物 分組事物 注釋事物 1.3.1構件事物: UML模型的靜態(tài)部分,描述概念或物理元素 它包括以下幾種: 類:具有相同屬性相同操作
5、相同關系相同語義的對象的描述 接口:描述元素的外部可見行為,即服務集合的定義說明 協(xié)作:描述了一組事物間的相互作用的集合 用例:代表一個系統(tǒng)或系統(tǒng)的一部分行為,是一組動作序列的集合 構件:系統(tǒng)中物理存在,可替換的部件 節(jié)點:運行時存在的物理元素 另外,參與者、信號應用、文檔庫、頁表等都是上述基本事物的變體 1.3.2行為事物:UML模型圖的動態(tài)部分,描述跨越空間和時間的行為 交互:實現(xiàn)某功能的一組構件事物之間的消息的集合,涉及消息、動作序列、鏈接 狀態(tài)機:描述事物或交互在生命周期內(nèi)響應事件所經(jīng)歷的狀態(tài)序列 1.3.3分組事物: UML模型圖的組織部分,描述事物的組織結構 包:把元素組織成組的機
6、制 1.3.4注釋事物: UML模型的解釋部分,用來對模型中的元素進行說明,解釋 注解:對元素進行約束或解釋的簡單符號,1. 前言,1.4 UML關系 1.4.1依賴 依賴(dependency)是兩個事物之間的語義關系,其中一個事物(獨立事物)發(fā)生變化, 會影響到另一個事物(依賴事物)的語義 1.4.2關聯(lián) 關聯(lián)(association)是一種結構關系,它指明一個事物的對象與另一個事物的對象間 的聯(lián)系 1.4.3泛化 泛化(generalization)是一種特殊/一般的關系。也可以看作是常說的繼承關系 1.4.4實現(xiàn) 實現(xiàn)(realization)是類元之間的語義關系,其中的一個類元指定了
7、由另一個類元保 證執(zhí)行的契約,1. 前言,1.5 各UML圖及特征 1.5.1用例圖( Use Case Diagram ),用例圖是從用戶角度描述系統(tǒng)功能, 是用戶所能觀察到的系統(tǒng)功能的模型圖,用例是系統(tǒng)中的一個功能單元,類圖描述系統(tǒng)中類的靜態(tài)結構。不僅定義系統(tǒng)中的類,表示類之間的聯(lián)系如關聯(lián)、依賴、聚合等,也包括類的內(nèi)部結構(類的屬性和操作) 類圖是以類為中心來組織的,類圖中的其他元素或屬于某個類或與類相關聯(lián),1.5.2類圖(Class Diagram),1. 前言,1.5 各UML圖及特征 1.5.3 對象圖( Object Diagram ),對象圖是類圖的實例,幾乎使用與類圖完全相同的
8、標識。他們的不同點在于對象圖顯示類的多個對象實例,而不是實際的類,1.5.4 順序圖(Sequence Diagram),順序圖顯示對象之間的動態(tài)合作關系,它強調對象之間消息發(fā)送的順序,同時顯示對象之間的交互 順序圖的一個用途是用來表示用例中的行為順序。當執(zhí)行一個用例行為時,順序圖中的每條消息對應了一個類操作或引起狀態(tài)轉換的觸發(fā)事件,1. 前言,1.5 各UML圖及特征 1.5.5 協(xié)作圖(Collaboration Diagram),協(xié)作圖描述對象間的協(xié)作關系,協(xié)作圖跟順序圖 相似,顯示對象間的動態(tài)合作關系。除顯示信息交換外,協(xié)作圖還顯示對象以及它們之間的關系. 協(xié)作圖的一個用途是表示一個類
9、操作的實現(xiàn),1.5.6 狀態(tài)圖(State Chart Diagram),狀態(tài)圖是一個類對象所可能經(jīng)歷的所有歷程的模型圖。狀態(tài)圖由對象的各個狀態(tài)和連接這些狀態(tài)的轉換組成,1. 前言,1.5 各UML圖及特征 1.5.7 活動圖(Activity Diagram),活動圖是狀態(tài)圖的一個變體,用來描述執(zhí)行算法的工作流程中涉及的活動 活動圖描述了一組順序的或并發(fā)的活動,1.5.8 構件圖(Component Diagram),構件圖為系統(tǒng)的構件建模型構件即構造應用的軟件單元還包括各構件之間的依賴關系,以便通過這些依賴關系來估計對系統(tǒng)構件的修改給系統(tǒng)可能帶來的影響,1. 前言,1.5 各UML圖及特征
10、 1.5.9 部署圖(Deployment Diagram),部署視圖描述位于節(jié)點實例上的運行構件實例的安排。節(jié)點是一組運行資源,如計算機、設備或存儲器。這個視圖允許評估分配結果和資源分配,1.6 各UML圖的關系,1. 前言,1.7 UML語法描述,1. 前言,1.8習題 判斷題 1、UML中一共有九種圖:它們是用例圖、類圖、對象圖、順序圖、協(xié)作圖、狀態(tài)圖、活動圖、構件圖、部署圖 2、用例圖是從程序員角度來描述系統(tǒng)的功能 3、類圖是描述系統(tǒng)中類的靜態(tài)結構,對象圖是描述系統(tǒng)中類的動態(tài)結構 4、活動圖和狀態(tài)圖用來描述系統(tǒng)的動態(tài)行為 5、協(xié)作圖的一個用途是表示一個類操作的實現(xiàn) 選擇題 6、請在下面
11、選項目中選出兩種可以互相轉換的圖 (a) 順序圖 (b)協(xié)作圖 (c) 活動圖 (d) 狀態(tài)圖 7、下面哪些圖可用于BD階段 (a)用例圖 (b)構件圖 (c)類圖 (d)順序圖 答案:1.正確 2.錯誤 3.錯誤 4.正確 5.正確 6. (a)(b) 7.(a)(c)(d),2.1 用例圖概要,2. 用例圖,2.2 用例圖中的事物及解釋,用例圖是被稱為參與者的外部用戶所能觀察到的系統(tǒng)功能的模型圖。 (UML參考手冊) 用例圖列出系統(tǒng)中的用例和系統(tǒng)外的參與者,并顯示哪個參與者參與了哪個用例的執(zhí)行 (或稱為發(fā)起了哪個用例)。 用例圖多用于靜態(tài)建模階段(主要是業(yè)務建模和需求建模)。,2. 用例圖
12、,extend,2.3用例圖中的關系及解釋,2. 用例圖,實例1 參與者之間的泛化關系 參與者:經(jīng)理,安全主管,保安 用例:管理人事,批準預算,批準安全證書,監(jiān)視周邊 在參與者之間不存在泛化關系的情況下,各個參與者參與 用例的情況分別是:經(jīng)理參與用例管理人事和批準預算;安全主管參與用例批準安全證書;保安參與用例監(jiān)視周邊。由于安全主管與經(jīng)理,安全主管與保安之間泛化關系的存在,意味著安全主管可以擔任經(jīng)理和保安的角色,就能夠參與經(jīng)理和保安參與的用例。這樣,安全主管就可以參與全部4個用例。但經(jīng)理或者保安卻不能擔任安全主管的角色,也就不能參與用例批準安全證書。,實例2 用例之間擴展和包含關系 用例的上下
13、文是:短途旅行但汽車的油不足以應付全部路程。那么為汽車加油的動作在旅行的每個場景(事件流)中都會出現(xiàn),不加油就不會完成旅行。吃飯則可以由司機決定是否進行,不吃飯不會影響旅行的完成。,2.4 例子,2. 用例圖,實例3. 航空售票的用例圖 參與者(actor):clerk,監(jiān)督員,信用卡服務商,信息亭 用例(use case): Buy tickets, Buy Subscription, Make charges, Survey sales 參與者Clerk參與(或稱發(fā)起)Buy tickets和Buy Subscription 兩個用例(關聯(lián)關系)。這兩個用例的事件流都包含Make char
14、ges用例(包含關系)。 系統(tǒng)由:Buy tickets, Buy Subscription, Make charges, Survey sales組成。 該系統(tǒng)主要包含:Buy tickets, Buy Subscription, Make charges, Survey sales這幾個功能。 該系統(tǒng)主要面向的用戶(參與者):clerk,監(jiān)督員,信用卡服務商,信息亭。,2. 用例圖,右圖中的參與者有? (a) 1 (b) 2 (c) 3(d) 4 右圖中的用例有? (a) 1(b) 2 (c) 3(d) 4 2和3之間是什么關系?5和6呢? (a) 擴展,包含(b) 包含,擴展 5缺少了3
15、仍然是個完整的用例? (a) 是的(b) 不是 4能夠參與2嗎?1能夠參與5嗎? (a) 可以,不可以 (b) 不可以,可以,習題答案: 1、(a)(d) 2、(b)(c) 3、(b) 4、(b) 5、(b),2.5 習題,3. 類圖,3.2 類圖中的事物及解釋 3.2.1 類 從上到下分為三部分,分別是類名、屬性和操作。類名是必須有的 類如果有屬性,則每一個屬性都必須有一個名字,另外還可以有其它的描述信息,如可見性、數(shù)據(jù)類型、缺省值等 類如果有操作,則每一個操作也都有一個名字,其它可選的信息包括可見性、參數(shù)的名字、參數(shù)類型、參數(shù)缺省值和操作的返回值的類型等,3.1 類圖概要 類圖以反映類的結
16、構(屬性、操作)以及類之間的關系為主要目的,描述了軟件系統(tǒng)的結構,是一種靜態(tài)建模方法 類圖中的“類”與面向對象語言中的“類”的概念是對應的,是對現(xiàn)實世界中的事物的抽象,3. 類圖,抽象類,3.2 類圖中的事物及解釋 3.2.2 接口 一組操作的集合,只有操作的聲明而沒有實現(xiàn) 3.2.3 抽象類 不能被實例化的類,一般至少包含一個抽象操作 3.2.4 模版類 一種參數(shù)化的類,在編譯時把模版參數(shù)綁定到不同的數(shù)據(jù)類型,從而產(chǎn)生不同的類,3. 類圖,聚合關系 特殊關聯(lián)關系,指明一個聚集(整體)和組成部分之間的關系 組合關系 語義更強的聚合,部分和整體具有相同的生命周期,3.3 類圖中的關系及解釋 3.
17、3.1 關聯(lián)關系 描述了類的結構之間的關系。具有方向、名字、角色和多重性等信息。一般的關 聯(lián)關系語義較弱。也有兩種語義較強,分別是聚合與組合,3. 類圖,3.3.3 實現(xiàn)關系 對應于類和接口之間的關系,類Circle、Rectangle實現(xiàn)了接口Shape的操作,關聯(lián)、泛化、實現(xiàn)、依賴都是一種關系,類、接口都是一種事物,3.3.2 泛化關系 在面向對象中一般稱為繼承關系,存在于父類與子類、父接口與子接口之間,3.3.4 依賴關系 描述了一個類的變化對依賴于它的類產(chǎn)生影響的情況。有多種表現(xiàn)形式, 例如綁定(bind)、友元(friend)等,模板類Stack定義了棧相關的操作;IntStack將
18、參數(shù)T與實際類型int綁定,使得所有操作都針對int類型的數(shù)據(jù),類Memento和類Originator建立了友元依賴關系,以便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 關聯(lián)關系的映射,C+代碼 class Dialog private: Button btnOK; Button btnCancel; TextBox txtInfo; ; class Button ; class TextBox ;,組合關系,代碼表現(xiàn)為Dialog的屬性有Button和TextBox的對象,3.4.3 泛化關系的
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+語言里面,使用抽象類代替接口,使用泛化關系代替實現(xiàn)關系 在Java語言里面,有相應的關鍵字interface、implements,3.4.4 實現(xiàn)關系的映射,3.4.5 依賴關系的映射,綁定依賴,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: 組合圖形類,與父類有組合關系,從而可以組合所有圖形對象(基本圖形和組合圖形),泛化,組合,組合模式,3.5 類圖例子 3.5.1 圖形編輯器 圖形編輯器一般都具有
23、一些基本圖形,如直線、矩形等,用戶可以直接使用基本圖形畫圖,也可以把基本圖形組合在一起創(chuàng)建復雜圖形 如果區(qū)別對待基本圖形和組合圖形,會使代碼變得復雜,而且多數(shù)情況下用戶認為二者是一樣的 組合模式可以用相同的方式處理兩種圖形,3. 類圖,3.5.2 演出售票系統(tǒng) 在用例驅動的開發(fā)過程中,通過分析各個用例及參與者得到類圖。分析用例圖的過程中需要根據(jù)面向對象的原則設計類和關系,根據(jù)用例的細節(jié)設計類的屬性和操作,在這里只考慮以下三個用例: Buy tickets: 買個人票 Buy Subscription: 買套票 Make charges: 信用卡付款,用例圖,類圖,使用泛化關系處理客戶購買個人票
24、和套票兩種不同情況,設計類的屬性和操作,3. 類圖,(1)哪兩個類之間存在組合關系 Menu、MenuItem MenuItem、Command Command、OpenCommand Command、PasteCommand (2)OpenCommand和PasteCommand是什么關系 組合 泛化 聚合 沒關系,(3)編輯菜單(EditMenu)是一種菜單,下面哪個圖較好的描述了二者之間的關系,(4)下面哪份代碼(C+)最接近于圖中對MenuItem的描述,3.6 習題 右圖描述了菜單(Menu)、菜單項(MenuItem)、抽象命令類(Command)和具體命令類(OpenComman
25、d, PasteCommand)之間的關系,完成1-4題,3. 類圖,右圖描述了圖形接口(Graphics)、線段(Segment)、矩形(Rectangle)、點(Point)和三維點(Point3D)之間的關系, 完成5-7題,(5)下面哪個關系沒有在圖中出現(xiàn) 關聯(lián) 泛化 實現(xiàn) 依賴 (6)下面對圖中四處的多重性的描述哪個不正確 0.* 1 0.* 1 (7)下面哪份代碼(Java)最接近于圖中對Segment的描述,4. 順序圖,UML,- 30 -,4.1 概要 順序圖用來表示用例中的行為順序。當執(zhí)行一個用例行為時,順序圖中的每條消息對應了一個類操作或狀態(tài)機中引起轉換的事件。 順序圖展
26、示對象之間的交互,這些交互是指在場景或用例的事件流中發(fā)生的。 順序圖屬于動態(tài)建模。 順序圖的重點在消息序列上,也就是說,描述消息是如何在對象間發(fā)送和接收的。表示了對象之間傳送消息的時間順序。 瀏覽順序圖的方法是:從上到下查看對象間交換的消息。,4.2 順序圖中的事物及解釋,4. 順序圖,UML,- 31 -,4.3 順序圖與用例圖和類圖的關系,4. 順序圖,UML,- 32 -,4.4 順序圖例子,簡單的例子,從參與者到對象和從對象到參與者之間發(fā)送的消息,從對象傳遞給另一個對象的消息,在類圖中的類的對象,使用系統(tǒng)的參與者,這個系統(tǒng)是為某個用例的某個場景設計的,對象生命線表示從上到下的時間順序,
27、消息1在消息2之前發(fā)生,消息2在消息3之前發(fā)生,窄長方框用以強調這個部分處于活動狀態(tài),消息格式: operation (parameter list) 向哪個對象發(fā)消息實際上就是調用它的類中的操作,就是調用箭頭指向的對象所在類的 一個operation。 例:,訂單類發(fā)消息給客戶類調用客戶類中的“驗證客戶”操作,4. 順序圖,UML,- 33 -,復雜的例子,信息亭,售票中心,信用卡服務,從這個例子中可以看出: 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),此圖是描述購票這個用例的順序圖。顧客在信息亭與售票中心通話觸發(fā)了這個用例的執(zhí)行。順序圖中付款這個用例包括售票中心與信息亭和信用卡服務處使用消息進行通信過程。 此圖中存在的事物有: 對象(信息亭 Kjosk ,售票中心 Box Office, 信用卡服務 Credit Card
29、Service ),生命線,消息符號。 信息亭發(fā)Request (count, performance)消息給售票中心,表示調用售票中心類的Request (count, performance)操作,來查詢演出的信息。 售票中心發(fā)Show Available(seat-list)消息給信息亭,表示調用信息亭類中的Show Available(seat-list)操作,給出可用的座位表。,4. 順序圖,UML,- 34 -,1 指出左圖中的參與者? A B C D 2 哪些是對象? A B C D 3 Server類調用了CreditService類中的什么操作? A B C D,4.5 練習
30、題,1. A 2. B 3. B,5.1 概要,5. 協(xié)作圖,協(xié)作圖是一種交互圖,強調的是發(fā)送和接收消息的對象之間的組織結構,使用協(xié)作圖來說明系統(tǒng)的動態(tài) 情況。 協(xié)作圖主要描述協(xié)作對象間的交互和鏈接,顯示對象、對象間的鏈接以及對象間如何發(fā)送消息。 協(xié)作圖可以表示類操作的實現(xiàn)。,UML,- 35 -,UML,- 35 -,5.2 協(xié)作圖中的事物及解釋,標簽,5.3 協(xié)作圖中的關系及解釋,UML,- 36 -,UML,- 36 -,5. 協(xié)作圖,5.4 消息標簽,消息標簽的Format: 前綴 守衛(wèi)條件 序列表達式 返回值 := 消息名 前綴的語法規(guī)則: 序列號,序列號,序列號 / (前綴用來同步
31、線程,意思是在發(fā)送當前消息之前指定序列號的消息被處理.例:1.1a, 1.1b/),守衛(wèi)條件的語法規(guī)則: 條件短句 說明:條件短句通常用偽代碼或真正的程序語言來表示。 例:x=0,返回值和消息名:返回值表示一個消息的返回結果,消息名指出了消息的名字和所需參數(shù)。 例:x:=calc ( n ) 下面是一個完整的消息標簽: 1.1a, 1.1b, 1.1c / x=0 1.2 *i:=1.n : x := calc( n ) 前綴 守衛(wèi)條件 序列表達式 返回值 := 消息名,5.5 協(xié)作圖與順序圖的區(qū)別和聯(lián)系,協(xié)作圖和順序圖都表示出了對象間的交互作用,但是它們側重點不同。 順序圖清楚地表示了交互作
32、用中的時間順序(強調時間),但沒有明確表示對象間的關系。 協(xié)作圖清楚地表示了對象間的關系(強調空間),但時間順序必須從順序號獲得。 協(xié)作圖和順序圖可以相互轉化。 (進行協(xié)作圖和順序圖的比較,請參考練習題2),UML,- 37 -,5.6 協(xié)作圖例子,1. 打印操作的協(xié)作圖,5. 協(xié)作圖,actor發(fā)送Print消息給Computer,Computer發(fā)送Print消息給PrintServer,如果打印機空閑,PrintServer發(fā)送Print消息給printer,2.乘坐電梯的協(xié)作圖,圖中存在的事物有: 參與者 按鈕對象 電梯控制對象 命令對象 工作隊列 電梯對象 圖中存在的關系有: 鏈接,
33、參與者需要乘坐電梯,他從系統(tǒng)外部按下按鈕,讓電梯到達他想去的樓層。此時,電梯系統(tǒng)的操作被啟動,電梯控制對象以循環(huán)的方式檢查所有的電梯,從中選擇一個工作隊列長度最短的。然后,它創(chuàng)建一個作業(yè)命令,并將該命令放入對應電梯的工作隊列,接著激活隊列。電梯對象并發(fā)運行,從它的隊列中選擇一個作業(yè)并執(zhí)行。電梯是一個活動對象,它與它的控制線程并發(fā)執(zhí)行。,UML,- 38 -,5. 協(xié)作圖,5.7 練習題,請指出下面的消息標簽各部分的內(nèi)容。 1:display( ) A. 序列表達式:消息名 B.返回值:消息名 C.序列表達式:消息名 mode=display 1.2.3.7: redraw( ) A.序列表達式
34、 返回值 消息名 B.守衛(wèi)條件 序列表達式 消息名 2 *n:=a . . z : prim:=nextPrim(prim) A. 守衛(wèi)條件 序列表達式 消息名 B.序列表達式 返回值 消息名 3.1 x0 : foo( ) A.序列表達式 守衛(wèi)條件 B.守衛(wèi)條件 消息名 C.序列表達式 消息名 1.1a, 1.1b/1.2 : continue( ) A. 前綴 序列表達式 消息名 B. 后綴 守衛(wèi)條件 消息名,UML,- 39 -,5. 協(xié)作圖,3. 練習題答案 1. A BBCA 2. AA,2. 請對比本章中的協(xié)作圖與其相應的順序圖,做練習題。,請在下圖中指出,循環(huán)計算各個電梯的工作隊
35、列長度的消息的順序號。 A 1.1 B1.2 C1.3 D2 請說明消息1.3所進行的操作Invoke(job),應屬于哪個類所具有的方法。 A Queue類 B ElevatorControl類 C Elevator類 D Button類,6.1 狀態(tài)圖概要 6.1.1狀態(tài)圖 說明對象在它的生命期中響應事件所經(jīng)歷的狀態(tài)序列,以及它們對那些事件 的響應。 6.1.2狀態(tài)圖用于 揭示Actor、類、子系統(tǒng)和組件的復雜特性。 為實時系統(tǒng)建模。,6.2 狀態(tài)圖的組成 6.2.1狀態(tài) 對象的狀態(tài)是指在這個對象的生命期中的一個條件或狀況,在此期間對象將 滿足某些條件、執(zhí)行某些活動,或等待某些事件。 6.
36、2.2轉移 轉移是由一種狀態(tài)到另一種狀態(tài)的遷移。這種轉移由被建模實體內(nèi)部或外部 事件觸發(fā)。 對一個類來說,轉移通常是調用了一個可以引起狀態(tài)發(fā)生重要變化的操作的 結果。,6.狀態(tài)圖,消息(屬性)條件/動作,6.3 狀態(tài)圖中的事物及解釋,6.4 狀態(tài)的可選活動表,6.狀態(tài)圖,6.5 例子 (1) 對象的狀態(tài)圖 圖中包含以下狀態(tài) 初始狀態(tài) Available狀態(tài) Locked狀態(tài) Sold狀態(tài) 狀態(tài)間的轉移 初始狀態(tài)Available狀態(tài) 票被預訂(lock):AvailableLocked 預定后付款(buy):LockedSold 預定解除(unlock):LockedAvailable 預定過
37、期(time out):LockedAvailable 直接購買(assigned to):AvailableSold 換其它票(exchang) ,該票重有效:SoldAvailable,6.狀態(tài)圖,(2)網(wǎng)上銀行登陸系統(tǒng),登陸要求提交個人社會保險號(SSN)和密碼(PIN)經(jīng)驗證有效后登陸成功。 登陸過程包括以下狀態(tài): 初態(tài)(Initial state) 獲取社會保險號狀態(tài)(Getting SSN) 獲取密碼狀態(tài)(Getting PIN) 驗證狀態(tài)(Validating) 拒絕狀態(tài)(Rejecting) 終態(tài) (Final state),狀態(tài)轉移 的過程,有兩個不同的終態(tài),6.狀態(tài)圖,6.
38、7 練習 分析下面的狀態(tài)圖,回答問題,(1) 以下那些圖形元素是對狀態(tài)的描述? (a) 超時 (b) 到達 (c) 在第一層 (2) 空閑狀態(tài) 超時后轉移到_狀態(tài) (a) 向第一層下降(b) 上升狀態(tài) (c) 終態(tài),習題答案 (1)(c) (2)(a),6.狀態(tài)圖,7. 活動圖,7.1 活動圖概要 描述系統(tǒng)的動態(tài)行為。 包含活動狀態(tài)(ActionState),活動狀態(tài)是指業(yè)務用例的一個執(zhí)行步驟或一個操作,不是普通對象的狀態(tài)。 活動圖適合描述在沒有外部事件觸發(fā)的情況下的系統(tǒng)內(nèi)部的邏輯執(zhí)行過程;否則,狀態(tài)圖更容易描述。 類似于傳統(tǒng)意義上的流程圖。 活動圖主要用于: 業(yè)務建模時,用于詳述業(yè)務用例,描
39、述一項業(yè)務的執(zhí)行過程; 設計時,描述操作的流程。,7.2活動圖事物,7. 活動圖,7.3 活動圖關系,7.4 活動圖實例 1. 一般的活動圖 本活動圖描述一個處理訂單的用例執(zhí)行過 (1)執(zhí)行setup order (2)根據(jù)order的類型是執(zhí)行不同的分支: single order:執(zhí)行assign seat、charge credit card subscription:同時執(zhí)行assignseats、debit account或 award bonus single order與subscription兩步可同時進行 (3) 最后mail packet。,7. 活動圖,2. 帶泳道的活動
40、圖 本例為一個按活動職責(帶泳道)組織的處理訂單用例的活動圖(模型中的活動按職責組織)?;顒颖话绰氊煼峙涞接镁€分開的不同區(qū)域(泳道): Customer Sales Stockroom (1)顧客要求服務,Sales負責接收定 單,并提交到Stockroom (2) Stockroom處理定單,與此同時, Customer付款,并由Sales處 Deliverorder至Customer。,7. 活動圖,7.5 活動圖練習 1. 請選擇下面所列的活動圖的事物中,表示信號的是( ),表示對象流的是( )。,2. 關于右面的活動圖,下面的說法中不正確的是( )。 A aPrinter:Printe
41、r是信號。 B 操作開始從“刪除報文框”活動開始。 C 在“創(chuàng)建PS文件”和”刪除報文框”活動中 發(fā)送“print(file)”信號。 D 信號發(fā)送的方向是從左到右。 習題答案 1 C, B 2 C,8. 構件圖,構件圖用于靜態(tài)建模,是表示構件類型的組織以及各種構件之間依賴關系的圖。 構件圖通過對構件間依賴關系的描述來估計對系統(tǒng)構件的修改給系統(tǒng)可能帶來的影響。,8.2 構件圖中的事物及解釋,可替換的物理部分包括軟件代碼、腳本或命令行文件,也可以表示運行時的對象,文檔,數(shù)據(jù)庫等。 節(jié)點(node)是運行時的物理對象,代表一個計算機資源。具體請參見教程“部署圖(deployment diagram
42、)”部分。,8.3 構件圖中的關系及解釋,8.1 構件圖概要,8. 構件圖,實例1. 圖中的構件名稱是Dictionary字典。 該構件向外提供兩個接口,即兩個服務Spell-check拼寫檢查、Synonyms同義詞。,圖中“Planner計劃者”構件向外提供一個“update更新”接口服務。 同時,該構件要求外部接口提供一個“Reservations預定”服務。,實例2.,8.4 構件圖的例子,8. 構件圖,實例3,圖中依賴關系包括: 顧客需要信息亭接口提供服務 售票員需要職員接口提供服務 信用卡付款需要信用卡代理提供服務 職員接口需要預訂銷售、個人銷售和團體銷售提供服務 管理接口需要數(shù)據(jù)
43、庫狀態(tài)提供服務 售票處需要付款和購買提供服務 等等,圖中實現(xiàn)關系包括: 信用卡付款提供付款服務 票數(shù)據(jù)庫提供購買和狀態(tài)查詢服務 售票處提供預訂購買、個人購買和團體購買服務,情景一: 購買個人票可以通過公用信息亭訂購也可直接向售票員購買,但購買團體票只能通過售票員。 情景二: 買票的人可以根據(jù)任意選擇預訂銷售或個人銷售或團體銷售中的一種方式,售票處為了方便銷售,需要信用卡付款服務的支持,同時也必然需要票數(shù)據(jù)庫處在有票可賣的狀況中。,情景描述,8. 構件圖,1. 構件圖用于那種建模階段? A.動態(tài)建模B.靜態(tài)建模 2. 一個構件只能對特定的另一個構件提供特定的一種服務。這種說法正確嗎? A.正確B
44、.錯誤 3. 構件圖用于描述系統(tǒng)中各物理部件之間的服務的依賴提供關系。這種說法正確嗎? A.正確B.錯誤 4. 構件圖中實線箭頭表示服務的依賴,虛線箭頭表示服務的提供。這種說法正確嗎? A.正確B.錯誤 習題答案:1.B 2.B 3.A 4.B,8.5 習題,9. 部署圖,9.2 部署圖中的事物及解釋,部署圖用于靜態(tài)建模,是表示運行時過程節(jié)點結構、構件實例及其對象結構的圖。 如果含有依賴關系的構件實例放置在不同節(jié)點上,部署視圖可以展示出執(zhí)行過程中的瓶頸。 部署圖的兩種表現(xiàn)形式:實例層部署圖和描述層部署圖(會在后面的實例中給出)。,9.1 部署圖概要,9. 部署圖,9.4 部署圖的例子 實例1 實例層部署圖,實例層部署圖描述各節(jié)點和它們之間的連接。 本圖中的信息與上張描述層部署圖中的內(nèi)容是相互對應的。 圖中的關系是各個節(jié)點之間存在的通信關系。,9.3 部署圖中的關系及解釋,9. 部署圖,實例2 描述層部署圖,圖中顧客購票的情景如下: 顧客通過位于Kiosk節(jié)點的顧客接口控件進行購票的操作,該顧客接口構件的購票操作依賴于處于TicketServer節(jié)點上的售票構件提供的服務,售票構件要完成售票操作,又要依賴統(tǒng)一節(jié)點上信用卡付款構件提供的付款服務
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度護士個人勞動合同范本(護理專家)
- 二零二四年影視節(jié)目導演聘請合同范本3篇
- 2025年叉車租賃安全監(jiān)管服務合同標準
- 2025年度罐車租賃及安全教育培訓合同
- 2025年節(jié)水灌溉技術研發(fā)與應用合同范本
- 2025年國際電信行業(yè)融資合同
- 2025年度豪華游艇維修保養(yǎng)服務合同范本
- 企業(yè)專項培訓服務2024版委托合同版B版
- 2025年度智慧城市建設劃線工程合同書示范文本
- 2025年上海市門面轉讓合同模板(2篇)
- 醫(yī)院消防安全培訓課件
- 《00541語言學概論》自考復習題庫(含答案)
- 2025年機關工會個人工作計劃
- 江蘇省南京市、鹽城市2023-2024學年高三上學期期末調研測試+英語+ 含答案
- 2024護理不良事件分析
- 光伏項目的投資估算設計概算以及財務評價介紹
- 電力安全工作規(guī)程(完整版)
- 2024年湖南省公務員錄用考試《行測》試題及答案解析
- 借名買車的協(xié)議書范文范本
- 《2024 ESC血壓升高和高血壓管理指南》解讀
- 2023年鐵嶺衛(wèi)生職業(yè)學院高職單招(語文)試題庫含答案解析
評論
0/150
提交評論