UML建模實(shí)例教程(第3版)課件 第8章 動態(tài)建模_第1頁
UML建模實(shí)例教程(第3版)課件 第8章 動態(tài)建模_第2頁
UML建模實(shí)例教程(第3版)課件 第8章 動態(tài)建模_第3頁
UML建模實(shí)例教程(第3版)課件 第8章 動態(tài)建模_第4頁
UML建模實(shí)例教程(第3版)課件 第8章 動態(tài)建模_第5頁
已閱讀5頁,還剩44頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第8章動態(tài)建模18.1動態(tài)建模概述8.2狀態(tài)圖8.3活動圖8.4活動圖拾遺8.5時序圖8.6通信圖8.7時序圖和通信圖的比較2本章將向讀者詳細(xì)介紹動態(tài)建模的基本內(nèi)容。動態(tài)建模是從用例的執(zhí)行過程、對象之間的消息傳遞、對象的狀態(tài)變化等角度對軟件系統(tǒng)中動態(tài)的特性進(jìn)行的描述。主要包括:使用狀態(tài)圖、使用活動圖、使用時序圖和使用通信圖。本章的學(xué)習(xí)要點(diǎn)包括:狀態(tài)圖的功能及繪制;活動圖的功能及繪制;時序圖的功能及繪制;通信圖的功能及繪制。38.1動態(tài)建模概述48.1動態(tài)建模概述5任務(wù)1了解動態(tài)模型的基本功能和基本組成。任務(wù)描述

6所有系統(tǒng)(包括軟件系統(tǒng))均可表示為兩個方面:靜態(tài)結(jié)構(gòu)和動態(tài)行為。為了描述軟件系統(tǒng)中的靜態(tài)特性,UML中提供類圖和對象圖等,類圖最適合于描述系統(tǒng)的靜態(tài)結(jié)構(gòu),即描述類、對象以及它們之間的關(guān)系。而為了能夠很好地描述軟件系統(tǒng)中的動態(tài)特性,UML提供了狀態(tài)圖、活動圖、時序圖和通信圖來描述系統(tǒng)的結(jié)構(gòu)和行為。狀態(tài)圖、活動圖、時序圖和通信圖適合于描述系統(tǒng)中的對象在執(zhí)行期間不同的時間點(diǎn)是如何動態(tài)交互的。怎樣理解系統(tǒng)的靜態(tài)結(jié)構(gòu)和動態(tài)行為呢?下面來看一個例子:在WebShop電子商城中“購物用戶”對象“張三”通過電子商城提供的購買平臺購買一臺“摩托羅拉W380”的手機(jī),這個過程實(shí)際上就是“購物用戶”對象“張三”發(fā)送一個“購買”消息給“商品”對象“摩托羅拉W380”。這里的“購物用戶”和“商品”就是WebShop電子商城中的一個靜態(tài)結(jié)構(gòu),可以使用UML中的類圖描述“購物用戶”、“商品”以及它們之間的關(guān)系。但是類圖并不能解釋W(xué)ebShop電子商城中的各個對象是如何協(xié)作來實(shí)現(xiàn)“購買”行為的。這就需要借助于活動圖和時序圖來完成。8.1動態(tài)建模概述

8.2.1狀態(tài)圖概述7狀態(tài)圖是由表示狀態(tài)的節(jié)點(diǎn)和表示狀態(tài)之間轉(zhuǎn)換的帶箭頭的直線組成。若干個狀態(tài)由一條或者多條轉(zhuǎn)換箭頭連接,狀態(tài)的轉(zhuǎn)換由事件觸發(fā)。狀態(tài)圖可以有一個起點(diǎn)和多個終點(diǎn),起點(diǎn)(初始態(tài))用一個實(shí)心圓表示,終點(diǎn)(終態(tài))用一個含有實(shí)心圓的空心圓表示。狀態(tài)圖中的狀態(tài)用一個圓角四邊形表示。狀態(tài)之間為狀態(tài)轉(zhuǎn)換,用一條帶箭頭的線表示。引起狀態(tài)轉(zhuǎn)換的事件可以用狀態(tài)轉(zhuǎn)換線旁邊的標(biāo)簽來表示。8.1動態(tài)建模概述

8.2.2狀態(tài)圖組成Word編輯器的簡單狀態(tài)圖81.起點(diǎn)和終點(diǎn)起點(diǎn)代表狀態(tài)圖的一個初始狀態(tài),此狀態(tài)代表狀態(tài)圖的起始位置。終點(diǎn)代表狀態(tài)圖的最后狀態(tài),此狀態(tài)代表狀態(tài)圖的終止位置。8.1動態(tài)建模概述

