統(tǒng)一建模語(yǔ)言第02章類圖.ppt_第1頁(yè)
統(tǒng)一建模語(yǔ)言第02章類圖.ppt_第2頁(yè)
統(tǒng)一建模語(yǔ)言第02章類圖.ppt_第3頁(yè)
統(tǒng)一建模語(yǔ)言第02章類圖.ppt_第4頁(yè)
統(tǒng)一建模語(yǔ)言第02章類圖.ppt_第5頁(yè)
已閱讀5頁(yè),還剩23頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第二章 類圖,主要內(nèi)容 類的可視化表示 屬性 操作 職責(zé)和約束 類的發(fā)現(xiàn),2.1 類的可視化表示,在UML中一個(gè)長(zhǎng)方形表示一個(gè)類的圖標(biāo)。按照UML的約定,類名的首字母大寫(xiě),放在矩形的偏上部。如果類名是由兩個(gè)單詞組成,那么將這兩個(gè)單詞合并,第二個(gè)單詞首字母大寫(xiě)。,如果WashingMachine(洗衣機(jī))類是Househould (家用電器)包的部分,那么這個(gè)類的名字為:Household:WashingMachine。包名在左,類名在右,中間用雙冒號(hào)隔開(kāi)。這種類型的類名叫路徑名(pathname)。如下圖所示。,2.2 屬性,屬性是類的一個(gè)特性。它描述了類的對(duì)象(也就是類的實(shí)例)所具有的一系列特性值。一個(gè)類可以具有零個(gè)到多個(gè)屬性。按照UML的約定,單字屬性名小寫(xiě)。如果屬性名包含了多個(gè)字,這些字要合并,并且除了第一個(gè)字外其余字首字母要大寫(xiě)。屬性名列表放在類名之下,并且和類名之間用分隔線隔開(kāi),如下圖所示。,類的屬性在該類的每個(gè)對(duì)象中都有具體值。下圖是一個(gè)例子。注意,對(duì)象名首字母小寫(xiě),后面跟一個(gè)冒號(hào),冒號(hào)后面是該對(duì)象所屬的類名,并且整個(gè)名字要帶下劃線。,名字myWasher:WashingMachine是一個(gè)命名實(shí)例。也可以有諸如::WashingMachine這樣的匿名實(shí)例。,UML還允許指明屬性的附加信息。在類的圖標(biāo)里,你可以指定每個(gè)屬性值的類型??赡艿念愋桶ㄗ址?string)、浮點(diǎn)數(shù)(floating-point)、整數(shù)(integer)和布爾(bool)型(以及其他的枚舉類型)。要指明類型,則在屬性值后面加上類型名,中間用冒號(hào)隔開(kāi)。還可以為屬性指定一個(gè)缺省值。下圖說(shuō)明了屬性的各種表示方式。,“,”,枚舉類型(enumerated type)是由一系列被命名的值所定義的一種數(shù)據(jù)類型。例如Boolean類型就是個(gè)枚舉類型,因?yàn)樗挥袃煞N可能的值“true”和“false”。可以自己定義所需使用的枚舉類型,例如狀態(tài)類型,它由“固體”、“液體”和“氣體”狀態(tài)值組成。,操作名列表放在屬性名列表之下,兩者之間用分隔線隔開(kāi),如下圖所示。,2.3 操作,操作(operation)是類能夠做的事情,或者別的類能對(duì)這個(gè)類做的事情。和屬性名的表示類似,單字操作名小寫(xiě)。如果操作名包含了多個(gè)字,這些字要合并,并且除了第一個(gè)字外其余字首字母要大寫(xiě)。,就像給屬性指定附加信息一樣,你也可以為操作指定附加信息。在操作名后面的括號(hào)中可以說(shuō)明操作所需要的參數(shù)和參數(shù)的類型。有一種操作叫函數(shù)(function),它在完成操作后要返回一個(gè)返回值。可以指明函數(shù)的返回值及返回值的類型。全部的操作信息(操作名、作為參數(shù)的對(duì)象和返回值)被稱為操作的型構(gòu)(signature)。,2.4 屬性、操作和可視化表達(dá),當(dāng)同時(shí)表示多個(gè)類的時(shí)候,通常沒(méi)必要總是顯示這些類的所有屬性和操作,這樣做會(huì)使圖形表示比較混亂。相反,可以只給出類名,而將屬性或者操作區(qū)(或者兩者全部)空著。 有時(shí),只顯示類的一部分屬性和操作很有用。為了說(shuō)明你只表示出部分操作和屬性,可以在列表的后面加上3個(gè)小點(diǎn)“”。這個(gè)符號(hào)叫省略符(ellipsis),這種省略了一個(gè)或多個(gè)屬性或者操作的表示法叫做類的省略表示法。下圖說(shuō)明了類的省略表示法。,如果屬性或者操作列表太長(zhǎng),可以用構(gòu)造型類組織屬性或操作列表。構(gòu)造型用雙尖括號(hào)(guillements)括住的關(guān)鍵字來(lái)表示。,構(gòu)造型是UML提供的擴(kuò)展機(jī)制,它允許你創(chuàng)建新的模型元素以解決具體問(wèn)題。,2.5 職責(zé)和約束,類圖標(biāo)中還可以指明另一種類的信息。在操作列表框下面的區(qū)域,你可以用來(lái)說(shuō)明類的職責(zé)。職責(zé)(responsibility)描述了類做什么也就是類的屬性和操作能完成什么任務(wù)。例如,一臺(tái)洗衣機(jī)的職責(zé)是將臟衣服作為輸入,輸出洗干凈的衣服。在圖標(biāo)中,職責(zé)在操作區(qū)域下面的區(qū)域中說(shuō)明。,更形式化的方式是使用約束(constraint),它是一個(gè)用花括號(hào)括起來(lái)的自由格式的文本。括號(hào)中的文本指定了該類所要滿足的一個(gè)或者多個(gè)規(guī)則。例如,假設(shè)你想指定WashingMachine類的洗衣機(jī)容量只能是16、18或者20磅(也就是說(shuō)對(duì)WashingMachine類的capacity屬性施加約束),你可以在WashingMachine類圖標(biāo)的旁邊寫(xiě)個(gè)約束,如圖所示。,UML提供了另一種方式(也是非常形式化的一種表達(dá)方式)表示施加約束,以便模型元素的語(yǔ)義定義更加明確。它實(shí)際上也是一個(gè)完整的語(yǔ)言,被稱為對(duì)象約束語(yǔ)言(ObjectConstraint Language,OCL)。OCL是UML的一個(gè)高級(jí)的但是很有用的工具,有自己的規(guī)則、術(shù)語(yǔ)和操作符。,2.6 附加注釋,除了屬性、操作、職責(zé)和約束之外,還可以以對(duì)類附加注釋的形式給類添加更多的信息。下圖中的注釋說(shuō)明了serialNumber(序列號(hào))屬性引用了政府標(biāo)準(zhǔn),根據(jù)這個(gè)注釋就可以參考相關(guān)標(biāo)準(zhǔn)以查閱如何生成WashingMachine類對(duì)象的serialNumber屬性值。,2.7 類應(yīng)該做什么和如何識(shí)別它們,類代表的是領(lǐng)域知識(shí)中的詞匯和術(shù)語(yǔ)。同客戶交談,分析他們的領(lǐng)域知識(shí),設(shè)計(jì)用來(lái)解決領(lǐng)域中的問(wèn)題的計(jì)算機(jī)系統(tǒng),同時(shí)也就是在學(xué)習(xí)這些領(lǐng)域詞匯,并用UML中的類建立這些領(lǐng)域詞匯的類模型。 在與客戶的交談中,要注意客戶用來(lái)描述業(yè)務(wù)實(shí)體的名詞術(shù)語(yǔ)。這些名詞可作為領(lǐng)域模型中的類。還要注意你聽(tīng)到的動(dòng)詞,因?yàn)檫@些動(dòng)詞可能會(huì)構(gòu)成這些類中的操作。當(dāng)?shù)玫揭唤M類的核心列表后,應(yīng)當(dāng)向客戶詢問(wèn)在業(yè)務(wù)過(guò)程中每個(gè)類的作用。他們的回答將告訴你這些類的職責(zé)。,假設(shè)你是一個(gè)系統(tǒng)分析員,要建立籃球比賽模型,現(xiàn)在你正在會(huì)見(jiàn)一名教練員來(lái)了解比賽規(guī)則情況。談話的過(guò)程可能如下: 分析員:“教練,請(qǐng)大致介紹一下籃球比賽?!?教練員:“比賽的目標(biāo)是要把籃球投入藍(lán)框并且要盡量比對(duì)手得更多的分。每個(gè)籃球隊(duì)由5名隊(duì)員組成:兩名后衛(wèi)、兩名前鋒和一名中鋒。每個(gè)隊(duì)要將球推進(jìn)到籃框附近,目的是將籃球投中籃框?!?分析員:“如何將球推進(jìn)?” 教練員:“通過(guò)運(yùn)球和傳球。但是某一方籃球隊(duì)必須在規(guī)定的進(jìn)攻時(shí)間內(nèi)投籃?!?分析員:“規(guī)定的進(jìn)攻時(shí)間?” 教練員:“是的,在某一方獲得控球權(quán)后,必須在規(guī)定的進(jìn)攻時(shí)間內(nèi)投籃。美國(guó)職業(yè)籃球比賽是24秒,國(guó)際籃球比賽是30秒,美國(guó)大學(xué)籃球比賽是35秒。” 分析員:“如何計(jì)算籃球比賽得分?” 教練員:“三分線之內(nèi)每投中一次籃得兩分,三分線之外投中一次得三分。一次罰球得分。順便說(shuō)一下,罰球是對(duì)方犯規(guī)后判罰的投球。如果某一個(gè)隊(duì)員犯規(guī),則比賽暫停,由被侵犯的隊(duì)員在罰球線處罰球。”,分析員:“再詳細(xì)說(shuō)明一下每個(gè)籃球隊(duì)員在比賽中的情況好嗎?” 教練員:“后衛(wèi)隊(duì)員通常主要是運(yùn)球和傳球。他們般都比前鋒隊(duì)員矮,前鋒隊(duì)員通常又比中鋒矮。所有的隊(duì)員必須都要能運(yùn)球、傳球、投球、搶籃板球,大部分搶籃板球和中距離投籃都由前鋒隊(duì)員完成,而中鋒通常離籃框最近,一般由他來(lái)籃下進(jìn)攻。” 分析員:“場(chǎng)地大小如何?另外,每場(chǎng)比賽時(shí)間是多少?”,教練員:國(guó)際比賽場(chǎng)地為28米長(zhǎng)、15米寬。藍(lán)框離地面3.05米高。在美國(guó)職業(yè)籃球比賽中,一場(chǎng)比賽為48分鐘,分為4節(jié),每節(jié)12分鐘。在美國(guó)大學(xué)和國(guó)際比賽中,一場(chǎng)比賽40分鐘,分為上下兩個(gè)20分鐘的半場(chǎng)。有專門的比賽時(shí)鐘記錄比賽還剩下多少時(shí)間。 我們現(xiàn)在停止說(shuō)明這些對(duì)話,來(lái)看看談話的內(nèi)容。下面是你在對(duì)話中發(fā)現(xiàn)的名詞:籃球(Ball)、籃框(Basket)、籃球隊(duì)(Team)、隊(duì)員(Player)、后衛(wèi)隊(duì)員(Guard)、前鋒隊(duì)員(Forward)、中鋒(Center)、投球(Shot)、進(jìn)攻時(shí)間時(shí)鐘(Shot Clock)、三分線(threepoint line)、罰球(free throw)、犯規(guī)(Foul)、罰球線(free-throw line)、球場(chǎng)(Court)、比賽時(shí)鐘(GameClock)。,還有些動(dòng)詞:投籃(shoot)、推進(jìn)(advance)、運(yùn)球(dribble)、傳球(Pass)、犯規(guī)(Foul)、搶籃板球(rebound)。你還可得到上述名詞的一些附加信息例如每個(gè)位置的隊(duì)員的相對(duì)高度、籃球場(chǎng)大小、進(jìn)攻時(shí)間以及比賽時(shí)間。 最后,根據(jù)常識(shí)可以為這些類建立一些屬性和操作。例如,通常球類都有體積(vo1ume)和直徑(diameter)等屬性。 使用這些信息,你可以建立一個(gè)如下圖所示的圖。它說(shuō)明了領(lǐng)域中的類,并提供了些屬性、操作和約束。這個(gè)圖也可以表示職責(zé)。,2.8 小結(jié),UML的類圖標(biāo)是由一個(gè)矩形表示的。類名字、屬性、操作和職責(zé)都在區(qū)域中有各自的方框??梢允褂脴?gòu)造型來(lái)組織屬性和操作名列表??梢允褂妙惖氖÷员硎痉?,只表示出類的一部分屬性和操作。這樣可以使類圖比較清晰。 可以在類圖標(biāo)中指定屬性的類

溫馨提示

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

評(píng)論

0/150

提交評(píng)論