官术网_书友最值得收藏!

1.6 關于統一建模語言UML

UML最初是在多種面向對象分析與設計方法相互融合的基礎上形成的,后來發展成為也可以用于業務建模以及其他非軟件系統建模的語言。它于1997年11月被對象管理組織(Object Management Group)采納為建模語言規范,隨后被產業界和學術界廣泛接受。

UML定義了建立系統模型所需要的概念并給出了表示法,但它并不涉及如何進行系統建模。因此它只是一種建模語言,而不是一種建模方法。UML是獨立于開發過程的,也就是說它可以適用于不同的開發過程。

UML 2.4規范由四個部分組成:基礎結構(infrastructure)、上層結構(superstructure)、對象約束語言(object constraint language)和圖交換(diagram interchange)。簡言之,基礎結構給出了用于定義建模語言的核心構造物,上層結構定義了建模語言——UML,對象約束語言用于以精確的方式描述基礎結構、上層結構以及用戶建立的模型中的查詢表達式和約束,圖交換規定了如何定義用于數據交換的XML文件的格式。

可見UML 2.4不僅僅適用于軟件系統建模,其中還包含了大量的用于定義自身的元素。關心如何構造建模語言以及開發建模工具的讀者要掌握上述的四個部分;關心對應用系統建模的讀者應該掌握上層結構部分,至少要掌握主要建模元素的定義,如果需要在模型中精確地定義查詢表達式和約束,還要掌握對象約束語言。

盡管UML已經得到了廣泛應用,但它還存在不少缺點。對于以前的UML 1.x,來自學術界的主要批評是其語法和語義不夠嚴格;來自產業界的主要批評是它的內容過于龐大,概念過于復雜。至今UML已經開始了版本2.x的發展,目前的UML 2.4就比以前的版本有了顯著的改進和提高,然而仍有不少問題沒有得到令人滿意的解決。特別是,它的復雜性不但沒有如人們的期望那樣得到控制,反而比以往更為龐大和復雜。對于UML存在的問題以及解決方法的深入討論,請參閱文獻[17]和[18]。

針對龐大且復雜的UML,本書的原則是采用其中的在面向對象建模中常用的概念和表示法,并梳理出清楚的語義。

下面就UML 2.4對面向對象建模的支持而言,對UML 2.4支持的14種模型圖予以簡介,見圖1-9。

圖1-9 UML 2.4中的圖的種類以及其間的關系

UML 2.4支持的模型圖在邏輯上分為兩大類:結構圖(structure diagram)和行為圖(behavior diagram)。

結構圖用于對系統的靜態方面建模。結構圖分為:

?類圖(class diagram)。它是描述系統中各個對象的類型以及其間存在的各種關系的圖。

?組合結構圖(composite structure diagram)。它是描述類和構件的內部結構的圖,其中包括與系統其他部分的交互點。

?構件圖(component diagram)。它是描述構件的組織結構和相互關系的圖,用于表達如何在實現時把系統元素組織成構件,從而支持以構件為單位進行軟件制品的實現和發布。

?部署圖(deployment diagram)。它是描述節點、節點間的關系以及構件和節點間的部署關系的圖。

?對象圖(object diagram)。它是描述在某一時刻一組對象以及它們之間的關系的圖。

?包圖(package diagram)。它是描繪模型元素分組(包)以及分組之間依賴的圖。

?剖面圖(profile diagram)。它是在UML 2.4的基礎上定義新建模元素的圖,用以增加新的建模能力。

行為圖用于對系統的動態方面建模。行為圖分為:

?活動圖(activity diagram)。它是描述活動、活動的執行順序以及活動的輸入與輸出的圖。

?用況圖(use case diagram)。它是描述一組用況和參與者以及它們之間的關系的圖。

?狀態機圖(state machine diagram)。它是描述一個對象或其他實體在其生命周期內所經歷的各種狀態以及狀態變遷的圖。

?交互圖(interaction diagram)。它是順序圖、交互概覽圖、通信圖和定時圖的統稱。

?順序圖(sequence diagram)。它是描述一組角色和由扮演這些角色的實例發送和接收的消息的圖。

?交互概覽圖(interaction overview diagram)。它是以一種活動圖的變種來描述交互的圖,它關注于對控制流的概覽,其中控制流的每個節點都可以是一個交互圖。

?通信圖(communication diagram)。它是描述一組角色、這些角色間的連接件以及由扮演這些角色的實例所收發的消息的圖。

?定時圖(timing diagram)。它是描述在線性時間上對象的狀態或條件變化的圖。

主站蜘蛛池模板: 剑阁县| 龙陵县| 达孜县| 开封市| 濮阳县| 泰州市| 敖汉旗| 麻栗坡县| 阿坝县| 东莞市| 祁连县| 祥云县| 万年县| 陈巴尔虎旗| 桐庐县| 娄烦县| 永胜县| 满洲里市| 罗甸县| 枞阳县| 宕昌县| 尉氏县| 罗田县| 英吉沙县| 邵阳市| 南漳县| 灵川县| 保靖县| 陆河县| 武隆县| 黎平县| 新竹县| 高平市| 牡丹江市| 乐清市| 图片| 平泉县| 额尔古纳市| 塔城市| 南涧| 绵阳市|