第2講 UML概述課件_第1頁
第2講 UML概述課件_第2頁
第2講 UML概述課件_第3頁
第2講 UML概述課件_第4頁
第2講 UML概述課件_第5頁
已閱讀5頁,還剩93頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、2022/7/251第2講 UML概述2022/7/252內(nèi)容UML歷史什么是UMLUML與軟件體系結(jié)構(gòu)UML構(gòu)成1. UML歷史2022/7/2541.1 UML產(chǎn)生與發(fā)展面向?qū)ο蟮姆治雠c設(shè)計(jì)(OOAD)方法的發(fā)展在80年代末至90年代中出現(xiàn)了一個(gè)高潮.UML是這個(gè)高潮的產(chǎn)物。它不僅統(tǒng)一了Booch、Rumbaugh和Jacobson的表示方法,而且對其作了進(jìn)一步的發(fā)展,并最終統(tǒng)一為大眾所接受的標(biāo)準(zhǔn)建模語言。2022/7/25570年代中期,公認(rèn)的面向?qū)ο笤O(shè)計(jì)語言出現(xiàn)。從1989年到1994年,其數(shù)量從不到十種增加到了五十多種。Booch86,GOOD(通用面向?qū)ο蟮拈_發(fā)),HOOD(層次式

2、面向?qū)ο蟮脑O(shè)計(jì))、OOSD(面向?qū)ο蟮慕Y(jié)構(gòu)設(shè)計(jì))等一批OOD(面向?qū)ο蟮脑O(shè)計(jì)或面向?qū)ο蟮拈_發(fā)的縮寫)截至1994年,公開發(fā)表并具有一定影響的OOA&D方法已達(dá)50多種。2022/7/256Rational公司的G.Booch和J.Rumbaugh決定將他們各自的方法結(jié)合起來成為一種方法。1995年10月發(fā)布了第一個(gè)版本,稱作統(tǒng)一方法(Unified Method 0.8)OOSE的作者I. Jacobson也加入了公司,于是也加入了統(tǒng)一行動,發(fā)布了第二個(gè)版本UML0.9鑒于統(tǒng)一行動的產(chǎn)物是一種建模語言,而不是一種建模方法,因此稱為統(tǒng)一建模語言在此過程中,Rational公司發(fā)起成立了UML伙伴

3、組織,開始時(shí)有12家參加,共同推出了UML1.0版,并在1997年1月提交給OMG把其他幾家分頭向OMG提交提案的公司納入進(jìn)來,推出了UML1.1版,在1997年11月4日被OMG采納2. 什么是UML?2022/7/2582.1 概述UML(統(tǒng)一建模語言)是為軟件系統(tǒng)的制品進(jìn)行描述(specifying)、可視化(visualizing)、構(gòu)造(constructing)、文檔化(documenting)的一種語言。它同樣適用于商業(yè)模塊和其他非軟件系統(tǒng)。在大型和復(fù)雜系統(tǒng)的建模中,UML成功地描述一些優(yōu)秀的工程實(shí)施。2022/7/259 OOAD 最關(guān)心流程與元素 1. 描述流程(劇情) -

4、分析 2. 安排主/配角(元素)演出 - 設(shè)計(jì)2022/7/2510 OOAD 最主要的工具 UML(Unified Modeling Language) OMG 認(rèn)可的世界標(biāo)準(zhǔn) 19972022/7/2511 為什么需要 UML 呢? 貝多芬作曲時(shí)使用五線譜您設(shè)計(jì)軟件時(shí)使用UML2022/7/2512 Use Case 敘述 曹操舉兵南下, 西蜀就擬定策略,展開部署並聯(lián)絡(luò)孫權(quán),鼎力對抗曹操大軍.曹操西蜀孫權(quán)西蜀 把西蜀看成黑箱 ! 準(zhǔn)備打開西蜀黑箱2022/7/2513 Scenario 敘述 曹操赤壁之戰(zhàn)孫權(quán) 把西蜀黑箱打開 ! 劉備關(guān)羽孔明張飛2022/7/2514 Scenario 敘

5、述 曹操赤壁之戰(zhàn)孫權(quán)劉備關(guān)羽孔明張飛 曹操舉兵南下, 劉備請孔明擬定策略. 派遣關(guān)羽和張飛防守荊州,同時(shí)請孔明聯(lián)絡(luò)孫權(quán),共同對抗曹操. 孔明聯(lián)合孫權(quán),借東風(fēng),火燒曹軍于赤壁.2022/7/2515 Scenario 敘述 使用UML 表示之2022/7/2516 Scenario 敘述 劉備孔明關(guān)羽求戰(zhàn)請擬定策略張飛請防守荊州請防守荊州前線孫權(quán)曹操請聯(lián)絡(luò)孫權(quán)請孫權(quán)領(lǐng)兵相助借東風(fēng)火攻火攻曹軍2022/7/2517劉備的責(zé)任? 劉備求戰(zhàn)請擬定策略請防守荊州請聯(lián)絡(luò)孫權(quán)我必需 迎戰(zhàn)曹操!2022/7/2518使用UML表示 - 類圖 劉備求戰(zhàn)劉備迎戰(zhàn)曹操迎戰(zhàn)曹操迎戰(zhàn)曹操迎戰(zhàn)曹操迎戰(zhàn)曹操迎戰(zhàn)曹操2022

