UML基礎(chǔ)知識
UML簡介
在80年代末至90年代中,對面向?qū)ο蠓治雠c設(shè)計方法的研究發(fā)展到一個高潮。但是,諸多流派在思想和術(shù)語上有很多不同的提法,在術(shù)語、概念上的運(yùn)用也各不相同,需要一種統(tǒng)一的符號來描述面向?qū)ο蟮姆治龊驮O(shè)計活動。UML應(yīng)運(yùn)而生。它不僅統(tǒng)一了Booch、Rumbaugh和Jacobson的表示方法,而且有進(jìn)一步的發(fā)展,最終成為大眾所共同接受的標(biāo)準(zhǔn)建模語言。統(tǒng)一建模語言(UML)是一個通用的可視化建模語言,用于對軟件進(jìn)行描述、可視化處理、構(gòu)造和建立軟件系統(tǒng)制品的文檔。它記錄了對必須構(gòu)造的系統(tǒng)的決定和理解,可用于對系統(tǒng)的理解、設(shè)計、瀏覽、配置、維護(hù)和信息控制。UML適用于各種軟件開發(fā)方法、軟件生命周期的各個階段、各種應(yīng)用領(lǐng)域以及各種開發(fā)工具,UML 是一種總結(jié)了以往建模技術(shù)的經(jīng)驗并吸收當(dāng)今優(yōu)秀成果的標(biāo)準(zhǔn)建模方法。它融入了軟件工程領(lǐng)域的新思想、新方法和新技術(shù)。不僅支持面向?qū)ο蟮姆治雠c設(shè)計,還支持從需求分析開始的軟件開發(fā)全過程。
UML模型、視圖、圖
UML的概念和模型可以分成以下幾個概念域:靜態(tài)結(jié)構(gòu)、動態(tài)行為、實現(xiàn)構(gòu)造、模型組織、擴(kuò)展機(jī)制
主要的域
|
視圖
|
圖
|
主要概念
|
靜
態(tài)
結(jié)
構(gòu)
|
靜態(tài)視圖
|
類圖
|
類、關(guān)聯(lián)、泛化、依賴關(guān)系、實現(xiàn)、接口
|
用例視圖
|
用例圖
|
用例、參與者、關(guān)聯(lián)、擴(kuò)展、包括、用例泛化
|
實現(xiàn)視圖
|
構(gòu)件圖
|
構(gòu)件、接口、依賴關(guān)系、實現(xiàn)
|
部署視圖
|
部署圖
|
節(jié)點(diǎn)、構(gòu)件、依賴關(guān)系、位置
|
動
態(tài)
|
狀態(tài)視圖
|
狀態(tài)圖
|
狀態(tài)、事件、轉(zhuǎn)換、動作、
|
行
|
活動視圖
|
活動圖
|
狀態(tài)、活動、完成轉(zhuǎn)換、分叉、結(jié)合
|
為
|
交互視圖
|
順序圖
|
交互、對象、消息、激活
|
|
|
協(xié)作圖
|
協(xié)作、交互、協(xié)作角色、消息
|
模型管理
|
模型管理視圖
|
類圖
|
包、子系統(tǒng)、模型
|
擴(kuò)展機(jī)制
|
所有
|
所有
|
約束、構(gòu)造型、標(biāo)記值
|
靜態(tài)視圖
1、 類元
類元是模型中的離散概念,擁有身份、狀態(tài)、行為和關(guān)系。有幾種類元包括類、接口和數(shù)據(jù)類型。其他幾種類元是行為概念、環(huán)境事物、執(zhí)行結(jié)構(gòu)的具體化。這些類元中包括用例、參與者、構(gòu)件、節(jié)點(diǎn)和子系統(tǒng)。圖列出了幾種類元和它們的功能。元模型術(shù)語類元中包括了所有這些概念。
類元
|
功能
|
表示法
|
參與者
|
系統(tǒng)的外部用戶
|

|
類
|
類代表了被建模的應(yīng)用領(lǐng)域中的離散概念。
最重要的特性是多重性
|

|
狀態(tài)類
|
局限于某個給定狀態(tài)的類
|

|
類元角色
|
在合作中局限于某個使用的類元
|

|
構(gòu)件
|
系統(tǒng)的一個物理組成單元
|

