第5章類圖和對象圖解析課件_第1頁
第5章類圖和對象圖解析課件_第2頁
第5章類圖和對象圖解析課件_第3頁
第5章類圖和對象圖解析課件_第4頁
第5章類圖和對象圖解析課件_第5頁
已閱讀5頁,還剩111頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第5章類圖和對象圖5.1類的定義5.2類之間的關(guān)系5.3派生屬性和派生關(guān)聯(lián)5.4抽象類、接口和模板類5.5邊界類、控制類和實體類5.6類圖5.7領(lǐng)域分析5.8OO設(shè)計原則5.9對象圖5.10類圖和對象圖的區(qū)別5.11在Rose中操作對象圖和類圖5.12實例——圖書館管理系統(tǒng)的類圖5.1類的定義面向?qū)ο笙到y(tǒng)組織結(jié)構(gòu)的核心。對一組具有相同屬性、操作、關(guān)系和語義的對象的抽象。包括名稱部分(Name)、屬性部分(Attribute)和操作部分(Operation)。5.1類的定義1名稱2屬性3操作4職責(zé)5約束6注釋7用戶定義分欄1名稱當(dāng)類在類圖顯示時,名稱分欄是惟一必須可見的分欄。應(yīng)該來自系統(tǒng)的問題域。名稱應(yīng)該精確并且簡短,能夠描述類所代表的對象的類型。應(yīng)該是一個名詞,且不應(yīng)該有前綴或后綴。例外情況是代表對象集合的類。1名稱名稱的大小寫規(guī)則最好與編程語言的規(guī)則相對應(yīng),例如,以下為不太好的命名:Cancelled_Show,Event_with_no_Shows,Exempt_Employee,Non_exempt_Employee將類的屬性嵌入到類的名稱中了。改為Event,Show,Employee分為簡單名稱和路徑名稱。2屬性用來描述該類的對象所具有的靜態(tài)特征。一個類可以擁有三種類型的信息:對象必須了解自己,即他有自己的結(jié)構(gòu)和當(dāng)前的狀態(tài)對象必須了解他的直接關(guān)系對象有時還要監(jiān)視特定的信息類可以有任意數(shù)目的屬性,也可以沒有屬性。在UML中,類屬性的語法為:[可見性]屬性名

[:類型][多重性][=初始值][{特性}]2屬性(1)可見性(2)屬性名(3)類型(4)初始值(5)特性(6)類作用域的屬性(1)可見性命名空間:是UML中可以被命名的元素,它可以包含另外的命名元素。命名空間可以規(guī)定其包含的元素的可見性類型:公有(Public)“+”私有(Private)“-”受保護(Protected)“?!卑≒ackage)”~”(2)屬性名每個屬性都必須有一個名字以區(qū)別于類中的其他屬性。屬性名由描述所屬類特性的名詞或名詞短語組成單字屬性名小寫,如果屬性名包含了多個單詞,這些單詞要合并,且除了第一個單詞外其余單詞的首字母要大寫。如果不同的類擁有相同的屬性名,而開發(fā)人員又要在同一上下文中引用他們,必須使用完整的路徑表示屬性。Event.status,Venue.status。(3)類型簡單類型:整型Integer布爾型Boolean實型Double字符串String枚舉類型系統(tǒng)中的其他類(4)初始值也稱為默認(rèn)值。目的:保護系統(tǒng)的完整性,防止漏掉取值或被非法的值破壞系統(tǒng)的完整性。為用戶提供易用性。初始值表達(dá)式可以是一個單獨的數(shù)值,也可以是用某種語言編寫的字符串。(5)特性

指定關(guān)于屬性的約束信息。任何希望添加在屬性定義字符串值但又沒有合適地方可以加入的規(guī)則,都可以放在特性里。在其他對象試圖改變屬性值時,特性字符串的規(guī)則可以保護屬性的完整性。特性被表示為“標(biāo)記定義=標(biāo)記值”的形式。Event-name:String=nodefault,{Reauired,1..30chars}-startDate:Calendar=nodefalut,{Required,>today}-duration_in_days:int=1{>0}(6)類作用域的屬性大部分屬性的擁有者是特定的對象(類實例),這些屬性稱為實例作用域的屬性屬性的值被定義和保存在類里,該類的任何對象都可以訪問這個值,則稱為類作用域的屬性,又稱為靜態(tài)屬性表示:屬性聲明的例子+size:Area=(100,100)#visibility:Boolean=false+default-size:Rectangle#maximum-size:Rectangle-xptr:XWindowPtr=nodefault,requiredColors:Color[3]points:Point[2..*ordered]name:String[0..1]3操作用于修改、檢索類的屬性或執(zhí)行某些動作。一個類可以有任意數(shù)量的操作或者根本沒有操作返回類型、名稱和參數(shù)一起被稱為特征標(biāo)記。在同一個類中,操作的名稱不必是惟一的,但特征標(biāo)記必須是惟一的。在UML中,類操作的語法為:

[可見性]操作名[(參數(shù)列表)][:返回類型][{特性}]在操作分欄的內(nèi)部,根據(jù)操作的用途,可以使用版型將操作分成許多小組。3操作(1)可見性(2)操作名(3)參數(shù)表(4)返回類型(5)特性(6)類作用域的操作(1)可見性類型:公有(Public)“+”私有(Private)“-”受保護(Protected)“?!卑鼉?nèi)公有(Package)“~”(2)操作名用來描述所屬類的行為的動詞或動詞短語。單字操作名小寫,如果操作名包含了多個單詞,這些單詞要合并,并且除了第一個單詞外其余單詞的首字母要大寫。(3)參數(shù)表一些按順序排列的屬性定義了操作的輸入。是可選的,即操作不一定必須有參數(shù)才行。定義方式:“名稱:類型”。若存在多個參數(shù),將各個參數(shù)用逗號隔開。參數(shù)可以具有默認(rèn)值。(4)返回類型是可選的,即操作不一定必須有返回類型。絕大部分編程語言只支持一個返回值。具體的編程語言一般要加一個關(guān)鍵字void來表示無返回值。(5)特性

在操作的定義中加入一些除了預(yù)定義元素之外的信息。(6)類作用域的操作作用域在類之內(nèi)而不是對象之內(nèi)的操作,也稱為靜態(tài)操作。操作聲明的例子+display():Location+hide()#create()-attachXWindow(xwin:XWindowPtr)4特性指定關(guān)于類的附加信息。這些信息不適宜放在預(yù)定義內(nèi)容中。特性被表示為“標(biāo)記定義=標(biāo)記值”的形式。Event{Author="Tom",Last_updated="09-18-12",Approved}5職責(zé)類或其他元素的契約或義務(wù)。自由形式的文本。非形式化的方法。6約束指定了類所要滿足的一個或多個規(guī)則。形式化的方法。7注釋注釋可以包含圖形也可以包含文本。8用戶定義分欄為一些不適合放在預(yù)定義分欄里的信息提供了放置空間。EventProjectInfoTeam=“alpha”Status=“beta”5.2類之間的關(guān)系1關(guān)聯(lián)關(guān)系2聚集關(guān)系3組合關(guān)系4泛化關(guān)系5依賴關(guān)系6實現(xiàn)關(guān)系1關(guān)聯(lián)關(guān)系是模型元素間的一種語義聯(lián)系,他是對具有共同的結(jié)構(gòu)特性、行為特性、關(guān)系和語義的鏈的描述鏈?zhǔn)顷P(guān)聯(lián)的實例。一個完整的關(guān)聯(lián)包含三部分:類之間的關(guān)聯(lián)直線和兩個關(guān)聯(lián)端點。端點是一個元類,有自己的屬性(多重性、約束、角色)。