6、/7/2519使用UML表示 孔明請擬定策略請聯(lián)絡(luò)孫權(quán)請孫權(quán)領(lǐng)兵相助借東風(fēng)火攻火攻曹軍孔明擬定策略聯(lián)合孫權(quán)借東風(fēng)火攻2022/7/2520使用UML表示 關(guān)羽張飛請防守荊州請防守荊州前線關(guān)羽防守荊州張飛防守荊州前線2022/7/2521 關(guān)羽防守荊州張飛防守荊州前線劉備迎戰(zhàn)曹操孔明擬定策略聯(lián)合孫權(quán)借東風(fēng)火攻UML的Class圖 您已熟悉Use CaseSequence圖Class 圖現(xiàn)在準(zhǔn)備進(jìn)入OOP 階段2022/7/25223. 認(rèn)識 OOP OOP 階段的任務(wù) - 銜接OOAD 的工作- 從UML 到 Visual Basic- 從Visual Basic 到 COM 組件2022/7/

7、2523 使用Visual Basic 劉備迎戰(zhàn)曹操寫VB程序Class 劉備Sub 迎戰(zhàn)曹操() End Sub2022/7/2524 孔明擬定策略聯(lián)合孫權(quán)借東風(fēng)火攻使用Visual Basic 寫VB程序Class 孔明Function 擬定策略() End FunctionSub 聯(lián)合孫權(quán)() End SubSub 借東風(fēng)火攻() End Sub2022/7/2525Class 劉備Sub 迎戰(zhàn)曹操() End Sub使用Visual BasicClass 孔明Function 擬定策略() End FunctionSub 聯(lián)合孫權(quán)() End SubSub 借東風(fēng)火攻() End Su

8、bClass 關(guān)羽Sub 防守荊州() End SubClass 張飛Sub 防守前線() End Sub依樣畫葫蘆準(zhǔn)備填寫 Sub內(nèi)容2022/7/2526 寫VB程序內(nèi)容 劉備求戰(zhàn)請擬定策略請防守荊州請聯(lián)絡(luò)孫權(quán)寫VB程序Class 劉備Dim k As New 孔明Dim g as New 關(guān)羽Sub 迎戰(zhàn)曹操() k.擬定策略 g.防守荊州 k.聯(lián)合孫權(quán)End Sub2022/7/2527寫VB程序內(nèi)容 孔明請擬定策略請聯(lián)絡(luò)孫權(quán)請孫權(quán)領(lǐng)兵相助借東風(fēng)火攻借東風(fēng)火攻寫VB程序Class 孔明Dim s As 孫權(quán)Function 擬定策略() End FunctionSub 聯(lián)合孫權(quán)() s

9、.請領(lǐng)兵相助 s.借東風(fēng)火攻End SubSub 借東風(fēng)火攻() End Sub2022/7/2528 寫VB代碼 Class 劉備Dim k As New 孔明Dim g as New 關(guān)羽Sub 迎戰(zhàn)曹操() k.擬定策略 g.防守荊州 k.聯(lián)合孫權(quán)End SubClass 孔明Dim s As 孫權(quán)Function 擬定策略() End FunctionSub 聯(lián)合孫權(quán)() s.請領(lǐng)兵相助 s.借東風(fēng)火攻End SubSub 借東風(fēng)火攻() End Sub2022/7/2529 寫VB代碼 把VB類編譯為COM組件3. UML支持軟件體系結(jié)構(gòu)建模2022/7/25313.1 軟件體系結(jié)構(gòu)

10、為了表達(dá)不同的軟件開發(fā)相關(guān)人員在軟件開發(fā)周期的不同時(shí)期看待軟件產(chǎn)品的不同側(cè)重面, 需要對模型進(jìn)行分層。UML根據(jù)軟件產(chǎn)品的體系結(jié)構(gòu)(architecture)對軟件進(jìn)行分層軟件體系結(jié)構(gòu)由一系列的決定組成, 這些決定定義了如下內(nèi)容:軟件系統(tǒng)的組織;構(gòu)成軟件系統(tǒng)的結(jié)構(gòu)元素的結(jié)構(gòu)及它們之間的接口;結(jié)構(gòu)元素的行為及元素之間的協(xié)同(collaboration)結(jié)構(gòu)元素的不斷組合以構(gòu)成日漸完備的子系統(tǒng)的過程指導(dǎo)軟件建造過程的軟件構(gòu)筑風(fēng)格(architectural style)靜態(tài)和動態(tài)元素之間的接口、協(xié)同、構(gòu)成(composition)。 2022/7/2532軟件體系結(jié)構(gòu)不僅僅決定軟件的結(jié)構(gòu)和行為,

11、而且還決定軟件的:用途功能性能應(yīng)變性(resilience)可重用性經(jīng)濟(jì)和技術(shù)方面的限制和折衷以及美學(xué)考慮(aesthetic concern) 2022/7/25333.2 體系結(jié)構(gòu)的視圖UML將軟件的體系結(jié)構(gòu)分解為五個(gè)不同的側(cè)面,稱為視圖(view)。分別是:用例視圖(Use case view)設(shè)計(jì)視圖(design view)進(jìn)程視圖(process view)實(shí)現(xiàn)視圖(implementation view)分布視圖(deployment view)設(shè)計(jì)視圖和進(jìn)程視圖又可被統(tǒng)一稱為邏輯視圖(logical view)。2022/7/2534設(shè)計(jì)視圖實(shí)現(xiàn)視圖進(jìn)程視圖分布視圖用例視圖動態(tài)

12、行為設(shè)計(jì)詞匯、功能描述系統(tǒng)組裝、配置管理性能、穩(wěn)定性、吞吐率系統(tǒng)拓?fù)?、分布、分發(fā)、安裝2022/7/2535每個(gè)視圖分別關(guān)注軟件開發(fā)的某一側(cè)面視圖由一種或多種模型圖(diagram)構(gòu)成模型圖描述了構(gòu)成相應(yīng)視圖的基本模型元素(element)及它們之間的相互關(guān)系。2022/7/25363.3 用例視圖(use case view)用例視圖用來支持軟件系統(tǒng)的需求分析,它定義系統(tǒng)的邊界,關(guān)注的是系統(tǒng)的外部功能的描述。它從系統(tǒng)的使用者的角度,描述系統(tǒng)的外部的靜態(tài)的功能動態(tài)行為系統(tǒng)的動態(tài)功能由UML以下模型圖描述:交互圖(interaction diagram)狀態(tài)圖(state-chart diag

13、ram)活動圖(activity diagram)2022/7/25373.4 邏輯視圖(Logical View)邏輯視圖定義系統(tǒng)的實(shí)現(xiàn)邏輯, 描述為實(shí)現(xiàn)用例圖描述的功能,在對軟件系統(tǒng)進(jìn)行設(shè)計(jì)時(shí), 所產(chǎn)生的設(shè)計(jì)概念,設(shè)計(jì)概念又稱為軟件系統(tǒng)的設(shè)計(jì)詞匯 (vocabulary)。邏輯視圖定義了:設(shè)計(jì)詞匯的邏輯結(jié)構(gòu)存在于它們之間的語義聯(lián)系設(shè)計(jì)詞匯包括系統(tǒng)的類/協(xié)同/接口及其關(guān)系對邏輯視圖的描述在原則上與軟件系統(tǒng)的實(shí)現(xiàn)平臺無關(guān)。 它相當(dāng)于電子產(chǎn)品生產(chǎn)中的電原理圖。邏輯視圖包含的模型圖有: 類圖(class diagrams)對象圖(object diagrams)交互圖(interaction di

14、agrams)狀態(tài)圖(state-chart diagrams)活動圖(activity diagrams) 2022/7/25383.5 實(shí)現(xiàn)視圖(implementation view)當(dāng)系統(tǒng)的邏輯結(jié)構(gòu)在邏輯視圖里被定義之后, 需要定義邏輯結(jié)構(gòu)的物理實(shí)現(xiàn)。這包括:設(shè)計(jì)元素對應(yīng)的源代碼文件各物理文件之間的關(guān)系、存放路徑,等等實(shí)現(xiàn)視圖就是定義這些內(nèi)容的地方,它當(dāng)于電子產(chǎn)品的印刷電路板的布線圖2022/7/2539實(shí)現(xiàn)視圖描述組成一個(gè)軟件系統(tǒng)的各個(gè)物理部件,這些部件以各種方式組合起來,(如: 不同的源代碼經(jīng)過編譯,構(gòu)成一個(gè)可執(zhí)行系統(tǒng); 或者不同的軟件組件配置成為一個(gè)可執(zhí)行系統(tǒng);以及不同的網(wǎng)頁文件

15、,以特定的目錄結(jié)構(gòu),組成一個(gè)網(wǎng)站,等等) 構(gòu)成了一個(gè)可實(shí)際運(yùn)行的系統(tǒng)。實(shí)現(xiàn)視圖包含的模型圖有:部件圖(Component diagram)交互圖(Interaction Diagram)狀態(tài)圖(state-chart diagram)活動圖(activity diagram)2022/7/25403.6 分布視圖(Deployment View)軟件產(chǎn)品將運(yùn)行在計(jì)算機(jī)硬件系統(tǒng)上, 如果軟件產(chǎn)品是面向網(wǎng)絡(luò)的應(yīng)用系統(tǒng),則有可能同時(shí)運(yùn)行在多個(gè)計(jì)算機(jī)上。分布視圖用來描述軟件產(chǎn)品在計(jì)算機(jī)硬件系統(tǒng)和網(wǎng)絡(luò)上的安裝、分發(fā)(delivery)、分布(distribution)在分布視圖中,系統(tǒng)的靜態(tài)特性用分布圖

