1. 程式人生 > >軟考—軟體設計師(UML)

軟考—軟體設計師(UML)

面向物件分析強調的是對一個系統中物件的特徵和行為的定義。目前,國際上已經出現了多種面向物件的方法,例如Peter Coad和Edward YourDon的OOA和OOD方法。Booch的OOD方法、OMT(Object Modeling Technique,面向物件建模技術)方法及UML(Unified Modeling Language,統一建模語言)。 統一建模語言是面向物件軟體的標準化建模語言。由於其簡單、統一,又能夠表達軟體設計中的動態和靜態資訊,目前已經成為視覺化建模語言事實上的工業標準,當前版本是2.4.1。 從企業資訊系統到基於Web的分散式應用,甚至嚴格的實時嵌入式系統都適用UML來建模。它是一種富有表達力的語言,可以描述開發所需要的各種檢視,然後以此為基礎裝配系統。UML由3個要素構成:UML的基本構造塊、支配這些構造塊如何放置在一起的規則和運用與整個語言的一些公共機制。 UML的詞彙表包含3中構造塊:事物、關係和圖。事物是對模型中最具有代表性的成分的抽象;關係把事物結合在一起;圖聚集了相關的事物。

1.事物

UML中有4種事物:結構事物、行為事物、分組事物和註釋事物。 (1)結構事物(structural thing)。結構事物是UML模型中的名詞。它們通常是模型的靜態部分,描述概念或物理元素。結構事物包括類(class)、介面(interface)、協作(collaboration)、用例(use case)、主動類(active class)、構件(component)、製品(artifact)和結點(node)。 各種結構事物的圖形化表示如下圖所示:

在這裡插入圖片描述 (2)行為事物(behavior thing)。行為事物是UML模型的動態部分。它們是模型中的動詞,描述了跨越時間和空間的行為。行為事物包括互動(interaction)、狀態機(state machine)和活動(activity)。各種行為事物的圖形化表示如下圖所示: 在這裡插入圖片描述

互動由在特定語境中共同完成一定任務的一組物件之間交換的訊息組成。一個物件群體的行為或單個操作的行為可以用一個互動來描述。互動涉及一些其他元素,包括訊息、動作序列(由一個訊息所引起的行為)和鏈(物件見的連線)。在圖形上,把一個訊息表示為一條有向直線,通常在表示訊息的線段上總有操作名。 狀態機描述了一個物件或一個互動在生命期內響應時間所經歷的狀態序列。單個類或一組類之間協作的行為可以用狀態機來描述。一個狀態機設計到一些其他元素,包括狀態、轉換(從一個狀態到另一個狀態的流)、事件(出發轉換的事物)和活動(對一個轉換的響應)。在圖形上,把狀態表示為一個圓角矩形,通常在圓角矩形中含有狀態的名稱及其子狀態。 活動
是描述計算機過程執行的步驟序列,注重步驟之間的流而不關心哪個物件執行哪個步驟。活動的一個步驟稱為一個動作。在圖形上,把動作畫成一個圓角矩形,在其中含有指明其用途的名字。狀態和動作靠不同的語境得以區別。 互動、狀態機和活動是可以包含在UML模型中的基本行為事物。在語義上,這些元素通常與各種結構元素(主要是類、協作和物件)相關。 (3)分組事物(grouping thing)。分組事物是UML模型的組織部分,是一些由模型分解成的“盒子”。在所有的分組事物中,最主要的分組事物是包(package)。包是把元素組織成組的機制,這種機制具有多種用途。結構事物、行為事物甚至其他分組事物都可以放進包內。包與構件(僅在執行時存在)不同,它純粹是概念上的(即它僅在開發時存在)。包的圖形化表示如下圖所示: 在這裡插入圖片描述 (4)註釋事物(annotational thing)。註釋事物是UML模型的解釋部分。這些解釋事物用來描述、說明和標註模型的任何元素。註解(note)是一種主要的註釋事物。註解是一個依附於一個元素或者一組元素之上,對它進行約束或解釋的簡單符號。註解的圖形化表示如下圖所示: 在這裡插入圖片描述

2.關係

UML中有4中關係:依賴、關聯、泛化和實現。 (1)依賴(dependency)。依賴是兩個事物間的語義關係,其中一個事物(獨立事物)發生變化會影響另一個事物(依賴事物)的語義。在圖形上,把一個依賴畫成一條可能有方向的虛線,如下圖所示:

在這裡插入圖片描述 (2)關聯(association)。關聯是一種結構關係,它描述了一組鏈,鏈式物件之間的連線。聚集(aggregation)是一種特殊型別的關聯,它描述了中體和部分間的結構關係。關聯和聚集的圖形化表示如下圖所示:

在這裡插入圖片描述 在關聯上可以標註重複度(multiplicity)和角色(role)。 (3)泛化(generalization)。泛化是一種特殊/一般關係,特殊關係(子元素)的物件可替代一般元素(父元素)的物件。用這種方法,子元素共享了父元素的結構和行為。在圖形上,把一個泛化關係畫成一條帶有空心箭頭的實線,它指向父元素,如下圖所示:

泛化 (4)實線(realization)。實現是類元之間的語義關係,其中一個類元制定了由另一個類元保證執行的契約。在兩種情況下會使用實現關係:一種是在介面和實現他們的類或構件之間;另一種是在用例和實現它們的協作之間。在圖形上,把一個實現關係畫成一條帶有空心箭頭的虛線,如下圖所示: 在這裡插入圖片描述 這四種關係是UML模型中可以包含的基本關係事物。它們也有變體,例如,依賴的變體有精華、跟蹤、包含和延伸。

3.UML中的圖

圖(diagram)是一組元素的圖形表示,大多數情況下把圖畫成頂點(代表事物)和弧(代表關係)的連通圖。為了對系統進行視覺化,可以從不同的角度畫圖,這樣圖是對系統的投影。 UML2.0提供了13種圖,分別是類圖、物件圖、用例圖、序列圖、通訊圖、狀態圖、活動圖、構件圖、部署圖、組合結構圖、包圖、互動概覽圖和計時圖。序列圖、通訊圖、互動概覽圖和計時圖均被稱為互動圖。