MBSE建模學習之七:用例和用例圖的說明
用例圖概述
用例圖通過描述用戶使用系統(tǒng)提供的某種服務(wù)實現(xiàn)一個目標的方式來說明系統(tǒng)的需求。用例圖中的元素包括:“用例(UseCase)”,它表示系統(tǒng)提供的功能或能力;“執(zhí)行者(Actor)”,表示一類用戶,或者其它的外部系統(tǒng)、環(huán)境對象;“主題(Subject)”,代表系統(tǒng)。圖中的主要關(guān)系是“執(zhí)行者”和“用例”之間的關(guān)聯(lián)關(guān)系,稱為“通訊路徑”,表示執(zhí)行者和主題之間發(fā)生的通信,以實現(xiàn)與用例相關(guān)的功能。
用例圖中的主要元素“用例”和“執(zhí)行者”都是一種類目(Classifier,所有類的基類)。這些“類目”一般是放在系統(tǒng)模型的一個包中。所以,用例圖代表的元素(用例圖的外框)一般是一個“包(Package)”。建立用例圖,在模型瀏覽器中選擇一個“包”元素,然后在它下面建立一個用例圖,用例圖中新增加的“用例”、“執(zhí)行者”默認是掛在這個包下面。系統(tǒng)中每級產(chǎn)品都可以進行用例分析,而每級產(chǎn)品都可能有很多個用例。系統(tǒng)級的用例稱為頂層用例。
下圖是一個車輛系統(tǒng)的用例圖(來自SysML1.6標準附錄D圖D.05),圖中包括“操作車輛”、“保險車輛”、“注冊車輛”和“維修車輛”四個用例,每個用例涉及不同的執(zhí)行者,圖中的方框(用例的主題)代表SUV車輛系統(tǒng)(HybridSUV)。
用例(UseCase)
用例(UseCase)是說明系統(tǒng)功能需求的一種方法。通常用一個動詞短語說明系統(tǒng)能夠做什么。用例的名稱應(yīng)該從用戶的角度,而不是從系統(tǒng)的角度。或者說作為用例名稱的動詞短語的主語應(yīng)該是用戶。用例的標識法是一個橢圓形。
用例分析是開展系統(tǒng)詳細需求分析的一個步驟。在開展系統(tǒng)詳細需求分析時,從用戶使用系統(tǒng)的目的、場景出發(fā),抽取出系統(tǒng)的用例,也就是用一個動詞短語概括出用戶使用系統(tǒng)完成的一件事情。識別用例的時候,需要考慮用例的“粒度”。一個系統(tǒng)的用例的數(shù)量,可能從幾個到幾百個。一個用例以能夠說明一件完整的事情、一個完整的事件流或者用戶和系統(tǒng)之間一次完整的交互為宜。用例有如下幾個特性:
(1)獨立性。同一層次的用例不需要與其它用例交互而獨立完成執(zhí)行者的一個目的。用例之間沒有順序關(guān)系。有執(zhí)行順序關(guān)系的功能應(yīng)該合并到一個用例中。但是同層的用例可能會有包含相同的操作,這些相同的操作可以單獨提取出來作為一個用例,通過“包含”關(guān)系包含到其它用例中。
(2)用例的執(zhí)行結(jié)果對執(zhí)行者來說是可觀測和有意義的。
(3)用例表示的事情必須由執(zhí)行者發(fā)起,不存在沒有執(zhí)行者的用例。
用例不是“功能”。在MBSE的模型中,“功能”(Function)一般對應(yīng)的元素類型是“活動”(Activity)。當進行系統(tǒng)的功能分析的時候,以及對功能進行分解,建立系統(tǒng)中多層的功能、子功能元素,應(yīng)該使用“活動”而不是用例。
用例也不是“需求”。“需求”(Requirement)也是SysML語言中的一種元素,專門用于模型中需求的表示(下一篇文章我們將專門的來講需求)。
“用例”在UML語言中也是一種“類”(BehavioredClassifier,行為類目),就是可以包含“行為”的類。“活動”是一種行為,所以“用例”可以包含“活動”(在軟件中建立“活動”或其它行為元素和用例的關(guān)系,可以在模型瀏覽器中通過右鍵菜單給用例元素添加“擁有行為”)。
用例分析也是需求分析中的一個步驟,它用于對“文字”描述的“需求”進行細化。細化的方法就是建立用例自己的“行為”元素及圖(除了給用例添加“活動”之外,也可以使用“交互”或“狀態(tài)機”及它們對應(yīng)的圖來對用例進行詳細的說明)。
執(zhí)行者(Actor)
執(zhí)行者(Actor)(也翻譯為“參與者”)表示和系統(tǒng)有交互的用戶或外部系統(tǒng)扮演的角色。觸發(fā)用例的執(zhí)行者叫做“主執(zhí)行者”。參與用例的執(zhí)行者叫做“次執(zhí)行者”。作為執(zhí)行者的“人”一般用“火柴棍人”作為模板,而外部系統(tǒng)一般用類似“模塊”節(jié)點模板的方框,方框上面顯示構(gòu)造型“執(zhí)行者”(actor)。
在UML語言中,執(zhí)行者也是一種“行為類”(BehavioredClassifier)。所以“執(zhí)行者”也可以通過“泛化”(Generalization)為用戶的“角色”類型進行多層次的建模。“執(zhí)行者”只能和“用例”、“模塊”(UML中包括類“Class”和組件“Component”)之間建立關(guān)聯(lián)關(guān)系(Association)。在“執(zhí)行者”和“用例”之間的關(guān)聯(lián)關(guān)系稱為“通信路徑”。
執(zhí)行者可以有屬性和行為特征。在分析和執(zhí)行者相關(guān)用例的行為的時候,行為中有些活動是“用戶”執(zhí)行的操作,有些活動是“系統(tǒng)”要執(zhí)行的功能。例如柜員機“取錢”用例的活動中,“插卡”是用戶的活動,“輸入密碼”也是用戶的活動;而“驗證密碼”、“審核余額”、“吐錢”是柜員機系統(tǒng)的活動。
主題(Subject)
“主題”(Subject)代表擁有用例的系統(tǒng)。“主題”的表示法是一個矩形框,所有用例畫在矩形框的內(nèi)部,所以主題又稱為“系統(tǒng)邊界”。
當建立代表系統(tǒng)的“模塊”元素之后,可以把這個系統(tǒng)模塊和主題關(guān)聯(lián)起來,主題矩形框的上面顯示系統(tǒng)模塊的名稱。
通信路徑(Communication path)
“通信路徑”是一個雙向引用關(guān)聯(lián)(Association)元素。在“MBSE建模學習之二”這篇文章中,我們在介紹模塊的屬性的時候,介紹過模塊之間的三種關(guān)聯(lián)關(guān)系。雙向引用關(guān)聯(lián)會為被關(guān)聯(lián)的模塊生成引用屬性。所以“通信路徑”會為“執(zhí)行者”和“用例”生成對應(yīng)的屬性,表示“執(zhí)行者”的用例是啥,以及“用例”的執(zhí)行者有哪些。可以為“通信路徑”兩端的屬性節(jié)點指定對應(yīng)的屬性名稱。在執(zhí)行者這一端的屬性可以指定多重性,表示執(zhí)行用例的執(zhí)行者的數(shù)量范圍。
用例的進一步說明
(1)基礎(chǔ)用例
基礎(chǔ)用例是通過通信路徑和主執(zhí)行者連接在一起的用例。
(2)包含用例
如果多個基礎(chǔ)用例的行為中有相同的行為,可以為這部分行為建立一個共用的用例。這個共用的用例用一個“包含”(include)關(guān)系和基礎(chǔ)用例連接起來(從基礎(chǔ)用例指向包含用例),表示這個包含用例將會在基礎(chǔ)用例中執(zhí)行。如果用例不是在多個基礎(chǔ)用例中共用,只在一個用例中使用,是沒有必要建立包含用例的。
(3)擴展用例
擴展用例是一個用例在擴展點擴展出來的用例。一般是用一個“擴展”(extend)關(guān)系從擴展用例指向基礎(chǔ)用例。如下圖所示:
在這個圖中,(飛船系統(tǒng)的)“交會對接”用例有一個“擴展點”。“交會對接”用例執(zhí)行時,如果擴展條件“當自動方式失效”滿足的時候,就會執(zhí)行“手動對接”用例。
用例分析的示例
下面我們用一個農(nóng)業(yè)采摘機器人系統(tǒng)的案例來說明用例分析的過程。
(1)利益相關(guān)者需求
對這個機器人系統(tǒng),有如下的功能需求,表格表示如下:
(2)用例圖
系統(tǒng)中的執(zhí)行者“果農(nóng)”和“果樹”我們應(yīng)用SysML中“模塊”構(gòu)造型,將其建模為“模塊”。這樣做的好處是“模塊”擴展了“類”的屬性類型,可以有接口,節(jié)點的模板可以顯示圖片等、各種分區(qū)等更豐富的內(nèi)容,以及可以進行行為的仿真。這些對于系統(tǒng)“用戶”的行為分析更方便。
系統(tǒng)的用例圖如下,“采摘果實”用例是“果農(nóng)”發(fā)起的一個事情。從果農(nóng)的角度,這個用例將給“果農(nóng)”帶來收到“果實”這個目標。
(3)用例場景分析
對于“采摘果實”這個用例,我們?yōu)樗黾右粋€“采摘果實用例場景”的活動(在模型瀏覽器上,選擇用例,通過右鍵菜單添加“擁有行為”),通過這個活動的活動圖,我們分析這個過程系統(tǒng)需要哪些功能。
在這個活動圖中,每個“動作”都使用了“調(diào)用行為動作”,對應(yīng)一個表示功能的“活動”。整個活動場景,表示“果農(nóng)”對“采摘機器人”進行“開機”操作,然后“采摘機器人”行走到果樹旁,識別成熟的果實,摘下果實,然后放入收集框,(當收集框果實達到上限)運送果實到收集點,由“果農(nóng)”把果實從機器人中收集,完成一次采摘過程。活動圖如下所示:
(4)設(shè)置需求的跟蹤關(guān)系
通過一個需求關(guān)系矩陣,我們設(shè)置用例行為分析中的“活動”對“功能需求的”改善關(guān)系,如下圖所示:
文章來源:智睿思維MBSE
工程師必備
- 項目客服
- 培訓客服
- 平臺客服
TOP




















