物件導向分析設計-------02UML+UML各種圖形及作用

weixin_33831673發表於2015-05-25

一、UML是什麼?UML有什麼用?

二、UML的歷史

三、UML的上層結構(Superstructure)

四、UML建模工具

五、UML的圖(重點)

   1、用例圖(use case diagram)

   2、活動圖(activity diagram)

   3、靜態結構圖

   4、順序圖(Sequence Diagram)

   5、互動縱覽圖(Interaction Overview Diagram)

   6、通訊圖(Communication Diagram)

   7、時間圖(Timing Diagram)

   8、狀態機圖(State Machine Diagram)

   9、構件圖(Component Diagram)

   10、部署圖(Deployment Diagram)


一、UML是什麼?UML有什麼用?

UML是什麼?

Unified Modeling Language(統一建模語言)是物件管理組織(OMG)制定的一個通用的、視覺化的建模語言標準,可以用來視覺化(visualize)、描述(specify)、構造(construct)和文件化(document)軟體密集型系統的各種工件(artifacts,又譯製品)

UML是一種標準的圖形化建模語言,是物件導向分析與設計的標準表示,它:

星星不是一種視覺化的程式設計語言,而是一種視覺化的建模語言(用於分析設計)

星星不是工具或知識庫的規格說明,而是一種建模語言規格說明,是一種表示的標準

星星不是過程,也不是方法,但允許任何一種過程和方法使用

UML有什麼用?

軟體開發系統規模比較複雜時,需要用圖形抽象地表達複雜概念,增強設計的靈活性、可讀性和可理解性,以便暴露深層次的設計問題,降低開發風險。有必要採用一套通用的圖形語言和符號體系描述組織的業務流程和軟體需求,促進業務人員、開發人員之間一致、高效地交流。

二、UML的歷史

UML發展背景:

P. Coad和E.Yourdon提出OOA和OOD

G. Booch提出物件導向開發方法

Jacobson提出OOSE

Rumbaugh提出的OMT

……

UML的出現結束了這場方法學戰爭

UML發展歷程:

image

三、UML的上層結構(Superstructure)

至於UML底層的基礎結構(Infrastructure),軟體開發工程師們沒必要了解,只需要懂得上層結構就行了。

image

構造塊(building blocks) 通用機制(common mechanisms) 構架(architecture)

星星事物(things)

    結構、行為、分組、註釋

星星關係(relationships)

   依賴、關聯、泛化、實現

星星圖(diagram)

   靜態(7種):類圖、物件圖、構件圖、部署圖、包圖、組合結構圖、外廓圖

   動態(7種):順序圖、通訊圖、時間圖、互動縱覽圖、活動圖、狀態機圖、用例圖

星星規格說明(Specifications)

文字維度的模型描述

星星修飾(Adornments)

描述建模元素的細節資訊

星星通用劃分(Common Divisions)

建模時對事物的劃分方法

星星擴充套件機制(Extensibility Mechanisms)

構造型、約束、標記值

4+1檢視
UML中的檢視包括用例檢視(Use Case View)、邏輯檢視(Logical View)、實現檢視(Implementation View)、程式檢視(Process View)、部署檢視(Deployment View)等,這5個檢視被稱作”4+1”檢視.image

四、UML建模工具

比較流行的有Rational Rose ,Microsoft Visio、Enterprise Architect 、Visual UML等。我現在使用的UML建模工具是Enterprise Architect 8.0,推薦使用這款,比較好用。

五、UML的圖(重點)

image

1、用例圖(use case diagram)

燈泡用例圖(Use Case Diagram)是被稱為參與者(Actor)的外部使用者所能觀察到的系統功能的模型圖

     列出系統中的用例和參與者

     顯示哪個參與者參與了哪個用例的執行

燈泡核心概念

    用例:系統中的一個功能單元,可以被描述為參與者與系統之間的一次互動作用

    參與者、參與者泛化

    用例與參與者之間的關係:關聯

    用例之間關係:擴充套件、包括、泛化

燈泡推薦使用場合

    業務建模、需求獲取、定義


某圖書館管理系統:

是一個基於Web的計算機應用系統;

讀者可以查詢圖書資訊以及借閱資訊;

讀者可以通過系統預約所需的圖書;

圖書館工作人員利用該系統完成讀者的借書、還書業務;

圖書館工作人員可以對圖書資訊、讀者資訊等進行維護;

對於到期的圖書,系統會自動向讀者傳送催還資訊;

管理員會定期進行系統維護;

……

image

UC01:“借書”用例文件

用例名稱:借書

用例標識:UC01

涉及的參與者:工作人員

涉及的用例:

描述:工作人員利用該用例為讀者完成借書過程

前置條件:工作人員必須登入到當前系統

涉眾利益:

     讀者:能夠方便的找到並借出所需的圖書

     工作人員:能夠快速並準確的完成借書工作

基本事件流:工作人員幫助讀者借閱圖書

   1.用例起始於讀者帶著所要借的圖書來到借閱前臺;

   2.工作人員錄入讀者資訊;

   3.工作人員逐一錄入所有的圖書資訊:

   * 3.1 工作人員錄入一本圖書資訊;

   * 3.2 系統確認該讀者可以借閱當前圖書;

   4.工作人員確認本次借閱資訊;

   5.系統記錄本次借閱情況。

後置條件:系統將讀者借閱資訊正確地記錄到資料庫中

備選事件流

   2a. 讀者身份不合法

   2b. 讀者存在欠費資訊,不允許借書

   3.2a. 該讀者不允許借閱當前圖書

欄位列表:

   5. 借閱資訊主要包括:讀者圖書證號、圖書編號、借閱日期(預設為當天日期)、借閱天數以及歸還日期。

業務規則

   3.2 系統根據當前讀者的借閱規則來判斷是否可以借閱圖書;而借閱規則取決於讀者的型別(如本科生、研究生、老師等)和圖書的型別(如科技類、文學類、新書等),並可動態配置

非功能需求:

設計約束:

部署約束:

未解決的問題

   2b. 讀者存在多少欠費記錄時,才不允許借書?

   3.2 借閱規則的具體配置情況需和使用者進一步討論?

2、活動圖(activity diagram)

燈泡活動圖(Activity Diagram)

通過動作來組織,主要用於描述某一方法、機制或用例的內部行為

燈泡核心概念

狀態、活動、組合活動、物件

轉移、分支

併發、同步

泳道

燈泡推薦使用場合

業務建模、需求、類設計

image

 

3、靜態結構圖

類圖(Class Diagram)

是軟體的藍圖,詳細描述了系統內各個物件的相關的類,以及這些類之間的靜態關係。

核心概念:類、介面、依賴、關聯、泛化、實現

類圖展示實體類的靜態關係:

image

物件圖(Object Diagram)

表示在某一時刻類的物件靜態結構和行為。

核心概念:物件、連結、多重性

物件圖展示我當前借書情況:

image

包圖(Package Diagram)

展現有模型本身分解而成的組織單元(包)以及它們的依賴關係。

核心概念:包(、框架、層、子系統) 、依賴

包圖展示系統分層結構:

image

組合結構圖(Composite Structure Diagram)

描述系統中某一部分(組合結構)的內部結構,包括該部分與系統其它部分的互動點。

核心概念:組合結構、部件、埠、協議

組合結構圖展示借書內部結構:

image

 

4、順序圖(Sequence Diagram)

燈泡順序圖(Sequence Diagram)

用於顯示物件間的互動活動

關注物件之間訊息傳送的時間順序

燈泡核心概念

物件、生命線、啟用、互動、訊息

互動幀(Interaction Frame)

燈泡推薦使用場合

用例分析、用例設計

“借書”用例實現的順序圖image

5、互動縱覽圖(Interaction Overview Diagram)

燈泡互動縱覽圖(Interaction Overview Diagram)

活動圖和順序圖的混合物

直觀地表達一組相關順序圖之間的流轉邏輯

燈泡核心概念

互動幀

分支、轉移

燈泡推薦使用場合

用例分析、用例設計

互動縱覽圖組織多個順序圖image

6、通訊圖(Communication Diagram)

燈泡通訊圖(Communication Diagram)

UML 1.x中稱為協作圖(Collaboration Diagram)

表示一組物件間關係以及互動活動

燈泡核心概念

物件、協作角色

協作、互動、訊息

燈泡推薦使用場合

用例分析、用例設計

“借書”用例實現的通訊圖
image

7、時間圖(Timing Diagram)

燈泡時間圖(Timing Diagram)

一種互動圖,展現訊息跨越不同物件或角色的實際時間資訊;

具體描述單個或多個物件狀態變化的時間點以及維持特定狀態的時間段;

順序圖是表示互動的主要手段,可以在順序圖中增加時間約束來表明物件狀態變化的時間點以及維持特定狀態的時間段。

燈泡核心概念

時間約束、持續時間約束、生命線

狀態、條件、事件

“打電話”順序圖的時間約束
image
利用時間圖描述時間約束
image

8、狀態機圖(State Machine Diagram)

燈泡狀態機圖(State Machine Diagram)

UML1.x為狀態圖(Statechart Diagram)

利用狀態和事件描述物件本身的行為

燈泡主要概念

狀態、初態、終態、複合狀態

事件、轉移、動作

併發

燈泡推薦使用場合

類設計

“圖書”類的狀態機圖
image

9、構件圖(Component Diagram)

燈泡構件圖(Component Diagram)

封裝類為構件

描述在系統實現環境中的軟體構件和之間的關係

燈泡主要概念

構件、工件、介面(所供介面、所需介面)

依賴、實現

燈泡推薦使用場合

系統設計、實現、部署

構件圖描述類的實現環境
image

10、部署圖(Deployment Diagram)

 

燈泡部署圖(Deployment Diagram)

描述系統所需的硬體構件的物理部署

燈泡主要概念

節點、構件、位置

連線、依賴

燈泡推薦使用場合

系統設計、實施、部署

部署圖描述系統部署情況
image

分類

圖的名字

介紹

 

類圖(Class Diagram)

類圖用於定義系統中的類,包括描述類之間的聯絡(如:關聯、依賴、聚合)以及類的內部結構,即類的屬性和操作。因此類圖是描述系統中類的靜態結構,即它所描述的是一種靜態關係,在系統的整個生命週期都是有效的。

物件圖(Object Diagram)

物件圖所使用的表示符號與類圖幾乎完全相同,它們的不同點在於物件圖只是顯示類的物件例項,而不是實際的類。一個物件圖是類圖的一個例項,由於物件存在生命週期,因此物件圖只能在系統某一時間段存在。

物件圖是類圖的一種例項化圖,描述系統在某個時刻可能包含的物件和相互關係。

包圖(Package Diagram)

包圖由包或類組成,主要表示包與包、或包與類之間的關係。包圖用於描述系統的分層結構。

構件圖(Component Diagram)

描述可以部署的軟體構件(如:程式碼部件、jar檔案、EJB檔案等)的物理結構以及各部件之間的依賴關係。一個部件可能是一個資原始碼部件、一個二進位制部件或一個可執行部件。構件圖有助於分析和理解部件之間的相互影響程度。

部署圖(Deployment Diagram)

描述一個系統的拓撲結構,定義系統中軟硬體的物理體系結構。它可以顯示實際的計算機和裝置(用節點表示)以及它們之間的連線關係,也可顯示連線的型別及部件之間的依賴性。在節點內部,放置可執行部件和物件,以顯示節點跟可執行軟體單元之間的對應關係。

 

用例圖(Use Case Diagram)

它從使用者角度描述系統的功能,並指出各功能的操作者。用例圖描述了一系列的角色和使用案例及它們之間的關係。

活動圖(Activity Diagram)

行為圖描述系統的動態模型和組成物件間的互動關係。

活動圖描述為滿足用例要求所要進行的活動以及活動間的約束關係。活動圖是使用例圖所描述的行為具體化。

狀態圖(State Diagram)

描述一類物件的所有可能的狀態以及事件發生時狀態的轉移條件。通常狀態圖是對類圖的補充,實際上並不需要為所有的類繪製狀態圖,而只需要為那些有多個狀態、並且其行為受外界環境的影響而會發生改變的類繪製狀態圖。

時序圖/序列圖/順序圖(Sequence Diagram)

互動圖描述物件間的互動關係。

順序圖用於顯示物件之間的動態合作關係。它強調物件之間訊息傳送的順序,同時也顯示物件之間的互動過程,它強調的是時間和順序。

合作圖/協作圖(Collaboration Diagram)

合作圖顯示物件間的動態合作關係,除了顯示資訊交換外,合作圖還顯示物件以及它們之間的關係,它強調的是通訊關係。

原文:http://blog.csdn.net/chenxiang0207/article/details/8245283

附:

類圖,物件圖,用例圖,部署圖,構件圖,為靜態圖

狀態圖,順序圖,活動圖,協作圖為動態圖

相關文章