8.2.2狀態(tài)圖組成起點(diǎn)和終點(diǎn)2.狀態(tài)狀態(tài)是指在對象的生命期中的一個條件或狀況,在此期間對象將滿足某些條件、執(zhí)行某些活動或等待某些事件。狀態(tài)的三個組成部分93.活動

活動是對一個在時間和空間上占有一定位置的有意義的事情的規(guī)格說明。

如“下班時間到了(準(zhǔn)備回家)”“電梯到達(dá)樓上(上電梯)”。8.1動態(tài)建模概述

8.2.2狀態(tài)圖組成4.轉(zhuǎn)換

轉(zhuǎn)換表示當(dāng)一個特定活動發(fā)生或者某些條件滿足時,一個源狀態(tài)下的對象完成一定的動作后將發(fā)生狀態(tài)轉(zhuǎn)變,轉(zhuǎn)向另一個稱之為目標(biāo)狀態(tài)的狀態(tài)。108.1動態(tài)建模概述

8.2.3繪制員工下班回家狀態(tài)圖按鈕按鈕名稱功能Selection選擇工具Note添加注釋Anchor將圖中的元素與注釋相連Label添加文本標(biāo)簽Box繪制盒子,將某些元素框在一起InitialState繪制開始狀態(tài)State繪制狀態(tài)EndState繪制結(jié)束狀態(tài)StateTransition添加狀態(tài)轉(zhuǎn)換Join添加聯(lián)接Fork添加分叉Junction添加匯總點(diǎn)Choice添加選擇狀態(tài)圖工具欄按鈕118.1動態(tài)建模概述繪制員工下班回家狀態(tài)圖。詳見教學(xué)視頻《繪制狀態(tài)圖》

8.2.3繪制員工下班回家狀態(tài)圖128.1動態(tài)建模概述

8.2.3繪制員工下班回家狀態(tài)圖員工下班回家狀態(tài)圖13(1)繪制圖書管理系統(tǒng)的圖書狀態(tài)圖,并對不同狀態(tài)間的轉(zhuǎn)換進(jìn)行描述(參照書中的提示)。(2)繪制WebShop電子商城系統(tǒng)的前臺購物用戶賬號的狀態(tài)圖,并對不同狀態(tài)間的轉(zhuǎn)換進(jìn)行描述(參照書中的提示)。(3)閱讀圖8-14所示的學(xué)生選課系統(tǒng)中的課程狀態(tài)圖,嘗試對不同狀態(tài)間的轉(zhuǎn)換進(jìn)行描述(參照書中的提示)。

1.操作要求

2.操作提示

(1)maxstudents表示選修某一門課程的最多人數(shù)。(2)students表示選修了某一門課程的人數(shù)。(3)afterthisterm表示學(xué)期結(jié)束。8.3活動圖148.3活動圖15任務(wù)3了解活動圖的基本功能和繪制方法,并繪制WebShop電子商城系統(tǒng)中前臺購物用戶購買活動的活動圖。任務(wù)描述

16活動圖(ActivityDiagram)顯示活動動作及其結(jié)果,著重描述操作(方法)實(shí)現(xiàn)中所完成的工作以及用例實(shí)例或?qū)ο笾械幕顒印?/p>

活動是某件事情正在進(jìn)行的狀態(tài),既可以是現(xiàn)實(shí)生活中正在進(jìn)行的某一項工作,也可以是軟件系統(tǒng)某個類的對象的一個操作。

活動圖是狀態(tài)圖的一個變種,與狀態(tài)圖不同,活動圖的主要目的是描述動作(執(zhí)行的工作和活動)及對象狀態(tài)改變的結(jié)果。當(dāng)狀態(tài)中的動作被執(zhí)行時,活動圖中的狀態(tài)(稱為動作狀態(tài))直接轉(zhuǎn)換到下一個階段?;顒訄D和狀態(tài)圖的另一個區(qū)別是活動圖中的動作可以放在泳道中。泳道聚合一組活動,并指定負(fù)責(zé)人和所屬組織。8.3活動圖

8.3.1活動圖概述“機(jī)場個人登記”活動圖171.動作狀態(tài)動作狀態(tài)是指執(zhí)行原子的、不可中斷的動作,并在此動作完成后轉(zhuǎn)換到另一個狀態(tài)。8.3活動圖

8.3.2活動圖組成動作狀態(tài)圖示2.活動狀態(tài)活動狀態(tài)用于表達(dá)狀態(tài)機(jī)中的非原子的運(yùn)行。3.動作流動作流是指所有動作狀態(tài)之間的轉(zhuǎn)換。184.分支與合并

分支是軟件系統(tǒng)流程中很常見的一種邏輯,它一般用來表示對象所具有的條件行為。

在UML中活動圖中的分支和合并用空心菱形表示。分支包括一個入轉(zhuǎn)換和兩個帶條件的出轉(zhuǎn)換(一個入口和兩個出口),出轉(zhuǎn)換的條件是互斥的,這樣可以保證只有一條出轉(zhuǎn)換能夠被觸發(fā)。合并包括兩個帶條件的入轉(zhuǎn)換和一個出轉(zhuǎn)換(兩個入口和一個出口),用來表示從對應(yīng)的分支開始的條件行為的結(jié)束。8.3活動圖

8.3.2活動圖組成分支與合并圖示195.分叉與匯合UML中使用了分叉和匯合來表示并行運(yùn)行的控制流。分叉用于將動作流分為兩個或多個并發(fā)運(yùn)行的分支,每一個分支可以有一個入轉(zhuǎn)換和兩個或多個出轉(zhuǎn)換,并且每個轉(zhuǎn)換都可以是獨(dú)立的控制流;匯合則用于將不同的分支匯聚一起,當(dāng)所有分支的控制流都達(dá)到匯合點(diǎn)后,控制才能繼續(xù)往下進(jìn)行,每個匯合可以有兩個或多個入轉(zhuǎn)換和一個出轉(zhuǎn)換。分叉和匯合都使用加粗的水平線段表示。8.3活動圖

8.3.2活動圖組成分叉與匯合圖示206.活動分區(qū)在活動圖中可以使用活動分區(qū)將操作按照某些公共的特性進(jìn)行分組,活動分區(qū)可以是垂直的或水平的,每一個操作都只能明確地屬于一個活動分區(qū)。從語義上,活動分區(qū)可以被理解為一個包。通常情況下,可以按照參與者來劃分活動分區(qū),也可以按照應(yīng)用程序的層次來劃分。每一個活動分區(qū)都有唯一的名字,控制流可以在活動分區(qū)之間傳遞。8.3活動圖

8.3.2活動圖組成分叉與匯合圖示217.對象流對象可以在活動圖中顯示,表示動作狀態(tài)或者活動狀態(tài)與對象之間的依賴關(guān)系。對象用矩形符號來表示,在矩形的內(nèi)部有對象名或類名。對象流用帶有箭頭的虛線表示。當(dāng)一個對象是一個動作的輸入時,用一個從對象指向動作的虛線箭頭來表示,這時表示該動作使用對象流所指向的對象;當(dāng)對象是一個動作的輸出時,用一個從動作指向?qū)ο蟮奶摼€箭頭來表示,這時表示動作對對象施加了一定的影響(創(chuàng)建、修改和撤銷等)。對象流中的對象有如下特點(diǎn):一個對象可以由多個動作操縱;一個動作輸出的對象可以作為另一個動作輸入的對象;同一個對象可以多次出現(xiàn)在活動圖中,每一次出現(xiàn)表明該對象正處于對象生存期的不同時間點(diǎn)。8.3活動圖

8.3.2活動圖組成22按鈕按鈕名稱功能Selection選擇工具Note添加注釋Anchor將圖中的元素與注釋相連Label添加文本標(biāo)簽Box繪制盒子,將某些元素框在一起InitialActivity繪制開始活動Activity繪制活動EndActivity繪制結(jié)束活動FinalActivity繪制最終活動Branch/Merge繪制條件分支/合并活動圖工具欄按鈕(未完待續(xù))8.3活動圖

8.3.3繪制WebShop電子商城活動圖23活動圖工具欄按鈕(續(xù))8.3活動圖

8.3.3繪制WebShop電子商城活動圖按鈕按鈕名稱功能Fork/Join繪制工作流的分叉/匯合ActivityTransition繪制活動轉(zhuǎn)換Exception繪制異常Pre/Postcondition繪制前置條件/后置文件Sendsignal繪制發(fā)送信號Acceptsignal繪制接受信號Accepttimeevent繪制接受時間事件Region繪制區(qū)域Pin繪制別釘ObjectNode繪制對象節(jié)點(diǎn)248.3活動圖

8.3.3繪制WebShop電子商城活動圖繪制WebShop電子商城活動圖。詳見教學(xué)視頻《繪制活動圖》購物用戶活動圖8.4活動圖拾遺25268.4活動圖拾遺

