面向?qū)ο蠼第1頁(yè)
面向?qū)ο蠼第2頁(yè)
面向?qū)ο蠼第3頁(yè)
面向?qū)ο蠼第4頁(yè)
面向?qū)ο蠼第5頁(yè)
已閱讀5頁(yè),還剩65頁(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)介

面向?qū)ο蠼5谝豁?yè),共七十頁(yè),編輯于2023年,星期二第1節(jié)

面向?qū)ο蠓治鰪?fù)雜總是簡(jiǎn)單部分的組合簡(jiǎn)單部分又是更簡(jiǎn)單部分的組合簡(jiǎn)單組成復(fù)雜的過(guò)程存在層次性每個(gè)最小簡(jiǎn)單部分獨(dú)立負(fù)責(zé)完成一系列相關(guān)任務(wù)相比較而言,每個(gè)組合內(nèi)部各部分的關(guān)系比其內(nèi)部與外部的關(guān)系都更緊密各個(gè)部分通過(guò)一致的接口進(jìn)行組合,即一個(gè)部分對(duì)其它部分的所知僅僅是接口(1)現(xiàn)實(shí)世界的復(fù)雜模型第二頁(yè),共七十頁(yè),編輯于2023年,星期二(2)映射現(xiàn)實(shí)模型的面向?qū)ο笏枷肴魏蜗到y(tǒng)都是能夠完成一系列相關(guān)目標(biāo)和任務(wù)的對(duì)象對(duì)象完成一個(gè)任務(wù)時(shí)會(huì)請(qǐng)求一系列其他對(duì)象幫助其完成一些子目標(biāo)其他對(duì)象為了完成其任務(wù)又會(huì)請(qǐng)求將子目標(biāo)更細(xì)分為子子目標(biāo),并請(qǐng)求其他對(duì)象幫助完成子目標(biāo)的分解和責(zé)任分擔(dān)一直進(jìn)行直到最后產(chǎn)生的子部分可以映射到計(jì)算實(shí)體計(jì)算實(shí)體:對(duì)象層次關(guān)系:聚合(組合)、繼承、關(guān)聯(lián)組合接口:一個(gè)對(duì)象暴露的接口第三頁(yè),共七十頁(yè),編輯于2023年,星期二(3)面向?qū)ο蠼C嫦驅(qū)ο蠼#阂环N用于辨識(shí)系統(tǒng)環(huán)境中的對(duì)象及這些對(duì)象之間關(guān)系的技術(shù)OMT(JamesRumbaugh)Booch方法(GradyBooch)UMLOOSE(IvarJacobson)Coad-YourdonShlaer-MellorFusion第四頁(yè),共七十頁(yè),編輯于2023年,星期二JacobsonBoochJacobsonRumbaugh(4)UML第五頁(yè),共七十頁(yè),編輯于2023年,星期二UML對(duì)象模型ObjectModel(DomainModel)用例模型UseCaseModel行為模型BehaviorModel狀態(tài)機(jī)模型對(duì)象約束語(yǔ)言O(shè)CL第六頁(yè),共七十頁(yè),編輯于2023年,星期二2.1對(duì)象模型組成元素

