學習c++必不可少UML,UML從考慮系統的不同角度出發,定義了用例圖、類圖、對象圖、狀態圖、活動圖、序列圖、協作圖、構件圖、部署圖等9種圖。這些圖從不同的側面對系統進行描述。系統模型將這些不同的側面綜合成一致的整體,便于系統的分析和構造。盡管UML和其它開發工具還會設計出許多派生的視圖,但上述這些圖和其它輔助性的文檔是軟件開發人員所見的最基本的構造。
用例圖。
用例圖是用來描述用戶需求的,從用戶的角度來描述系統的功能,并指出各個執行者。強調誰在使用,系統的執行者是誰。
【用途】:幫助開發團隊以一種可視化的方式理解系統的功能需求。
類圖。
用來定義系統中的類,包括描述類的結構和類之間的關系。類圖的主要作用于描述系統的靜態結構。類加上他們之間的關系就構成了類圖,類圖中還可以包含接口、包等元素,也可以包括對象、鏈等實例。
對象圖。
對象圖是類圖的一個實例,描述了系統在具體時間點上所包含的對象以及各個對象之間的關系。
狀態圖。
狀態圖說明對象在它的生命周期中響應事件所經歷的狀態序列,以及它們對那些事件的響應。
構件圖。
構件圖用來描述代碼構件的物理結構以及構件之間的依賴關系。一個構件可以是一個資源文件、一個二進制文件或者已給可執行文件。
實施圖(部署圖)。
用來定義了系統中硬件的物理體系結構,用來描述實際的物理設備以及它們之間的連接關系。
順序圖(序列圖)。
描述對象之間的交互順序,著重體現對象之間消息傳遞的時間順序,強調了對象之間消息的發送順序,同時也顯示了對象之間的交互過程。
協作圖。
協作圖是一種交互圖,強調的是發送和接受消息的對象之間的組織結構。
協作圖主要描述協作對象的交互和鏈接。
顯示對象間的連接以及對象之間如何發送消息。
協作圖可以表示類操作的實現。
活動圖。
概述系統的動態行為,包括活動狀態,活動狀態是指業務用例的一個執行步驟或一個操作,不是普通對象的狀態?;?nbsp; 動 圖適合描述在沒有外部事件觸發的情況下,系統內部的邏輯執行過程,否則狀態圖更容易描述類似與傳統意義上的流程圖。業務建模時,用于詳述業務用例,描述一項業務的執行過程設計時,描述操作的流程。
下面在援引一位老鳥的文章 http://blog.csdn.net/fengart/article/details/1588366
3. UML的特點
(1)統一標準。
UML融合了當前一些流行的面向對象開發方法的主要概念和技術,成為一種面向對象的標準化的統一建模語言,結束了以往各種方法的建模語言的不一致和差別。
UML提供了標準的面向對象的模型元素的定義和表示法,以及對模型的表示法的規定,使得對系統的建模有章可循,有標準的語言工具可用,有利于保質保量地建立起軟件系統模型。
UML己經成為工業標準化組織OMG的正式標準,OMG將負責語言標準的進一步的開發。UML在統一和標準化方面的努力,將有利于建模語言本身的發展,也有利于工業化應用。
(2)面向對象。
UML支持面向對象技術的主要概念。UML提供了一批基本的模型元素的表示圖形和方法,能簡潔明了地表達面向對象的各種概念和模型元素。
(3)可視化、表示能力強大。
UML是一種圖形化語言,系統的邏輯模型或實現模型都能用UML的模型圖形清晰地表示。UML不只是一堆圖形符號,在每一個UML的圖形表示符號背后,都有良好定義的語義。
UML還可以處理與軟件的說明和文檔有關的問題,包括需求說明、體系結構、設計、源代碼、項目計劃、測試、原型、發布等。
UML提供了語言的擴展機制,用戶可以根據需求增加定義自己的構造型、標記值和約束等。
UML的強大表示能力使它可以用于各種復雜類型的軟件系統的建模。
(4)獨立于過程。
UML是系統建模語言,獨立于開發過程。雖然UML與Rational統一過程配合使用,將發揮強大的效用,但是UML也可以在其他面向對象的開發過程中使用,甚至在常規的軟件生命周期法中使用。
(5)容易掌握使用。
UML的概念明確,建模表示法簡潔明了,圖形結構清晰,容易掌握使用。學習UML應著重學習它的三方面的主要內容:UML的基本模型元素,把這些模型元素組織在一起的規則,UML語言中的公共機制。只要具備一定的軟件工程和面向對象技術的基礎知識,通過運用UML建立實際問題的系統模型的實踐,很快就能掌握和熟悉UML。
4. UML的用途
使用UML進行軟件系統的分析與設計,能夠加速軟件開發的進程,提高代碼的質量,支持變動的業務需求。UML適用于各種大小規模的軟件系統項目,能促進軟件復用,方便地集成已有的系統軟件資源。使用UML將有助于處理軟件開發中的各種風險。UML的這些特點和優點使它獲得了計算機業界和越來越多的軟件人員的青睞。
UML不是一個獨立的軟件工程方法,而是面向對象軟件工程方法中的一個部分。UML只是一種標準的系統分析和設計的語言,用于系統的建模。UML適用于對各類軟件系統的建模,從應用系統到計算機系統的支持軟件,從一般的企業的信息管理系統到基于WEB的分布式應用系統,甚至實時系統。
UML不是程序設計語言,不能用來直接書寫程序,實現系統。UML所建立的系統模型(邏輯模型和實現模型),必須轉換為某個程序設計語言的源代碼程序,然后經過該語言的編譯系統生成可執行的軟件系統。但是,用UML建立系統模型可以很好地支持軟件開發的前向工程(Forward engineering)和逆向工程(Reverse engineering)。[2]