16、(deployment diagram)描述動態(tài)特性的描述用交互圖(interaction diagram)狀態(tài)圖(state-chart diagram)活動圖(activity diagram)4. UML構(gòu)成2022/7/25424.1 UML基本構(gòu)成從軟件的體系結(jié)構(gòu)出發(fā),UML把軟件模型分成了五個(gè)視圖,每個(gè)視圖由不同的模型圖構(gòu)成:模型圖實(shí)際上就是UML的基本成員之一作為UML的完整的概念模型, UML的構(gòu)成為:UML = UML成員 + UML建模規(guī)則2022/7/2543UML建模規(guī)則:相當(dāng)于建模語言的語法 UML成員(building blocks of the UML)它是UML

17、的基本組成部分UML成員可進(jìn)一步劃分為UML 基本模型元素(things in UML)關(guān)系(relationship)模型圖(diagram) UML成員 = UML 基本模型元素+ 關(guān)系+ 模型圖 4.1.1 UML基本元素UML成員 = UML 基本模型元素+ 關(guān)系+ 模型圖2022/7/2545 概述UML基本模型元素,類似于電子產(chǎn)品電原理圖里的集成電路符號,是模型圖上包含的基本符號基本模型元素可分為四類, 它們是:結(jié)構(gòu)模型元素(structural things)行為模型元素(behavioral things)分組模型元素(grouping things)注解元素(annotati

18、onal things)UML基本模型元素 = 結(jié)構(gòu)模型元素+行為模型元素+成組元素+注解元素 2022/7/2546 結(jié)構(gòu)模型元素結(jié)構(gòu)模型元素(基礎(chǔ)包)是UML模型里的名詞(noun),是模型的靜態(tài)組成部分,代表軟件系統(tǒng)的概念的, 或物理的存在。例如:類(class)是最常用的一個(gè)結(jié)構(gòu)模型元素,代表一系列共享同樣的屬性(attributes),操作(operation),關(guān)系、語義的對象(object)。2022/7/2547結(jié)構(gòu)模型元素一共有七種,它們是:類接口( interface)協(xié)同用例(use case)主動類(active class)組件(component)節(jié)點(diǎn)(node)在

19、這些結(jié)構(gòu)元素中,最常用的包括類、用例、接口、組件等2022/7/2548 行為模型元素行為模型元素(behavioral things)(行為元素包)是UML模型的動態(tài)組成部分,它是模型的動詞,代表軟件系統(tǒng)在空間和時(shí)間上的行為行為模型元素包括兩類: 交互(interaction)狀態(tài)機(jī)(state machine)行為模型元素 = 交互+ 狀態(tài)機(jī)2022/7/2549交互是系統(tǒng)內(nèi)一系列的對象之間互相交換消息的行為。消息代表軟件系統(tǒng)內(nèi)兩個(gè)對象中一個(gè)對象向另一個(gè)對象發(fā)出的執(zhí)行某種操作的請求。交互描述了一系列的對象為完成某一項(xiàng)任務(wù)而聯(lián)合采取的一系列的行動,其中包括這些行動在時(shí)間上的順序,以及為執(zhí)行這

20、些動作序列,對象之間所發(fā)生的語義上的聯(lián)系。所以,消息是描述交互的一個(gè)重要手段。在模型圖上,消息被表示為一個(gè)箭頭 2022/7/2550狀態(tài)機(jī):狀態(tài)機(jī)是描述一個(gè)對象的動態(tài)特性的有效手段它描述的是對象在其生命周期內(nèi),在響應(yīng)外界的事件的過程中,自身的狀態(tài)的變化過程。狀態(tài)機(jī)包括:對象狀態(tài)事件由事件引起的狀態(tài)之間的變遷以及變遷發(fā)生的同時(shí)對象所執(zhí)行的動作2022/7/2551 成組模型元素分治的原則:在為復(fù)雜的軟件系統(tǒng)建模的時(shí)候,將大的問題分解為多個(gè)子問題分別描述和解決。UML提供了支持分治原則的語言成份,成組模型元素(grouping things)(模型管理包)成組模型元素只有一類,即模型包(pack

21、age)。模型包一個(gè)通用的手段, 用來組織多種語言成份,其中可包含:結(jié)構(gòu)模型元素行為模型元素成組模型元素自身都可以置于模型包中。模型包是純概念性的,只存在于軟件系統(tǒng)的開發(fā)階段2022/7/2552 注解模型元素注解大量存在于機(jī)械圖和電子線路圖中,被用來標(biāo)示產(chǎn)品的工藝要求,等等UML中,也存在著相似的語言成分,這就是:注解元素(annotation things)注解元素只有一種,即標(biāo)注(note)標(biāo)注用來描述施加于一個(gè)或多個(gè)模型元素的限制,或?qū)δP驮氐恼Z義加以說明標(biāo)注的圖形表示:一個(gè)折了角的長方形在長方形中寫標(biāo)注的內(nèi)容。標(biāo)注的內(nèi)容可以是形式的文本, 或非形式的文本也可以是圖形。4.1.2 關(guān)