(1)對(duì)象對(duì)象對(duì)象是指在一個(gè)應(yīng)用當(dāng)中具有明確角色的獨(dú)立可確認(rèn)的實(shí)體每個(gè)對(duì)象都要包含標(biāo)識(shí)唯一的標(biāo)識(shí)自己,引用狀態(tài)對(duì)象的特征描述,包括對(duì)象的屬性和屬性的取值行為對(duì)象在其狀態(tài)發(fā)生改變或者接收到外界消息時(shí)所采取的行動(dòng)第2節(jié)對(duì)象模型第七頁(yè),共七十頁(yè),編輯于2023年,星期二常見(jiàn)的事物都可以是對(duì)象和系統(tǒng)存在交互的外部實(shí)體,例如人、設(shè)備、其他的軟件系統(tǒng)等;問(wèn)題域中存在的事物,例如報(bào)表、信息展示、信號(hào)等;在系統(tǒng)的上下文環(huán)境中發(fā)生的事件,例如一次外部控制行為、一次資源變化等;人們?cè)谂c系統(tǒng)的交互之中所扮演的角色,例如系統(tǒng)管理人員、用戶管理人員、普通用戶等;和應(yīng)用相關(guān)的組織單位,例如分公司、部門(mén)、團(tuán)隊(duì)、小組等;問(wèn)題域中問(wèn)題發(fā)生的地點(diǎn),例如車間、辦公室等;事物組合的結(jié)構(gòu)關(guān)系,例如部分與整體的關(guān)系等。第八頁(yè),共七十頁(yè),編輯于2023年,星期二但是也有事物不是對(duì)象無(wú)法界定的事物純粹的值純粹的行為第九頁(yè),共七十頁(yè),編輯于2023年,星期二一個(gè)對(duì)象維護(hù)其自身的狀態(tài)需要對(duì)外公開(kāi)一些方法,行使其職能也要對(duì)外公開(kāi)一些方法,這些方法組合起來(lái)定義了該對(duì)象允許外界訪問(wèn)的方法,或者說(shuō)限定了外界可以期望的表現(xiàn),它們是對(duì)象需要對(duì)外界履行的協(xié)議(Protocol)一個(gè)對(duì)象的整體協(xié)議可能會(huì)分為多個(gè)內(nèi)聚的邏輯行為組,劃分后的每一個(gè)邏輯行為組就描述了對(duì)象的一個(gè)獨(dú)立職責(zé),體現(xiàn)了對(duì)象的一個(gè)獨(dú)立角色