|
|
|
|
接口
|
刻劃行為特征的操作命名集.
|

|
節(jié)點(diǎn)
|
計算資源
|

|
信號
|
對象間的異步通信
|

|
子系統(tǒng)
|
作為且有規(guī)范、實現(xiàn)和身份的單元的包
|

|
用例
|
與外界代理交互中的實體行為說明
|

|
2、類元之間關(guān)系
類元之間的關(guān)系有關(guān)聯(lián)、泛化、各種形式的依賴關(guān)系,包括實現(xiàn)關(guān)系和使用關(guān)系。
關(guān)聯(lián):對象通常要和其他對象發(fā)生關(guān)聯(lián),關(guān)聯(lián)可以具有多層形式。多重性問題(一對一、一對多)。在UML中關(guān)聯(lián)用一條直線來表示。
泛化:一個類繼承了其他類的屬性和操作。在UML中泛化用“從之類畫一條帶空心三角形箭頭的連線指向父類”來表示。
依賴:一個類使用了另一個類。在UML中依賴用“從依賴類到被依賴的帶箭頭的虛線”表示。
聚集是關(guān)聯(lián)的一種,聚集對象由部分對象組成。也就是整體與部分關(guān)聯(lián)。在UML中用“整體和部分之間用帶空心菱形箭頭的連線連接”來表示。
組合是一種特殊的聚集,在一個組合對象中,部分對象只能作為組合對象的一部分與組合對象同時存在。在UML中用“整體和部分之間用帶實心菱形箭頭的連線連接”來表示。
實現(xiàn):類和接口之間的關(guān)系被稱為實現(xiàn)。在UML中實現(xiàn)關(guān)系用一個帶空心三角形箭頭加虛線來表示,箭頭指向接口。
關(guān)系的種類
關(guān)系
|
功能
|
表示法
|
關(guān)聯(lián)
|
類實例之間連接的描述
|

|
依賴
|
兩個模型元素間的關(guān)系
|

|
泛化
|
更概括的描述和更具體的種類間的關(guān)系,適用于繼承
|

|
實現(xiàn)
|
說明和實現(xiàn)間的關(guān)系
|

|
聚集
|
聚集對象由部分對象組成。也就是整體與部分關(guān)聯(lián)。
|

|
組合
|
一種特殊的聚集.
|

|
圖舉例:

關(guān)聯(lián)

依賴

限定關(guān)聯(lián)

聚集和組成

泛化

實現(xiàn)關(guān)系
用例視圖
當(dāng)用例視圖在外部用戶前出現(xiàn)時,它捕獲到系統(tǒng)、子系統(tǒng)或類的行為。它將系統(tǒng)功能劃分成對參與者(即系統(tǒng)的理想用戶)有用的需求。而交互功能部分被稱作用例。用例使用系統(tǒng)與一個或多個參與者之間的一系列消息來描述系統(tǒng)中的交互作用。參與者可以是人,也可以是外部計算機(jī)系統(tǒng)和外部進(jìn)程。
用例之間的關(guān)系:關(guān)聯(lián)、擴(kuò)展、泛化、包含。
關(guān)系
|
功能
|
表示法
|
關(guān)聯(lián)
|
參與者與其參與執(zhí)行的用例之間的通信途徑
|

|
擴(kuò)展
|
在基礎(chǔ)用例上插入基礎(chǔ)用例不能說明的擴(kuò)展部分
|

|
泛化
|
用例之間的一般和特殊關(guān)系,其中特殊用例繼承了一般用例的特性并增加了新的特性
|

|
包含
|
在基礎(chǔ)用例上插入附加的行為,并且具有明確的描述
|

|
圖舉例:

用例圖
用例關(guān)系圖
交互視圖
交互視圖描述了執(zhí)行系統(tǒng)功能的各個角色之間相互傳遞消息的順序關(guān)系。類元是對在系統(tǒng)內(nèi)交互關(guān)系中起特定作用的一個對象的描述,這使它區(qū)別于同類的其他對象。交互視圖顯示了跨越多個對象的系統(tǒng)控制流程。交互視圖可用兩種圖來表示:順序圖和協(xié)作圖,它們各有不同的側(cè)重點(diǎn)。協(xié)作圖也展示對象之間的交互關(guān)系,強(qiáng)調(diào)交互的語境和參與交互的對象的整體組織。協(xié)作圖按照空間組織布圖,而順序圖按照時間順序布圖。

