UML面向?qū)ο笤O(shè)計(jì)與分析教程(第二版)(微課版)第6章-動態(tài)分析與序列圖_第1頁
UML面向?qū)ο笤O(shè)計(jì)與分析教程(第二版)(微課版)第6章-動態(tài)分析與序列圖_第2頁
UML面向?qū)ο笤O(shè)計(jì)與分析教程(第二版)(微課版)第6章-動態(tài)分析與序列圖_第3頁
UML面向?qū)ο笤O(shè)計(jì)與分析教程(第二版)(微課版)第6章-動態(tài)分析與序列圖_第4頁
UML面向?qū)ο笤O(shè)計(jì)與分析教程(第二版)(微課版)第6章-動態(tài)分析與序列圖_第5頁
已閱讀5頁,還剩47頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

UML面向?qū)ο笤O(shè)計(jì)與分析教程(第二版)(微課版)第6章動態(tài)分析與序列圖本章的學(xué)習(xí)目標(biāo):理解動態(tài)分析的含義理解對象交互的含義掌握序列圖的基本概念和組成要素掌握對象生命線的概念掌握激活的概念和表示方法掌握序列圖的建模方法理解序列圖建模的指導(dǎo)原則概述需求捕獲——用例圖靜態(tài)分析——類圖、對象圖…動態(tài)分析——序列圖等用例模型中對系統(tǒng)的功能(用例)進(jìn)行了描述,但所關(guān)注的重點(diǎn)是:系統(tǒng)能做什么(What)問題:怎么做(How)才能實(shí)現(xiàn)系統(tǒng)的每一種功能?在靜態(tài)模型中,確定了所有構(gòu)成系統(tǒng)的類,并且確定了類之間的關(guān)系以及類的屬性問題:類之間的關(guān)系是否正確?類的操作該如何確定?為什么要進(jìn)行動態(tài)分析概述用于對系統(tǒng)中一組對象群體的行為建模主要用來表達(dá)對象之間的動作協(xié)作關(guān)系通常用來描述用例的行為實(shí)現(xiàn)顯示用例實(shí)現(xiàn)/類操作(方法)涉及的對象和對象間的消息傳遞情況動態(tài)分析的任務(wù)概述動態(tài)分析模型描述系統(tǒng)的動態(tài)行為,顯示對象在系統(tǒng)運(yùn)行期間不同時刻的動態(tài)交互,主要是建立系統(tǒng)的交互圖和行為圖。概述概述交互圖——對象之間的合作在UML里被稱作交互。交互是為了達(dá)到某一目的而在一組對象之間進(jìn)行消息交換的行為,交互可以對軟件系統(tǒng)為實(shí)現(xiàn)某一任務(wù)而必須實(shí)施的動態(tài)行為進(jìn)行建模序列(順序、時序)圖(SequenceDiagram)協(xié)作圖(CollabborationDiagram)概述行為圖——結(jié)構(gòu)是支撐軟件的物質(zhì)基礎(chǔ),行為體現(xiàn)了結(jié)構(gòu)的意義所在,軟件的目的將由行為來體現(xiàn)狀態(tài)圖(StatechartDiagram)活動圖(ActivityDiagram)概述序列圖協(xié)作圖狀態(tài)圖活動圖動態(tài)分析模型包括下列模型圖:序列圖用來顯示對象之間的關(guān)系,并強(qiáng)調(diào)對象之間的時間順序,同時顯示對象之間的交互協(xié)作圖主要用來描述對象間的交互關(guān)系狀態(tài)圖通過對類對象的生存周期建立模型來描述對象隨時間變化的動態(tài)行為活動圖用于對計(jì)算流程和工作流程建模概述序列圖的基本概念序列圖用于描述交互,將交互建模成對象之間的消息交換序列圖的定義:序列圖的基本概念序列圖強(qiáng)調(diào)消息發(fā)送的時間先后順序,即對象間消息的發(fā)送和接受的順序序列圖用來表現(xiàn)用例中的行為順序,描述了如何一步步完成系統(tǒng)的某項(xiàng)功能序列圖揭示了一個特定場景的交互,即系統(tǒng)執(zhí)行期間發(fā)生在某個時間點(diǎn)的對象之間的特定交互說明:序列圖的基本概念在UML的表示中,序列圖將交互關(guān)系表示為一個二維圖。其中,縱軸是時間軸,時間沿豎線向下延伸。橫軸代表了在交互中各獨(dú)立的對象。UML表示:序列圖示例:序列圖的基本概念序列圖在項(xiàng)目開發(fā)里的作用:序列圖的基本概念序列圖作為一種描述在給定語境中消息是如何在對象間傳遞的圖形化方式,在使用其進(jìn)行建模時,主要可以將其用途分為以下三個方面:1確認(rèn)和豐富一個使用語境的邏輯表達(dá)。一個系統(tǒng)的使用情境就是系統(tǒng)潛在的使用方式的描述,也就是它的名稱所要描述的。一個使用情境的邏輯可能是一個用例的一部分,或是一條控制流。序列圖在項(xiàng)目開發(fā)里的作用:序列圖的基本概念2細(xì)化用例的表達(dá)。前面已經(jīng)提到,序列圖的主要用途之一,就是把用例表達(dá)的需求,轉(zhuǎn)化為進(jìn)一步、更加正式層次的精細(xì)表達(dá)。用例常常被細(xì)化為一個或者更多的序列圖。序列圖在項(xiàng)目開發(fā)里的作用:序列圖的基本概念3有效地描述如何分配各個類的職責(zé)以及各類具有相應(yīng)職責(zé)的原因。我們可以根據(jù)對象之間的交互關(guān)系來定義類的職責(zé),各個類之間的交互關(guān)系構(gòu)成一個特定的用例。例如,“Customer對象向Address對象請求其街道名稱”指出Customer對象應(yīng)該具有“知道其街道名”這個職責(zé)。序列圖包含了4個元素:對象(Object)生命線(Lifeline)激活(Activation)消息(Message)序列圖的組成序列圖中的對象可以是系統(tǒng)的參與者或者任何有效的系統(tǒng)對象。序列圖中對象的符號和對象圖中對象所用的符號一樣——矩形符號。對象及其類的名稱帶有下劃線,二者用冒號隔開,使用“對象名:類名”的形式。1對象序列圖的組成通常,將一個交互的發(fā)起者稱為主角,將其置于序列圖的頂部。1對象序列圖的組成生命線(Lifeline)是一條垂直的虛線,表示序列圖中的對象在一段時間內(nèi)的存在。2生命線序列圖的組成每個對象的底部中心的位置都帶有生命線。生命線是一個時間線,從序列圖的頂部一直延伸到底部,所用的時間取決于交互持續(xù)的時間。2生命線序列圖的組成序列圖可以描述對象的激活(Activation),激活是對象操作的執(zhí)行,它表示一個對象直接地或通過從屬操作完成操作的過程。它對執(zhí)行的持續(xù)時間和執(zhí)行與其調(diào)用者之間的控制關(guān)系進(jìn)行建模。簡單地說,激活表示該對象被占用以完成某個任務(wù),去激活指的則是對象處于空閑狀態(tài)、在等待消息。3激活序列圖的組成激活在序列圖中用一個細(xì)長的矩形框表示,矩形框稱為激活條或控制期。3激活序列圖的組成矩形框的頂端與激活時間對齊,而底端與完成時間對齊。對象在激活條的頂部被激活,對象在完成自己的工作后被去激活。3激活序列圖的組成消息(Messages)是從一個對象(發(fā)送者)向另一個或幾個其他對象(接收者)發(fā)送信號,或由一個對象(發(fā)送者或調(diào)用者)調(diào)用另一個對象(接收者)的操作。消息定義的是對象之間某種形式的通信,它可以激發(fā)某個操作、喚起信號或?qū)е履繕?biāo)對象的創(chuàng)建或撤銷。4消息序列圖的組成消息有三部分組成:發(fā)送者、接收者和活動。消息的表示形式為從發(fā)送者對象的生命線指向接收者對象生命線的箭頭,箭頭的類型表示了消息的類型。4消息序列圖的組成消息箭頭指向?yàn)榻邮照甙l(fā)送者4消息序列圖的組成創(chuàng)建對象序列圖中的項(xiàng)目相關(guān)概念創(chuàng)建一個對象指的是發(fā)送者發(fā)送一個實(shí)例化消息后實(shí)例化對象的結(jié)果。在序列圖中,創(chuàng)建對象操作的執(zhí)行使用消息的箭頭表示,箭頭指向被創(chuàng)建對象的框。銷毀對象序列圖中的項(xiàng)目相關(guān)概念銷毀對象指的是將對象銷毀并回收其擁有的資源,它通常是一個明確的動作,也可以是其它動作、約束或垃圾回收機(jī)制的結(jié)果。在序列圖中,對象被銷毀是使用在對象的生命線上畫大×表示。創(chuàng)建一個新的序列圖,可以通過以下方式進(jìn)行。1右鍵單擊瀏覽器中的UseCaseView(用例視圖)、LogicalView(邏輯視圖)或者位于這兩種視圖下的包。2在彈出的菜單中,選中“New”(新建)下的“SequenceDiagram”(序列圖)選項(xiàng)。3輸入新的序列名稱。4雙擊打開瀏覽器中的序列圖。1、創(chuàng)建序列圖使用Rose創(chuàng)建序列圖通過圖形編輯工具欄添加對象的步驟如下:1)在圖形編輯工具欄中單擊按鈕,此時光標(biāo)變?yōu)椤?”號。2)在序列圖中單擊任意一個位置,系統(tǒng)將在該位置創(chuàng)建一個新的對象,如圖所示。3)在對象的名稱欄中輸入對象的名稱。這時對象的名稱也會在對象上端的欄中顯示。2、創(chuàng)建對象使用Rose創(chuàng)建序列圖在序列圖中的對象可以通過設(shè)置增加對象的細(xì)節(jié),例如設(shè)置對象名、對象的類、對象的持續(xù)性以及對象是否有多個實(shí)例等。2、創(chuàng)建對象使用Rose創(chuàng)建序列圖

