成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

學(xué)習(xí)筆記 解析UML動態(tài)建模機(jī)制

開發(fā) 架構(gòu)
UML建模機(jī)制有三部分,你對于其中的動態(tài)建模機(jī)制是否熟悉,這里就向大家介紹一下UML動態(tài)建模機(jī)制,希望本文的介紹能夠讓你學(xué)到不少知識。

本節(jié)和大家學(xué)習(xí)一下UML動態(tài)建模機(jī)制,主要包括消息,狀態(tài)圖,順序圖,合作圖和活動圖介紹及四種圖的運用等內(nèi)容,相信通過本節(jié)的介紹你對UML動態(tài)建模機(jī)制一定會有深刻的認(rèn)識。

UML動態(tài)建模機(jī)制

1.消息

在面向?qū)ο蠹夹g(shù)中,對象間的交互是通過對象間消息的傳遞來完成的。在UML的四個動態(tài)模型中均用到消息這個概念。通常,當(dāng)一個對象調(diào)用另一個對象中的操作時,即完成了一次消息傳遞。當(dāng)操作執(zhí)行后,控制便返回到調(diào)用者。對象通過相互間的通信進(jìn)行合作,并在其生命周期中根據(jù)通信的結(jié)果不斷改變自身的狀態(tài)。
在UML中,消息的圖形表示是用帶有箭頭的線段將消息的發(fā)送者和接收者聯(lián)系起來,箭頭的類型表示消息的類型,如圖2所示。

UML定義中UML動態(tài)建模的消息類型有三種:

簡單消息表示簡單的控制流。用于描述控制如何在對象間進(jìn)行傳遞,而不考慮通信的細(xì)節(jié)。
同步消息表示嵌套的控制流。操作的調(diào)用是一種典型的同步消息。調(diào)用者發(fā)出消息后必須等待消息返回,只有當(dāng)處理消息的操作執(zhí)行完畢后,調(diào)用者才可繼續(xù)執(zhí)行自己的操作。
異步消息表示異步控制流。當(dāng)調(diào)用者發(fā)出消息后不用等待消息的返回即可繼續(xù)執(zhí)行自己的操作。異步消息主要用于描述實時系統(tǒng)中的并發(fā)行為。

2.狀態(tài)圖

UML動態(tài)建模狀態(tài)圖用來描述一個特定對象的所有可能狀態(tài)及其引起狀態(tài)轉(zhuǎn)移的事件。大多數(shù)面向?qū)ο蠹夹g(shù)都用狀態(tài)圖表示單個對象在其生命周期中的行為。一個狀態(tài)圖包括一系列的狀態(tài)以及狀態(tài)之間的轉(zhuǎn)移。
狀態(tài) 所有對象都具有狀態(tài),狀態(tài)是對象執(zhí)行了一系列活動的結(jié)果。當(dāng)某個事件發(fā)生后,對象的狀態(tài)將發(fā)生變化。狀態(tài)圖中定義的狀態(tài)有:初態(tài)、終態(tài)、中間狀態(tài)、復(fù)合狀態(tài)。其中,初態(tài)是狀態(tài)圖的起始點,而終態(tài)則是狀態(tài)圖的終點。一個狀態(tài)圖只能有一個初態(tài),而終態(tài)則可以有多個。
中間狀態(tài)包括兩個區(qū)域:名字域和內(nèi)部轉(zhuǎn)移域,如圖3所示。圖中內(nèi)部轉(zhuǎn)移域是可選的,其中所列的動作將在對象處于該狀態(tài)時執(zhí)行,且該動作的執(zhí)行并不改變對象的狀態(tài)。

一個狀態(tài)可以進(jìn)一步地細(xì)化為多個子狀態(tài),我們將可以進(jìn)一步細(xì)化的狀態(tài)稱作復(fù)合狀態(tài)。子狀態(tài)之間有"或關(guān)系"和"與關(guān)系"兩種關(guān)系。或關(guān)系說明在某一時刻僅可到達(dá)一個子狀態(tài)。例如,一個處于行駛狀態(tài)的汽車,在"行駛"這個復(fù)合狀態(tài)中有向前和向后兩個不同的子狀態(tài),在某一時刻汽車要么向前,要么向后。與關(guān)系說明復(fù)合狀態(tài)中在某一時刻可同時到達(dá)多個子狀態(tài)。具有并發(fā)子狀態(tài)的狀態(tài)圖稱為并發(fā)狀態(tài)圖。

轉(zhuǎn)移 狀態(tài)圖中狀態(tài)之間帶箭頭的連線被稱為轉(zhuǎn)移。狀態(tài)的變遷通常是由事件觸發(fā)的,此時應(yīng)在轉(zhuǎn)移上標(biāo)出觸發(fā)轉(zhuǎn)移的事件表達(dá)式。假如轉(zhuǎn)移上未標(biāo)明事件,則表示在源狀態(tài)的內(nèi)部活動執(zhí)行完畢后自動觸發(fā)轉(zhuǎn)移。#p#

3.順序圖

UML動態(tài)建模順序圖用來描述對象之間動態(tài)的交互關(guān)系,著重體現(xiàn)對象間消息傳遞的時間順序。順序圖存在兩個軸:水平軸表示不同的對象,垂直軸表示時間。順序圖中的對象用一個帶有垂直虛線的矩形框表示,并標(biāo)有對象名和類名。垂直虛線是對象的生命線,用于表示在某段時間內(nèi)對象是存在的。對象間的通信通過在對象的生命線間畫消息來表示。消息的箭頭指明消息的類型。
順序圖中的消息可以是信號、操作調(diào)用或類似于C++中的RPC和Java中的RMI。當(dāng)收到消息時,接收對象立即開始執(zhí)行活動,即對象被激活了。通過在對象生命線上顯示一個細(xì)長矩形框來表示激活。
消息可以用消息名及參數(shù)來標(biāo)識。消息也可帶有順序號,但較少使用。消息還可帶有條件表達(dá)式,表示分支或決定是否發(fā)送消息。假如用于表示分支,則每個分支是相互排斥的,即在某一時刻僅可發(fā)送分支中的一個消息。
在順序圖的左邊可以有說明,用于說明消息發(fā)送的時刻、描述動作的執(zhí)行情況以及約束等。一個典型的例子就是用于說明一個消息是重復(fù)發(fā)送的。另外,可以定義兩個消息間的時間限制。
一個對象可以通過發(fā)送消息來創(chuàng)建另一個對象,當(dāng)一個對象被刪除或自我刪除時,該對象用"X"標(biāo)識。
另外,在很多算法中,遞歸是一種很重要的技術(shù)。當(dāng)一個操作直接或間接調(diào)用自身時,即發(fā)生了遞歸。產(chǎn)生遞歸的消息總是同步消息,返回消息應(yīng)是一個簡單消息。

4.合作圖

合作圖用于描述相互合作的對象間的交互關(guān)系和鏈接關(guān)系。雖然順序圖和合作圖都用來描述對象間的交互關(guān)系,但側(cè)重點不一樣。順序圖著重體現(xiàn)交互的時間順序,合作圖則著重體現(xiàn)交互對象間的靜態(tài)鏈接關(guān)系。
UML動態(tài)建模中合作圖對象的外觀與順序圖中的一樣。假如一個對象在消息的交互中被創(chuàng)建,則可在對象名稱之后標(biāo)以。類似地,假如一個對象在交互期間被刪除,則可在對象名稱之后標(biāo)以。對象間的鏈接關(guān)系類似于類圖中的聯(lián)系。通過在對象間的鏈接上標(biāo)志帶有消息串的消息來表達(dá)對象間的消息傳遞。

鏈接 

鏈接用于表示對象間的各種關(guān)系,包括組成關(guān)系的鏈接、聚集關(guān)系的鏈接、限定關(guān)系的鏈接以及導(dǎo)航鏈接。各種鏈接關(guān)系與類圖中的定義相同,在鏈接的端點位置可以顯示對象的角色名和模板。

消息流 

在合作圖的鏈接線上,可以用帶有消息串的消息來描述對象間的交互。消息的箭頭指明消息的流動方向。消息串說明要發(fā)送的消息、消息的參數(shù)、消息的返回值以及消息的序列號等。

5.活動圖

活動圖的應(yīng)用非常廣泛,它既可用來描述操作的行為,也可以描述用例和對象內(nèi)部的工作過程。UML動態(tài)建模中活動圖是由狀態(tài)圖變化而來的,它們各自用于不同的目的。活動圖依據(jù)對象狀態(tài)的變化來捕捉動作與動作的結(jié)果。活動圖中一個活動結(jié)束后將立即進(jìn)入下一個活動。圖1給出了一個活動圖的例子。

活動和轉(zhuǎn)移

一項操作可以描述為一系列相關(guān)的活動。活動僅有一個起始點,但可以有多個結(jié)束點。活動間的轉(zhuǎn)移答應(yīng)帶有g(shù)uard-condition、send-clause和action-expression,其語法與狀態(tài)圖中定義的相同。一個活動可以順序地跟在另一個活動之后,這是簡單的順序關(guān)系。假如在活動圖中使用一個菱形的判定標(biāo)志,則可以表達(dá)條件關(guān)系,判定標(biāo)志可以有多個輸入和輸出轉(zhuǎn)移,但在活動的運作中僅觸發(fā)其中的一個輸出轉(zhuǎn)移。
活動圖對表示并發(fā)行為也很有用。在活動圖中,使用一個稱為同步條的水平粗線可以將一條轉(zhuǎn)移分為多個并發(fā)執(zhí)行的分支,或?qū)⒍鄠€轉(zhuǎn)移合為一條轉(zhuǎn)移。此時,只有輸入的轉(zhuǎn)移全部有效,同步條才會觸發(fā)轉(zhuǎn)移,進(jìn)而執(zhí)行后面的活動,如圖2所示。

泳道

活動圖告訴你發(fā)生了什么,但沒有告訴你該項活動由誰來完成。在程序設(shè)計中,這意味著活動圖沒有描述出各個活動由哪個類來完成。泳道解決了這一問題。它將活動圖的邏輯描述與順序圖、合作圖的責(zé)任描述結(jié)合起來。如圖2所示,泳道用矩形框來表示,屬于某個泳道的活動放在該矩形框內(nèi),將對象名放在矩形框的頂部,表示泳道中的活動由該對象負(fù)責(zé)。

