1. 程式人生 > >軟考高級(一)用例圖

軟考高級(一)用例圖

filter link http VS2010 服務 多個 red 類圖 用例

UML-Unified Model Language 統一建模語言,又稱標準建模語言。是用來對軟件密集系統進行可視化建模的一種語言。
http://www.cnblogs.com/Yogurshine/archive/2013/01/14/2859248.html
在UML系統開發中有三個主要的模型:

  功能模型: 從用戶的角度展示系統的功能,包括用例圖。
  對象模型: 采用對象,屬性,操作,關聯等概念展示系統的結構和基礎,包括類圖、對象圖、包圖。
  動態模型: 展現系統的內部行為。 包括序列圖,活動圖,狀態圖。

UML的重要內容可以由以下五種類圖定義

用例圖:從用戶角度描述系統功能,並指各功能的操作者。

靜態圖

:包括類圖,包圖,對象圖。

類圖:描述系統中類的靜態結構

包圖:是包和類組成的,表示包與包之間的關系,包圖描述系統的分層結構

對象圖:是類圖的實例

行為圖:描述系統動態模型和對象組成的交換關系。包括狀態圖和活動圖

活動圖:描述了業務實現用例的工作流程

狀態圖:是描述狀態到狀態控制流,常用於動態特性建模

交互圖:描述對象之間的交互關系

順序圖:對象之間的動態合作關系,強調對象發送消息的順序,同時顯示對象之間的交互

合作圖:描述對象之間的協助關系

實現圖:

配置圖:定義系統中軟硬件的物理體系結構

UML包括用例圖、類圖、構件圖、部署圖、順序圖、協作圖、狀態圖、活動圖

各個圖簡介:

用例圖從外部用戶的角度捕獲系統的行為。他將系統功能劃分為對活動者具有意義的事務。

類圖描述類、接口、寫作以及它們之間的關系的圖

順序圖描述了隨時間安排的一系列消息。每個分類角色顯示為一條生命線,代表整個交互期間的角色。消息則顯示為生命線之間的箭頭。

協作圖對交互中存在意義的對象和鏈建模

狀態圖用來描述一個特定對象所有可能的狀態 以及由於各種事件的發 生而引起的狀態之間的轉移和變化。

用例圖主要用來描述“用戶、需求、系統功能單元”之間的關系。它展示了一個外部用戶能夠觀察到的系統功能模型圖。

  【用途】:幫助開發團隊以一種可視化的方式理解系統的功能需求。

  用例圖所包含的元素如下:

  1. 參與者(Actor)(用戶)

  表示與您的應用程序或系統進行交互的用戶、組織或外部系統。用一個小人表示。

技術分享

  2. 用例(Use Case)(一個功能)

  用例就是外部可見的系統功能,對系統提供的服務進行描述。用橢圓表示。

技術分享

  3. 子系統(Subsystem)(多個功能與一個參與者)

  用來展示系統的一部分功能,這部分功能聯系緊密。

技術分享

  4. 關系(用例之間的關系)

  用例圖中涉及的關系有:關聯、泛化、包含、擴展。

  如下表所示:

技術分享

  a. 關聯(Association)(參與者與用例的通信,如登錄)

  表示參與者與用例之間的通信,任何一方都可發送或接受消息。

  【箭頭指向】:指向消息接收方

技術分享

  b. 泛化(Inheritance)(類似於繼承)

  就是通常理解的繼承關系,子用例和父用例相似,但表現出更特別的行為;子用例將繼承父用例的所有結構、行為和關系。子用例可以使用父用例的一段行為,也可以重載它。父用例通常是抽象的。

  【箭頭指向】:指向父用例

技術分享

  c. 包含(Include)(大功能分為小功能)

  包含關系用來把一個較復雜用例所表示的功能分解成較小的步驟。

  【箭頭指向】:指向分解出來的功能用例

技術分享

  d. 擴展(Extend)(附加功能模塊)

  擴展關系是指用例功能的延伸,相當於為基礎用例提供一個附加功能。

  【箭頭指向】:指向基礎用例

技術分享

  e. 依賴(Dependency)(類似於車與輪子之間的關系)

  以上4種關系,是UML定義的標準關系。但VS2010的用例模型圖中,添加了依賴關系,用帶箭頭的虛線表示,表示源用例依賴於目標用例。

  【箭頭指向】:指向被依賴項

技術分享

  5. 項目(Artifact)

  用例圖雖然是用來幫助人們形象地理解功能需求,但卻沒多少人能夠通看懂它。很多時候跟用戶交流甚至用Excel都比用例圖強,VS2010中引入了“項目”這樣一個元素,以便讓開發人員能夠在用例圖中鏈接一個普通文檔。

  用依賴關系把某個用例依賴到項目上:

技術分享

  然後把項目-》屬性 的Hyperlink設置到你的文檔上;

  這樣當你在用例圖上雙擊項目時,就會打開相關聯的文檔。

  6. 註釋(Comment)

技術分享

  包含(include)、擴展(extend)、泛化(Inheritance) 的區別:

  條件性:泛化中的子用例和include中的被包含的用例會無條件發生,而extend中的延伸用例的發生是有條件的;

  直接性:泛化中的子用例和extend中的延伸用例為參與者提供直接服務,而include中被包含的用例為參與者提供間接服務。

  對extend而言,延伸用例並不包含基礎用例的內容,基礎用例也不包含延伸用例的內容。

  對Inheritance而言,子用例包含基礎用例的所有內容及其和其他用例或參與者之間的關系;

  一個用例圖示例:

技術分享

軟考高級(一)用例圖