整理UML建模概念和圖形~(啥?程序員不再寫代碼,變成畫圖工程師?)

前言:

     工程圖紙對於工程師的重要性就不需要我多說了吧,對事物建模也是很重要的。我們在軟件工程部分說過“建造一個狗窩和一棟大廈是完全不一樣的”,很多時候如果你有很好的idea,但是對於需求分析、詳細設計等模糊其次,終究也只是一個idea而已。如果你掌握了軟件工程和UML建模的設計方法,那麼這些idea都會變成圖紙或者文檔,需要用什麼技術來實現一目瞭然。當然,UML追求的最終目標就是程序員不再寫代碼,而是通過建模直接生成代碼......好吧,實現與否還不知道,我先預定一下位置。


一、目標

     希望本篇文章可以讓讀者獲益以下幾點:

  • 明白UML是什麼,不是什麼,以及爲什麼UML對於開發軟件密集型系統的過程非常重要。
  • 掌握UML的術語、規則和慣用法,一般來說,還將學會如何有效的使用這種語言。
  • 知道如何應用UML去解決許多常見的建模問題。

這裏提供UML用戶指南第二版目錄(作者[美]Grady Booch   James Rumbaugh  Ivar Jacobson)

第一部分  入門

1、爲什麼要建模

2、UML介紹

3、Hello,World!

第二部分 對基本結構建模

4、類

5、關係

6、公共機制

7、圖

8、類圖

第三部分 對高級結構建模

9、高級類

10、高級關係

11、接口、類型和角色

12、包

13、實例

14、對象圖

15、構建

第四部分 對基本行爲建模

16、交互

17、用況

18、用況圖

19、交互圖

20、活動圖

第五部分 對高級行爲建模

21、事件和信號

22、狀態機

23、進程和線程

24、時間和空間

25、狀態圖

第六部分 對體系結構建模

26、製品

27、部署

28、協作

29、模式和框架

30、製品圖

31、部署圖

32、系統和建模 

第七部分 結束語

33、應用UML

     上面的目錄你快速瀏覽一遍就好,對我來說,UML的學習就分爲兩部分:相關概念和畫圖。其實只要掌握這來兩部分,結合之前面向對象設計和項目文檔設計的知識,很快就可以get到裏面的知識點。對之後的項目開發會有很大的幫助。


二、相關概念

     UML的構造塊:(1)事件;(2)關係;(3)圖 ,所以接下來我們就通過這三個構造塊展開相關概念。

(一)UML中的事件

     UML中有4中事物:結構事物、行爲事物、分組事物、註釋事物。

1、結構事物

     結構事物是UML模型中的名詞。它們通常是模型的靜態部分,描述概念元素或物理元素。結構事物總稱爲類目。

      第一,類(class)是對一組具有相同屬性、相同操作、相同關係和相同語義的對象的描述。類實現一個或多個接口。在圖形上,把類圖畫成一個矩形,矩形中通常包括類的名稱、屬性和操作。

     第二,接口(interface)是一組操作的集合,其中的每個操作描述了類或構件的一個服務。

     第三,協作(collaboration)定義了一個交互,它是由一組共同工作以提供某種協作行爲的角色和其他元素構成的一個羣體,這些協作行爲大於所有元素的各自行爲的總和。

     第四,用況(use case)是對一組動作序列的描述,系統執行這些動作將產生對特定的參與者有價值而且可觀察的結果。

     第五,主動類(active class)是這樣的類,其對象至少擁有一個進程或線程,因此它能夠啓動控制活動。

     第六,構件(component)是系統設計的模塊化部件,將實現隱藏在一組外部接口背後。

     第七,製品(artifact)是系統中物理的而且可替代的部件,它包括物理信息(“比特”)。

     第八,節點(node)是在運行時存在的物理元素,它表示一個計算機資源,通常至少有一些記憶能力,還經常具備處理能力。

