大家好,雞啄米上一講給大家介紹了類模板的概念,這一講給大家簡單介紹下UML的知識。如果要系統的學習UML還要找專門講UML的教程來研究。

       我們在進行軟件開發的時候,如果只靠腦子想,只有一個看不見的軟件規劃、軟件架構,可能寫程序時會影響你的思路的清晰,或者中間間斷了以后會忘記當初的規劃而要重新回憶或重新規劃。如果我們可以把程序設計用圖形表達出來,就會讓我們的思路很清晰,也很容易進行合理的優化,我們和其他的軟件開發人員或者用戶就能夠進行更好的溝通。

       面向對象設計圖應運而生,它能清楚的描述以下幾個問題:

       1.,包括數據成員和函數成員。
       2.對象,類的實例。
       3.類及對象的關系,繼承或者包含。
       4.類及對象之間的聯系,相互作用與消息傳遞等。

       現在國際上標準的面向對象標記方法稱為UML,即統一建模語言。這種標記分為兩類圖形符號:表示符號和連接符號。表示符號用來表示類和對象,連接符號用來表示類和對象之間的關系和聯系。

       UML中有9種圖:類圖、對象圖、用例圖、順序圖、協作圖、狀態圖、活動圖、組件圖和實施圖。這里只介紹下類圖和對象圖。

       雞啄米用第十三講類與對象:類的聲明、成員的訪問控制和對象中的Clock類做例子,給出它的類圖:

雞啄米:C++編程入門系列之十七(類與對象:UML簡介)

       大家可以看出,最上面的框中是類名,中間框中是數據成員,最下面的框中是函數成員。

       再用Clock類的對象myClock給大家一個對象圖的例子:

雞啄米:C++編程入門系列之十七(類與對象:UML簡介)

       UML中類及對象的關系有以下幾種:依賴、關聯、聚合、組合、泛化和實現。

       雞啄米下面分別講講這幾種關系:

      1.依賴關系。

       如果類A使用了類B,或者說如果類B的變化會影響類A,則說類A依賴于類B。一般有以下幾種情況屬于依賴關系:類A調用類B的成員函數;類B的對象是類A的成員變量;類A的成員函數使用了類B類型的參數。依賴關系用帶箭頭的虛線表示,如下圖:

雞啄米:C++編程入門系列之十七(類與對象:UML簡介)

       2.關聯關系。

雞啄米:C++編程入門系列之十七(類與對象:UML簡介)

       上圖中,重數A表示類B的每個對象與類A的多少個對象相關聯,重數B則表示類A的每個對象與類B的多少個對象發生作用。比如,老師和學生的關聯,老師類的重數應該是1,學生類的重數可能是n。

       3.泛化關系。

       如果類A和類B是從類C繼承的子類,那么類C就是類A和類B的泛化。泛化關系用帶空心三角形的實線表示:

雞啄米:C++編程入門系列之十七(類與對象:UML簡介)

       4.聚合關系。

       聚合表示類之間的關系是整體和部分的關系,但是聚合關系中的整體和部分是可以分開的。比如,我們可以選擇某個主板、硬盤、機箱等配件組裝一臺電腦,以后這臺電腦可以隨時更換配件,還一樣能夠組成一臺電腦。聚合關系用帶空心菱形的實線表示。

雞啄米:C++編程入門系列之十七(類與對象:UML簡介)

       5.組合關系。

       組合關系也是整體和部分的關系,但是它與聚合關系不同的是,整體和部分是不可以分開的。比如,我們的房子由客廳、臥室、廚房等組合而成,房子不能和別人的房子對換客廳等任何房間,客廳、臥室等不能和房子分開。組合關系用帶實心菱形的實線表示。

雞啄米:C++編程入門系列之十七(類與對象:UML簡介)

       6.實現關系。

       實現關系用來說明接口和實現接口的類之間的關系。實現關系圖用帶空心三角形的虛線表示:

雞啄米:C++編程入門系列之十七(類與對象:UML簡介)

       最后,雞啄米再說下UML中的注釋。在UML圖形上,注釋表示為帶有褶角的矩形,然后用虛線連接到UML的其他元素上,它是一種用于在圖中附加文字注釋的機制。

雞啄米:C++編程入門系列之十七(類與對象:UML簡介)

       UML的知識雞啄米就大概講這些了,具體系統的UML內容大家可以看專門講解的相關書籍。
 

 

除非特別注明,雞啄米文章均為原創
轉載請標明本文地址:http://www.cpbsu.com/software/57.html
2011年9月28日
作者:雞啄米 分類:軟件開發 瀏覽: 評論:4