天天看點

UML的概念

 UML是一種可視化的模組化語言,對其各模組化元素可進行詳細說明,并能生成所模組化型的文檔。使用UML時,要從不同的角度觀察系統,為此定義了一個概念“視圖”。視圖是對系統的模型在某方面的投影,注重于系統的某個方面。每個視圖是圖的協作,UML定義了9種圖。下表是UML中的5種視圖,各視圖在靜态和動态方面表示了系統的模型。

UML的概念

用況視圖由用況圖組成,描述可被最終使用者、分析人員和測試者看到的系統行為;設計視圖包含類圖、對象圖、互動圖、狀态圖和活動圖,主要反映系統的功能需求;過程視圖包含類圖、對象圖、互動圖、狀态圖和活動圖,主要描述形成系統并發與同步機制的線程和程序;實作視圖包含構件圖、互動圖、狀态圖和活動圖,反映用于裝配與釋出實體系統的構件和檔案,主要針對系統釋出的配置管理,可以用各種方法裝配它們。部署視圖包含部署圖、互動圖、狀态圖和活動圖,主要描述對組成實體系統的部件的分布、傳遞和安裝。根據實際需要,可以組合使用這些視圖。

由視圖可以定義模型,模型在語義上是閉合的,它從特定的角度(系統的規約或者設計)在一定抽象層次上描述目标系統。可以把視圖組織成模型,開發人員可從各視角觀察使用模型。

用以描述系統的模型可以是結構性的,強調系統的組織;也可以是行為性的,強調系統的動态方面。例如,RUP有9種模型,分别是業務模型、領域模型、用況模型(也稱需求模型)、分析模型、設計模型、過程模型、部署模型、實作模型和測試模型,用于從不同的角度表示系統。

系統是一組反映不同側面的子系統的集合,為了完成特定的目的要對這些子系統進行組織(在邏輯、功能和實體位置上是高内聚、低耦合的)。

子系統是一組元素的聚集,其中的元素還可以是子系統。它由一組模型從不同的角度進行描述。子系統本身幾乎應是獨立的,有自己應用的環境,互相間不重疊,它們之間用接口聯系。

UML的概念模型

為了了解UML,需要掌握UML的概念模型,這要求學習三個要素:UML的基本構造塊、支配這些構造塊如何放在一起的規則和一些運用于整個UML的機制,下面逐一予以介紹。

1. 基本構造塊

UML中有三種基本構造塊,分别是事物、關系和圖。

事物分結構事物(包括類、接口、協作、用況、主動類、構件和節點)、行為事物(包括互動和狀态機)、分組事物(包)和注釋事物(注解)。

UML中有四種關系,分别是依賴、關聯、泛化和實作關系。

對于上述兩種構造塊,通過研讀相應的書籍,絕大多數不難掌握,這裡就不再贅述。下面對UML中的圖的要點進行闡述。

類圖 類圖展示了一組類、接口和協作及它們間的關系,在模組化中所建立的最常見的圖就是類圖。用類圖說明系統的靜态設計視圖,包含主動類的類圖——專注于系統的靜态程序視圖。系統可有多個類圖,單個類圖僅表達了系統的一個方面。要在高層給出類的主要職責,在低層給出類的屬性和操作。

對象圖 對象圖展示了一組對象及它們間的關系。用對象圖說明類圖中所反應的事物執行個體的資料結構和靜态快照。對象圖表達了系統的靜态設計視圖或靜态過程視圖,除了現實和原型的方面的因素外,它與類圖作用是相同的。

用況圖 用況圖展現了一組用況、參與者以及它們間的關系。可以用用況圖描述系統的靜态使用情況。在對系統行為組織和模組化方面,用況圖的是相當重要的。

互動圖 互動圖展現了按一定的目的進行的一種互動,它由在一個上下文中的一組對象及它們間互動的資訊組成。互動圖也可用于描述一個用況的行為。順序圖和協作圖都是互動圖,順序圖和協作圖可以互相轉換。

順序圖 展現了一組對象和由這組對象收發的消息,用于按時間順序對控制流模組化。用順序圖說明系統的動态視圖。

協作圖 展現了一組對象,這組對象間的連接配接以及這組對象收發的消息。它強調收發消息的對象的結構組織,按組織結構對控制流模組化。

狀态圖 展示了一個特定對象的所有可能狀态以及由于各種事件的發生而引起的狀态間的轉移。一個狀态圖描述了一個狀态機,用狀态圖說明系統的動态視圖。它對于接口、類或協作的行為模組化尤為重要,可用它描述用況執行個體的生命周期。

活動圖 活動圖是一種特殊的狀态圖,描述需要做的活動、執行這些活動的順序(多為并行的)以及工作流(完成工作所需要的步驟)。它對于系統的功能模組化特别重要,強調對象間的控制流程。

高層活動圖用于表示需要完成的一些任務,即用于分析用況,了解涉及多個用況的工作流、多線程及并行,顯示互相聯系的行為整體,還可用于對企業過程模組化,對系統的功能模組化。低層活動圖用于表示類的方法。但活動圖不适用于描述動作與對象間的關系,顯示對象間的合作以及顯示對象在生命周期内的運轉情況。

構件圖 構件圖展現了一組構件之間的組織和依賴,用于對原代碼、可執行的釋出、實體資料庫和可調整的系統模組化。

部署圖 部署圖展現了對運作時處理節點以及其中構件的配署。它描述系統硬體的實體拓撲結構(包括網絡布局和構件在網絡上的位置),以及在此結構上執行的軟體(即運作時軟構件在節點中的分布情況)。用部署圖說明系統結構的靜态部署視圖,即說明分布、傳遞和安裝的實體系統。

2. 運用構造塊的規則

UML用于描述事物的語義規則分别是:為事物、關系和圖命名;給一個名字以特定含義的語境,即範圍;怎樣使用或看見名字,即可見性;事物如何正确、一緻地互相聯系,即完整性;運作或模拟動态模型的含義是什麼,即執行。另外,UML還允許在一定的階段隐藏模型的某些元素、遺漏某些元素以及不保證模型的完整性,但模型逐漸地要達到完整和一緻。

3. 機制

有四種在整個語言中一緻應用的機制,使得該語言變得較為簡單。這四種機制是詳細說明、修飾、通用劃分和擴充機制。

UML不隻是一種圖形語言。實際上,在它的圖形表示法的每部分背後都有一個詳細說明,提供了對構造塊的文法和語義的文字叙述。

UML表示法中的每一個元素都有一個基本符号,這些圖形符号對元素的最重要的方面提供了可視化表示,對元素的描述還包含其他細節。例如,一個類是否是抽象類,或它的屬性和操作是否可見。要把這樣的修飾細節加到基本符号上。

在對面向對象的系統模組化中,至少有兩種通用的劃分世界的方法:對類和對象的劃分;對接口和實作的劃分。UML中的構造塊幾乎都存在着這樣的兩分法。

UML是開放的,可用一種受限的方法擴充它。UML的擴充機制包括構造型、标記值和限制。

繼續閱讀