UML 基礎認識

UML : Unified Modeling language 統一建模語言

向大家推薦一款非常優秀的UML建模軟件:Visual Paradigm for UML 是收費的,但也有免費版和試用版,用於學習足以。http://www.visual-paradigm.com 還提供了其他有助於軟件開發的圖形化設計開發軟件。

8:36 2011/7/8 閱讀《標準建模MUL教程》

用例圖、類圖、包圖、交互圖、狀態圖、活動圖、構件圖和配置圖

面向對象技術不僅是一種程序設計方法,更重要的是,它是一種對真實世界的抽象思維方式。模型可以使人們從全局上把握系統的全貌及相關部件之間的聯繫,可以防止人們過早地陷入各個模塊的細節。因此,面向對象的分析和設計應該從建模開始,建模語言一直是面向對象技術的研究重點。

UML是由世界著名的面向對象技術專家Grady Booch ,Jim Rumbaugh 和 Ivar Jacobson發起,在著名的Booch方法、OMT方法和OOSE方法的基礎上,廣泛徵求意見,集重家之長,幾經修改而完成的。

需要說明的是,UML是一種建模語言,而不是一種方法。在原理上,任何方法都應由建模語言和建模過程兩部分所構成。其中建模語言提供的這種方法中用於表示設計的符號(通常是圖形符號);建模過程則描述進行設計所需要遵循的步驟。標準建模語言UML統一了面向對象建模的基本概念、術語及其圖形符號,爲人們建立了便於交流的共同語言。然而,人們可以根據所開發軟件的類型、環境和條件,選用不同的建模過程。

UML是一種定義良好,易於表達,功能強大,且普遍適用的建模語言。它溶入了軟件工程領域的新思想、新方法和新技術。它不僅可以支持面向對象的分析和設計,更重要的是能夠有力地支持從需求分析開始的軟件開發的全過程。

4:04 2011/7/9
表示法和元模型

UML表示法定義了UML的表示符號,爲建模者和建模支持工具的開發者提供了標準的圖形符號和正文語法。

UML採用的是一種圖形表示法,是一種可視化的圖形建模語言。UML定義了建模語言的文法,例如,類圖中定義了諸如類、關聯、多重性等概念在模型中是如何表示的。

簡單地講,元模型是用來定義符合文法(即語法正確)的模型。

應當把重點放在逐步深刻地理解那些基本概念,掌握UML表示法,學會在實際系統的分析、設計與實現的過程中,有效地運用標準建模語言UML建立系統模型。

從不同角度來考察系統,標準建模語言UML定義了下列5類、共10種模型圖:

5類10種:用例圖、靜態圖(類圖、對象圖、包圖)、行爲圖(狀態圖、活動圖)、交互圖(順序圖、合作圖)、實現圖(構件圖、配置圖)

第一類,用例圖:它從用戶角度描述系統的功能,並指出各功能的操作者。

第二類,靜態圖:包括類圖、對象圖和包圖。其中類圖用於定義系統中的類,包括描述類之間的聯繫(如關聯、依賴、聚合、組合等)以及類的內部結構,即類的屬性和操作。因此類圖是描述系統中類的靜態結構,即它所描述的是一種靜態關係,在系統的整個生命週期都是有效的。其中對象圖所使用的表示符號與類圖幾乎完全相同。它們的不同點在於對象圖只是顯示類的對象實例,而不是實際的類。一個對象圖是類圖的一個實例。由於對象存在生命週期,因此對象圖只能在系統某一時間段存在。包圖由包或者類組成,主要表示包與包、或包與類之間的關係。包圖用於描述系統的分層結構。

第三類,行爲圖:描述系統的動態模型和組成對象間的交互關係。一種是狀態圖,它描述一類對象的所有可能的狀態以及事件發生時狀態的轉移條件。通常狀態圖是對類圖的補充。實際上我們並不需要爲所有的類繪製狀態圖,而只需要爲那些有多個狀態、並且其行爲受外界環境的影響而發生改變的類繪製狀態圖。另一種稱作活動圖,它描述爲滿足用例要求所要進行的活動以及活動間的約束關係。使用活動圖可以很方便地表示並行活動。

第四類,交互圖:描述對象間的交互關係。一種稱之爲順序圖,用以顯示對象之間的動態合作關係。它強調對象之間消息發送的順序,同時也顯示對象之間的交互過程。另一種是合作圖,它着重描述對象的協作關係。合作圖和順序圖相似,顯示對象間的動態合作關係。除了顯示信息交換外,合作圖還顯示對象以及它們之間的關係。如果強調時間和順序,應當使用順序圖;如果強調通信關係,則可以選擇合作圖。這兩種圖合成爲交互圖。

第五類,實現圖:包括構件圖和配置圖。構件圖描述代碼部件的物理結構以及各個部件之間的依賴關係。一個部件可能是一個資源代碼部件、一個二進制部件或一個可執行部件。它包含邏輯類或實現類的有關信息。構件圖有助於分析和理解部件之間的相互影響程度。配置圖定義系統中軟硬件的物理體系結構。它可以顯示實際的計算機和設備(用節點表示)以及它們之間的連接關係,也可以顯示連接的類型及部件之間的依賴性。在節點內部,放置可執行部件和對象,以及顯示節點跟可執行軟件單元之間的對應關係。簡單說,實現圖是分別用構件圖和配置圖描述系統實現體的構成及其在硬件環境中的配置情況。


·從應用的角度看,當採用面向對象技術設計系統時,首先是描述需求,次之根據需求建立系統的靜態模型,以構造系統的結構,第三步是描述系統的行爲。其中在第一步與第二步中所建立的模型都是靜態的,包括用例圖、類圖(包括包圖)、對象圖、構件圖和配置圖等六種。這些圖構成了標準建模語言UML的靜態建模機制。第三步中所建立的模型或者可以執行或者表示執行時的時序狀態或交互關係,它包括狀態圖、活動圖、順序圖和合作圖等四種圖。這些圖構成了標準建模語言UML的動態建模機制。因此,標準建模語言UML的主要內容也可以歸納爲靜態建模機制和動態建模機制兩大類。

4:12 2011/7/9
標準建模語言UML的主要特點:
與Booch,OMT,OOSE等其他方法相比,UML具有表達力更強、更清晰和一致的優點。
1,UML統一了Booch,OMT和OOSE等方法中的基本概念;
2,UML吸取了面向對象技術領域中其他流派的長處;
3,在演變過程中UML還提出了一些新的概念。


4:18 2011/7/9
使用UML的目的是什麼?
對於大多數人來講,學習如何使用一種面嚮對象語言進行編程並不難,難的是如何充分利用面嚮對象語言所提供的優勢。
充分了解用戶希望得到什麼,用例圖有助於不斷取得用戶的反饋信息,而類圖,應將每個類圖對應於用戶心中的一個概念呢,並使用用戶的語言來命名和定義這個類。

1,學習面向對象技術
2,和領域專家的交流
3,理解全局

4:33 2011/7/9
類-職責-協作(CRC)卡片便是一種非常有效的面向對象技術。CRC面向對象並不是標準UML的組成部分,它的出現是爲了教會人們如何使用面向對象的方法進行工作。這種技術完全不同於傳統的設計技術,其特點在於強調對角色-職責的分析和簡單明快的表示形式。

4:47 2011/7/9
標準建模語言UML的應用領域:


UML的目標是以面向對象圖的方式來描述任何類型的系統,具有很寬的應用領域。其中最常用的是建立軟件系統的模型。但它還可以用於描述不帶任何軟件的機械系統、一個企業的機構或企業過程等。總之,UML是一個通用的標準建模語言,可以對任何具有靜態結構和動態行爲的系統進行建模。

在用UML建立分析和設計模型時,應儘量避免考慮把模型轉換成某種特定的編程語言。因爲在早期階段,模型僅僅是理解和分析系統結構的工具,過早考慮編碼問題十分不利於建立簡單正確的模型。

UML模型還是測試階段的依據。系統通常需要經過單元測試、集成測試、系統測試和驗收測試。不同的測試小組使用不同的UML圖作爲測試依據:單元測試使用類圖和類規格說明;集成測試使用部件圖和合作圖;系統測試使用用例圖來驗證系統的行爲。驗收測試由用戶進行,以驗證系統測試的結構是否在分析階段確定的需求。

總之,標準建模語言UML適用於以面向對象技術來描述任何類型的系統,而且適用於系統開發的不同階段,從需求規格描述直至系統完成後的測試和維護。

5:06 2011/7/9
·爲什麼說標準建模語言UML是一種語言而不是一種方法呢?
UML融合了Booch,OMT和OOSE方法中的基本概念。
UML擴展了現有方法的應用範圍。
UML是標準的建模語言,而不是標準的開發過程。儘管UML的應用必然以系統的開發過程爲背景,但是對於不同的組織和不同的應用領域,UML的使用者可以採取不同的開發過程。
UML是一種建模語言,而不是一種方法。在原理上,任何方法都應由建模語言和建模過程兩部分所構成。其中建模語言提供的這種方法中用於表示設計的符號(通常是圖形符號);建模過程則描述進行設計所需要遵循的步驟。標準建模語言UML統一了面向對象建模的基本概念、術語及其圖形符號,爲人們建立了便於交流的共同語言。然而,人們可以根據所開發軟件的類型、環境和條件,選用不同的建模過程。

3:19 2011/8/4
補充:
UML中聚合和組合的關係(來自互聯網):
聚合:指的是整體與部分的關係。通常在定義一個整體類後,再去分析這個整體類的組成結構。從而找出一些組成類,該整體類和組成類之間就形成了聚合關係。例如一個航母編隊包括海空母艦、驅護艦艇、艦載飛機及核動力攻擊潛艇等。需求描述中“包含”、“組成”、“分爲…部分”等詞常意味着聚合關係。

組合:也表示類之間整體和部分的關係,但是組合關係中部分和整體具有統一的生存期。一旦整體對象不存在,部分對象也將不存在。部分對象與整體對象之間具有共生死的關係。

聚合和組合的區別在於:聚合關係是“has-a”關係,組合關係是“contains-a”關係;聚合關係表示整體與部分的關係比較弱,而組合比較強;聚合關係中代表部分事物的對象與代表聚合事物的對象的生存期無關,一旦刪除了聚合對象不一定就刪除了代表部分事物的對象。組合中一旦刪除了組合對象,同時也就刪除了代表部分事物的對象。

我們用淺顯的例子來說明聚合和組合的區別。“國破家亡”,國滅了,家自然也沒有了,“國”和“家”顯然也是組合關係。而相反的,計算機和它的外設之間就是聚合關係,因爲它們之間的關係相對鬆散,計算機沒了,外設還可以獨立存在,還可以接在別的計算機上。在聚合關係中,部分可以獨立於聚合而存在,部分的所有權也可以由幾個聚合來共享,比如打印機就可以在辦公室內被廣大同事共用。

 

ps: composition :組合     aggregation :聚合

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