對(duì)象職責(zé)職責(zé)是指對(duì)象持有、維護(hù)特定知識(shí)并基于知識(shí)行使固定職能的能力如果一個(gè)對(duì)象擁有多個(gè)行為組,就意味著該對(duì)象擁有多個(gè)不同的職責(zé),需要扮演多個(gè)不同的角色。理想的單一職責(zé)對(duì)象應(yīng)該僅僅扮演一個(gè)角色第十頁(yè),共七十頁(yè),編輯于2023年,星期二(2)鏈接鏈接對(duì)象之間的物理或業(yè)務(wù)聯(lián)系鏈接通常是單向的,當(dāng)然也有雙向的鏈接存在如果一個(gè)對(duì)象a存在指向b的鏈接,那就意味著a擁有對(duì)b的假設(shè),關(guān)于b的行為和行為效果的假設(shè)。也就是說(shuō),b需要滿足a的某些行為期望第十一頁(yè),共七十頁(yè),編輯于2023年,星期二導(dǎo)航和可見(jiàn)性由a指向b的鏈接除了包含假設(shè)和期望因素之外,還意味著a能夠在鏈接的指引下,正確的找到并將消息發(fā)送給b,即a可以導(dǎo)航到b由a指向b的鏈接使得b對(duì)a可見(jiàn),或者說(shuō)a擁有b的可見(jiàn)性(Visibility)a獲取b的可見(jiàn)性的途徑有以下幾種:b是全局對(duì)象,它對(duì)系統(tǒng)內(nèi)的所有其他對(duì)象都是可見(jiàn)的;b是a的一部分;b是被a創(chuàng)建的;b的引用被作為消息的一部分傳遞給了a第十二頁(yè),共七十頁(yè),編輯于2023年,星期二(3)類類類是共享相同屬性和行為的對(duì)象的集合,它為屬于該類的所有對(duì)象提供統(tǒng)一的抽象描述和生成模板抽象描述稱為接口(Interface),定義了類所含對(duì)象對(duì)外的(其他類和對(duì)象)的統(tǒng)一協(xié)議生成模板稱為實(shí)現(xiàn)(Implementation),說(shuō)明了類所含對(duì)象的生成機(jī)制和行為模式類的分類類產(chǎn)生的關(guān)鍵是進(jìn)行正確的分類人們認(rèn)識(shí)和處理具體事物時(shí)總會(huì)有意識(shí)或無(wú)意識(shí)的對(duì)它們進(jìn)行歸類第十三頁(yè),共七十頁(yè),編輯于2023年,星期二數(shù)據(jù)驅(qū)動(dòng)(Data-Driven)將具有相同屬性的對(duì)象歸為一類產(chǎn)生自哲學(xué)上傳統(tǒng)的經(jīng)典分類理論(ClassicalCategorizationTheory)所有具有一個(gè)給定特性或共同特性集的實(shí)體組成一個(gè)類職責(zé)驅(qū)動(dòng)(Responsibility-Driven)會(huì)依據(jù)事物的相似性而不是完全的相同性來(lái)進(jìn)行事物的分類產(chǎn)生自哲學(xué)上的概念聚類(ConceptualClustering)使用概念描述而不是指定的特征來(lái)描述類別和事物,在進(jìn)行事物分類時(shí)它會(huì)考慮概念之間的相似性,并將事物歸入和其概念最為相似的類別第十四頁(yè),共七十頁(yè),編輯于2023年,星期二抽象抽象是指在事物的眾多特征當(dāng)中只注意那些和目標(biāo)密切相關(guān)的特征,同時(shí)忽略那些不相關(guān)的特征,進(jìn)而找出事物的本質(zhì)和共性抽象是人們?cè)诶斫馐挛飼r(shí)常用的手段對(duì)象就是對(duì)現(xiàn)實(shí)世界事物的抽象結(jié)果,它表達(dá)了系統(tǒng)所需要的現(xiàn)實(shí)世界事物特征,拋棄了那些系統(tǒng)不需要的特征。類則是對(duì)象集的抽象結(jié)果,它忽略了具體某個(gè)對(duì)象在特定時(shí)間和空間的細(xì)節(jié)狀態(tài),從對(duì)象集的全局出發(fā),在一個(gè)更高的邏輯層次上,描述了對(duì)象集的共性封裝封裝是指盡可能隱藏構(gòu)造單位內(nèi)部的實(shí)現(xiàn)細(xì)節(jié),只通過(guò)有限的對(duì)外接口保持對(duì)外聯(lián)系的一種軟件構(gòu)造策略絕不是簡(jiǎn)單的將屬性和行為放置在一起第十五頁(yè),共七十頁(yè),編輯于2023年,星期二(4)關(guān)聯(lián)關(guān)聯(lián)指出了類之間的某種語(yǔ)義聯(lián)系關(guān)聯(lián)是類對(duì)其對(duì)象實(shí)例之間的無(wú)數(shù)潛在關(guān)系的描述第十六頁(yè),共七十頁(yè),編輯于2023年,星期二第十七頁(yè),共七十頁(yè),編輯于2023年,星期二2.2對(duì)象模型重要概念

(1)繼承如果一個(gè)類A繼承了對(duì)象B,那么A就自然具有B的全部屬性和服務(wù),同時(shí)A也會(huì)擁有一些自己特有的屬性和服務(wù),這些特有部分是B所不具備的結(jié)構(gòu)繼承和語(yǔ)義繼承第十八頁(yè),共七十頁(yè),編輯于2023年,星期二第十九頁(yè),共七十頁(yè),編輯于2023年,星期二(2)多態(tài)廣義多態(tài)一個(gè)對(duì)象在相似情景下表現(xiàn)出多個(gè)不同形態(tài),或者多個(gè)對(duì)象在同一情景中表現(xiàn)出相同形態(tài)的現(xiàn)象一個(gè)對(duì)象在相似情景下表現(xiàn)出不同的形態(tài)重載(Overloading)依據(jù)參數(shù)或返回值的不同為協(xié)議定義不同的版本,每一個(gè)版本都可以表現(xiàn)出自己獨(dú)特的行為泛型(Generality)使用同一個(gè)通用的實(shí)現(xiàn)處理不同的數(shù)據(jù)類型,然后根據(jù)數(shù)據(jù)類型的不同表現(xiàn)出不同的行為狹義多態(tài)多個(gè)對(duì)象在同一情景中表現(xiàn)出相同形態(tài)的現(xiàn)象第二十頁(yè),共七十頁(yè),編輯于2023年,星期二2.3領(lǐng)域模型類大多是概念類(ConceptClass),是一個(gè)能夠代表現(xiàn)實(shí)世界事物的概念概念類之間存在指明語(yǔ)義聯(lián)系的關(guān)聯(lián),這些關(guān)聯(lián)通常不標(biāo)記方向,也不標(biāo)記關(guān)聯(lián)端的可見(jiàn)性概念類會(huì)顯式的描述自己的一些重要屬性,但不是全部的詳細(xì)屬性,而且概念類的屬性通常沒(méi)有類型的約束概念類不顯式的標(biāo)記類的行為,即概念類不包含明確的方法第二十一頁(yè),共七十頁(yè),編輯于2023年,星期二SalesLineItemquantitySaledatetimeStoreaddressnameItemPaymentamountRegisterContained-inStocked-inRecords-sale-ofPaid-byHosuesCaptured-on1..*10..1111*111conceptordomainobjectassociationattributes11第二十二頁(yè),共七十頁(yè),編輯于2023年,星期二第3節(jié)

用例模型用例模型就是以用例為基本單位建立的一個(gè)系統(tǒng)功能展示模型,它是系統(tǒng)所有用例的集合,以統(tǒng)一、圖形化方式展示系統(tǒng)的功能和行為特性用例是獲取和組織用戶需求的手段基本元素用例(UseCase)參與者(Actor)關(guān)系(Relationship)系統(tǒng)邊界(SystemBoundary)第二十三頁(yè),共七十頁(yè),編輯于2023年,星期二SpecialActorSpecialActorActorBaseUseCaseExtendingUseCase<<extend>>SpecializedUseCaseGeneralUseCaseBaseUseCaseIncludedUseCase<<include>>Communication第二十四頁(yè),共七十頁(yè),編輯于2023年,星期二第二十五頁(yè),共七十頁(yè),編輯于2023年,星期二用例圖的作用第二十六頁(yè),共七十頁(yè),編輯于2023年,星期二第4節(jié)

行為模型行為模型交互圖(InteractionDiagram)順序圖(SequenceDiagram)通信圖(CommunicationDiagram)交互概述圖(InteractionOverviewDiagram)時(shí)間圖(TimingDiagram)活動(dòng)圖(ActivityDiagram)狀態(tài)圖(StateDiagram)第二十七頁(yè),共七十頁(yè),編輯于2023年,星期二(1)交互圖交互圖以一組對(duì)象為中心的交互描述技術(shù)描述在特定上下文環(huán)境中一組對(duì)象的交互行為通常描述的是單個(gè)用例的典型場(chǎng)景交互圖中的每一個(gè)交互都描述了環(huán)境中的對(duì)象為了實(shí)現(xiàn)某個(gè)目標(biāo)而執(zhí)行的一系列消息交換順序圖和通信圖是最常用的交互圖交互圖中出現(xiàn)的對(duì)象應(yīng)該在領(lǐng)域模型中有相應(yīng)的對(duì)象存在第二十八頁(yè),共七十頁(yè),編輯于2023年,星期二順序圖第二十九頁(yè),共七十頁(yè),編輯于2023年,星期二通信圖消息[sequence-expression:]messagemessage=[attribute=]name[(argument)][:return-value]sequence-expression=label[iteration-expression]iteration-expression=[*[iteration-clause]|[condition-clause]]redisplay()message1:displayPositions(window)1.1*[i:=1..n]:drawSegment(i):Controller:Windowwire:Wire{new}

:Lineleft:Beadright:Bead1.1.1a:r0:=position()1.1.1b:r1:=position()wire?local?linecontents{new}window?self?window?parameter?1.1.2:create(r0,r1)