22、系UML成員 = UML 基本模型元素+ 關(guān)系+ 模型圖2022/7/2554結(jié)構(gòu)模型元素是UML模型的靜態(tài)組成部分,靜態(tài)組成部分不是孤立存在的,它們被組合在一起互相協(xié)作以完成某項(xiàng)任務(wù)。因此,結(jié)構(gòu)模型元素之間存在著某種語義上的聯(lián)系。在UML中,這種聯(lián)系是關(guān)系(relationship)UML中共有4種關(guān)系,它們是:關(guān)聯(lián)關(guān)系(association)依賴關(guān)系(dependency)泛化關(guān)系(generalization)實(shí)現(xiàn)關(guān)系(realization) 4.1.3 模型圖UML成員 = UML 基本模型元素+ 關(guān)系+ 模型圖2022/7/2556 概述UML基本模型元素及其關(guān)系必須通過某種載體

23、表示,這種載體就是模型圖(diagram)在UML中,模型圖是一組UML基本模型元素的圖形表示,它通常由一組節(jié)點(diǎn)(UML基本模型元素), 及節(jié)點(diǎn)之間的連線(關(guān)系)組成軟件系統(tǒng)體系結(jié)構(gòu)的5個(gè)視圖的內(nèi)容, 就是用模型圖來表達(dá)的 一般地說,一個(gè)UML基本模型元素既可以出現(xiàn)在所有的模型圖中,又可以出現(xiàn)在某些模型圖中,甚至可以不在任何一個(gè)模型圖上出現(xiàn)2022/7/25579種UML模型圖。它們是:類圖對象圖用例圖序列圖協(xié)同圖狀態(tài)圖活動圖組件圖分布圖2022/7/2558 靜態(tài)結(jié)構(gòu)模型圖類圖包含類、接口、協(xié)同及其關(guān)系,它用來描述邏輯視圖的靜態(tài)屬性對象圖包含對象及其關(guān)系,它用來表示類圖的類的對象在系統(tǒng)運(yùn)行過

24、程中某一時(shí)刻的狀態(tài),對象也是軟件系統(tǒng)的邏輯視圖的一個(gè)組成部分 。組件圖描述系統(tǒng)的物理實(shí)現(xiàn),包括構(gòu)成軟件系統(tǒng)的各部件(運(yùn)行文件)的組織和關(guān)系,類圖里的類在實(shí)現(xiàn)時(shí)最終會映射到組件圖的某個(gè)組件。一個(gè)組件可以實(shí)現(xiàn)多個(gè)類。組件圖是軟件系統(tǒng)實(shí)現(xiàn)視圖的組成部分。分布圖描述系統(tǒng)的組件在運(yùn)行時(shí)在運(yùn)行節(jié)點(diǎn)上的分布,一個(gè)節(jié)點(diǎn)可包含一個(gè)或多個(gè)組件。分布圖是軟件系統(tǒng)分布視圖的組成部分。上述四種模型圖主要用來描述軟件系統(tǒng)的靜態(tài)結(jié)構(gòu)。2022/7/2559 動態(tài)特性模型圖描述軟件系統(tǒng)的動態(tài)特性的, 使用用例圖序列圖協(xié)同圖狀態(tài)圖活動圖2022/7/2560用例圖描述系統(tǒng)的邊界,和其上的動態(tài)行為,圖中包括:用例(use cas

25、e),系統(tǒng)作用者(actor)及其之間的(關(guān)聯(lián))關(guān)系。用例圖是用例視圖的重要組成部分。序列圖和協(xié)同圖用來描述一組對象之間的動態(tài)交互。以用來描述系統(tǒng)的動態(tài)特性、外部的動態(tài)特性、內(nèi)部的動態(tài)特性。狀態(tài)圖和活動圖用于描述對象的動態(tài)特性。狀態(tài)圖強(qiáng)調(diào)對象對外部事件的響應(yīng)及相應(yīng)的狀態(tài)變遷,活動圖描述對象之間控制流的轉(zhuǎn)換和同步機(jī)制。4.1.4 UML建模原則UML = UML成員 + UML建模規(guī)則2022/7/2562UML的模型圖不是UML語言成份(UML成員)的簡單堆砌,它必須按特定的規(guī)則有機(jī)地組合而成,從而構(gòu)成一個(gè)完備的UML模型圖。完備的UML模型圖(well-formed UML diagram)

26、必須在語義上是一致的,并且和一切和它相關(guān)的模型和諧地組合在一起。UML建模規(guī)則包括: 名字:任何一個(gè)UML成員都必須包含一個(gè)名字作用域:UML成員所定義的內(nèi)容起作用的上下文環(huán)境可見性:UML成員能被其它成員引用的方式完整性:UML成員之間互相聯(lián)接的合法性和一致性。運(yùn)行屬性(execution):UML成員在運(yùn)行時(shí)的特性。2022/7/2563完備的UML模型必須對以上的內(nèi)容給出完整的解釋, 當(dāng)用于軟件系統(tǒng)的建造時(shí),UML模型是必須是完備的, 但是當(dāng)模型在不同的視圖中出現(xiàn)時(shí), 出于不同的交流側(cè)重點(diǎn), 其表達(dá)可以是不完備的 4.2 公共機(jī)制2022/7/25654.2.1 概述在模型圖上對UML成

