用例圖主要用來描述「用戶、需求、系統功能單元」之間的關係。它展示一個外部用戶能夠觀察到的系統功能模型圖。用例圖多用於靜態建模階段(主要是業務建模和需求建模),幫助開發團隊以一種可視化的方式理解系統的功能需求。
參與者(Actor)
在系統外部與系統直接交互的人或事物;需要注意以下兩點:
1)參與者是角色而不是具體的人,它代表了參與者在與系統打交道的過程中所扮演的角色。所以在系統的實際運作中,一個實際用戶可能對應系統的多個參與者。不同的用戶也可以只對應於一個參與者,從而代表同一參與者的不同實例。
2)參與者作爲外部用戶(而不是內部)與系統發生交互作用,是它的主要特徵。
在UML中,參與者使用如圖所示的一個小人表示:
用例(Use Case)
系統外部可見的一個系統功能單元。系統的功能由系統單元所提供,並通過一系列系統單元與一個或多個參與者之間交換的消息所表達。用橢圓表示,橢圓中的文字簡述系統的功能:
關係(Relationship)
關聯
泛化
包含
拓展
關聯(Association)
表示參與者與用例之間的交互,通信途徑,任何一方都可發送或接受消息。
箭頭指向:指向消息接受方
泛化(Inheritance)
在編程中,泛化關係是一種很重要的關係,我們隨處可見。
泛化關係是一般和特殊關係,就是通常理解的繼承關係,子用例和父用例相似,但表現出更特別的行爲;子用例將繼承父用例的所有結構、行爲和關係。子用例可以使用父用例的一段行爲,也可以重載它。父用例通常是抽象的。
箭頭指向(需要特別注意):指向父用例
包含(Include)
包含關係用來把一個較複雜用例所表示功能分解成較小的步驟。包含用例是必須的,如果缺少包含用例,基用例就不完整;包含用例必須被執行。
箭頭指向:指向分解出來的功能用例
拓展(Extend)
拓展關係是指用例功能的延伸,相當於爲基礎用例提供一個附加功能。拓展用例是可選的,如果缺少拓展用例,不會影響到基用例的完整性。
箭頭指向(需要特別注意):指向基用例
一個完整的系統用例圖: