ch03-類圖(域模型)解讀_第1頁
ch03-類圖(域模型)解讀_第2頁
ch03-類圖(域模型)解讀_第3頁
ch03-類圖(域模型)解讀_第4頁
ch03-類圖(域模型)解讀_第5頁
已閱讀5頁,還剩85頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1類圖

--分析者必備浙江高校軟件學(xué)院程學(xué)林開發(fā)流程3圖9-1UP制品樣例的影響需求是分析的源頭 有好的材料才能炒出好的菜類圖的角色外觀與機(jī)理議程什么是關(guān)鍵抽象分析師必學(xué)元素類圖——分析類類及類的關(guān)系什么是域模型如何建立域模型事務(wù)模式酒店訂房系統(tǒng)什么是關(guān)鍵抽象“關(guān)鍵抽象”是一個(gè)類或?qū)ο?,它是問題域詞匯表(Glossary)的一部分。又稱:概念類或分析類什么是概念類概念類是思想、事物或?qū)ο?。概念類可以從其符號、?nèi)涵和外延來考慮。符號:表示概念類的詞語或圖形內(nèi)涵:概念類的定義外延:概念類所適用的一組示例確定關(guān)鍵抽象的方法從軟件需求規(guī)格說明書或用例及用例描述中將所出名詞抽?。òl(fā)覺)出來,填入“候選關(guān)鍵抽象”表格,從而識別出全部的關(guān)鍵抽象。用CRC(Class-Responsibility-Collaborator)分析法確定最基本的一組關(guān)鍵抽象。識別出候選的關(guān)鍵抽象集合通過軟件需求文檔的以下部分,識別出全部的唯一名詞,從而來起先這個(gè)提取過程。系統(tǒng)范圍和上下文部分(Vision)功能需求部分(Use-casemodel)用例、用例描述和場景明確的功能需求補(bǔ)充規(guī)約(Supplementaryspecification)項(xiàng)目術(shù)語表部分(Glossary)小提示:通過你自己的練習(xí),要能夠跳過那些明顯不在系統(tǒng)域范圍內(nèi)的名詞,但是現(xiàn)在你得對軟件需求規(guī)格說明書進(jìn)行徹底的查找。運(yùn)用這種方法時(shí)必需當(dāng)心。不行能存在名詞到“關(guān)鍵抽象”(類或?qū)ο螅┑挠成錂C(jī)制,并且自然語言中的詞語存在二義性。候選的關(guān)鍵抽象表格用來記錄提取的候選關(guān)鍵字的表格由三個(gè)屬性列組成:候選的關(guān)鍵抽象—這個(gè)屬性列包含了全部從軟件需求說明書中找出來的名詞.解除的緣由—假如該名詞被提取為關(guān)鍵抽象,則該空格不須要填寫;否則的話在此填寫候選抽象被解除的緣由.選定的名字—這列填寫被提取出來作為關(guān)鍵抽象的類名.候選的關(guān)鍵抽象排除的原因選定的名字項(xiàng)目術(shù)語表(Glossary)識別關(guān)鍵抽象的過程同時(shí)也是一個(gè)驗(yàn)證你的項(xiàng)目術(shù)語表在定期更新的好機(jī)會(huì).驗(yàn)證全部那些由系統(tǒng)域指定的條目是否都已經(jīng)被列出來并已被定義.識別項(xiàng)目術(shù)語表中的同意詞,選擇一個(gè)統(tǒng)一的術(shù)語,貫穿于文檔和源代碼.GlossaryasDataDictionaryIntheUP,theGlossaryalsoplaystheroleofadatadictionary,adocumentthatrecordsdataaboutthedatathatismetadata.Termattributescouldinclude:aliasesdescriptionformat(type,length,unit)relationshipstootherelementsrangeofvaluesvalidationrules軟件需求說明書中的名詞以下是從酒店預(yù)定系統(tǒng)的需求說明書中摘錄的一部分,名詞用紅色標(biāo)記.“酒店預(yù)定系統(tǒng)負(fù)責(zé)管理多種類型的酒店預(yù)定,包括一些商務(wù)酒店預(yù)定。這個(gè)系統(tǒng)同時(shí)也包含了一個(gè)web應(yīng)用,允許客人隨時(shí)查看房間和酒店,查看當(dāng)前和過去的預(yù)定訂單,或者進(jìn)行新的預(yù)定?!斑@個(gè)酒店預(yù)定系統(tǒng)主要有三個(gè)涉及點(diǎn):用于數(shù)據(jù)存儲(chǔ)的中心數(shù)據(jù)庫管理系統(tǒng),外部的信用卡驗(yàn)證系統(tǒng),還有一個(gè)本地的,將電影傳輸?shù)矫總€(gè)房間的電視信號上的電影點(diǎn)播系統(tǒng)”。“系統(tǒng)也必需收集客人的以下一些信息:姓名,地址,聯(lián)系電話,信用卡(類型,號碼還有到期日期)候選的關(guān)鍵抽象表格(示例)候選的關(guān)鍵抽象排除的原因選定的名字預(yù)定酒店商務(wù)酒店客人房間小型商業(yè)會(huì)議信用卡驗(yàn)證系統(tǒng)姓名地址CRC分析法在完成了全部候選關(guān)鍵抽象列表之后,須要進(jìn)行一個(gè)過濾,確定關(guān)鍵抽象。什么是CRC(Class-Responsibility-Collaborator)是一種收集并整理卡片的開發(fā)方式是一種面對文本建模技術(shù),是由KentBeck和WardCunningham1989)創(chuàng)建的具有影響力的靈敏思想具體來說:類代表了一組“候選關(guān)鍵抽象”職責(zé)是類知道或者做的任何事情協(xié)作者包含一至兩個(gè)方面:須要的信息或者須要的事務(wù)。用CRC分析法識別關(guān)鍵抽象運(yùn)用的一個(gè)技術(shù)就是CRC分析法:1.選擇一個(gè)候選的關(guān)鍵抽象2.確定一個(gè)與該候選關(guān)鍵抽象顯著相關(guān)的用例.3.查看用例描述(場景)和系統(tǒng)的功能需求來確定職責(zé)和協(xié)作關(guān)系.4.用CRC卡記錄抽取出來的關(guān)鍵抽象5.基于以上的工作,更新候選關(guān)鍵抽象表格.用CRC卡記錄關(guān)鍵抽象類名職責(zé)協(xié)作者選擇一個(gè)候選關(guān)鍵抽象選擇一個(gè)候選關(guān)鍵抽象主要靠直覺,但也有一些小竅門:向該領(lǐng)域的專家詢問從用例名中提取候選關(guān)鍵抽象從需求說明書中的范圍部分提取候選關(guān)鍵抽象識別一個(gè)相關(guān)用例要識別一個(gè)候選關(guān)鍵抽象是否是一個(gè)真正的關(guān)鍵抽象,您應(yīng)當(dāng)先確定這個(gè)候選關(guān)鍵抽象是否擔(dān)負(fù)著職責(zé)同時(shí)是否有協(xié)作關(guān)系.首先找出一個(gè)包含了候選關(guān)鍵抽象的用例,然后識別出它的職責(zé)和協(xié)作關(guān)系:1.查看用例名2.查看用例描述3.查看用例場景4.查看用例場景描述,看該候選關(guān)鍵抽象是否在文中提及,假如找到了,則說明該用例場景與之相關(guān).識別一個(gè)相關(guān)用例基于以上所述,這里有兩個(gè)用例與”訂單”這個(gè)關(guān)鍵抽象相關(guān):E1:管理訂單E5:管理在線訂單明確職責(zé)和協(xié)作者查看相關(guān)用例對應(yīng)的場景和需求,找到他們的職責(zé)和需求,以及與他有協(xié)作關(guān)系的對象.假如你找不到任何職責(zé)關(guān)聯(lián),那么你就可以將這個(gè)候選從候選關(guān)鍵抽象中刪除.明確職責(zé)和協(xié)作者以下是一些相關(guān)的功能需求:E1-1--系統(tǒng)允許預(yù)定代理商來創(chuàng)建,更新和刪除一條預(yù)定訂單.一條預(yù)定訂單包括入住日期,離住日期,還有訂單ID號.E1-2—在特定的時(shí)間段里(入住到離住期間),可以預(yù)定一個(gè)到多個(gè)房間.E1-3—預(yù)定只與一個(gè)客人相關(guān).E1-4—只能在有空房的狀況下進(jìn)行預(yù)定.用CRC卡記錄關(guān)鍵抽象訂單職責(zé)協(xié)作者預(yù)定一個(gè)房間房間客人狀態(tài)(空房,已入住,預(yù)留房間)入住日期離住日期付帳方式訂單編號更新候選關(guān)鍵抽象表格假如你選擇的這個(gè)候選關(guān)鍵抽象有職責(zé)關(guān)系,則把這個(gè)關(guān)鍵抽象的名字(從CRC分卡中)填寫到”選定的名字”屬性列中.否則填寫這個(gè)候選關(guān)鍵抽象為何沒有被選中為關(guān)鍵抽象的緣由.更新候選關(guān)鍵抽象表格候選的關(guān)鍵抽象排除的原因選定的名字訂單訂單酒店酒店商務(wù)酒店酒店的子類客人客人房間房間信用卡驗(yàn)證系統(tǒng)一個(gè)外部系統(tǒng)姓名客戶的屬性地址如何推斷是屬性還是類?Guideline:IfwedonotthinkofsomeconceptualclassXasanumberortextintherealworld,Xisprobablyaconceptualclass,notanattribute.(P109)實(shí)踐-識別關(guān)鍵抽象CST公司開發(fā)一個(gè)用于管里軟件開發(fā)項(xiàng)目的系統(tǒng),系統(tǒng)可對多個(gè)項(xiàng)目進(jìn)行管理,一個(gè)項(xiàng)目由若干個(gè)階段組成,而每個(gè)階段又由很多活動(dòng)(UP中稱科目,Discipline)組成,一項(xiàng)活動(dòng)消耗若干資源,并產(chǎn)生若干工件(UP中稱制品,Artifacts)。工件有代碼、模型、文檔等,資源有工人、時(shí)間、設(shè)備等。從描述中標(biāo)識出候選關(guān)鍵抽象,并識別關(guān)鍵抽象?候選的關(guān)鍵抽象排除的原因選定的名字實(shí)踐-識別關(guān)鍵抽象CST公司開發(fā)一個(gè)用于管里軟件開發(fā)項(xiàng)目的系統(tǒng),系統(tǒng)可對多個(gè)項(xiàng)目進(jìn)行管理,一個(gè)項(xiàng)目由若干個(gè)階段組成,而每個(gè)階段又由很多活動(dòng)(UP中稱科目,Discipline)組成,一項(xiàng)活動(dòng)消耗若干資源,并產(chǎn)生若干工件(UP中稱制品,Artifacts)。工件有代碼、模型、文檔等,資源有工人、時(shí)間、設(shè)備等。從描述中標(biāo)識出候選關(guān)鍵抽象,并識別關(guān)鍵抽象?候選的關(guān)鍵抽象排除的原因選定的名字審查屬性是否在系統(tǒng)責(zé)任之內(nèi)是否描述類對象的特征是否存在冗余是否有困難結(jié)構(gòu)的屬性依據(jù)對需求的理解進(jìn)行細(xì)化是否在系統(tǒng)責(zé)任之內(nèi)審查屬性審查屬性用能說的通:什么的什么是否存在冗余審查屬性是否有困難結(jié)構(gòu)的屬性1:1-可以在原類里面綻開1:N-須要關(guān)聯(lián)類審查屬性是否有困難結(jié)構(gòu)的屬性保留在原類中抽取出來獨(dú)立成類審查屬性依據(jù)對需求的理解進(jìn)行細(xì)化審查屬性分析師必學(xué)元素類圖類關(guān)聯(lián)關(guān)系聚合關(guān)系組合關(guān)系類圖類圖(classdiagram)用來表達(dá)系統(tǒng)內(nèi)部的靜態(tài)結(jié)構(gòu)(staticstructure)。具體來說,開發(fā)人員可以通過類圖的設(shè)計(jì),來將數(shù)以萬行的程序代碼分門別類,構(gòu)成了系統(tǒng)內(nèi)部的靜態(tài)結(jié)構(gòu)。類圖新術(shù)語——模塊變類(class)、功能變操作(operation)、變量變屬性(attribute)。新術(shù)語并不是舊酒換新瓶,而是分類、定操作、定義屬性上頭,有新的劃分方法。新的劃分方法——拿用戶的領(lǐng)域術(shù)語當(dāng)類,然后確定相關(guān)的操作和屬性,封裝在同一個(gè)類中。確定類圖中的元素UML的類圖由以下元素組成:類它們可以代表:?概念性實(shí)體,如關(guān)鍵抽象

?軟件組件類分析師不能自己隨意定義類,必需找尋領(lǐng)域術(shù)語做為類名稱。房間—真正住進(jìn)去,特定房號的房間。房型—顧客在訂房時(shí),通常是預(yù)訂某個(gè)房型的房間。類類屬性(attribute)操作(operation)類(Class)類的組成名字屬性操作可見性私有公有類不是孤立存在的因此,類與類之間創(chuàng)建了一種關(guān)系:類關(guān)系可能指明某種共享關(guān)系類關(guān)系可能指明某種類型的語義連接類關(guān)系

關(guān)聯(lián)接口與實(shí)現(xiàn)組合泛化與繼承聚合依靠類關(guān)系分析階段設(shè)計(jì)階段關(guān)聯(lián)關(guān)系結(jié)構(gòu)說明語法關(guān)聯(lián)兩個(gè)或多個(gè)類之間的一種關(guān)系,此關(guān)系涉及類的各個(gè)實(shí)例之間的連接識別類之后,需要識別關(guān)聯(lián)多重性(multiplicity)定義有多少對象參與了某個(gè)關(guān)系各個(gè)類都可能與自身有關(guān)聯(lián)公司部門雇員示例:“雇員為公司工作”準(zhǔn)則:關(guān)聯(lián)表示了須要持續(xù)一段時(shí)間的關(guān)系,依據(jù)語境,可能是幾毫秒或數(shù)年關(guān)聯(lián)關(guān)系關(guān)聯(lián)關(guān)系關(guān)聯(lián)的UML標(biāo)識法關(guān)聯(lián)關(guān)系實(shí)體關(guān)聯(lián)圖(關(guān)系型數(shù)據(jù)庫)(概念)類圖(面向?qū)ο?數(shù)據(jù)表(Entity)類(class)記錄(record)對象(object)字段(field)屬性(attribute)無操作(operation)關(guān)系(relationship)關(guān)聯(lián)(association)實(shí)體關(guān)系圖與類圖關(guān)聯(lián)關(guān)系多對多的多重性關(guān)聯(lián)關(guān)系兩個(gè)一對多的多重性聚合關(guān)系

結(jié)構(gòu)說明語法聚合一種特殊形式的關(guān)聯(lián),指定了聚合(整體)和組件部分之間的整體-部分關(guān)系共享聚合(空心菱形)意味著在組合端的多重性有多個(gè)。模擬“整體-部分”關(guān)系。整體部分門房子1..*2..*汽車聚合關(guān)系具有“hasa”語義--對象A是對象B的一個(gè)組成部分組合關(guān)系結(jié)構(gòu)說明語法組合一種特殊形式的關(guān)聯(lián),指定了組合(整體)和組件部分之間的整體-部分關(guān)系,但是組合關(guān)系中部分和整體具有統(tǒng)一的生存期

這是一種更強(qiáng)的聚合,表達(dá)了類與類之間更強(qiáng)的耦合組合的圖形為實(shí)心菱形。整理部分負(fù)責(zé)創(chuàng)建和刪除各個(gè)部分。圓圈點(diǎn)多邊形點(diǎn)圓圈組合關(guān)系具有“contains-a”語義,整體部分消逝,部分對象也消逝組合關(guān)系組合關(guān)系組合(composition)整體(whole)部分(part)關(guān)聯(lián)vs.聚合聚合是關(guān)聯(lián)的精化,兩端角色被默認(rèn)為“擁有”和“被擁有者”關(guān)聯(lián)與聚合的區(qū)分只在于個(gè)人喜好,而不是語義上的區(qū)分。聚合vs.組合(UML觀點(diǎn))識別類之間的聚合或組合團(tuán)隊(duì)(組織)和成員-聚合抽象事物的整體和部分-聚合物理上的整體事物和它的組成部分-組合組織機(jī)構(gòu)和它的下級組織-組合空間上的包涵-組合具體事物和它的某個(gè)抽象方面-組合團(tuán)隊(duì)(組織)和成員識別類之間的聚合或組合抽象事物的整體和部分識別類之間的聚合或組合物理上的整體事物和它的組成部分識別類之間的聚合或組合組織機(jī)構(gòu)和它的下級組織識別類之間的聚合或組合HowtoFindAssociations(P115)CategoryExamplesAisatransactionrelatedtoanothertransactionBCashPayment-SaleCancellation-ReservationAisalineitemofatransactionBSalesLineItem-SaleAisaproductorserviceforatransaction(orlineitem)BItem-SalesLineItem(orSale)Flight-ReservationAisarolerelatedtoatransactionBCustomer-PaymentPassenger-TicketAisaphysicalorlogicalpartofBSeat-AirplaneDrawer-RegisterAisphysicallyorlogicallycontainedin/onBRegisterStore,Item-ShelfPassenger-AirplaneAisadescriptionforBProduct-DescriptionItemFlightDescription-FlightAisknown/logged/recorded/reported/capturedinBSale-RegisterPiece-SquareReservation-FlightManifestAisamemberofBCashier-StorePilot-AirlineAisanorganizationalsubunitofBDepartment-StoreMaintenance-AirlineAusesormanagesorownsBCashier-RegisterPlayer-PiecePilot-AirplaneAisnexttoBSalesLineItem-SalesLineItemSquare-SquareCity-City64什么是域模型也稱為概念模型、領(lǐng)域?qū)ο竽P秃头治鰧ο竽P皖I(lǐng)域模型是對領(lǐng)域內(nèi)的概念類或現(xiàn)實(shí)中對象的可視化表示。(P100)表示關(guān)鍵抽象之間的關(guān)系(協(xié)作者),應(yīng)用UML表示法,領(lǐng)域模型被描述為一組沒有定義操作的類圖。是可以在業(yè)務(wù)建??颇恐袆?chuàng)建的制品之一。是OO分析中最重要的和經(jīng)典的模型。領(lǐng)域模型的范圍限定于當(dāng)前迭代所開發(fā)的用例場景,通過迭代不斷演進(jìn)。DefinitionIntheUP,theterm"DomainModel"meansarepresentationofreal-situationconceptualclasses,notofsoftwareobjects.65領(lǐng)域模型是軟件業(yè)務(wù)對象圖嗎圖9-3領(lǐng)域模型表示真實(shí)世界概念的可視化并非表示軟件類在UML中,領(lǐng)域模型被描述為一組沒有定義操作的類圖66圖9-4領(lǐng)域模型并非表示軟件制品或類域模型-準(zhǔn)則(P107)靈敏建模繪制類圖的草圖是否要運(yùn)用工具維護(hù)模型運(yùn)用領(lǐng)域術(shù)語何時(shí)運(yùn)用描述類獨(dú)立于任何商務(wù)或服務(wù)現(xiàn)有實(shí)例刪除其所描述事物(如Item)的實(shí)例后,導(dǎo)致信息丟失,而這些信息是需要維護(hù)的,但是被錯(cuò)誤地與所刪除的事物關(guān)聯(lián)起來削減冗余或重復(fù)信息68領(lǐng)域模型和數(shù)據(jù)模型是一回事嗎領(lǐng)域模型不是數(shù)據(jù)模型(許久化數(shù)據(jù))在領(lǐng)域模型中不會(huì)解除沒有明確要求記錄其相關(guān)信息的類,也不會(huì)解除沒有屬性的概念類在領(lǐng)域內(nèi)充當(dāng)純行為角色而不是信息角色的概論類也是有效的。如何建立域模型從關(guān)鍵抽象,你可以利用這些步驟創(chuàng)建域模型:1.畫類節(jié)點(diǎn),并列出屬性2.畫協(xié)作類之間的管理3.定義關(guān)聯(lián)名和角色名4.定義并記錄關(guān)聯(lián)重?cái)?shù)5.定義并記錄

溫馨提示

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

評論

0/150

提交評論