軟考—軟體設計師(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)。各種行為事物的圖形化表示如下圖所示:
2.關係
UML中有4中關係:依賴、關聯、泛化和實現。 (1)依賴(dependency)。依賴是兩個事物間的語義關係,其中一個事物(獨立事物)發生變化會影響另一個事物(依賴事物)的語義。在圖形上,把一個依賴畫成一條可能有方向的虛線,如下圖所示:(2)關聯(association)。關聯是一種結構關係,它描述了一組鏈,鏈式物件之間的連線。聚集(aggregation)是一種特殊型別的關聯,它描述了中體和部分間的結構關係。關聯和聚集的圖形化表示如下圖所示:
在關聯上可以標註重複度(multiplicity)和角色(role)。 (3)泛化(generalization)。泛化是一種特殊/一般關係,特殊關係(子元素)的物件可替代一般元素(父元素)的物件。用這種方法,子元素共享了父元素的結構和行為。在圖形上,把一個泛化關係畫成一條帶有空心箭頭的實線,它指向父元素,如下圖所示:
(4)實線(realization)。實現是類元之間的語義關係,其中一個類元制定了由另一個類元保證執行的契約。在兩種情況下會使用實現關係:一種是在介面和實現他們的類或構件之間;另一種是在用例和實現它們的協作之間。在圖形上,把一個實現關係畫成一條帶有空心箭頭的虛線,如下圖所示: 這四種關係是UML模型中可以包含的基本關係事物。它們也有變體,例如,依賴的變體有精華、跟蹤、包含和延伸。