27、員進(jìn)行描繪時(shí),存在著共同的描繪方式,它們稱為:UML公共機(jī)制(UML common mechanism)使用這些公共機(jī)制,使得建模的過程易于掌握,模型易于被理解公共機(jī)制可被分解為四個(gè)方面的內(nèi)容:規(guī)格說明(Specification)通用劃分(Common Division)修飾(Adornment)擴(kuò)展機(jī)制(Extensibility)2022/7/25664.2.2 規(guī)格說明體現(xiàn)了UML規(guī)則的省略性原則模型圖省略某些對突出重點(diǎn)不重要的內(nèi)容但是軟件模型必須是完備的,以便于軟件系統(tǒng)的建造,意味著此模型必須具備足夠的詳細(xì)信息以供軟件建造之用,這些構(gòu)成一個(gè)完備模型的詳細(xì)信息就是模型的規(guī)格說明(spe

28、cification)所有UML模型元素都包含規(guī)格說明在模型圖上被省略的內(nèi)容并不代表它也不存在于模型之中,模型的完整的或完備的信息是被保存在模型的規(guī)格說明中的,而通常一個(gè)完備的模型全部內(nèi)容是通過多個(gè)模型圖表達(dá)出來的 2022/7/25674.2.3 通用劃分在面向?qū)ο蟮脑O(shè)計(jì)中,有許多事物可以劃分為抽象的描繪(class)和具體的實(shí)例UML提供了事物的這種兩分法(dichotomy)表達(dá)幾乎每種UML成員都有這種類/對象的兩分法劃分,通常對象和類使用同樣的圖符,在對象的名字下面加下劃線以示區(qū)別。還有一種兩分法是接口和實(shí)現(xiàn)的兩分法劃分,接口定義了一種協(xié)議,實(shí)現(xiàn)是此協(xié)議的實(shí)施。UML里這樣的接口/實(shí)

29、現(xiàn)兩分法劃分包括:接口/類或部件用例和協(xié)同操作和方法2022/7/25684.2.4 修飾和擴(kuò)展機(jī)制UML提供了一系列的圖形化的標(biāo)準(zhǔn)建模元素,可用于描述軟件系統(tǒng)的大多數(shù)側(cè)面的特性但也有可能在某些情形下,由于應(yīng)用領(lǐng)域特殊性,標(biāo)準(zhǔn)的UML建模元素, 無法完整而準(zhǔn)確地描述軟件系統(tǒng)的分析和設(shè)計(jì), 這時(shí),需要對UML的標(biāo)準(zhǔn)建模元素進(jìn)行擴(kuò)充, 以提高模型的表達(dá)能力UML的修飾和擴(kuò)展機(jī)制就是為這個(gè)目的而設(shè)置的 2022/7/2569 標(biāo)注標(biāo)注是UML修飾機(jī)制的一個(gè)重要組成部分當(dāng)用UML的各種建模元素為軟件系統(tǒng)建模時(shí),將遇到關(guān)于這些建模元素的復(fù)雜的語法、語義、原理、約束、注釋等,這些內(nèi)容對表達(dá)問題的某一方面很

30、重要,但又無法通過標(biāo)準(zhǔn)建模元素被完整地表達(dá)這時(shí),可以使用標(biāo)注對這些建模元素進(jìn)行附加說明,例如在使用序列圖來描述一組對象間的交互時(shí),其中的消息的語義、語法無法在消息的名字字串內(nèi)完整地表達(dá),可以用標(biāo)注的方法進(jìn)行直觀的說明。2022/7/2570對于類、模型包、部件等,也可能遇到類似的情形,因此也可以用標(biāo)注的方法進(jìn)行補(bǔ)充說明標(biāo)注的手段不是軟件建模獨(dú)有的,在其它工業(yè)建模領(lǐng)域,標(biāo)注也是大量存在的例如,在電子線路圖上,可以通過標(biāo)注對電路的電氣特性進(jìn)行說明。2022/7/2571標(biāo)注(Note)的定義:在UML中, 標(biāo)注被定義為UML的一個(gè)圖形表示,它用來描述對一個(gè)或一組UML建模元素的約束或注釋標(biāo)注可以作

31、用于任何UML建模元素(如:類、對象、關(guān)系、消息等),用于對此建模元素的各方面的特性作補(bǔ)充說明、表示設(shè)計(jì)分析過程中產(chǎn)生的假設(shè)和決定等標(biāo)注的內(nèi)容對被標(biāo)注的建模元素沒有任何語義上的影響,它只起到增強(qiáng)模型的可讀性的作用2022/7/2572UML對標(biāo)注的內(nèi)容不作任何限制,它可以是普通的文本,也可以是形式化的描述如果工具支持的話,標(biāo)注還可以包含網(wǎng)絡(luò)鏈接。標(biāo)注的內(nèi)容不宜過長。如果有很長的內(nèi)容需要通過標(biāo)注表達(dá)的話,可以把內(nèi)容存放在一個(gè)分開的文件內(nèi),在標(biāo)注內(nèi)則放置對此內(nèi)容的引用標(biāo)注的圖形化表示在UML里,標(biāo)注被圖形化為一個(gè)折角矩形矩形的內(nèi)部放置標(biāo)注的內(nèi)容,標(biāo)注和被標(biāo)注的建模元素之間用虛線連接一個(gè)標(biāo)注可以為多