1.1.3:display(window)1.1.3.1add(self)objectsymbollinksymbolstandardstereotypestandardstereotypestandardstereotypestandardconstraintstandardconstraint第三十頁(yè),共七十頁(yè),編輯于2023年,星期二系統(tǒng)順序圖將整個(gè)系統(tǒng)看作一個(gè)黑箱的對(duì)象,強(qiáng)調(diào)外部參與者和系統(tǒng)的交互行為,重點(diǎn)展示系統(tǒng)級(jí)事件第三十一頁(yè),共七十頁(yè),編輯于2023年,星期二(2)狀態(tài)圖狀態(tài)圖以狀態(tài)機(jī)理論為基礎(chǔ)建立的對(duì)系統(tǒng)行為的描述手段狀態(tài)機(jī)是以“狀態(tài)”概念為基礎(chǔ)解釋系統(tǒng)行為的一種技術(shù)有限狀態(tài)機(jī)FSM(FiniteStateMachine)是用于建模的最簡(jiǎn)單的狀態(tài)機(jī)在FSM技術(shù)基礎(chǔ)之上,發(fā)展出了多種分支技術(shù)(FSM,STD,Yourdon,SDL,STM,SC),UML的狀態(tài)圖SD(StateDiagram)也是其中之一。主要用于描述重要而且復(fù)雜的對(duì)象的所有行為這個(gè)對(duì)象的行為通常要涉及很多(甚至大部分)的用例第三十二頁(yè),共七十頁(yè),編輯于2023年,星期二狀態(tài)機(jī)理論狀態(tài)機(jī)理論認(rèn)為,系統(tǒng)總是處于一定的狀態(tài)之中。而且,在某一時(shí)刻,系統(tǒng)只能處于一種狀態(tài)之中。系統(tǒng)在任何一個(gè)狀態(tài)中都是穩(wěn)定的,如果沒(méi)有外部事件觸發(fā),系統(tǒng)會(huì)一直持續(xù)維持該狀態(tài)。如果發(fā)生有效的觸發(fā)事件,系統(tǒng)將會(huì)響應(yīng)事件,從一種狀態(tài)轉(zhuǎn)移到唯一的另一種狀態(tài)。如果能夠羅列出系統(tǒng)所有可能的狀態(tài),并發(fā)現(xiàn)所有有效的外部事件,那么就能夠從狀態(tài)轉(zhuǎn)移的角度完整的表達(dá)系統(tǒng)的所有行為DefinitionAfiniteautomataisa5-tuple(Q,,,q0,F),whereQisafinitesetcalledthestates,isafinitesetcalledthealphabet(inputs),:Q

Qisthetransitionfunction,

q0Qisthestartstate,andFQisthesetofacceptstates(finalstates).第三十三頁(yè),共七十頁(yè),編輯于2023年,星期二簡(jiǎn)單示例Readystop/ctr:=0Stop[normal]狀態(tài)觸發(fā)行為開(kāi)始狀態(tài)轉(zhuǎn)換結(jié)束狀態(tài)Done監(jiān)護(hù)條件事件第三十四頁(yè),共七十頁(yè),編輯于2023年,星期二Example:UMLStatechartDiagrams第三十五頁(yè),共七十頁(yè),編輯于2023年,星期二狀態(tài)圖層次結(jié)構(gòu)Hierarchyand歷史Historysuspend/DiagnosingDiagnostic1Step11Step12Diagnostic2Step21Step22resume/H*第三十六頁(yè),共七十頁(yè),編輯于2023年,星期二狀態(tài)圖并發(fā)ConcurrencyStaffMemberemployeeChildAdultRetireeageManager狀態(tài)圖UMLSD詳細(xì)的見(jiàn):表14-2、UML的狀態(tài)圖表示法第三十七頁(yè),共七十頁(yè),編輯于2023年,星期二(3)活動(dòng)圖活動(dòng)圖借鑒了多種BPM后建立的行為圖以“流”(控制流和數(shù)據(jù)流)處理為側(cè)重點(diǎn)描述系統(tǒng)的行為通常以組織的整體業(yè)務(wù)流程為描述對(duì)象的第三十八頁(yè),共七十頁(yè),編輯于2023年,星期二示例第三十九頁(yè),共七十頁(yè),編輯于2023年,星期二第5節(jié)對(duì)象約束語(yǔ)言O(shè)CLOCL并不是UML中單獨(dú)的一個(gè)模型,而是被應(yīng)用在其他的模型當(dāng)中,豐富其他模型的語(yǔ)義OCL是一種無(wú)副作用的規(guī)約語(yǔ)言以表達(dá)式的方式定義對(duì)其他模型元素的約束約束和限制其他模型元素的行為和狀態(tài)變化不會(huì)修改任何其他模型元素的表述OCL不是一種編程語(yǔ)言。OCL的首要定位是建模語(yǔ)言,因此它在保證一定表達(dá)能力的前提下,注重于語(yǔ)言的簡(jiǎn)潔性和抽象性它無(wú)法被用來(lái)描述程序的控制邏輯和工作流程,它的表達(dá)式定義也無(wú)法在程序中得到直接的執(zhí)行第四十頁(yè),共七十頁(yè),編輯于2023年,星期二41示例FlightAirplaneCargoFlightPassengerFlightPassengerPlaneCargoPlane10..*10..*0..*1flights第四十一頁(yè),共七十頁(yè),編輯于2023年,星期二42示例{contextFlightinv:type=#cargoimpliesairplane.type=#cargoinv:type=#passengerimpliesairplane.type=#passenger}10..*FlightAirplanetype:enumofcargo,passengertype:enumofcargo,passengerflights第四十二頁(yè),共七十頁(yè),編輯于2023年,星期二(1)OCLexamplesAcustomergetsagiftof$10ifthenumberoftransactionss/hestartedismorethan30第四十三頁(yè),共七十頁(yè),編輯于2023年,星期二Solution2contextCustomer::getGift():IntegerpreCustStartTransact:self.bankaccount.costs->size()>30postTenDollarsGift:gift=gift@pre+10andresult=gift構(gòu)成類型表達(dá)式保留關(guān)鍵字第四十四頁(yè),共七十頁(yè),編輯于2023年,星期二主要應(yīng)用不變量不變量是可以對(duì)UML類元施加的約束類元需要保持它的表達(dá)式取值在指定的時(shí)間范圍內(nèi)或者指定的條件下始終為“真”最常見(jiàn)的是用來(lái)約束類的屬性或者類的方法{contextFlightinv:duration<4}第四十五頁(yè),共七十頁(yè),編輯于2023年,星期二前置條件和后置條件

前置條件要求類元在執(zhí)行操作之前必須保證前置條件的表達(dá)式為真后置條件要求類元在操作執(zhí)行完成之后必須保證后置條件的表達(dá)式為真LoyaltyAccountpoints:Integerearn(i:Integer)burn(i:Integer)isEmpty():Boolean{points>=0}<<postcondition>>points=points@pre-iclassinvariantpostconditionforburnoperation<<postcondition>>result=(points=0)<<precondition>>points>=iandi>=0preconditionforburnoperation<<postcondition>>points=points@pre+i<<precondition>>i>=0第四十六頁(yè),共七十頁(yè),編輯于2023年,星期二監(jiān)護(hù)條件

監(jiān)護(hù)條件是對(duì)狀態(tài)機(jī)模型中狀態(tài)轉(zhuǎn)移施加的約束在狀態(tài)機(jī)到達(dá)轉(zhuǎn)移點(diǎn)時(shí),監(jiān)護(hù)條件的表達(dá)式需要根據(jù)實(shí)際狀態(tài)進(jìn)行評(píng)估,并只有在表達(dá)式實(shí)際取值為“真”的情況下才進(jìn)行轉(zhuǎn)移第四十七頁(yè),共七十頁(yè),編輯于2023年,星期二簡(jiǎn)潔與自然語(yǔ)言相結(jié)合使用工具進(jìn)行正確性檢查(2)OCL用法第四十八頁(yè),共七十頁(yè),編輯于2023年,星期二6.1面向?qū)ο蠼<夹g(shù)路線(1)從用例描述中識(shí)別出對(duì)象和類;(2)分析用例的描述信息,添加類的屬性和類之間的關(guān)聯(lián);(3)從用例描述中識(shí)別系統(tǒng)行為;(4)將系統(tǒng)行為分配給類;(5)綜合考慮類的屬性與行為,細(xì)化類的職責(zé),建立完全的對(duì)象模型。第6節(jié)面向?qū)ο蠼5谒氖彭?yè),共七十頁(yè),編輯于2023年,星期二6.2領(lǐng)域模型建模建立領(lǐng)域模型發(fā)現(xiàn)對(duì)象和類概念類分類列表

名詞分析

行為分析

建立類之間的關(guān)聯(lián)添加類的重要屬性面向?qū)ο蠓治龅慕Y(jié)果:建立領(lǐng)域模型建立行為模型第五十頁(yè),共七十頁(yè),編輯于2023年,星期二(1)發(fā)現(xiàn)對(duì)象和類如果候選對(duì)象既維持一定的狀態(tài),又依據(jù)狀態(tài)表現(xiàn)一定的行為,那么它就應(yīng)該是一個(gè)獨(dú)立存在的對(duì)象如果候選對(duì)象只有狀態(tài)沒(méi)有行為,那么就要分析它的狀態(tài)是否是系統(tǒng)需要的數(shù)據(jù)。如果系統(tǒng)需要它的狀態(tài)數(shù)據(jù),那么該候選對(duì)象就應(yīng)該作為其他對(duì)象的屬性出現(xiàn)在最終的領(lǐng)域模型當(dāng)中。否則,該候選對(duì)象應(yīng)該被擯棄如果候選對(duì)象只有行為沒(méi)有狀態(tài),那么往往意味著需求信息的遺漏需要注意實(shí)體關(guān)系建模思想帶來(lái)的誤區(qū)第五十一頁(yè),共七十頁(yè),編輯于2023年,星期二概念類分類列表這種方法事先給出一個(gè)概念類的分類列表,從中發(fā)現(xiàn)對(duì)象

方式來(lái)源Shlaer-Mellor[ShIaer1988]Ross[Ross1987]Coad-Yourdon[Coad1990]分類列表有形的事物角色事件交互功能人地點(diǎn)事物組織:集合體概念事件:需要被記錄結(jié)構(gòu)其他系統(tǒng)設(shè)備事件:需要被記錄角色地點(diǎn)組織單位第五十二頁(yè),共七十頁(yè),編輯于2023年,星期二概念類分類列表示例第五十三頁(yè),共七十頁(yè),編輯于2023年,星期二名詞分析

從文本描述中識(shí)別出有關(guān)的名詞和名詞短語(yǔ),然后從中發(fā)現(xiàn)對(duì)象第五十四頁(yè),共七十頁(yè),編輯于2023年,星期二6.2領(lǐng)域模型建模

——發(fā)現(xiàn)對(duì)象和類行為分析從需求描述中搜尋動(dòng)詞,識(shí)別出系統(tǒng)行為,然后從中發(fā)現(xiàn)對(duì)象用例描述行為候選對(duì)象確定對(duì)象概念類主動(dòng)對(duì)象被動(dòng)對(duì)象用戶在第i層按下向上的樓層按鈕按下用戶第i層向上樓層按鈕保留對(duì)象:第i層的向上樓層按鈕第i層的向上樓層按鈕燈電梯電梯門(mén)計(jì)時(shí)器到第j層的電梯按鈕到第j層的電梯按鈕燈樓層按鈕電梯按鈕按鈕燈電梯電梯門(mén)計(jì)時(shí)器第i層的向上按鈕燈亮亮第i層的向上樓層按鈕燈電梯到達(dá)第i層;到達(dá)電梯第i層第i層的向上樓層按鈕燈滅滅第i層的向上樓層按鈕燈電梯門(mén)開(kāi)啟開(kāi)啟電梯門(mén)計(jì)時(shí)器開(kāi)始計(jì)時(shí)計(jì)時(shí)計(jì)時(shí)器用戶進(jìn)入電梯無(wú)用戶按下到j(luò)層的電梯按鈕按下用戶到第j層的電梯按鈕到第j層的電梯按鈕燈亮亮到第j層的電梯按鈕燈計(jì)時(shí)時(shí)間到,電梯門(mén)關(guān)閉到時(shí)計(jì)時(shí)器擯棄對(duì)象:用戶:系統(tǒng)外對(duì)象,既沒(méi)有狀態(tài)也沒(méi)有行為;第i層、第j層:只有狀態(tài)沒(méi)有行為關(guān)閉電梯門(mén)電梯到達(dá)第j層到達(dá)到達(dá)j層的電梯按鈕燈滅滅到第j層的電梯按鈕燈電梯門(mén)開(kāi)啟開(kāi)啟電梯門(mén)計(jì)時(shí)器開(kāi)始計(jì)時(shí)計(jì)時(shí)計(jì)時(shí)器用戶走出電梯門(mén)無(wú)計(jì)時(shí)時(shí)間到,電梯門(mén)關(guān)閉到時(shí)電梯門(mén)關(guān)閉計(jì)時(shí)器第五十五頁(yè),共七十頁(yè),編輯于2023年,星期二(2)建立類之間的關(guān)聯(lián)保證類之間協(xié)作所必需的可見(jiàn)性適當(dāng)使用問(wèn)題域內(nèi)的關(guān)聯(lián),增強(qiáng)領(lǐng)域模型的可理解性要適可而止不要在關(guān)聯(lián)的識(shí)別上花費(fèi)太多的時(shí)間識(shí)別概念類比識(shí)別關(guān)聯(lián)更加重要避免顯示冗余和導(dǎo)出的關(guān)聯(lián)第五十六頁(yè),共七十頁(yè),編輯于2023年,星期二示例第五十七頁(yè),共七十頁(yè),編輯于2023年,星期二(3)添加類的重要屬性實(shí)現(xiàn)類協(xié)作時(shí)必要的信息,是協(xié)作的條件、輸入、結(jié)果或者過(guò)程記錄使用用戶的描述方式,不進(jìn)行類型和約束的嚴(yán)格定義第五十八頁(yè),共七十頁(yè),編輯于2023年,星期二6.3行為模型建模建立行為模型建立系統(tǒng)順序圖在需要時(shí)建立詳細(xì)的交互圖建立用例的狀態(tài)圖或者重要類的狀態(tài)圖建立活動(dòng)圖為系統(tǒng)行為添加契約說(shuō)明第五十九頁(yè),共七十頁(yè),編輯于2023年,星期二(1)建立交互圖確定交互圖的上下文環(huán)境上下文環(huán)境的前置條件和后置條件應(yīng)該被分配給交互圖中的相應(yīng)行為找出參與交互的對(duì)象交互圖中的參與對(duì)象(和對(duì)象之間的關(guān)聯(lián))應(yīng)該和領(lǐng)域模型中的知識(shí)保持一致。根據(jù)發(fā)現(xiàn)的對(duì)象(和關(guān)聯(lián))建立交互圖框架添加消息,描述交互行為考慮和系統(tǒng)相關(guān)的(系統(tǒng)內(nèi)的、系統(tǒng)與外部對(duì)象之間的)交互行為,忽略那些與系統(tǒng)無(wú)關(guān)的(外部對(duì)象之間的)交互行為。如果建立的是系統(tǒng)順序圖,那么系統(tǒng)內(nèi)的行為也可以被忽略。進(jìn)行消息標(biāo)識(shí)、特化圖示等詳細(xì)信息的描述,將交互圖的信息補(bǔ)充完整。第六十頁(yè),共七十頁(yè),編輯于2023年,星期二第六十一頁(yè),共七十頁(yè),編輯于2023年,星期二(2)建立狀態(tài)圖確定上下文環(huán)境搞清楚狀態(tài)的主體常見(jiàn)的狀態(tài)主體有:類、用例、多個(gè)用例和整個(gè)系統(tǒng)識(shí)別狀態(tài),標(biāo)記初始狀態(tài)和結(jié)束狀態(tài)可能會(huì)不存在確定的初始狀態(tài)和結(jié)束狀態(tài)建立狀態(tài)轉(zhuǎn)換補(bǔ)充詳細(xì)信息,完善狀態(tài)圖第六十二頁(yè),共七十頁(yè),編輯于2023年,星期二授權(quán)空閑銷售開(kāi)始商品信息顯示錯(cuò)誤提示列表顯示銷售結(jié)束授權(quán)YY空閑YYYY銷售開(kāi)始Y商品信息顯示YY錯(cuò)誤提示Y列表顯示

溫馨提示

  • 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)論