




已閱讀5頁,還剩23頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第二章 類圖,主要內(nèi)容 類的可視化表示 屬性 操作 職責(zé)和約束 類的發(fā)現(xiàn),2.1 類的可視化表示,在UML中一個長方形表示一個類的圖標。按照UML的約定,類名的首字母大寫,放在矩形的偏上部。如果類名是由兩個單詞組成,那么將這兩個單詞合并,第二個單詞首字母大寫。,如果WashingMachine(洗衣機)類是Househould (家用電器)包的部分,那么這個類的名字為:Household:WashingMachine。包名在左,類名在右,中間用雙冒號隔開。這種類型的類名叫路徑名(pathname)。如下圖所示。,2.2 屬性,屬性是類的一個特性。它描述了類的對象(也就是類的實例)所具有的一系列特性值。一個類可以具有零個到多個屬性。按照UML的約定,單字屬性名小寫。如果屬性名包含了多個字,這些字要合并,并且除了第一個字外其余字首字母要大寫。屬性名列表放在類名之下,并且和類名之間用分隔線隔開,如下圖所示。,類的屬性在該類的每個對象中都有具體值。下圖是一個例子。注意,對象名首字母小寫,后面跟一個冒號,冒號后面是該對象所屬的類名,并且整個名字要帶下劃線。,名字myWasher:WashingMachine是一個命名實例。也可以有諸如::WashingMachine這樣的匿名實例。,UML還允許指明屬性的附加信息。在類的圖標里,你可以指定每個屬性值的類型。可能的類型包括字符串(string)、浮點數(shù)(floating-point)、整數(shù)(integer)和布爾(bool)型(以及其他的枚舉類型)。要指明類型,則在屬性值后面加上類型名,中間用冒號隔開。還可以為屬性指定一個缺省值。下圖說明了屬性的各種表示方式。,“,”,枚舉類型(enumerated type)是由一系列被命名的值所定義的一種數(shù)據(jù)類型。例如Boolean類型就是個枚舉類型,因為它只有兩種可能的值“true”和“false”??梢宰约憾x所需使用的枚舉類型,例如狀態(tài)類型,它由“固體”、“液體”和“氣體”狀態(tài)值組成。,操作名列表放在屬性名列表之下,兩者之間用分隔線隔開,如下圖所示。,2.3 操作,操作(operation)是類能夠做的事情,或者別的類能對這個類做的事情。和屬性名的表示類似,單字操作名小寫。如果操作名包含了多個字,這些字要合并,并且除了第一個字外其余字首字母要大寫。,就像給屬性指定附加信息一樣,你也可以為操作指定附加信息。在操作名后面的括號中可以說明操作所需要的參數(shù)和參數(shù)的類型。有一種操作叫函數(shù)(function),它在完成操作后要返回一個返回值??梢灾该骱瘮?shù)的返回值及返回值的類型。全部的操作信息(操作名、作為參數(shù)的對象和返回值)被稱為操作的型構(gòu)(signature)。,2.4 屬性、操作和可視化表達,當(dāng)同時表示多個類的時候,通常沒必要總是顯示這些類的所有屬性和操作,這樣做會使圖形表示比較混亂。相反,可以只給出類名,而將屬性或者操作區(qū)(或者兩者全部)空著。 有時,只顯示類的一部分屬性和操作很有用。為了說明你只表示出部分操作和屬性,可以在列表的后面加上3個小點“”。這個符號叫省略符(ellipsis),這種省略了一個或多個屬性或者操作的表示法叫做類的省略表示法。下圖說明了類的省略表示法。,如果屬性或者操作列表太長,可以用構(gòu)造型類組織屬性或操作列表。構(gòu)造型用雙尖括號(guillements)括住的關(guān)鍵字來表示。,構(gòu)造型是UML提供的擴展機制,它允許你創(chuàng)建新的模型元素以解決具體問題。,2.5 職責(zé)和約束,類圖標中還可以指明另一種類的信息。在操作列表框下面的區(qū)域,你可以用來說明類的職責(zé)。職責(zé)(responsibility)描述了類做什么也就是類的屬性和操作能完成什么任務(wù)。例如,一臺洗衣機的職責(zé)是將臟衣服作為輸入,輸出洗干凈的衣服。在圖標中,職責(zé)在操作區(qū)域下面的區(qū)域中說明。,更形式化的方式是使用約束(constraint),它是一個用花括號括起來的自由格式的文本。括號中的文本指定了該類所要滿足的一個或者多個規(guī)則。例如,假設(shè)你想指定WashingMachine類的洗衣機容量只能是16、18或者20磅(也就是說對WashingMachine類的capacity屬性施加約束),你可以在WashingMachine類圖標的旁邊寫個約束,如圖所示。,UML提供了另一種方式(也是非常形式化的一種表達方式)表示施加約束,以便模型元素的語義定義更加明確。它實際上也是一個完整的語言,被稱為對象約束語言(ObjectConstraint Language,OCL)。OCL是UML的一個高級的但是很有用的工具,有自己的規(guī)則、術(shù)語和操作符。,2.6 附加注釋,除了屬性、操作、職責(zé)和約束之外,還可以以對類附加注釋的形式給類添加更多的信息。下圖中的注釋說明了serialNumber(序列號)屬性引用了政府標準,根據(jù)這個注釋就可以參考相關(guān)標準以查閱如何生成WashingMachine類對象的serialNumber屬性值。,2.7 類應(yīng)該做什么和如何識別它們,類代表的是領(lǐng)域知識中的詞匯和術(shù)語。同客戶交談,分析他們的領(lǐng)域知識,設(shè)計用來解決領(lǐng)域中的問題的計算機系統(tǒng),同時也就是在學(xué)習(xí)這些領(lǐng)域詞匯,并用UML中的類建立這些領(lǐng)域詞匯的類模型。 在與客戶的交談中,要注意客戶用來描述業(yè)務(wù)實體的名詞術(shù)語。這些名詞可作為領(lǐng)域模型中的類。還要注意你聽到的動詞,因為這些動詞可能會構(gòu)成這些類中的操作。當(dāng)?shù)玫揭唤M類的核心列表后,應(yīng)當(dāng)向客戶詢問在業(yè)務(wù)過程中每個類的作用。他們的回答將告訴你這些類的職責(zé)。,假設(shè)你是一個系統(tǒng)分析員,要建立籃球比賽模型,現(xiàn)在你正在會見一名教練員來了解比賽規(guī)則情況。談話的過程可能如下: 分析員:“教練,請大致介紹一下籃球比賽?!?教練員:“比賽的目標是要把籃球投入藍框并且要盡量比對手得更多的分。每個籃球隊由5名隊員組成:兩名后衛(wèi)、兩名前鋒和一名中鋒。每個隊要將球推進到籃框附近,目的是將籃球投中籃框?!?分析員:“如何將球推進?” 教練員:“通過運球和傳球。但是某一方籃球隊必須在規(guī)定的進攻時間內(nèi)投籃?!?分析員:“規(guī)定的進攻時間?” 教練員:“是的,在某一方獲得控球權(quán)后,必須在規(guī)定的進攻時間內(nèi)投籃。美國職業(yè)籃球比賽是24秒,國際籃球比賽是30秒,美國大學(xué)籃球比賽是35秒?!?分析員:“如何計算籃球比賽得分?” 教練員:“三分線之內(nèi)每投中一次籃得兩分,三分線之外投中一次得三分。一次罰球得分。順便說一下,罰球是對方犯規(guī)后判罰的投球。如果某一個隊員犯規(guī),則比賽暫停,由被侵犯的隊員在罰球線處罰球。”,分析員:“再詳細說明一下每個籃球隊員在比賽中的情況好嗎?” 教練員:“后衛(wèi)隊員通常主要是運球和傳球。他們般都比前鋒隊員矮,前鋒隊員通常又比中鋒矮。所有的隊員必須都要能運球、傳球、投球、搶籃板球,大部分搶籃板球和中距離投籃都由前鋒隊員完成,而中鋒通常離籃框最近,一般由他來籃下進攻。” 分析員:“場地大小如何?另外,每場比賽時間是多少?”,教練員:國際比賽場地為28米長、15米寬。藍框離地面3.05米高。在美國職業(yè)籃球比賽中,一場比賽為48分鐘,分為4節(jié),每節(jié)12分鐘。在美國大學(xué)和國際比賽中,一場比賽40分鐘,分為上下兩個20分鐘的半場。有專門的比賽時鐘記錄比賽還剩下多少時間。 我們現(xiàn)在停止說明這些對話,來看看談話的內(nèi)容。下面是你在對話中發(fā)現(xiàn)的名詞:籃球(Ball)、籃框(Basket)、籃球隊(Team)、隊員(Player)、后衛(wèi)隊員(Guard)、前鋒隊員(Forward)、中鋒(Center)、投球(Shot)、進攻時間時鐘(Shot Clock)、三分線(threepoint line)、罰球(free throw)、犯規(guī)(Foul)、罰球線(free-throw line)、球場(Court)、比賽時鐘(GameClock)。,還有些動詞:投籃(shoot)、推進(advance)、運球(dribble)、傳球(Pass)、犯規(guī)(Foul)、搶籃板球(rebound)。你還可得到上述名詞的一些附加信息例如每個位置的隊員的相對高度、籃球場大小、進攻時間以及比賽時間。 最后,根據(jù)常識可以為這些類建立一些屬性和操作。例如,通常球類都有體積(vo1ume)和直徑(diameter)等屬性。 使用這些信息,你可以建立一個如下圖所示的圖。它說明了領(lǐng)域中的類,并提供了些屬性、操作和約束。這個圖也可以表示職責(zé)。,2.8 小結(jié),UML的類圖標是由一個矩形表示的。類名字、屬性、操作和職責(zé)都在區(qū)域中有各自的方框??梢允褂脴?gòu)造型來組織屬性和操作名列表??梢允褂妙惖氖÷员硎痉ǎ槐硎境鲱惖囊徊糠謱傩院筒僮?。這樣可以使類圖比較清晰。 可以在類圖標中指定屬性的類
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 動物苗定價方案(3篇)
- 心理補償方案文案(3篇)
- 辦公行政費用管理制度
- 學(xué)?;@球訓(xùn)練管理制度
- 公司隱患上報管理制度
- 小學(xué)衛(wèi)生健康管理制度
- 訴訟審計方案(3篇)
- 再次實施閉環(huán)管理制度
- 醫(yī)院非法集資管理制度
- DB62T 4482-2021 果園防雹網(wǎng)設(shè)計及架設(shè)技術(shù)規(guī)程
- 醫(yī)療健康產(chǎn)業(yè)的中醫(yī)師承人才培養(yǎng)模式
- 養(yǎng)牛場項目可行性研究報告
- 2025公需課《人工智能賦能制造業(yè)高質(zhì)量發(fā)展》試題及答案
- 2025年三級安全培訓(xùn)考試試題附參考答案【考試直接用】
- 宇宙起源與演化歷史探討
- 馬家灘鎮(zhèn)楊家圈灣村灘羊生態(tài)牧場基礎(chǔ)設(shè)施建設(shè)項目報告書
- 2024年高考江蘇卷生物試題解析版
- 基于BIM的建筑行業(yè)工程項目施工質(zhì)量管理與改進報告
- 福建省莆田市2025屆高三下學(xué)期第四次教學(xué)質(zhì)量檢測試生物試題(含答案)
- 2025-2030中國連續(xù)油管行業(yè)市場發(fā)展趨勢與前景展望戰(zhàn)略研究報告
- 2025年安全生產(chǎn)月主題培訓(xùn)課件:如何查找身邊安全隱患
評論
0/150
提交評論