32、個(gè)建模元素作標(biāo)注2022/7/2573位圖顯示: 工作原理見 doublebuffering.docCBmpViewerView(from bmpviewer)CBmpDblBuffering(from bmpviewer)1+m_pCBmpDblBuf1+m_pCBmpDblBuf0.110.11CBmpViewerDoc(from bmpviewer)CBmpViewerData(from bmpviewer)+m_pCBmpViewerData1111位圖文件, 格式參見 : http:這個(gè)類用于維護(hù)圖象的當(dāng)前狀態(tài)簡單文字對文件的引用網(wǎng)絡(luò)連接2022/7/2574 擴(kuò)展機(jī)制構(gòu)造型、標(biāo)記值

33、(tagged value)、約束(constraint)是UML擴(kuò)展機(jī)制的組成部分2022/7/2575(1)擴(kuò)展機(jī)制:構(gòu)造型UML已經(jīng)提供了標(biāo)準(zhǔn)的建模元素用于軟件系統(tǒng)的建模在對軟件系統(tǒng)進(jìn)行分析和設(shè)計(jì)時(shí),可以用這些建模元素對軟件系統(tǒng)的動態(tài)行為和靜態(tài)結(jié)構(gòu)進(jìn)行建模但在各種不同的應(yīng)用領(lǐng)域,往往有可能出現(xiàn)用現(xiàn)有的建模元素?zé)o法充分表達(dá)所需內(nèi)容的情況,這時(shí)需要在現(xiàn)有的建模元素的基礎(chǔ)上進(jìn)行擴(kuò)充,產(chǎn)生對特定建模問題特有的建模元素,這種建模元素就是構(gòu)造型2022/7/2576構(gòu)造型(stereotype)的定義在UML中, 構(gòu)造型(stereotype)被定義為是對UML詞匯(建模元素)的擴(kuò)充,用來描述和已有

34、的UML建模元素類似,但又對特定的問題領(lǐng)域有特殊意義的建模元素。當(dāng)在UML模型現(xiàn)有的標(biāo)準(zhǔn)建模元素的基礎(chǔ)上創(chuàng)建其構(gòu)造型時(shí),此構(gòu)造型就變成了一個(gè)新的UML建模元素,這個(gè)新的建模元素除了和最初的建模元素類似之外,它可以有自己的:新的構(gòu)成(用標(biāo)記值表示)新的語義(可用約束表示)自己的標(biāo)識符(文本的和圖形化的)2022/7/2577構(gòu)造型的圖形表示,構(gòu)造型的標(biāo)識可以采取兩種形式:記名的構(gòu)造型(named stereotype)構(gòu)造型的圖標(biāo)形式(stereotyped element as icon)具名構(gòu)造型是在UML模型中構(gòu)造型最簡單的表達(dá)形式,它保留了原建模元素的圖形化表示,而用構(gòu)造型名來修飾原建模

35、元素的名字,以使構(gòu)造型在圖形化表示上區(qū)別于原建模元素。在創(chuàng)建一個(gè)構(gòu)造型時(shí),必須為其指定一個(gè)名字,當(dāng)構(gòu)造型的標(biāo)識采用具名構(gòu)造型的形式時(shí),在原建模元素的圖形表示的名字的上方,放置用雙尖括號()括起來的構(gòu)造型名。2022/7/2578構(gòu)造型還可以使用自己的圖標(biāo),用來代替原來的建模元素的圖形化表示,這就是構(gòu)造型標(biāo)識的圖標(biāo)形式。圖標(biāo)形式CBmpViewerView(from bmpviewer)CBmpViewerView(from bmpviewer)具名構(gòu)造型2022/7/2579(2) 擴(kuò)展機(jī)制:標(biāo)記值任何一個(gè)UML標(biāo)準(zhǔn)建模元素都有其基本構(gòu)成例如,對于類而言,它的三個(gè)基本構(gòu)成是:名字、屬性、操作。