順序圖

協(xié)作圖
狀態(tài)視圖
狀態(tài)視圖是一個類對象所可能經(jīng)歷的所有歷程的模型圖。狀態(tài)圖由對象的各個狀態(tài)和連接這些狀態(tài)的轉(zhuǎn)換組成。狀態(tài)圖是對單個對象的“放大”,它說明對象所經(jīng)歷的狀態(tài)變化。強(qiáng)調(diào)單個對象內(nèi)狀態(tài)的變化。

狀態(tài)圖
活動視圖
活動圖是狀態(tài)圖的一個變體,用來描述執(zhí)行算法的工作流程中涉及的活動。活動狀態(tài)代表了一個活動:一個工作流步驟或一個操作的執(zhí)行。活動圖描述了一組順序的或并發(fā)的活動。活動視圖用活動圖來體現(xiàn)。活動圖很像流程圖,它顯示出工作步驟,判定點(diǎn)和分支。可用于表達(dá)一個對象的操作和一個業(yè)務(wù)過程。

活動圖
物理視圖
物理視圖對應(yīng)用自身的實現(xiàn)結(jié)構(gòu)建模,例如系統(tǒng)的構(gòu)件組織和建立在運(yùn)行節(jié)點(diǎn)上的配置。這類視圖提供了將系統(tǒng)中的類映射成物理構(gòu)件和節(jié)點(diǎn)的機(jī)制。物理視圖有兩種:構(gòu)件圖和部署視圖。

構(gòu)件圖

部署圖
模型管理視圖
模型管理視圖對模型自身組織建模。一系列由模型元素(如類、狀態(tài)機(jī)和用例)構(gòu)成的包組成了模型。一個包(package)可能包含其他的包,因此,整個模型實際上可看成一個根包,它間接包含了模型中的所有內(nèi)容。包是操作模型內(nèi)容、存取控制和配置控制的基本單元。每一個模型元素包含于包中或包含于其他模型元素中。

包
擴(kuò)展機(jī)制
UML
提供了幾種擴(kuò)展機(jī)制,允許建模者在不用改變基本建模語言的情況下做一些通用的擴(kuò)展。這些擴(kuò)展機(jī)制已經(jīng)被設(shè)計好,以便于在不需理解全部語義的情況下就可以存
儲和使用。由于這個原因,擴(kuò)展可以作為字符串存儲和使用。對不支持?jǐn)U展機(jī)制的工具來說,擴(kuò)展只是一個字符串,它可以作為模型的一部分被導(dǎo)入、存儲,還可以
被傳遞到其他工具。我們期望后端工具設(shè)計成能夠處理各種擴(kuò)展,這些工具會為它們需要理解的擴(kuò)展定義特定的語法和語義。擴(kuò)展機(jī)制包括約束、標(biāo)記值和構(gòu)造型。
約束是用文字表達(dá)式表示的語義限制。

約束
標(biāo)記值是一對字符串—一個標(biāo)記字符串和一個值字符串—存儲著有關(guān)元素的一些信息。標(biāo)記值可以與任何獨(dú)立元素相關(guān),包括模型元素和表達(dá)元素。標(biāo)記是建模者想要記錄的一些特性的名字,而值是給定元素的特性的值。例如,標(biāo)記可以是author,而值是對元素負(fù)責(zé)的人的名字,如Charles Babbage。

標(biāo)記值
構(gòu)
造型是在一個已定義的模型元素的基礎(chǔ)上構(gòu)造的一種新的模型元素。構(gòu)造型的信息內(nèi)容和形式與已存在的基本模型元素相同,但是含義和使用不同。例如,商業(yè)建模
領(lǐng)域的建模者希望將商業(yè)對象和商業(yè)過程作為特殊的建模元素區(qū)別開來,這些元素的使用在特定的開發(fā)過程中是不同的。它們可以被看作特殊的類—它們有屬性和操
作,但是在它們與其他元素的關(guān)系上和它們的使用上有特殊的約束。

構(gòu)造型
各種圖匯總

posted on 2011-04-27 14:24
黑色天使 閱讀(1238)
評論(0) 編輯 收藏 引用 所屬分類:
軟件工程