日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

UML建模——用例图(Use Case Diagram)

發布時間:2025/4/5 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 UML建模——用例图(Use Case Diagram) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

用例圖主要用來描述角色以及角色與用例之間的連接關系。說明的是誰要使用系統,以及他們使用該系統可以做些什么。一個用例圖包含了多個模型元素,如系統、參與者和用例,并且顯示這些元素之間的各種關系,如泛化關聯依賴。它展示了一個外部用戶能夠觀察到的系統功能模型圖。

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

?

一、用例圖所包含的的元素

1.?參與者(Actor)——與應用程序或系統進行交互的用戶、組織或外部系統。用一個小人表示

?

                

?

2.?用例(Use Case)——用例就是外部可見的系統功能,對系統提供的服務進行描述。用橢圓表示

?

            ?

?

3. 子系統(Subsystem)——用來展示系統的一部分功能,這部分功能聯系緊密。

?

    

?

?

二、用例圖所包含的的關系

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

  如下表所示:

?

?

  a. 關聯(Association)

?

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

?

  【箭頭指向】:無箭頭,將參與者與用例相連接,指向消息接收方

?

  

?

  b. 泛化(Inheritance)

?

  就是通常理解的繼承關系,子用例和父用例相似,但表現出更特別的行為;子用例將繼承父用例的所有結構、行為和關系。子用例可以使用父用例的一段行為,也可以重載它。父用例通常是抽象的。在實際應用中很少使用泛化關系,子用例中的特殊行為都可以作為父用例中的備選流存在。

?

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

?

?

  c. 包含(Include)

?

  包含關系用來把一個較復雜用例所表示的功能分解成較小的步驟。包含關系對典型的應用就是復用,也就是定義中說的情景。但是有時當某用例的事件流過于復雜時,為了簡化用例的描述,我們也可以把某一段事件流抽象成為一個被包含的用例;相反,用例劃分太細時,也可以抽象出一個基用例,來包含這些細顆粒的用例。這種情況類似于在過程設計語言中,將程序的某一段算法封裝成一個子過程,然后再從主程序中調用這一子過程。

  例如:業務中,總是存在著維護某某信息的功能,如果將它作為一個用例,那添加、修改以及刪除都要在用例詳述中描述,過于復雜;如果分成添加用例、修改用例和刪除用例,則劃分太細。這時包含關系可以用來理清關系。

?

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

?

?

  d. 擴展(Extend)

?

  擴展關系是指用例功能的延伸,相當于為基礎用例提供一個附加功能。將基用例中一段相對獨立并且可選的動作,用擴展(Extension)用例加以封裝,再讓它從基用例中聲明的擴展點(Extension Point)上進行擴展,從而使基用例行為更簡練和目標更集中。擴展用例為基用例添加新的行為。擴展用例可以訪問基用例的屬性,因此它能根據基用例中擴展點的當前狀態來判斷是否執行自己。但是擴展用例對基用例不可見。

對于一個擴展用例,可以在基用例上有幾個擴展點。

?

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

?

?

  e. 依賴(Dependency)

?

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

?

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

?

?

  5. 項目(Artifact)

?

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

?

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

?

?

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

?

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

?

  6. 注釋(Comment)

?

?

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

?

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

?

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

?

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

?

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

  ●泛化側重表示子用例間的互斥性;

  ●包含側重表示被包含用例對Actor提供服務的間接性;

  ●擴展側重表示擴展用例的觸發不定性;

  另外一點需要提及的是:泛化中的子用例和擴展中的擴展用例均可以作為基本用例事件的備選擇流而存在。

?

?

三、幾個用例圖示例

?

****************************************************************************

  以下為某在線購物系統的用例圖,對系統做出做了整體的描繪。

  (1)系統整體用例圖


????


???
????(商品用例圖)

???
???
????
???
???
???(購買信息用例)
??
???

???
??? (用戶資料用例)


???

總結

以上是生活随笔為你收集整理的UML建模——用例图(Use Case Diagram)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。