36、在特定的情形下,將有必要在建模元素的基本構(gòu)成之外再增加一些構(gòu)成, 此構(gòu)成就是標(biāo)記值(tagged value)。例如:可以在類上在增加一個(gè)名為version的標(biāo)記值,用來表明詞類的定義對某一特定的軟件版本有效。2022/7/2580標(biāo)記值的定義在UML中,標(biāo)記值被定義為是對UML建模元素的構(gòu)成(property)的擴(kuò)充,用于為此建模元素增加新的規(guī)格說明。標(biāo)記值和類的屬性不同,屬性定義的是被建模的事物的構(gòu)成,而標(biāo)記值定義的是建模元素本身的構(gòu)成,就這個(gè)角度而言,標(biāo)記值可以看作是UML的元數(shù)據(jù)。標(biāo)記值必須是具名的,此名字應(yīng)有合法的取值,如果把類的屬性看作標(biāo)記值的話,此標(biāo)記值的名字就是“屬性(attr

37、ibute)”, 而類的屬性定義的集合,就是“屬性”這個(gè)標(biāo)記值的取值。2022/7/2581標(biāo)記值的圖形表示在UML里,標(biāo)記值被圖形化地表達(dá)為一個(gè)字符串,此字符串用花括弧括( )起來,被放置到原建模元素的名字的下方標(biāo)記值的字符串由標(biāo)記值的名字、取值、及分隔符組成。名字位于字符串的起始,取值位于字符串的尾部,它們之間用等號分隔。在不引起混淆的情況下,標(biāo)記值的名字可以省略。2022/7/2582標(biāo)記名被省略transserverOnleServerprocessors=3完整的標(biāo)記值2022/7/2583(3) 擴(kuò)展機(jī)制:約束和標(biāo)記值對UML建模元素的構(gòu)成進(jìn)行擴(kuò)充類似,UML提供了對UML建模元素

38、的語義進(jìn)行擴(kuò)充的機(jī)制,這機(jī)制被稱為約束。約束的定義:在UML里,約束用來擴(kuò)充UML建模元素的語義,以便增加新的規(guī)則或修改已有的規(guī)則在UML里,每一個(gè)建模元素都有明確的語義,語義規(guī)定了用建模元素為軟件系統(tǒng)建模的規(guī)則。如果在建模時(shí),有些特定的規(guī)則不包含在現(xiàn)有的UML語義內(nèi),可以用約束對建模元素的現(xiàn)有建模規(guī)則進(jìn)行擴(kuò)充。約束為對應(yīng)的建模元素規(guī)定了一個(gè)條件,對于一個(gè)完備的模型而言,此建模對象必須使該條件被滿足。2022/7/2584約束的圖形化表示在UML里,約束被圖形化為一個(gè)文本串,此文本串被括在一對花括號內(nèi),并被放置在被約束的建模元素附近例如,通常,關(guān)聯(lián)關(guān)系只表示兩個(gè)類之間的語義連接,而在圖中,需要

39、表示用繼承關(guān)系實(shí)現(xiàn)的多個(gè)鼠標(biāo)工具的切換。這時(shí),任何時(shí)刻,指向它們的基類的指針只和一個(gè)導(dǎo)出類相關(guān)連,為了表達(dá)這種情形,這些關(guān)聯(lián)關(guān)系加以約束(or),以表示任意時(shí)刻,類CmainFrame的關(guān)聯(lián)角色m_pCToolBase 或者和CtoolZoom關(guān)聯(lián),或者和CtoolPan關(guān)聯(lián)。2022/7/2585or 約束:任何時(shí)刻只和一個(gè)導(dǎo)出類相關(guān)CToolPan(from bmpviewer)CToolZoom(from 圖7.8 繼承關(guān)系)CToolBase(from bmpviewer)CMainFrame(from bmpviewer)+m_pCToolBase+m_pCToolBase+m_pC

40、ToolBaseor鼠標(biāo)工具切換機(jī)制2022/7/2586(4) 標(biāo)準(zhǔn)擴(kuò)展UML的擴(kuò)展機(jī)制應(yīng)有節(jié)制地使用,避免產(chǎn)生過多的“方言”而影響UML交流功能的發(fā)揮。為此,UML提供了一些標(biāo)準(zhǔn)的擴(kuò)展元素,稱為標(biāo)準(zhǔn)擴(kuò)展(standard elements)標(biāo)準(zhǔn)擴(kuò)展可適用于大多數(shù)軟件系統(tǒng)的建模,因此在建模時(shí),通常應(yīng)優(yōu)先使用這些標(biāo)準(zhǔn)的擴(kuò)展元素,其次再考慮設(shè)計(jì)自己的擴(kuò)展元素2022/7/2587(4)標(biāo)準(zhǔn)擴(kuò)展:文檔文檔(documentation)是一個(gè)標(biāo)記值,可以用于所有的UML建模元素。其取值可以是對此建模元素的注釋、描述或解釋在一些工具里,此標(biāo)記值不通過標(biāo)準(zhǔn)的標(biāo)記值的圖形表達(dá)法顯示,而是在其用戶界面上用一個(gè)標(biāo)準(zhǔn)窗口來顯示。2022/7/2588標(biāo)記值:文檔某些工具(Rational Rose)將文檔作為建模對象的規(guī)格說明窗口的一部分2022/7/2589(4)標(biāo)準(zhǔn)擴(kuò)展:標(biāo)準(zhǔn)構(gòu)造型UML是一個(gè)通用的建模語言,它的建模對象不僅僅局限于軟件系統(tǒng)在用UML進(jìn)行軟件系統(tǒng)的分析設(shè)計(jì)時(shí),需要對這些建模元素的語義進(jìn)行強(qiáng)化,這如同在人類的自然語言在不同的專業(yè)領(lǐng)域有不同的專業(yè)術(shù)語一樣。202

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論