對象

在活動圖中可以出現(xiàn)對象。對象可以作為活動的輸入或輸出,對象與活動間的輸入/輸出關(guān)系由虛線箭頭來表示。假如僅表示對象受到某一活動的影響,則可用不帶箭頭的虛線來連接對象與活動,如圖2所示。

信號

在活動圖中可以表示信號的發(fā)送與接收,分別用發(fā)送和接收標(biāo)志來表示。發(fā)送和接收標(biāo)志也可與對象相連,用于表示消息的發(fā)送者和接收者。

6.四種圖的運用

上面對UML中用于描述系統(tǒng)動態(tài)行為的四個圖做了簡單地介紹。UML動態(tài)建模中這四個圖均可用于系統(tǒng)的動態(tài)建模,但它們各自的側(cè)重點不同,分別用于不同的目的。下面對如何正確使用這幾個圖做一簡單的總結(jié),在實際的建模過程中要根據(jù)具體情況靈活運用這些建議。
首先,不要對系統(tǒng)中的每個類都畫狀態(tài)圖。盡管這樣做很***,但太浪費精力,其實你可能只關(guān)心某些類的行為。正確的做法是:為幫助理解類而畫它的狀態(tài)圖。狀態(tài)圖描述跨越多個用例的單個對象的行為,而不適合描述多個對象間的行為合作。為此,常將狀態(tài)圖與其它技術(shù)組合使用。
順序圖和合作圖適合描述單個用例中幾個對象的行為。其中順序圖突出對象間交互的順序,而合作圖的布局方法能更清楚地表示出對象之間靜態(tài)的連接關(guān)系。當(dāng)行為較為簡單時,順序圖和合作圖是***的選擇。但當(dāng)行為比變復(fù)雜時,這兩個圖將失去其清楚度。因此,假如想顯示跨越多用例或多線程的復(fù)雜行為,可考慮使用活動圖。另外,順序圖和合作圖僅適合描述對象之間的合作關(guān)系,而不適合對行為進(jìn)行精確定義,假如想描述跨越多個用例的單個對象的行為,應(yīng)當(dāng)使用狀態(tài)圖。

【編輯推薦】

  1. UML動態(tài)建模機(jī)制詳解
  2. 深入剖析UML動態(tài)建模機(jī)制中的四種動態(tài)模型
  3. UML動態(tài)建模中合作圖和活動圖解析
  4. UML建模時需要注意的四大問題
  5. 解析九大UML建模圖形用法

 

責(zé)任編輯:佚名 來源: tech.ddvip.com
相關(guān)推薦

2010-06-17 10:05:35

UML動態(tài)建模

2010-06-13 12:49:23

UML及建模

2010-07-09 13:16:46

UML動態(tài)建模機(jī)制

2010-06-17 10:38:08

UML動態(tài)建模機(jī)制

2010-06-28 10:11:11

UML建模工具-Rat

2010-07-09 13:09:48

UML靜態(tài)建模

2010-06-08 15:59:38

UML建模工具

2010-06-30 18:09:22

UML建模

2010-07-12 14:47:53

UML建模

2010-07-09 11:23:07

UML動態(tài)建模

2010-06-30 15:10:18

2010-06-12 13:08:51

UML全稱

2010-07-09 14:05:56

UML建模

2010-06-18 16:35:32

UML建模

2010-07-08 14:13:58

UML靜態(tài)建模

2010-07-08 11:20:13

UML動態(tài)建模

2010-06-29 17:42:54

UML建模

2010-06-30 14:46:49

UML類圖

2010-06-28 15:41:17

UML圖類型

2010-06-28 18:44:54

UML對象圖
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 久久国产精品一区二区 | 亚洲精品视频免费观看 | 琪琪午夜伦伦电影福利片 | 一区二区在线不卡 | 欧美精品福利视频 | 91免费版在线 | 免费一区二区三区 | 国产乡下妇女做爰 | 欧美视频一区二区三区 | 欧美一区二区三区四区五区无卡码 | 亚洲不卡 | 午夜在线视频 | 观看av| 亚洲性视频| 天堂一区 | 九九九视频 | 9久久精品 | 久久精品网 | 亚洲狠狠爱一区二区三区 | 精品国产91乱码一区二区三区 | 国产精品久久久久久久一区二区 | 日韩三级免费网站 | 精久久久| 日韩一级 | 欧美成人免费在线视频 | 久久免费观看一级毛片 | av国产精品毛片一区二区小说 | 日韩精品一区二区三区中文在线 | 成人久草| 亚洲一区二区三区四区五区中文 | 久久久精品一区二区三区 | 91在线看视频 | 色爱综合网| 亚洲成人a v | 黄色一级电影在线观看 | 青青草精品视频 | 久一久| 久久国产精品免费一区二区三区 | 国产精品免费视频一区 | 色久在线 | 亚洲欧美在线观看 |