2、行爲事物

      行爲事物是UML模型的動態部分。它們是模型中的動詞,代表了跨越時間和空間的行爲。共有3類主要的行爲事物。

     第一,交互(nteraction)是這樣的一種行爲,它由特定語境中共同完成一定任務的一組對象或角色之間交換的消息組成。

     第二,狀態機(state machine)是這樣一種行爲,它描述了一個對象或一個交互在生命期內響應事件所經歷的狀態序列以及它對這些事件作出的相應。

     第三,活動(activity)是這樣一種行爲,它描述了計算工程執行的步驟序列。

3、分組事物

     分組事物是UML建模的組織部分。它們是一些由建模分解成的“盒子”。主要的分組事物是包。

     包(package)是用於對設計本身進行組織的通用機制,它與類不同,它是用來組織實現構造物的。

4、註釋事物

     註釋事物是UML模型的解釋部分。 

 

(二)UML中的關係

     UML中有4種關係:依賴、關聯、泛化、實現。 

     第一,依賴(dependency)是兩個模型元素間的語義關係,其中一個元素(獨立元素)發生變化會影響另一個元素(依賴元素)的語義。在圖形上,把依賴畫成一條可能有方向的虛線,有時還是帶有一個標記。

     第二,關聯(association)是類之間的結構關係,它描述了一組鏈,鏈是對象(類的實例)之間的連接。聚合是一種特殊類型的關聯,它描述了整體與部分間的結構關係。在圖形上,把關聯畫成一條實線,它可能有方向,有時還帶有一個標記,而且它還經常含有諸如多重性和端名這樣的修飾。

     第三,泛化(generalization)是一種特殊/一般關係,其中特殊元素(子元素)基於一般元素(父元素)而建立。用這種方法,子元素共享了父元素的結構和行爲。在圖形上,把泛化關係畫成一條帶有空心箭頭的實線,該實線指向父元素。

     第四,實現(realization)是類目之間的語義關係,其中一個類目指定了一個由另一個類目保證執行的合約。在兩種地方會遇到實現關係:一種是在接口和實現它們的類和構件之間;另一種是在用況和實現它們的協作之間。在圖形上,把實現關係畫成一條帶有空心箭頭的虛線,它是泛化和依賴關係兩種圖形的結合。

 

(三)UML中的圖

1、類圖(class diagram)展示了一組類、接口、協作和它們之間的關係。

2、對象圖(object diagram)展示了一組對象及其它們之間的關係。

3、構件圖(componet diagram)展示了一個封裝的類和它的接口、端口以及由內嵌的構件和連接件構成的內部結構。

4、用況圖(use case diagram)展示了一組用況、參與者以及它們之間的關係。

5、交互圖(interaction diagram---順序圖和通信圖都是交互圖)展示了一種交互,它由一組對象或角色以及它們之間可能發送的消息構成。

6、狀態圖(state diagram)展示了一個狀態機,它由狀態、轉移、事件和活動組成。

7、活動圖(activivy diagram)將進程或其它計算的結構展示爲計算內部一步一步的控制流和數據流。

 8、部署圖(deployment diagram)展示了對運行時的處理結點以及在其中生存的構件的配置。

9、製品圖(artifact diagram)展示了計算機中一個系統的物理結構。

10、包圖(package diagram)展示了由模型本身分解而成的組織單元以及它們的依賴關係。

11、定時圖(timing diagram)是一種交互圖,它展示了消息跨越不同對象或角色的實際時間,而不僅僅是關心消息的相對順序。

 

(四)公共機制

     爲了更好的組合上面的構件,所以就有了公共機制:規約;修飾;通用劃分;擴展機制。


三、各種圖形例子

1、類圖

 

2、用況圖

3、交互圖

 

4、活動圖

 

5、狀態圖

 

6、接口、組件、部署圖

 

 

 


總結;

     從概念中來,到畫圖中去。我們將所學到的UML知識用到面向對象的編程中去,用到java設計中去,多練習理解纔會更加深刻。上面的圖形知識從以往我的圖形中截取的,如果對你有幫助,點個讚唄,謝謝。 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章