全面認識UML類圖元素_第1頁
全面認識UML類圖元素_第2頁
全面認識UML類圖元素_第3頁
全面認識UML類圖元素_第4頁
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡介

1、全面認識UML類圖元素開發(fā)Java應(yīng)用程序時,開發(fā)者要想有效地利用統(tǒng)一建模語言(UML),必須全面理解UML元素以及這些元素如何映射到Java。本文重點討論 UML類圖中的元素。類圖是最常用的UML圖,它用于描述系統(tǒng)的結(jié)構(gòu)化設(shè)計。其中包括類關(guān)系以及與每個類關(guān)聯(lián)的屬性及行為。類圖能出色地表示繼承與合成關(guān) 系。為了將類圖作為一種高效的溝通工具使用,開發(fā)者必須理解如何將類圖上出現(xiàn)的元素轉(zhuǎn)換到Java中。下面來進一步探索這一轉(zhuǎn)換過程。 元素 類(Class)類(圖A)是對象的藍圖,其中包含3個組成部分。第一個是Java中定義的類名。第二個是屬性(attributes)。第三個是該類提供的方法。屬 性和

2、操作之前可附加一個可見性修飾符。加號(+)表示具有公共可見性。減號(-)表示私有可見性。#號表示受保護的可見性。省略這些修飾符表示具有 package(包)級別的可見性。如果屬性或操作具有下劃線,表明它是靜態(tài)的。在操作中,可同時列出它接受的參數(shù),以及返回類型,如圖A的“Java” 區(qū)域所示。 圖A包(Package)包(圖B)是一種常規(guī)用途的組合機制。UML中的一個包直接對應(yīng)于Java中的一個包。在Java中,一個包可能含有其他包、類或者 同時含有這兩者。進行建模時,你通常擁有邏輯性的包,它主要用于對你的模型進行組織。你還會擁有物理性的包,它直接轉(zhuǎn)換成系統(tǒng)中的Java包。每個包的名 稱對這個包

3、進行了惟一性的標(biāo)識。圖B接口(Interface)接口(圖C)是一系列操作的集合,它指定了一個類所提供的服務(wù)。它直接對應(yīng)于Java中的一個接口類型。接口既可用圖C的那個圖標(biāo)來表示,也可由附加了<<interface>>的一個標(biāo)準(zhǔn)類來表示。通常,根據(jù)接口在類圖上的樣子,就能知道與其他類的關(guān)系。圖C關(guān)系后面的例子將針對某個具體目的來獨立地展示各種關(guān)系。雖然語法無誤,但這些例子可進一步精煉,在它們的有效范圍內(nèi)包括更多的語義。依賴(Dependency)實體之間一個“使用”關(guān)系暗示一個實體的規(guī)范發(fā)生變化后,可能影響依賴于它的其他實例(圖D)。 更具體地說,它可轉(zhuǎn)換為對不在實例作

4、用域內(nèi)的一個類或?qū)ο蟮娜魏晤愋偷囊?。其中包括一個局部變量,對通過方法調(diào)用而獲得的一個對象的引用(如下例所 示),或者對一個類的靜態(tài)方法的引用(同時不存在那個類的一個實例)。也可利用“依賴”來表示包和包之間的關(guān)系。由于包中含有類,所以你可根據(jù)那些包中的 各個類之間的關(guān)系,表示出包和包的關(guān)系。圖D關(guān)聯(lián)(Association)實體之間的一個結(jié)構(gòu)化關(guān)系表明對象是相互連接的。箭頭是可選的,它用于指定導(dǎo)航能力。如果沒有箭頭,暗示是一種雙向的導(dǎo)航能力。在Java中,關(guān)聯(lián)(圖E) 轉(zhuǎn)換為一個實例作用域的變量,就像圖E的“Java”區(qū)域所展示的代碼那樣??蔀橐粋€關(guān)聯(lián)附加其他修飾符。多重性(Multiplic

5、ity)修飾符暗示 著實例之間的關(guān)系。在示范代碼中,Employee可以有0個或更多的TimeCard對象。但是,每個TimeCard只從屬于單獨一個 Employee。圖E聚合(Aggregation)聚合(圖F)是關(guān)聯(lián)的一種形式,代表兩個類之間的整體/局部關(guān)系。聚合暗示著整體在概念上處于比局部更高的一個級別,而關(guān)聯(lián)暗示兩個類在概念上位于相同的級別。聚合也轉(zhuǎn)換成Java中的一個實例作用域變量。關(guān)聯(lián)和聚合的區(qū)別純粹是概念上的,而且嚴(yán)格反映在語義上。聚合還暗示著實例圖中不存在回路。換言之,只能是一種單向關(guān)系。圖F合成(Composition)合成 (圖G)是聚合的一種特殊形式,暗示“局部”在“整

6、體”內(nèi)部的生存期職責(zé)。合成也是非共享的。所以,雖然局部不一定要隨整體的 銷毀而被銷毀,但整體要么負責(zé)保持局部的存活狀態(tài),要么負責(zé)將其銷毀。局部不可與其他整體共享。但是,整體可將所有權(quán)轉(zhuǎn)交給另一個對象,后者隨即將承擔(dān)生 存期職責(zé)。Employee和TimeCard的關(guān)系或許更適合表示成“合成”,而不是表示成“關(guān)聯(lián)”。圖G泛化(Generalization)泛化(圖H)表示一個更泛化的元素和一個更具體的元素之間的關(guān)系。泛化是用于對繼承進行建模的UML元素。在Java中,用extends關(guān)鍵字來直接表示這種關(guān)系。圖H實現(xiàn)(Realization)實例(圖I)關(guān)系指定兩個實體之間的一個合同。換言之,一個實體定義一個合同,而另一個實體保證履行該合同。對Java應(yīng)用程序進行建模時,

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論