當(dāng)對象被創(chuàng)建后,生命線便存在。當(dāng)對象被激活后,生命線的一部分虛線變成細(xì)長的矩形框。3、創(chuàng)建生命線使用Rose創(chuàng)建序列圖在RationalRose2003中,是否將虛線變成矩形框是可選的,我們可以通過菜單欄設(shè)置是否顯示對象生命線被激活時的矩形框。設(shè)置是否顯示對象生命線被激活的矩形框步驟為:在菜單欄中選擇“Tools”(工具)下的“Options”(選項(xiàng))選項(xiàng),在彈出的對話框中選擇“Diagram”(圖)選項(xiàng)卡,選擇或取消“Focusofcontrol”選項(xiàng)。3、創(chuàng)建生命線使用Rose創(chuàng)建序列圖3、創(chuàng)建生命線使用Rose創(chuàng)建序列圖顯示或者隱藏“激活條”4、創(chuàng)建消息使用Rose創(chuàng)建序列圖

在序列圖中添加對象與對象之間的簡單消息的步驟如下:

1選擇序列圖的圖形編輯工具欄中的圖標(biāo),或者選擇菜單欄“Tools”(工具)中“Create”(新建)下的“ObjectMessage”選項(xiàng),此時的光標(biāo)變?yōu)椤啊狈枴?/p>

