日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
學(xué)習(xí)筆記UML類圖詳解

本節(jié)和大家一起學(xué)習(xí)一下UML類圖,主要包括UML2中的類圖,大體上的結(jié)構(gòu)圖,類的屬性列表等內(nèi)容。相信通過本文的你對UML類圖一定會(huì)有深刻的認(rèn)識。

UML類圖詳解

這是關(guān)于統(tǒng)一建模語言、即UML里采用的基本圖的文章。在這篇文章中,我將會(huì)討論結(jié)構(gòu)圖,這是已經(jīng)在UML2中提出的一種新圖種類。由于本系列文章的目的是使人們了解記號元素及它們的含意,該文主要關(guān)注類圖。你很快就會(huì)知道這樣做的理由。隨后的文章將會(huì)覆蓋結(jié)構(gòu)范疇中包含的其它圖。

我也想提醒讀者,這一系列文章是關(guān)于UML記號元素的,所以這些文章并不意味著為建模的最好方式提供指導(dǎo)方針,或是該如何決定哪些內(nèi)容應(yīng)該首先被建模。相反的,該文及本系列文章的目的主要是幫助大家對于記號元素--語法和含義有一個(gè)基本的理解。借由這些知識,你應(yīng)該可以閱讀圖,并使用正確的記號元素創(chuàng)建你自己的圖。

這篇文章假定你對面向?qū)ο蟮脑O(shè)計(jì)已經(jīng)有了基本的理解。你們當(dāng)中如果有人需要一些面向?qū)ο蟾拍畹膸椭?,那么可以訪問http://java.sun.com/docs/books/tutorial/java/concepts/,來獲得Sun公司關(guān)于面向?qū)ο缶幊痰暮喍讨笇?dǎo)。閱讀“什么是類?”和什么是繼承?”章節(jié),將提供給你足夠的理解,并對該文的閱讀會(huì)有所幫助。另外,DavidTaylor的書《Object-OrientedTechnologies:AManager'sGuide》提供了面向?qū)ο笤O(shè)計(jì)的優(yōu)秀,高水平的說明,而無需對計(jì)算機(jī)編程有高深的理解。

UML2中的陰和陽

在UML2中有二種基本的圖范疇:結(jié)構(gòu)圖和行為圖。每個(gè)UML圖都屬于這二個(gè)圖范疇。結(jié)構(gòu)圖的目的是顯示建模系統(tǒng)的靜態(tài)結(jié)構(gòu)。它們包括UML類圖,組件和(或)對象圖。另一方面,行為圖顯示系統(tǒng)中的對象的動(dòng)態(tài)行為,包括如對象的方法,協(xié)作和活動(dòng)之類的內(nèi)容。行為圖的實(shí)例是活動(dòng)圖,用例圖和序列圖。

大體上的結(jié)構(gòu)圖

如同我所說的,結(jié)構(gòu)圖顯示建模系統(tǒng)的靜態(tài)結(jié)構(gòu)。關(guān)注系統(tǒng)的元件,無需考慮時(shí)間。在系統(tǒng)內(nèi),靜態(tài)結(jié)構(gòu)通過顯示類型和它們的實(shí)例進(jìn)行傳播。除了顯示系統(tǒng)類型和它們的實(shí)例,結(jié)構(gòu)圖至少也顯示了這些元素間的一些關(guān)系,可能的話,甚至也顯示它們的內(nèi)部結(jié)構(gòu)。

貫穿整個(gè)軟件生命周期,結(jié)構(gòu)圖對于各種團(tuán)隊(duì)成員都是有用的。一般而言,這些圖支持設(shè)計(jì)驗(yàn)證,和個(gè)體與團(tuán)隊(duì)間的設(shè)計(jì)交流。舉例來說,業(yè)務(wù)分析師可以使用類或?qū)ο髨D,來為當(dāng)前的資產(chǎn)和資源建模,例如分類賬,產(chǎn)品或地理層次。架構(gòu)師可以使用組件和部署圖,來測試/確認(rèn)他們的設(shè)計(jì)是否充分。開發(fā)者可以使用類圖,來設(shè)計(jì)并為系統(tǒng)的代碼(或即將成為代碼的)類寫文檔。

特殊的類圖

UML2把結(jié)構(gòu)圖看成一個(gè)分類;這里并不存在稱為“結(jié)構(gòu)圖”的圖。然而,類圖提供結(jié)構(gòu)圖類型的一個(gè)主要實(shí)例,并為我們提供一組記號元素的初始集,供所有其它結(jié)構(gòu)圖使用。由于類圖是如此基本,本文的剩余部分將會(huì)把重點(diǎn)集中在類圖記號集。在本文的結(jié)尾,你將對于如何畫UML2類圖有所了解,而且對于理解在后面文章中將涉及的其他結(jié)構(gòu)圖有一個(gè)穩(wěn)固的基礎(chǔ)。

基礎(chǔ)

如先前所提到的,類圖的目的是顯示建模系統(tǒng)的類型。在大多數(shù)的UML模型中這些類型包括:


接口
數(shù)據(jù)類型
組件
UML為這些類型起了一個(gè)特別的名字:“分類器”。通常地,你可以把分類器當(dāng)做類,但在技術(shù)上,分類器是更為普遍的術(shù)語,它還是引用上面的其它三種類型為好。

類名

UML類圖的UML表示是一個(gè)長方形,垂直地分為三個(gè)區(qū),如圖1所示。頂部區(qū)域顯示類的名字。中間的區(qū)域列出類的屬性。底部的區(qū)域列出類的操作。當(dāng)在一個(gè)類圖上畫一個(gè)類元素時(shí),你必須要有頂端的區(qū)域,下面的二個(gè)區(qū)域是可選擇的(當(dāng)圖描述僅僅用于顯示分類器間關(guān)系的高層細(xì)節(jié)時(shí),下面的兩個(gè)區(qū)域是不必要的)。圖1顯示一個(gè)航線班機(jī)如何作為UML類建模。正如我們所能見到的,名字是Flight,我們可以在中間區(qū)域看到Flight類的3個(gè)屬性:flightNumber,departureTime和flightDuration。在底部區(qū)域中我們可以看到Flight類有兩個(gè)操作:delayFlight和getArrivalTime。

圖1:Flight類的類圖

類屬性列表

UML類圖的屬性節(jié)(中部區(qū)域)在分隔線上列出每一個(gè)類的屬性。屬性節(jié)是可選擇的,要是一用它,就包含類的列表顯示的每個(gè)屬性。該線用如下格式:

name:attributetype

flightNumber:Integer

繼續(xù)我們的Flight類的例子,我們可以使用屬性類型信息來描述類的屬性,如表1所示。

表1:具有關(guān)聯(lián)類型的Flight類的屬性名字

 #p#
在業(yè)務(wù)類圖中,屬性類型通常與單位相符,這對于圖的可能讀者是有意義的(例如,分鐘,美元,等等)。然而,用于生成代碼的類圖,要求類的屬性類型必須限制在由程序語言提供的類型之中,或包含于在系統(tǒng)中實(shí)現(xiàn)的、模型的類型之中。

在UML類圖上顯示具有默認(rèn)值的特定屬性,有時(shí)是有用的(例如,在銀行賬戶應(yīng)用程序中,一個(gè)新的銀行賬戶會(huì)以零為初始值)。UML規(guī)范允許在屬性列表節(jié)中,通過使用如下的記號作為默認(rèn)值的標(biāo)識:

name:attributetype=defaultvalue

舉例來說:balance:Dollars=0

顯示屬性默認(rèn)值是可選擇的;圖2顯示一個(gè)銀行賬戶類具有一個(gè)名為balance的類型,它的默認(rèn)值為0。

圖2:顯示默認(rèn)為0美元的balance屬性值的銀行賬戶UML類圖。

類操作記錄在類圖長方形的第三個(gè)(最低的)區(qū)域中,它也是可選擇的。和屬性一樣,類的操作以列表格式顯示,每個(gè)操作在它自己線上。操作使用下列記號表現(xiàn):

name(parameterlist):typeofvaluereturned

下面的表2中Flight類操作的映射。

表2:從圖2映射的Flight類的操作

圖3顯示,delayFlight操作有一個(gè)Minutes類型的輸入?yún)?shù)--numberOfMinutes。然而,delayFlight操作沒有返回值。1當(dāng)一個(gè)操作有參數(shù)時(shí),參數(shù)被放在操作的括號內(nèi);每個(gè)參數(shù)都使用這樣的格式:“參數(shù)名:參數(shù)類型”。

圖3:Flight類操作參數(shù),包括可選擇的“in”標(biāo)識。

當(dāng)文檔化操作參數(shù)時(shí),你可能使用一個(gè)可選擇的指示器,以顯示參數(shù)到操作的輸入?yún)?shù)、或輸出參數(shù)。這個(gè)可選擇的指示器以“in”或“out”出現(xiàn),如圖3中的操作區(qū)域所示。一般來說,除非將使用一種早期的程序編程語言,如Fortran,這些指示器可能會(huì)有所幫助,否則它們是不必要的。然而,在C++和Java中,所有的參數(shù)是“in”參數(shù),而且按照UML規(guī)范,既然“in”是參數(shù)的默認(rèn)類型,大多數(shù)人將會(huì)遺漏輸入/輸出指示器。

  【編輯推薦】

  1. 六大UML類圖關(guān)系連連看
  2. 專家指導(dǎo) UML類圖關(guān)系表示方法
  3. 深入剖析UML類圖依賴關(guān)系
  4. UML類圖關(guān)系大全
  5. UML基礎(chǔ)與應(yīng)用--UML類圖解析

網(wǎng)頁名稱:學(xué)習(xí)筆記UML類圖詳解
分享路徑:http://m.5511xx.com/article/cdhsssc.html