使用案例與參與者藉由相互傳送信號來互動。為了表示這類互動,我們在使用案例和參與者之間使用通訊關聯。使用案例最多有一項與特定參與者的通訊關聯,參與者最多有一項與特定使用案例的通訊關聯,不論有多少信號傳輸都是如此。這類關聯的完整網路是一幅表現系統及其環境間之通訊的靜態圖。
通訊關聯沒有名稱。由於使用案例和參與者之間只能有一項通訊關聯,因此,您只需要指定起點和終點來識別特定通訊關聯。
參與者和使用案例之間的線條或箭頭表示它們藉由相互傳遞信號來互動。
通訊關聯的每個端點都是一個角色,指定使用案例或參與者在關聯中所呈現的面貌。 這些角色用來指定關聯的對應關係和方向(請參閱下文)。
通訊關聯的每個角色都會指出它的類型的對應關係,也就是說,這個參與者或使用案例可以有多少實例關聯於其他使用案例或參與者的單一實例。對應關係由角色上的文字表示式來指示。這個表示式是一份整數範圍清單(以逗號分隔)。範圍由一個整數(低值)、兩個點,再加上一個整數(高值)來表示;單一整數是有效範圍,'*'
符號表示「許多」,也就是無限個物件。'*' 符號本身相當於 '0..*',也就是任何數字,無也包括在內;這是預設值。選用的純量角色,對應關係是 0..1。
對應關係可以用時間單位限制來增強。這麼做是為了說明在時間單位內可能有多少相關聯的實例,這些關聯性也許是不同的實例所建立。這項資訊非常有用,因為它可以告訴我們使用案例是否經常執行,以及每個參與者實例運用使用案例的頻率為何。
範例:
客戶每天會使用「處理交易」使用案例 400,000 次。每個客戶每個月會用這個使用案例兩次。
通訊關聯的每個角色都有可導覽性內容,指出誰在互動中起始通訊。可導覽性由張開的箭頭方向來表示。如果箭頭的方向指向使用案例,在關聯另一端的參與者會起始與系統的互動。如果箭頭的方向指向參與者,系統會起始與這個參與者的互動。雙向可導覽性由沒有箭頭的線條來表示(兩個箭頭會使圖解雜亂)。
通訊箭頭定義了起始使用案例的參與者。每個通訊箭頭都假設了傳回訊息。沒有箭頭的線條假設雙向通訊。
請勿混淆可導覽性和資料流程;它只用來 顯示起始通訊。例如,客戶要求資料由指向代表系統之使用案例的箭頭來表示,即使大部分資料流程是從系統到客戶也是如此。
參與者藉由傳送信號來與系統通訊。如果要充分瞭解參與者的角色,您必須知道參與者涉入哪些使用案例。這是由參與者和使用案例之間的通訊關聯來表示。
關聯的對應關係會顯示參與者的單一實例可以同時與使用案例的多少實例通訊。
範例:
在回收機系統中,「客戶」參與者實例每次投入存放項目時,他都會傳送一個信號給相關聯的「回收項目」使用案例實例。參與者完成之後,使用案例會列印收據。「客戶」只能與單一「回收項目」實例通訊。因此,關聯的對應關係是
1。這裡將系統傳回的收據視為使用案例實例的回應;因此,通訊關聯不需要另一方向的任何可導覽性。
想要將存放項目退回給回收機的客戶會與「回收項目」使用案例通訊。
參與者會為了許多原因而與使用案例通訊,其中包括:
-
呼叫使用案例。參與者實例一律會呼叫使用案例實例。
-
要求系統所儲存的某些資料,之後,使用案例便提取這些資料,並將它們提供給參與者。
-
藉由與系統對話來變更系統所儲存的資料。
-
報告在系統週遭項目中發生了系統應該處理的特殊情況。
一個參與者起始一個使用案例。不過,在啟動之後,使用案例便可以與多個參與者通訊。您可以利用使用案例和參與者之間的通訊關聯來顯示使用案例與哪些參與者通訊。關聯的對應關係會顯示使用案例的單一實例可以同時與參與者的多少實例通訊。
使用案例會為了許多原因而與參與者通訊,其中包括:
-
如果系統發生了特殊情況,參與者可能需要知道。
-
如果有數個選項可供使用,使用案例可能必須要求參與者協助做出。
當使用案例向參與者送出信號時,它通常會等待回答,但也不一定永遠如此。在使用案例中,這應該有明確說明。
以下是使哪個參與者起始使用案例更清楚的一般選用慣例。
-
一律顯示起始的參與者到使用案例的箭頭,即使後來使用案例會起始一項通訊來聯繫起始參與者,也是如此。這也是唯一顯示的參與者到使用案例的箭頭。
-
可以省略從使用案例至參與者的箭頭,或者為了更清楚表示,也可以加入。
|