2單擊需要發(fā)送消息的對象。

3將消息的線段拖動到接收消息的對象中。

4在線段中輸入消息的文本內(nèi)容。4、創(chuàng)建消息使用Rose創(chuàng)建序列圖

5雙擊消息的線段,彈出設(shè)置消息規(guī)范的對話框,在彈出的對話框中,在“General”選項(xiàng)卡中可以設(shè)置消息的名稱等。

6如果需要設(shè)置消息的同步信息,也就是說設(shè)置消息成為簡單消息、同步消息、異步消息、返回消息、過程調(diào)用、阻止消息和超時消息等,可以在“Detail”選項(xiàng)卡中進(jìn)行設(shè)置,還可以設(shè)置以消息的頻率。4、創(chuàng)建消息使用Rose創(chuàng)建序列圖5、銷毀對象使用Rose創(chuàng)建序列圖銷毀對象表示對象生命線的結(jié)束,在對象生命線中使用一個“X”來進(jìn)行標(biāo)識。給對象生命線中添加銷毀標(biāo)記的步驟如下:

1在序列圖的圖形編輯工具欄中選擇按鈕,此時的光標(biāo)變?yōu)椤?”符號。

2單擊欲銷毀對象的生命線,此時該標(biāo)記在對象生命線中標(biāo)識。該對象生命線自銷毀標(biāo)記以下的部分消失。序列圖的創(chuàng)建示例下面將以“教師查看學(xué)生成績”為例,介紹如何去創(chuàng)建系統(tǒng)的序列圖,如圖所示。確定工作流程可以通過具體的描述來確定工作流程,基本的工作流程如下:老師希望通過系統(tǒng)查詢某名學(xué)生的學(xué)科成績。老師通過用戶界面錄入學(xué)生的學(xué)號。用戶界面根據(jù)學(xué)生的學(xué)號向數(shù)據(jù)庫訪問層請求學(xué)生信息。數(shù)據(jù)庫訪問層根據(jù)學(xué)生的學(xué)號加載學(xué)生信息。數(shù)據(jù)庫訪問層根據(jù)學(xué)生信息和學(xué)科科目獲取該名學(xué)生的分?jǐn)?shù)信息。數(shù)據(jù)庫訪問層將學(xué)生信息和分?jǐn)?shù)信息提供給用戶界面。用戶界面將學(xué)生信息和分?jǐn)?shù)信息顯示出來。在這些基本的工作流程中還存在分支,可使用備選過程來描述。備選過程A:該名學(xué)生沒有學(xué)科成績。1)數(shù)據(jù)訪問層返回學(xué)科成績?yōu)榭铡?)系統(tǒng)提示老師沒有該學(xué)生的成績。備選過程B:系統(tǒng)沒有該學(xué)生的信息。1)數(shù)據(jù)訪問層返回學(xué)生信息為空。2)系統(tǒng)提示老師該學(xué)生不存在。確定對象建模序列圖的下一步是從左到右布置在該工作流程中所有的參與者和對象,同時也包含要添加消息的對象生命線。布置序列圖的對象確定消息接下來對系統(tǒng)的基本工作流程進(jìn)行建模,按照消息的過程一步一步將消息繪制在序列圖中,并添加適當(dāng)?shù)哪_本綁定到消息中?;竟ぷ髁鞒痰男蛄袌D示例備選過程A的序列圖示例備選過程B的序列圖示例生成序列圖后,改善模型是很重要的。對于復(fù)雜的交互,需要多次迭代,才能生成能夠清晰無誤地描述所需要行為的模型。用于序列圖的通用指導(dǎo)原則(最早被Bennett等人采用)。決定交互建模的層面是否描述了操作、用例、組件之間的消息傳遞以及子系統(tǒng)或系統(tǒng)的交互?確認(rèn)交互中涉及的主要元素。如果交互發(fā)生在用例層面,那么協(xié)作對象可能已經(jīng)通過使用CRC(類-責(zé)任-協(xié)作者,class-responsibility-collaborator)卡以及部分分配職責(zé)得以確定。當(dāng)然,CRC卡可以用于不同層面的粒度,以挖掘任何生命線分組行為??紤]可能需要的替代場景。通常在研究替代場景的時候,CRC卡會很有用。確認(rèn)已經(jīng)或即將建模為序列圖的所有現(xiàn)有交互,以便它們可以作為交互使用并被包含其中。序列圖建模的指導(dǎo)原則生成序列圖后,改善模型是很重要的。對于復(fù)雜的交互,需要多次迭代,才能生成能夠清晰無誤地描述所需要行為的模型。用于序列圖的通用指導(dǎo)原則(最早被Bennett等人采用)。繪制圖的大綱結(jié)構(gòu)。使用合適的名稱創(chuàng)建框圖。添加合適的生命線,從最先在交互中涉及的生命線開始,從左向右放置其他的生命線。這可以改善序列圖的頁面布局。如果執(zhí)行者的生命線已經(jīng)被建模,那么應(yīng)該緊跟著邊界生命線(如果已經(jīng)被建模的話)被放置。添加詳細(xì)交互。從框圖的最上面添加首條消息。從上至下布局接下來的消息,在消息標(biāo)簽中顯示合適的細(xì)節(jié)層面。使用帶有合適交互操作符的組合片段來進(jìn)行描述,例如循環(huán)、分支和選擇。序列圖建模的指導(dǎo)原則生成序列圖后,改善模型是很重要的。對于復(fù)雜的交互,需要多次迭代,才能生成能夠清晰無誤地描述所需要行為的模型。用于序列圖的通用指導(dǎo)原則(最早被Bennett等人采用)。確認(rèn)在其他交互中正在或即將使用的所有交互片段,將它們布置在單獨(dú)的

溫馨提示

  • 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

提交評論