publicA{publicBtheB;}publicB{}端點端點名稱1關(guān)聯(lián)關(guān)系(1)名稱(Name)(2)角色(Role)(3)多重性(Multiplicity)(4)關(guān)聯(lián)類(AssociationClass)(5)關(guān)聯(lián)的約束(6)限定關(guān)聯(lián)(7)關(guān)聯(lián)的種類(8)導(dǎo)航性(1)名稱使用一個動詞或動詞短語來命名關(guān)聯(lián)。清晰而簡潔地說明對象間關(guān)系。關(guān)聯(lián)名稱并不是必需的,原則是有利于理解模型可以黑色三角形指引閱讀方向,以消除歧義。(2)角色當(dāng)需要強調(diào)一個類在一個關(guān)聯(lián)中的確切含義時,使用關(guān)聯(lián)角色。角色的名稱應(yīng)該是名詞或名詞短語,以解釋對象是如何參與關(guān)系的。角色名稱是可以生成代碼的,名稱必須惟一。publicCompany{publicPersonemployee[];

}(3)多重性類的多少對象可以參與該關(guān)聯(lián)。可以表達(dá)一個取值范圍、特定值、無限定的范圍或一組離散值。格式:“minimum..maximum”(均為Int型)。

0..10..*0..n11..*1..n*3,6..9使用{ordered}表示元素是有序的賦給一個端點的多重性表示該端點可以有多少個對象與另一個端點的一個對象關(guān)聯(lián)。{ordered}(4)關(guān)聯(lián)類進(jìn)一步描述關(guān)聯(lián)的屬性、操作以及其他信息。publicclassCompany{privateStringcompanyName;publicPersonemployee[];}publicclassPerson{privateStringpersonName;

protectedCompanyemployer;}publicclassContract{privateDoublesalary;}(5)關(guān)聯(lián)的約束關(guān)聯(lián)可以加上一些約束,以加強關(guān)聯(lián)的含義。在關(guān)聯(lián)上使用{}表示約束。當(dāng)多個關(guān)聯(lián)之間存在約束條件時,需要使用UML注釋來表示。(6)限定關(guān)聯(lián)帶有限定符的關(guān)聯(lián)稱為限定關(guān)聯(lián)限定符很像是索引文件的關(guān)鍵字,使用它可以直接找到所需要的對象。一般來說,查詢結(jié)果會是所有對象的一個子集,而不是整個列表??砂岩粚Χ噢D(zhuǎn)換為一對一。多重性是指File和(Directory,name)間的關(guān)聯(lián)限定符是關(guān)聯(lián)的屬性,而不是類的屬性(7)關(guān)聯(lián)的種類自反關(guān)聯(lián)二元關(guān)聯(lián)N元關(guān)聯(lián)自反關(guān)聯(lián)又稱遞歸關(guān)聯(lián),是一個類與自身的關(guān)聯(lián),即同一個類的兩個對象間的關(guān)系。自反關(guān)聯(lián)雖然只有一個類,但有兩個關(guān)聯(lián)端,每個關(guān)聯(lián)端的角色不同。publicclassEnginePart{publicEnginePart

b[];publicEnginePart

a;publicEnginePart(){}}二元關(guān)聯(lián)N元關(guān)聯(lián)N元關(guān)聯(lián)是在3個或3個以上類之間的關(guān)聯(lián)N元關(guān)聯(lián)的多重性是指在其他N-1個實例確定的情況下,關(guān)聯(lián)實例的個數(shù)。N元關(guān)聯(lián)沒有限定符、聚集、組合等Rose中不能直接表示N元關(guān)聯(lián)nnn(8)

導(dǎo)航性如果關(guān)聯(lián)是單向的,則稱為導(dǎo)航關(guān)聯(lián)。導(dǎo)航性是指關(guān)聯(lián)關(guān)系只在指定方向上成立,或只能從一個方向發(fā)送消息。使用導(dǎo)航性可以降低類間的耦合度。識別關(guān)聯(lián)從問題域與系統(tǒng)責(zé)任出發(fā),考慮各類對象之間是否存在著某種靜態(tài)關(guān)系。例,在學(xué)籍管理系統(tǒng)中,教師和班級之間存在任課關(guān)系,需要在教師、班級和課程之間建立關(guān)聯(lián)關(guān)系2聚集關(guān)系一種特殊類型的關(guān)聯(lián)。表示整體與部分關(guān)系的關(guān)聯(lián)。需求分析中的“包含”、“組成”、“分為……部分”作為整體方的類的重數(shù)不是1,則作為聚集3組合關(guān)系聚合關(guān)系中的一種特殊情況,是更強形式的聚合,又稱強聚合整體擁有各個組成部分,部分與整體共存,整體不存在,則部分隨之消失。整體不僅控制著部分對象的行為,而且控制著部分對象的創(chuàng)建和解構(gòu)4泛化關(guān)系存在于一般元素和特殊元素間的分類關(guān)系??梢杂糜陬?、用例以及其他模型元素。描述了一種“isakindof”的關(guān)系。4泛化關(guān)系描述銀行賬戶的類圖使用泛化關(guān)系的銀行賬戶類4泛化關(guān)系泛化主要用途:多態(tài)繼承單繼承多重繼承5依賴關(guān)系依賴關(guān)系代表一種客戶/提供者的關(guān)系,如果提供者發(fā)生變化,那么客戶也要做出相應(yīng)改變??蛻粢阅撤N形式依賴于提供者。一個是獨立的,一個是不獨立的。關(guān)聯(lián)、實現(xiàn)和泛化在語義上都是依賴關(guān)系。圖形表示用兩個模型元素之間帶箭頭的虛線表示,箭尾處的模型元素(客戶)依賴于箭頭處的模型元素(提供者)5依賴關(guān)系(1)

使用依賴(Usage)(2)抽象依賴(Abstraction)(3)授權(quán)依賴(Permission)(4)綁定依賴(Binding)(1)使用依賴表示客戶使用提供者提供的服務(wù)以實現(xiàn)它的行為,包括:使用(《use》)調(diào)用(《call》)參數(shù)(《parameter》)發(fā)送(《send》)實例化(《instantiate》)(2)抽象依賴表示客戶與提供者之間的關(guān)系,依賴于在不同抽象層次上的事物,包括:跟蹤(《trace》):是一種歷史性的關(guān)系,說明隨著需求的改變,模型在不停地改進(jìn)并形成實現(xiàn)版本。精化(《refine》):是對提供者的改進(jìn)(增強、合并、改變等)。派生(《derive》):表示客戶方的值由提供者計算得來。(3)授權(quán)依賴表達(dá)一個事物訪問另一個事物的能力,包括:訪問(《access》):提供者允許客戶訪問其成員,但受成員的可見性限制。導(dǎo)入(《import》):提供者允許客戶訪問其公有成員。友元(《friend》):提供者授權(quán)客戶訪問其非公有成員。(4)綁定依賴較高級的依賴類型,用于綁定模板以創(chuàng)建新的模型元素,包括:綁定(《bind》):將模板參數(shù)綁定成實際的值以創(chuàng)建一個非參數(shù)化的元素。6實現(xiàn)關(guān)系規(guī)格說明和其實現(xiàn)之間的關(guān)系。類和接口之間的關(guān)系是實現(xiàn)關(guān)系,表示類實現(xiàn)接口提供的操作顯示一個類引用另一個類。客戶必須至少支持提供者的所有操作。泛化和實現(xiàn)都可以將一般描述與具體描述聯(lián)系起來:泛化將同一語義層上的元素連接起來,并且通常在同一模型內(nèi)。實現(xiàn)將不同語義層內(nèi)的元素連接起來,并且通常建立在不同的模型內(nèi)。類間關(guān)系聚合和組合關(guān)系表達(dá)整體和部分關(guān)系泛化關(guān)系表達(dá)一般和特殊關(guān)系依賴、關(guān)聯(lián)表示語義關(guān)系在描述語義上相互有聯(lián)系的類之間的關(guān)系時,首先考慮泛化關(guān)系和關(guān)聯(lián)關(guān)系,當(dāng)類之間的關(guān)系不宜于這兩種關(guān)系,考慮依賴關(guān)系。5.3派生屬性和派生關(guān)聯(lián)是指可以從其他屬性和關(guān)聯(lián)計算推演得到的屬性和關(guān)聯(lián)。使用他們是為了增強類圖的性能,方便于在復(fù)雜的類圖中尋找所需信息。在屬性或關(guān)聯(lián)前加上“/”表示派生關(guān)聯(lián)或派生屬性在生成代碼時,派生屬性和派生關(guān)聯(lián)不產(chǎn)生代碼5.4抽象類、接口和模板類只含義方法聲明的類被稱為接口。它用于為類或類的集合設(shè)定一個外部行為特性的規(guī)范。一個類可以實現(xiàn)一個或多個接口。UML的接口與具體語言中的接口有可能有不同點。B類只使用接口中指定的操作5.4抽象類、接口和模板類抽象類是不能直接產(chǎn)生實例的類。抽象類包含抽象方法。抽象方法不包含具體實現(xiàn)抽象類與接口的區(qū)別:接口不包含屬性,抽象類可以。接口中聲明的所有方法都沒有實現(xiàn)部分,而抽象類中可以包含有具體實現(xiàn)的方法5.4抽象類、接口和模板類模板提供了定制某種類的方法,所以又被稱為參數(shù)化的類,他定義某種類型的類。參數(shù)的格式:名稱:數(shù)據(jù)類型如果參數(shù)的定義中沒有類型,則認(rèn)為參數(shù)的名稱既是他的類型5.5邊界類、控制類和實體類1邊界類2實體類3控制類1邊界類系統(tǒng)與外界交互的類,如窗體、對話框、報表、表示通訊協(xié)議的類。邊界類是系統(tǒng)內(nèi)對象與系統(tǒng)外參與者的聯(lián)系媒介。圖形表示1邊界類通過用例圖可以確定邊界類2實體類實體類保存要放進(jìn)持久存儲體的信息。是問題域中的核心類,從客觀世界的實體對象抽象出來的持久存儲體就是數(shù)據(jù)庫、文件等可以永久存儲數(shù)據(jù)的介質(zhì)。實體類可以通過事件流和交互圖發(fā)現(xiàn),實體類通常用領(lǐng)域術(shù)語命名。通常,每個實體類在數(shù)據(jù)庫中有相應(yīng)的表,實體類中的屬性對于數(shù)據(jù)庫表中的字段。3控制類用于協(xié)調(diào)邊界類和實體類之間的交互。每個用例通常有一個控制類,控制用例中的事件順序控制類也可以在多個用例圖間共用其他類并不向控制類發(fā)送很多消息,而是由控制類發(fā)出很多消息。5.6類圖描述類、接口、協(xié)作及它們之間關(guān)系的圖。顯示系統(tǒng)中各個類的靜態(tài)結(jié)構(gòu)。5.6.1類圖的抽象層次3個抽象層次概念層類圖:描述應(yīng)用領(lǐng)域中的概念,通常用在分析階段。應(yīng)獨立于具體的程序設(shè)計語言。說明層類圖:描述軟件的接口部分,通常用在設(shè)計階段。實現(xiàn)層類圖:提供類的實現(xiàn)細(xì)節(jié),通常用在實現(xiàn)階段5.6.2構(gòu)造類圖尋找類的技巧根據(jù)用例描述中的名詞確定類的候選者使用CRC(類、職責(zé)、協(xié)作)分析法尋找類。根據(jù)邊界類、實體類和控制類的劃分來幫助發(fā)現(xiàn)系統(tǒng)中的類對領(lǐng)域進(jìn)行分析,或利用已有的領(lǐng)域分析結(jié)果得到類參考設(shè)計模式來確定類根據(jù)某些軟件開發(fā)過程提供的指導(dǎo)原則5.6.2構(gòu)造類圖注意:構(gòu)造類圖時,不要試圖使用所有的符號,20%符號用于80%要求構(gòu)造類圖時,不要過早陷入實現(xiàn)細(xì)節(jié)。建立類圖的步驟:研究分析問題領(lǐng)域,確定系統(tǒng)的需求確定類,明確類的含義和職責(zé),確定屬性和操作確定類之間的關(guān)系調(diào)整和細(xì)化已得到的類和類之間的關(guān)系,解決諸如命名沖突、功能重復(fù)等問題繪制類圖并增加相應(yīng)的說明5.7領(lǐng)域分析領(lǐng)域分析也稱為問題分析,領(lǐng)域分析是:(1)通過對某一領(lǐng)域中的已有應(yīng)用系統(tǒng)、理論、技術(shù)、開發(fā)歷史等的研究,來標(biāo)識、收集、組織、分析和表示領(lǐng)域模型及軟件體系結(jié)構(gòu)的過程(2)根據(jù)(1)中進(jìn)行的過程得到的結(jié)果建立類圖的過程就是對領(lǐng)域及其解決方案的分析和設(shè)計過程5.8OO設(shè)計原則1開閉原則2Liskov替換原則3依賴倒置原則4接口分離原則1開閉原則開閉原則指的是一個模塊在擴展性方面應(yīng)該是開放的,而在更改性方面應(yīng)該是封閉的。應(yīng)該盡量使得模塊可以擴展,并且在擴展時不需要對模塊的源代碼進(jìn)行修改。2Liskov替換原則指的是子類可以替換父類能出現(xiàn)的任何地方3依賴倒置原則指的是依賴關(guān)系應(yīng)該是盡量依賴接口(或抽象類),而不是依賴于具體類。結(jié)構(gòu)化設(shè)計中,高層的模塊依賴于低層的模塊主程序模塊1模塊2模塊3模塊11模塊12模塊21模塊22模塊31模塊323依賴倒置原則面向?qū)ο蟮脑O(shè)計中,與具體實現(xiàn)有關(guān)的類依賴于抽象類或接口4接口分離原則指的是在設(shè)計時采用多個與特定客戶類有關(guān)的接口比采用一個通用接口要好。5.9對象圖描述參與一個交互的各個對象在交互過程中某一時刻的狀態(tài)。可以被看作是類圖在某一時刻的實例。5.9.1對象對象名稱:對象名:類名

:類名

對象名例如,Jackie:Customer,73865:Performance,:Customer,Jackie對象屬性:不包含屬性的定義,只給出屬性名和屬性值例如,name=“Jackie”沒有對象操作分欄5.9.2鏈鏈?zhǔn)顷P(guān)聯(lián)的實例,表示對象間的關(guān)系鏈的命名方法:使用對應(yīng)的關(guān)聯(lián)命名使用關(guān)聯(lián)端點的角色名稱命名使用與參與關(guān)聯(lián)的類名一致的角色名稱命名鏈只有名稱、角色,沒有多重性5.9.3使用對象圖測試類圖類圖有可能有錯誤或不完善,可以使用對象圖測試它例如,銷售協(xié)議(SalesAgreement)規(guī)定了某些座位(Seat)在特定的時期分配給某個職員,每個銷售協(xié)議可以分配不少于一個的座位,而每個座位只能和一個銷售協(xié)議關(guān)聯(lián)測試用例1創(chuàng)建一個SalesAgreement對象6475,兩個Seat對象6475:SalesAgreementstartDate=01/01/02endDate=03/31/022876:Seat2875:Seatassignsassigns測試用例2有些座位從來就沒有被某個職員支配過,他們是直接被銷售給觀眾的。6475:SalesAgreementstartDate=01/01/02endDate=03/31/022876:Seat2875:Seatassignsassigns1450:Seat3測試用例3一個座位可以被多個銷售協(xié)議分配。即座位可以被重復(fù)分配,但他們的日期不能重疊。6494:SalesAgreementstartDate=04/01/02endDate=06/30/026475:SalesAgreementstartDate=01/01/02endDate=03/31/022876:Seat2875:Seatassignsassigns1450:Seatassignsassigns5.10類圖和對象圖的區(qū)別類圖對象圖類有三個分欄:名稱、屬性和操作對象有兩個分欄:名稱和屬性在類的名稱分欄中只有類名對象的名稱形式為“對象名:類名”,匿名對象的名稱形式為“:類名”類中列出了操作對象圖中不包含操作,因為同一個類的對象,其操作是相同的類使用關(guān)聯(lián)連接,關(guān)聯(lián)使用名稱、角色、多重性、約束等特征定義。類代表的是對對象的分類,所以必須說明可以參與關(guān)聯(lián)的對象的數(shù)目對象使用鏈連接,鏈擁有名稱、角色,但是沒有多重性。對象代表的是單獨的實體,所有的鏈都是一對一的,因此不涉及到多重性類的屬性分欄定義了所有屬性的特征對象則只定義了屬性的當(dāng)前值,以用于測試用例或例子中5.11在Rose中操作對象圖和類圖1類圖操作2類規(guī)范與類的應(yīng)用3屬性規(guī)范與應(yīng)用4操作規(guī)范與應(yīng)用5關(guān)聯(lián)規(guī)范與應(yīng)用6泛化規(guī)范與應(yīng)用7依賴規(guī)范與應(yīng)用8聚合規(guī)范與應(yīng)用9邏輯包規(guī)范與應(yīng)用(1)創(chuàng)建新的類圖

步驟右單擊瀏覽器中的邏輯視圖名稱“LogicalView”;單擊快捷菜單中的New>Classdiagram;輸入新類圖的名稱。1類圖操作(2)刪除類圖刪除類圖時,類圖中的類并不刪除,它們?nèi)匀辉跒g覽器和其它模型圖中

操作:右單擊瀏覽器中的類圖;單擊快捷菜單中的Delete。1類圖操作1類圖操作(3)類圖工具箱定制工具箱右單擊工具箱;單擊快捷菜單中的“Customize……”;在彈出的“自定義工具欄”對話框中,選擇相應(yīng)的工具圖標(biāo),然后單擊“添加”或“刪除”將選定的工具圖標(biāo)添加至窗口的工具箱中,或從工具箱中移走。2類規(guī)范與類的應(yīng)用(1)類規(guī)范

8個標(biāo)簽General標(biāo)簽Detail標(biāo)簽Operation標(biāo)簽Attributes標(biāo)簽Relations標(biāo)簽Components標(biāo)簽Nested標(biāo)簽Files標(biāo)簽2類規(guī)范與類的應(yīng)用General標(biāo)簽

名稱(Name)構(gòu)造型(Stereotype)輸出控制(ExportControl)選項含義Public系統(tǒng)中所有類都能訪問該類Protected這個類可以在嵌套類、友元或同一個類中訪問Private該類在友元或同一個類中訪問Implementation該類只能由同一包中的其它類訪問2類規(guī)范與類的應(yīng)用General標(biāo)簽版型(Stereotype)版型Actor參與者boundary邊界Businessactor業(yè)務(wù)參與者Businessentity業(yè)務(wù)實體Businessworker業(yè)務(wù)工人Control控制Domain域Entity實體Interface接口Table表格View視圖2類規(guī)范與類的應(yīng)用Detail標(biāo)簽多重性(Multiplicity)存儲需求(Space)并發(fā)性(Concurrency)類型描述Sequential默認(rèn)設(shè)置。當(dāng)只有一個控制線程時,類能正常工作;有多個控制線程時,不能保證類能否正常工作Guarded存在多個控制線程時,類正常工作但不同種的類應(yīng)相互協(xié)作,保證不會互相干擾Active類有自己的控制線程Synchronous存在多個控制線程時,類的正常工作不需要與其他類相互協(xié)作,類本身能處理互斥情形2類規(guī)范與類的應(yīng)用Attributes標(biāo)簽Operation標(biāo)簽Relations標(biāo)簽Nested標(biāo)簽創(chuàng)建嵌套類

右單擊標(biāo)簽中任一空白處,從快捷菜單中選擇Insert,輸入嵌套類名稱;按一般方法創(chuàng)建父類和嵌套類:在瀏覽器中,將嵌套類拖放到父類。2類規(guī)范與類的應(yīng)用Components標(biāo)簽顯示用于實現(xiàn)系統(tǒng)中類的構(gòu)件“Showallcomponents”表示是顯示系統(tǒng)中的所有構(gòu)件,還是只顯示實現(xiàn)所選類的構(gòu)件顯示構(gòu)件時,同時還顯示構(gòu)件所屬的包,以及實現(xiàn)所采用的編程語言(2)類的操作

添加一個類單擊工具箱中的類圖標(biāo);在模型圖任一位置單擊,新類取名為NewClass;輸入新的類名。

刪除一個類

單擊模型圖中要刪除的類;選擇Edit>DeletefromModel。2類規(guī)范與類的應(yīng)用(1)屬性規(guī)范3個標(biāo)簽:General標(biāo)簽Detail標(biāo)簽DDL標(biāo)簽3屬性規(guī)范與應(yīng)用3屬性規(guī)范與應(yīng)用General標(biāo)簽屬性數(shù)據(jù)類型(Type)屬性版型(Stereotype)屬性的初值(Initial)輸出控制(ExportControl)選項含義Public公共屬性。任何其它類都可以瀏覽或修改屬性的之值Protected保護屬性。類及其派生類可以訪問該屬性Private專用屬性。其他類不能訪問該屬性Implemented實現(xiàn)屬性。只能被同一包中的類訪問可見性Rose圖注UML圖注Public+Protected#Private-Implemented<無>Detail標(biāo)簽屬性控制(Containment)Byvalue:按數(shù)值Byreference:按引用Unspecified:未指定靜態(tài)屬性(Static)派生屬性(Derived)3屬性規(guī)范與應(yīng)用3屬性規(guī)范與應(yīng)用(2)屬性操作增加一個屬性右單擊瀏覽器或類圖中的類,選擇New>Attribute,用Name:DataType=InitialValue格式,輸入屬性名。打開類的規(guī)范窗口,選擇“Attributes”標(biāo)簽,右單擊屬性區(qū)的任何位置,在快捷菜單中選擇Insert。刪除一個屬性右單擊瀏覽器某個屬性,從快捷菜單選擇Delete。選擇類圖中的某個屬性,用退格鍵刪除模型圖中的屬性名、數(shù)據(jù)類型和初始值,單擊模型圖中任一位置,確認(rèn)刪除。打開屬性類的類規(guī)范窗口,選擇“Attributes”標(biāo)簽,右單擊要輸出的屬性,從快捷菜單中選擇Delete,確認(rèn)刪除。4操作規(guī)范與應(yīng)用(1)操作規(guī)范General標(biāo)簽返回值的類型(Return)構(gòu)造型(Stereotype)輸出控制(ExportControl)可見性含義Pulic操作可以被其它類訪問。Protected操作可以被子類、友元類或本身訪問Private操作可以被友元類或本身訪問Implemented操作是公開的,但只被同一包中的類訪問4操作規(guī)范與應(yīng)用Detail標(biāo)簽

操作變元(argument)操作協(xié)議(Protocol)操作限制(Qualification)內(nèi)存長度(Size)時間(Time)并發(fā)性(Concurrency)Sequential:只有一個控制線程時,操作正常工作。Guarded:存在多個控制線程時,不同線程的類相互協(xié)作,操作可正常工作。Synchronous:存在多個控制線程時,操作可正常工作。異常(Exceptions)標(biāo)簽

操作可拋出的異常通過其中的4個按鈕添加、刪除和上、下移動異常4操作規(guī)范與應(yīng)用前置條件(Preconditions)標(biāo)簽

前置條件(Preconditions)指定操作運行之前應(yīng)滿足的條件,即操作的入口行為,通常是不等式交互圖(InteractionDiagram)說明操作語義的交互圖

4操作規(guī)范與應(yīng)用語義(Semantics)標(biāo)簽

語義(Semantics)指定操作的工作在文本框中用偽代碼描述操作邏輯交互圖(InteractionDiagram)說明了操作語義的交互圖4操作規(guī)范與應(yīng)用后置條件(Postconditions)標(biāo)簽后置條件(Postconditions)指定操作運行之后要符合的條件,即操作的出口行為,通常是不等式交互圖(InteractionDiagram)說明操作語義的交互圖4操作規(guī)范與應(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)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論