用例是外部可見的一個系統功能,這些功能由系統所提供,并通過與參與者之間消息的交換來表達。用例的用途是在不揭示系統內部構造的情況下定義行為序列,它把系統當作一個黑箱,表達整個系統對外部用戶可見的行為。
鑒于用例的特點,用例一般被命名為一個能夠說明目標的動名詞組。如圖2.1中的"借書"、"還書"和"管理圖書"皆為動名詞組。
用例之間也可以存在包含、擴展和泛化等關系:
?。?)包含關系:用例可以簡單地包含其他用例具有的行為,并把它所包含的用例行為做為自身行為的一部分,這被稱作包含關系。
?。?)擴展關系:擴展關系是從擴展用例到基本用例的關系,它說明為擴展用例定義的行為如何插入到為基本用例定義的行為中。它是以隱含形式插入的,也就是說,擴展用例并不在基本用例中顯示。在以下幾種情況下,可使用擴展用例:
a.表明用例的某一部分是可選的系統行為(這樣,您就可以將模型中的可選行為和必選行為分開);
b.表明只在特定條件(如例外條件)下才執行的分支流;
c.表明可能有一組行為段,其中的一個或多個段可以在基本用例中的擴展點處插入。所插入的行為段和插入的順序取決于在執行基本用例時與主角進行的交互。
圖2.3給出了一個擴展關系的例子,在還書的過程中,只有在例外條件(讀者遺失書籍)的情況下,才會執行賠償遺失書籍的分支流。
圖2.3用例擴展關系
?。?)泛化關系:用例可以被特別列舉為一個或多個子用例,這被稱做用例泛化。當父用例能夠被使用時,任何子用例也可以被使用。如在圖2.4中,訂票是電話訂票和網上訂票的抽象。
圖2.4用例泛化關系
通訊關聯
通訊關聯用于表示參與者和用例之間的對應關系,它表示參與者使用了系統中的哪些用例(或者說系統所提供的用例被哪些參與者使用)。
通訊關聯以箭頭或實線表示。若使用箭頭,箭頭所指方將是對話的被動接受者;如果不強調對話中的主動與被動關系,則可以使用不帶箭頭的關聯實線。
原文轉自:http://www.anti-gravitydesign.com