溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

EA畫UML活動圖中StartClassifierBehavior和StartObjectBehavior的示例分析

發(fā)布時間:2021-12-20 14:32:54 來源:億速云 閱讀:151 作者:小新 欄目:大數(shù)據(jù)

這篇文章給大家分享的是有關(guān)EA畫UML活動圖中StartClassifierBehavior和StartObjectBehavior的示例分析的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

關(guān)于調(diào)用,還有兩個不容易區(qū)分的動作:StartClassifierBehaviorAction和StartObjectBehaviorAction。光看描述的話不好理解。所以這次的策略是先說明相關(guān)知識,再說明這兩個動作。到那時就水到渠成了。

Behaviored Classifiers(行為化類目)

行為化類目是可以擁有ownedBehaviors的類目,其中最多有一個行為可以被認(rèn)為定義了行為化類目本身。相反地,一個行為化類目的被稱為ownedBehavior的行為把該行為化類目作為自己的(執(zhí)行時的)上下文。這樣一個行為的定義可以使用上下文行為化類目的功能,也可以參照對于上下文行為化類目可見的其他元素。

然而有些行為雖然不是行為化類目直接的ownedBehavior,也可以擁有上下文。為了找到一個不是直接ownedBehavior的行為的上下文,可以沿著從該行為開始的物主關(guān)系鏈進(jìn)行尋找,第一個遇到的行為化類目,就是我們的目標(biāo)了。除非它自己就是一個有著非空上下文的行為。但即使是這樣,它也可以看作原始行為的上下文。例如一個行為化類目擁有的狀態(tài)機的入口行為的上下文是擁有狀態(tài)機的類目而不是狀態(tài)機。

如果一個行為有上下文,那么這個行為的執(zhí)行總是有一個關(guān)聯(lián)的上下文對象,它是上下文行為化類目的實例(只要這個行為化類目是可以實例化的)。一個沒有上下文行為類目的行為可以作為獨立行為被調(diào)用。在這種情況下,行為執(zhí)行充當(dāng)自己的上下文對象。還有另外一種情況,當(dāng)上下文行為化類目不可以被實例化時,行為執(zhí)行也要充當(dāng)自己的上下文對象。當(dāng)它是一個isIndirectlyInstantiated屬性值為true的組件或者是一個協(xié)作時就是如此。也就是說,行為執(zhí)行總是擁有一個上下文,無論它是否擁有一個明確的,可實例化的上下文行為化類目。

行為化類目可以擁有高級的ownedBehavior,被稱做classifierBehavior。classiferBehavior描述的是一個類目的實例在它的生命周期中可能經(jīng)歷的過程。一個行為化類目的實例被創(chuàng)建可以認(rèn)為行為化類目的classifierBehavior被調(diào)用了;作為結(jié)果的執(zhí)行擁有這個新實例作為它的上下文對象。如果這個對象被銷毀則執(zhí)行被終止。

classifierBehavior的精確語義依賴于擁有它的行為化類目的種類。例如一個協(xié)作的classifierBehavior表現(xiàn)的是所有組成部分的(emergent)行為,然而一個類的classifierBehavior只是實例(整體)的行為,這個行為區(qū)別于實例的某些部分的行為。(However)一個被動類不應(yīng)該擁有classiferBehavior。

簡而言之:

  1. 擁有了從屬于它的行為的類目,就叫行為化類目

  2. 被一個行為化類目所擁有,定義了該類目整體特性的行為就是ownedBehaivor

  3. 如果ownerBehaivor的執(zhí)行和的行為化類目的實例的生命周期等價的就是classifierBehavior

  4. 啟動ownedBehavior的動作就是StartObjectBehaviorAction

  5. 啟動classifierBehavior的動作就是StartClassifierBehaviorAction。

舉例說明的話,

秒表類可以有一個描述秒表整體行為的狀態(tài)機,這里秒表類就是行為化類目,狀態(tài)機就是ownedBehavior;

線程類可以設(shè)計成創(chuàng)建實例開始執(zhí)行,刪除實例終止執(zhí)行。這里線程類就是行為化類目,線程的內(nèi)容就是classifierBehavior;

另外補充一點,在UML2.5中推薦使用StartObjectBehaviorAction,而StartClassifierBehaviorAction是為了保持和老版本的兼容性而保留的。

感謝各位的閱讀!關(guān)于“EA畫UML活動圖中StartClassifierBehavior和StartObjectBehavior的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI