UML建模

UML建模

1.UML基礎

1.1什麼是UML

    Unified Modeling Language(UML又稱爲統一建模語言或標準建模語言)是國際對象管理組織OMG制定的一個通用的、可視化建模語言標準,能夠用來描述(specify)、可視化(visualize)、構造(construct)和記載(document)軟件密集型系統的各類工件(artifacts,又譯爲製品)。     UML是一個支持模型化和軟件系統開發的圖形化語言,爲軟件開發的全部階段提供模型化和可視化支持,包括由需求分析到規格,到構造和配置。     UML是面向對象軟件的標準化建模語言。UML因其簡單、統一的特色,並且能表達軟件設計中的動態和靜態信息,目前已成爲可視化建模語言的工業標準。在軟件無線電系統的開發過程當中,統一建模語言能夠在整個設計週期中使用,幫助設計者縮短設計時間,減小改進的成本,使軟硬件分割最優。     UML不是一個程序設計語言,更不是一個形式化語言。     UML是一種可視化的面向對象建模語言,描述了一個系統的靜態結構和動態行爲,用圖形方式表現典型的面向對象系統的整個結構,從不一樣的角度爲系統建模,並造成系統的不一樣視圖。這些圖包括:類圖(它以繼承結構、關聯、組成和彙集爲特點)、時序圖、協做圖和狀態圖等。     UML是一種建模語言,在實際團隊項目中,要和具體的軟件開發過程結合起來才能更好的發揮做用。html

OOA: Object Oriented Analysis 面向對象分析 OOD: Object Oriented Design 面向對象設計 OOP: Object Oriented Programming 面向對象的程序設計swift

簡單來講呢就是統一了制定模型的標準語言^-^微信

1.2 建模目的

    UML是用來設計軟件藍圖的可視化建模語言。它支持面向對象系統的分析、設計、實現和交付等各個環節,能夠用於系統的理解、設計、瀏覽、維護和信息控制。 一、便於開發人員展示系統 二、容許開發人員指定系統的結構或行爲 三、提供指導開發人員構造系統的模板 四、記錄開發人員的決策 五、爲用戶提供一種易用的、具備可視化建模能力的語言,以便於用戶可以用該語言進行系統開發,並進行有意義的模型互換。 目的即爲幫助IT人員設計程序(業務邏輯層面的)用圖像化的方式表示項目結構,幫助開發人員整理項目的結構以及類的關聯,甚至所包含的屬性方法等,再加上代碼導出功能,不只幫助開發理清的思路,還節省了一些代碼時間。(但OC,swift沒有導出。。)工具

1.3UML設計程序通常流程

1.設計用例 微信支付

2.設計模型。類與類之間的關係描述,類圖(靜態模型) .net

3.創建動態模型。(時序圖等) 設計

2. UML工具

StarUML,Umlet,Enterprise Architect(EA),PowerDesign等 UML建模工具:http://www.pc6.com/pc/umljmgj/ 在線製圖工具:processonOnhtm

3. UML經常使用元素與關係

3.1元素

  • 類圖(Class):是用來描述系統中的類以及各個類之間的關係。系統中能夠有多個類圖,單個類圖則只是表達了系統的一個方面。類圖能夠幫助咱們在正確編寫代碼以前對系統有個很全面的認識,是建模中最多見的一種類型圖。
  • 包(Package):當對一個比較複雜的軟件系統進行建模時,會有大量的類、接口、組件、節點和圖須要處理;若是放在同一個地方的話,信息量很是的大,顯得很亂,不方便查詢,因此就對這些信息進行分組,將語義或者功能相同的放在同一個包中,這樣就便於理解和處理整個模型。而包圖就是描述包與包之間的關係。
  • 接口(Interface):在 UML 建模中,接口是用來定義其餘模型元素(例如,類)或組件必須實現的多組操做的模型元素。已實現的模型元素經過重寫由接口聲明的每項操做來實現接口。能夠在類圖和組件圖中使用接口來指定接口與實現該接口的類元之間的合同。每一個接口都指定了一組嚴格定義的具備「公有」可視性的操做。操做特徵符告知實現類元要調用哪一種行爲,可是不會告訴它們應該如何調用該行爲。多個類元能夠實現單個接口,每一個類元提供惟一的實現。

參考: 包:https://blog.csdn.net/zlts000/article/details/18939645對象

3.2關係

  • 泛化(Generalization)(繼承):一般所說的繼承(特殊個體 is kind of 通常個體)關係。uml中用帶空心箭頭的實線線表示Generalization關係,箭頭指向通常個體。
  • 組合(Composition):組合是聚合關係的變種,表示元素間更強的組合關係。若是是組合關係,總體被破壞則個體必定會被破壞,而聚合的個體則多是被多個總體所共享的,不必定會隨着某個總體的破壞而被破壞。uml中用帶實心菱形頭的實線表示Composition關係,菱形頭指向總體。
  • 聚合(Aggregation):關聯關係的一種特例,表示部分和總體(總體 has a 部分)的關係。uml中用帶空心菱形頭的實線表示Aggregation關係,菱形頭指向總體。
  • 關聯(Association):元素間的結構化關係,是一種弱關係,被關聯的元素間一般能夠被獨立的考慮。uml中用實線表示Association關係,箭頭指向被依賴元素。
  • 依賴(Dependency):元素A的變化會影響元素B,但反之不成立,那麼B和A的關係是依賴關係,B依賴A;類屬關係和實現關係在語義上講也是依賴關係,但因爲其有更特殊的用途,因此被單獨描述。uml中用帶箭頭的虛線表示Dependency關係,箭頭指向被依賴元素。
  • 實現(Realize):元素A定義一個約定,元素B實現這個約定,則B和A的關係是Realize,B realize A。這個關係最經常使用於接口。uml中用空心箭頭和虛線表示Realize關係,箭頭指向定義約定的元素。

參考: 關係:https://www.cnblogs.com/duanxz/archive/2012/06/13/2547801.html 強弱程度: 泛化>組合>聚合>關聯>依賴blog

4. UML核心視圖

4.1 UML靜態視圖

  • 用例圖:用例圖是需求分析的產物,主要是用來描述用戶是如何使用一個系統的,是用戶所能觀察和使用到的系統功能的模型圖

  • 類圖:UML類圖,是用來描述系統中的類以及各個類之間的關係。系統中能夠有多個類圖,單個類圖則只是表達了系統的一個方面。類圖能夠幫助咱們在正確編寫代碼以前對系統有個很全面的認識,是建模中最多見的一種類型圖

  • 對象圖:描述的是一組對象之間的關係,而不是類之間的關係。它是類圖的變體,可是又與之不一樣,對象顯示的類的多個對象而不是實際的類。

  • 組件圖:UML組件圖(又叫構件圖),是用來描述在軟件系統中聽從並實現一組接口的物力的、可替換的軟件模塊。它所表現的是一種系統靜態實現的結構,可以幫助開發人員對系統組成達成一致的認識。

  • 部署圖:UML 部署圖是一個用來描述系統的硬件配置和部署以及軟件的構件和模塊在不一樣節點上分佈的模型圖。它可以幫助系統相關人員瞭解系統中各個構件部署在什麼硬件上以及硬件之間的交互關係。

4.2 UML動態視圖

  • 時序圖:UML時序圖,又叫序列圖或者順序圖,是一種用來描述對象之間傳送消息的時間順序,是用來表示用例中的行爲順序。

    微信支付時序圖:

參考時序圖:http://blog.51cto.com/smartlife/284874

  • 協做圖:UML協做圖(又叫通訊圖)是一種做用於顯示對象之間如何進行交互以執行特色用例或用例中特色部分行爲的交互圖,它強調的是發送和接收消息的對象之間的組織結構

  • 狀態圖:UML狀態圖,用於顯示狀態機,即描述一個對象所處的可能狀態以及狀態之間的轉移。用狀態圖建模能夠幫助開發人員分析複雜對象的各類狀態的轉換,以及對象什麼時候執行怎樣的動做。

  • 活動圖:UML活動圖,顧名思義就是UML的動態模型的一種圖形,對於系統的功能建模特別重要。它用來描述知足用例要求所要進行的活動以及活動間的約束關係,有利於識別並行活動。簡單來說,就是表示在處理某個活動時,兩個或者更多類對象之間的過程控制流。

參考: 時序圖協做圖詳解:https://blog.csdn.net/shulianghan/article/details/17927131 活動圖狀態圖詳解:https://www.cnblogs.com/jingwhale/p/4230235.html 經常使用建模圖:http://youzhixueyuan.com/what-is-umluml-used-diagrams-and-uml-modeling-tools.html

相關文章
相關標籤/搜索