8.4.1活動圖與流程圖的比較UML中的活動圖用來描述系統(tǒng)使用的活動、判定點(diǎn)和分支,與傳統(tǒng)的流程圖的功能非常類似。傳統(tǒng)的流程圖所能表示的程序邏輯,大多數(shù)情況下也可以使用活動圖表示,但活動圖與流程圖有著本質(zhì)的區(qū)別:流程圖著重描述處理過程,它的主要控制結(jié)構(gòu)是順序、分支和循環(huán),各個處理過程之間有嚴(yán)格的順序和時間關(guān)系;而活動圖描述的是對象活動的順序關(guān)系所遵循的規(guī)則,它著重表現(xiàn)的是系統(tǒng)的行為,而非系統(tǒng)的處理過程;活動圖能夠表示并發(fā)活動的情形,而流程圖不能;活動圖是面向?qū)ο蟮?,而流程圖是面向過程的。278.4活動圖拾遺

8.4.2活動圖與狀態(tài)圖的比較狀態(tài)圖描述了一個特定對象的所有可能狀態(tài),以及由于各種事件的發(fā)生而引起的狀態(tài)之間的轉(zhuǎn)移。它用來描述一個對象在其生命周期的行為,主要強(qiáng)調(diào)外部動作的影響?;顒訄D是一種描述工作流的方式,它用來描述采取何種動作、做什么、何時發(fā)生以及在何處發(fā)生?;顒訄D是由狀態(tài)圖擴(kuò)展而來的,主要強(qiáng)調(diào)對象本身狀態(tài)的變化。狀態(tài)圖和活動圖的主要區(qū)別在于:狀態(tài)圖描述類的對象所有可能的狀態(tài)以及活動發(fā)生時狀態(tài)的轉(zhuǎn)移條件。通常,狀態(tài)圖是對類圖的補(bǔ)充。在實(shí)用上并不需要為所有的類畫狀態(tài)圖,僅為那些有多個狀態(tài),其行為受外界環(huán)境的影響并且發(fā)生改變的類畫狀態(tài)圖;活動圖描述滿足用例要求所要進(jìn)行的活動以及活動間的約束關(guān)系,有利于識別并行活動。28(1)閱讀圖書管理系統(tǒng)的系統(tǒng)管理員維護(hù)讀者信息的活動圖,如右圖所示,嘗試對系統(tǒng)管理員維護(hù)讀者活動進(jìn)行描述。

(2)繪制WebShop電子商城系統(tǒng)中訂單處理的活動圖。

1.操作要求

2.操作提示

(1)通過學(xué)習(xí)小組討論和上網(wǎng)查詢資料形式完成。(2)在繪制活動圖的同時,也可繪制相應(yīng)的流程圖,再將流程圖與活動圖進(jìn)行比較。系統(tǒng)管理員維護(hù)讀者信息活動圖8.5時序圖298.5時序圖30任務(wù)4了解時序圖的基本功能和繪制方法,并繪制WebShop電子商城系統(tǒng)中購物用戶查看歷史訂單的時序圖。任務(wù)描述

31在描述對象之間的交互時,常用到交互圖。交互圖一步一步地顯示用例的實(shí)現(xiàn)流程,包括需要什么對象、對象之間發(fā)送什么內(nèi)容、什么角色啟動流程、消息按什么順序發(fā)送等。UML中的交互圖不是一個單獨(dú)的圖,而是包括時序圖和通信圖兩種圖,其中的時序圖以時間為順序描述對象之間的時間順序。8.5時序圖32

8.5.1時序圖概述時序圖(SequenceDiagram)描述了對象之間傳送消息的時間順序,它用來表示用例中的行為順序,當(dāng)執(zhí)行一個用例行為時,時序圖中的每條消息對應(yīng)了一個類操作中引起轉(zhuǎn)換的觸發(fā)事件。時序圖描述對象是如何交互的,并且將重點(diǎn)放在消息序列上,也就是說,描述消息是如何在對象間發(fā)送和接收的。8.5時序圖購物用戶注冊時序圖在UML中,時序圖表示為二維圖。其中,在橫軸上表示的是與順序有關(guān)的對象??v軸是時間軸,時間沿豎線向下延伸。有一條縱向的虛線表示對象在序列中的執(zhí)行情況,稱為對象的“生命線”,當(dāng)對象存在時,生命線用一條虛線表示,當(dāng)對象的過程處于激活狀態(tài)時,生命線是一條雙道線。瀏覽時序圖的方法是:從上到下查看對象間交換的消息。33

8.5.2時序圖組成時序圖包含了四個元素:對象、生命線、消息和激活。1.對象時序圖中對象的符號與對象圖中對象的符號是一樣的,都是使用矩形將對象名稱包含起來,并且在對象名稱下加下畫線。2.生命線生命線是一條垂直的虛線,表示時序圖中的對象在一段時間內(nèi)的存在。8.5時序圖時序圖中的對象和對象生命線34

8.5.2時序圖組成3.消息消息是對象之間某種形式的通信,它可以激發(fā)某個操作、喚起信號或?qū)е履繕?biāo)對象的創(chuàng)建或撤銷。消息是兩個對象之間的單路通信,從發(fā)送方到接收方的控制信息流。8.5時序圖時序圖中的消息消息類型消息符號含義Creation一個對象創(chuàng)建另一個對象的消息Destroy一個對象銷毀另一個對象的消息SynchronousMessage同步消息AsynchronousMessage異步消息FoundMessage發(fā)現(xiàn)對象的消息LostMessage對象丟失的消息35

8.5.2時序圖組成4.激活時序圖可以描述對象的激活和鈍化,激活表示該對象被占用以完成某個任務(wù),鈍化表示對象處于空閑狀態(tài),在等待消息。在UML中,通過將對象的生命線拓寬為矩形,表示對象是激活的,其中的矩形稱為激活條。對象就是在激活條的頂部被激活的。對象在完成自己的工作后處于鈍化狀態(tài),通常發(fā)生在當(dāng)一個消息箭頭離開對象生命線的時候。8.5時序圖36按鈕按鈕名稱功能Selection選擇工具Note添加注釋Anchor將圖中的元素與注釋相連Label添加文本標(biāo)簽Box繪制盒子,將某些元素框在一起Object繪制對象Creation繪制創(chuàng)建(對象)Destroy繪制銷毀(對象)SynchronousMessage繪制同步消息AsynchronousMessage繪制異步消息FoundMessage繪制發(fā)現(xiàn)消息LostMessage繪制丟失消息CombinedFragment繪制組合碎片Precondition繪制前提條件時序圖工具欄按鈕8.5時序圖

8.5.3繪制WebShop電子商城時序圖37

8.5.3繪制WebShop電子商城時序圖8.5時序圖繪制WebShop電子商城時序圖。詳見教學(xué)視頻《繪制時序圖》WebShop電子商城前臺購物用戶查看當(dāng)前訂單時序圖(1)閱讀如右圖所示學(xué)生選課系統(tǒng)中的管理員維護(hù)課程的時序圖,嘗試描述不同對象間的消息傳遞順序。(2)繪制圖書管理系統(tǒng)中讀者借閱圖書的時序圖。38

1.操作要求

2.操作提示(1)通過學(xué)習(xí)小組討論和上網(wǎng)查詢資料形式完成。(2)在時序圖中通常用到控制類和邊界類。管理員維護(hù)課程時序圖8.6通信圖398.6通信圖40任務(wù)5了解通信圖的基本功能和繪制方法,并繪制WebShop電子商城系統(tǒng)的通信圖。任務(wù)描述

41

通信圖(CommunicationDiagram)是時序圖之外的另一種表示交互的方法,它主要描述通信對象間的交互和鏈接,強(qiáng)調(diào)的是與對象結(jié)構(gòu)相關(guān)的信息。

時序圖和通信圖都描述交互,但是時序圖強(qiáng)調(diào)的是時間,而通信圖強(qiáng)調(diào)的是空間。鏈接顯示真正的對象以及對象間是如何聯(lián)系在一起的,可以只顯示對象的內(nèi)部結(jié)構(gòu)。同時序圖一樣,通信圖也可以說明操作的執(zhí)行、用例的執(zhí)行或系統(tǒng)中的一次簡單的交互情節(jié)。

8.6.1通信圖概述8.6通信圖圖書管理系統(tǒng)讀者借閱圖書通信圖42通信圖由對象、鏈接和消息等組成。1.對象通信圖中的對象與時序圖中的對象的概念是一樣的,圖形表示方法也是一樣的。但是與時序圖不同的是,通信圖中不能表示對象的創(chuàng)建和撤銷,所以對象在通信圖中沒有位置的限制。2.鏈接一條鏈接是兩個對象間的連接。通信圖中的鏈接符號和對象圖中的鏈接符號相同,即一條連接兩個類角色的實(shí)線。3.消息

溫馨提示

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

評論

0/150

提交評論