【學(xué)習(xí)】第三章軟件需求分析課件2_第1頁
【學(xué)習(xí)】第三章軟件需求分析課件2_第2頁
【學(xué)習(xí)】第三章軟件需求分析課件2_第3頁
【學(xué)習(xí)】第三章軟件需求分析課件2_第4頁
【學(xué)習(xí)】第三章軟件需求分析課件2_第5頁
已閱讀5頁,還剩223頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

§3.4分析建摸方法結(jié)構(gòu)化分析(傳統(tǒng)建模方法)面向?qū)ο蠓治觥?.4分析建摸方法結(jié)構(gòu)化分析(傳統(tǒng)建模方法)計算機(jī)世界現(xiàn)實世界影射計算機(jī)世界現(xiàn)實世界影射計算機(jī)世界現(xiàn)實世界結(jié)構(gòu)化開發(fā)方法結(jié)構(gòu)化分析結(jié)構(gòu)化設(shè)計結(jié)構(gòu)化編程OOAOODOOP面向?qū)ο箝_發(fā)方法計算機(jī)世界現(xiàn)實世界結(jié)結(jié)構(gòu)化結(jié)構(gòu)化結(jié)構(gòu)化OOAOODOOP面

§3.4.2面向?qū)ο蠓治龇椒ㄜ浖_發(fā)中為什么要使用面向?qū)ο蠓椒ǎ棵嫦驅(qū)ο蠓治龇椒ㄅc結(jié)構(gòu)化分析方法有哪些相似之處?有何區(qū)別?面向?qū)ο蠓椒ㄊ菍^去的一個完全突破,還是“換湯不換藥”?§3.4.2面向?qū)ο蠓治龇椒ㄜ浖_發(fā)中為什么要使用面向?qū)ο螅╫bject)

現(xiàn)實世界中某個具體的物理實體或概念在計算機(jī)邏輯中的映射和體現(xiàn)。

對象具有的含義:在現(xiàn)實世界中:是客觀世界中的一個實體在面向?qū)ο蟪绦蛑校罕磉_(dá)成計算機(jī)可理解、可操縱、具有一定屬性和行為的對象在計算機(jī)世界中:是一個可標(biāo)識的存儲區(qū)域?qū)ο螅╫bject)現(xiàn)實世界中某個具體的物理實體或概念

面向?qū)ο蠓椒ㄊ且环N運用對象、類、繼承、封裝、聚合、消息傳遞、多態(tài)性等概念來構(gòu)造系統(tǒng)的軟件開發(fā)方法。面向?qū)ο?對象+類+繼承+消息通信面向?qū)ο蟮闹饕卣鳎悍忾]性(Encapsulation)繼承性(Inheritance)多態(tài)性(Polymorphism)面向?qū)ο蠓椒ㄊ且环N運用對象、類、繼承、封裝、聚合、類(class)具有共同屬性和行為的對象的抽象類與對象的關(guān)系類是對象的抽象對象是類的實例類對象類(class)具有共同屬性和行為的對象的抽象類對象對象、實體與類對象實體類抽象數(shù)據(jù)類計算機(jī)世界現(xiàn)實世界計算機(jī)邏輯的實現(xiàn)影射抽象實例化抽象概念世界對象、實體與類對象實體類抽象數(shù)據(jù)類計算機(jī)世界現(xiàn)實世界計算機(jī)邏封裝封裝是軟件開發(fā)方法的重要原則,有兩個涵義:把對象的全部屬性和全部服務(wù)結(jié)合在一起,形成一個不可分割的獨立單位(對象)。盡可能隱蔽對象的內(nèi)部細(xì)節(jié)(信息隱蔽)封裝封裝是軟件開發(fā)方法的重要原則,有兩個涵義:傳統(tǒng)方法數(shù)據(jù)與過程是分離的過程1輸入輸出過程2過程3數(shù)據(jù)實體傳統(tǒng)方法數(shù)據(jù)與過程是分離的過程1輸入輸出過程2過程3數(shù)據(jù)實體屬于該對象的數(shù)據(jù)對象處理數(shù)據(jù)的方法消息消息對象把數(shù)據(jù)和處理數(shù)據(jù)的方法封狀成一個單元屬于該對象對象處理數(shù)據(jù)的方法消息消息對象把數(shù)據(jù)和處理數(shù)據(jù)的方傳統(tǒng)方法和面向?qū)ο蠓椒ǖ谋容^傳統(tǒng)方法系統(tǒng)是過程的集合過程與數(shù)據(jù)實體交互過程接受輸入產(chǎn)生輸出面向?qū)ο蠓椒ㄏ到y(tǒng)是交互對象的集合對象與人或其它對象交互對象發(fā)送與響應(yīng)消息傳統(tǒng)方法和面向?qū)ο蠓椒ǖ谋容^傳統(tǒng)方法面向?qū)ο蠓椒ɡ^承(繼承性inheritance)繼承性是父類和子類之間共享數(shù)據(jù)和方法的機(jī)制繼承性具有傳遞性繼承性包括單繼承和多重繼承

子類繼承部分增加部分父類共性部分繼承(繼承性inheritance)繼承性是父類和子類之間繼承性作用使軟件系統(tǒng)具有開放性更好地進(jìn)行抽象與分類增強(qiáng)代碼的重用率繼承性作用使軟件系統(tǒng)具有開放性多態(tài)(多態(tài)性polymorphism)不同的對象收到同一消息可產(chǎn)生完全不同的結(jié)果,這一現(xiàn)象叫做多態(tài)多態(tài)的效果用戶發(fā)送一個通用的消息,而實現(xiàn)的細(xì)節(jié)則由接收對象自行決定多態(tài)(多態(tài)性polymorphism)不同的對象收到同一消息多態(tài)性的作用增強(qiáng)了操作的透明性,可理解性和可擴(kuò)展性增強(qiáng)了軟件的靈活性和重用性多態(tài)性的作用增強(qiáng)了操作的透明性,可理解性和可擴(kuò)展性消息(message)消息

對象之間相互請求或相互協(xié)作的途徑,是要求某個對象執(zhí)行某個功能操作的規(guī)格說明消息內(nèi)容

通常包含接收方及請求接收方完成的功能信息發(fā)送方

發(fā)出消息,請求接收方響應(yīng)接收方

收到消息后,經(jīng)過解釋,激活方法,予以響應(yīng)消息(message)消息對象之間相互請求或相互協(xié)作的為什么對面向?qū)ο蠓椒ǜ信d趣?面向?qū)ο蠓椒ǖ闹饕獌?yōu)點:自然性追求軟件系統(tǒng)對現(xiàn)實系統(tǒng)的直接模擬,盡量實現(xiàn)將現(xiàn)實世界中的事物直接映射到軟件系統(tǒng)的解空間中。軟件復(fù)用

可復(fù)用性(可重用性)reusebility可擴(kuò)展性可管理性為什么對面向?qū)ο蠓椒ǜ信d趣?面向?qū)ο蠓椒ǖ闹饕獌?yōu)點:

面向?qū)ο蠹夹g(shù)允許復(fù)用的不僅僅是代碼,通過面向?qū)ο蠹夹g(shù),我們可以復(fù)用需求、分析、設(shè)計、測試計劃、用戶界面以及體系結(jié)構(gòu)等等,事實上,軟件工程生存期中的每個部分都可以復(fù)用。

可復(fù)用性(可重用性)可復(fù)用性(可重用性)

傳統(tǒng)系統(tǒng)分析:面向功能,把系統(tǒng)看成一組功能OOA:

把問題當(dāng)作一組相互作用的實體,并確定實體間關(guān)系

(1)方法是對軟件開發(fā)過程所有階段進(jìn)行綜合考慮而得到的;(2)從生存期的一個階段到下一個階段所使用的方法與技術(shù)具有高度的連續(xù)性;(3)將OOA、OOD、OOP集成到生存期的相應(yīng)階段。面向?qū)ο蠹夹g(shù)的特點(1)方法是對軟件開發(fā)過程所有階段進(jìn)行綜合考慮而得到的;面向OO方法改進(jìn)了在生存期各個階段間的界面,因為生存期各個階段開發(fā)出來的“部件”都是類,在面向?qū)ο笊嫫诘母鱾€階段對各個類的信息進(jìn)行細(xì)化,類成為分析、設(shè)計和實現(xiàn)的基本單元。

OO方法的開發(fā)過程OO方法改進(jìn)了在生存期各個階段間的界面,因為生存類的生存期模型類的規(guī)格說明從廢棄型開發(fā)既存類的復(fù)用漸增式的實現(xiàn)漸增式的測試求精和維護(hù)

測試用例和測試的開發(fā)實現(xiàn)從既存類演變類的生存期模型類的規(guī)從廢棄型開發(fā)既存類漸增式的實現(xiàn)漸增式的測類的規(guī)格說明指導(dǎo)對存放現(xiàn)存類的軟件庫進(jìn)行查找現(xiàn)存類提供當(dāng)前應(yīng)用所需功能三種可能利用現(xiàn)存類的方向:

現(xiàn)存類的復(fù)用

從現(xiàn)存類進(jìn)行演變

從廢棄類進(jìn)行開發(fā)

類的設(shè)計與實現(xiàn)類的規(guī)格說明指導(dǎo)對存放現(xiàn)存類的軟件庫進(jìn)行查找類的設(shè)計與實現(xiàn)對象之間的聯(lián)系與對象模型對象之間的聯(lián)系與對象模型面向?qū)ο蠓椒ㄩ_發(fā)軟件通常建立的三種形式的模型

描述系統(tǒng)數(shù)據(jù)結(jié)構(gòu)的對象模型描述系統(tǒng)控制結(jié)構(gòu)的動態(tài)模型描述系統(tǒng)功能的功能模型

三種模型從三個不同但由密切相關(guān)的角度模擬目標(biāo)系統(tǒng)。

對象模型是最重要、最基本、最核心的。面向?qū)ο蠓椒ㄩ_發(fā)軟件對象模型表示靜態(tài)的、結(jié)構(gòu)的系統(tǒng)數(shù)據(jù)的性質(zhì)。對模擬客觀世界實體的對象以及對象彼此之間的關(guān)系的映射,描述了系統(tǒng)的靜態(tài)結(jié)構(gòu)。OO方法強(qiáng)調(diào)圍繞對象而不是功能來構(gòu)造系統(tǒng)。對象模型對象模型表示靜態(tài)的、結(jié)構(gòu)的系統(tǒng)數(shù)據(jù)的性質(zhì)。對象模型分類關(guān)系(歸納關(guān)系、一般與特殊的關(guān)系)組成關(guān)系(組合關(guān)系、整體/部分的關(guān)系)對象屬性之間的靜態(tài)的聯(lián)系對象行為的動態(tài)聯(lián)系

類及對象間常見的聯(lián)系類及對象間常見的聯(lián)系分類關(guān)系(一般與特殊的關(guān)系)示例學(xué)生本科生研究生分類關(guān)系(一般與特殊的關(guān)系)示例學(xué)生本科生研究生組成關(guān)系(整體與部分的關(guān)系)示例學(xué)科部辦公室學(xué)院實驗室組成關(guān)系(整體與部分的關(guān)系)示例學(xué)科部辦公室學(xué)院實驗室對象模型中表現(xiàn)

上述聯(lián)系的結(jié)構(gòu)和連接對象模型中表現(xiàn)

上述聯(lián)系的結(jié)構(gòu)和連接分類是對象抽象的基礎(chǔ)

分類結(jié)構(gòu)表現(xiàn)的是事物的一般與特殊的關(guān)系,即“is-a”關(guān)系。面向?qū)ο笮g(shù)語中常把一般與特殊的關(guān)系稱為泛化(Generalization)與特化(Specialization)聯(lián)系(1)分類結(jié)構(gòu)(一般/特殊結(jié)構(gòu))分類是對象抽象的基礎(chǔ)(1)分類結(jié)構(gòu)(一般/特殊結(jié)構(gòu))

存戶一般/特殊結(jié)構(gòu)舉例一般類(父類、基類、超類)特殊類(子類、具體類)繼承一個特殊類中的所有對象可繼承一般類中的屬性、服務(wù)、關(guān)系.賬號姓名余額存款取款支票存戶儲蓄存戶利息率存戶一般/特殊結(jié)構(gòu)舉例一般類特殊類繼承一個

組裝結(jié)構(gòu)表示對象類之間的組成關(guān)系,即整體與部分的關(guān)系。整體對于部分是“has-a”關(guān)系。(部分對于整體是“a-part-of”關(guān)系)組裝結(jié)構(gòu)體現(xiàn)了面向?qū)ο蠓椒ǖ?/p>

聚合(也叫聚集Aggregation)原則。(2)

組裝結(jié)構(gòu)(整體/部分結(jié)構(gòu))組裝結(jié)構(gòu)表示對象類之間的組成關(guān)系,即整體與部分的關(guān)1+電源主機(jī)箱鍵盤監(jiān)視器鼠標(biāo)內(nèi)存CPU硬盤o微機(jī)整體/部分結(jié)構(gòu)表示法舉例1+電源主機(jī)箱鍵盤監(jiān)視器鼠標(biāo)內(nèi)存CPU硬盤o微機(jī)整體/部實例連接表現(xiàn)了對象之間的靜態(tài)聯(lián)系,通過對象的屬性來表現(xiàn)對象之間的依賴關(guān)系。面向?qū)ο笮g(shù)語中把對象之間的實例連接稱為鏈接(Link),把類之間的實例連接稱為關(guān)聯(lián)(Association)。(3)實例連接(InstanceConnection)實例連接表現(xiàn)了對象之間的靜態(tài)聯(lián)系,通過對象的屬性來表現(xiàn)對象之

教師指導(dǎo)論文0,m1學(xué)生教師為學(xué)生指導(dǎo)論文:教師教學(xué)0,m0,n學(xué)生教師為學(xué)生授課:實例連接示例及表示教師指導(dǎo)論文學(xué)生教師為學(xué)生教師教學(xué)學(xué)生

允許實例連接帶有一組屬性,這些屬性通過關(guān)聯(lián)來描述

類1連接名稱mn類1連接屬性關(guān)聯(lián)關(guān)系(鏈屬性)的表示類1連接名稱類1連接關(guān)聯(lián)關(guān)為之工作工資職務(wù)雇主雇員個人名字身份證號公司名字地址題目答辯時間成績教師學(xué)生指導(dǎo)論文0,m1關(guān)聯(lián)關(guān)系(鏈屬性)為之工作工資雇主雇員個人公司題目教師學(xué)生指導(dǎo)對象之間的通信聯(lián)系。一需要另一個對象的服務(wù),便向它發(fā)出個對象請求服務(wù)的消息,接收消息的對象響應(yīng)消息,觸發(fā)所要求的服務(wù)操作。消息連接體現(xiàn)了對象行為的動態(tài)聯(lián)系。(4)消息連接(MessageConnection)(4)消息連接(MessageConnection)一家公司的對象模型(OMT)示例為之工作管理0,1姓名身份證號碼地址員工名字電話號碼主要產(chǎn)品地址公司職務(wù)雇用解雇項目名預(yù)算優(yōu)先級項目產(chǎn)品名成本重量產(chǎn)品工人經(jīng)理部門部門名主持參加1+1+1+1+1+生產(chǎn)一家公司的對象模型(OMT)示例為之工作管理

方法論是如何對復(fù)雜系統(tǒng)進(jìn)行“抽象”的工作,以及如何建立抽象模型。面向?qū)ο蟮姆椒ㄕ撁嫦驅(qū)ο蟮姆椒ㄕ撁嫦驅(qū)ο蠓治龇椒ù_實不同于結(jié)構(gòu)化分析方法嗎?Fichman,R.GandC.F.Kemerer,在“Object-orientedConventionalAnalysisandDesignMethodologies”中闡述:我們的結(jié)論是面向?qū)ο蠓治龇椒ū憩F(xiàn)了相對面向過程的方法學(xué)(如結(jié)構(gòu)化分析)的根本性變化,而且相對面向數(shù)據(jù)的方法學(xué)僅僅是增量性的變化。面向過程的方法學(xué)在建模過程中的關(guān)注點不是對象的內(nèi)在性質(zhì),從而導(dǎo)致了和面向?qū)ο蟮娜齻€基本原理相正交的問題域模型。二.面向?qū)ο蠓治鼋?OOA)面向?qū)ο蠓治龇椒ù_實不同于結(jié)構(gòu)化分析方法嗎?二.面向?qū)ο蠓治?/p>

面向?qū)ο蠓治龇椒ㄊ沟密浖こ處熌軌蛲ㄟ^對象、屬性和操作(作為主要的建模成分)的表示來對問題建模。面向?qū)ο蠓治龇椒ㄊ沟密浖こ處熌軌蛲ㄟ^對象、屬性和

面向?qū)ο蠓治龇椒ㄊ沟密浖こ處熌軌蛲ㄟ^對象、屬性和操作(作為主要的建模成分)的表示來對問題建模。建立分析模型5個基本原則:(1)建模信息域;(2)描述模塊功能;(3)表示模型行為;(4)分解以模型顯示更多細(xì)節(jié);(5)早期模型表示問題的本質(zhì),而后期模型提供實現(xiàn)細(xì)節(jié)。面向?qū)ο蠓治龇椒ㄊ沟密浖こ處熌軌蛲ㄟ^對象、屬性和是定義所有和被求解的問題相關(guān)的類(及同類關(guān)聯(lián)的關(guān)系和行為),為了達(dá)到這個目標(biāo),必須完成以下任務(wù):(1)必須在客戶和軟件工程師之間溝通了解基本的用戶需求;(2)必須標(biāo)識類(定義屬性和方法);(3)必須刻劃類層次;(4)表示對象對象關(guān)系(對象連接);(5)必須建模對象行為;(6)(1)到(5)遞進(jìn)地反復(fù)使用,直至完成建模OOA的意圖是定義所有和被求解的問題相關(guān)的類(及同類關(guān)聯(lián)的關(guān)系和行為),面向?qū)ο蠓治龇椒ㄏ嗨撇襟E:(1)使用基本需求作為指南選擇類和對象;(2)為對象標(biāo)識屬性和操作;(3)定義組織類的結(jié)構(gòu)和層次;(4)建造對象-關(guān)系模型的;(5)建造對象-行為模型。面向?qū)ο蠓治龇椒ㄏ嗨撇襟E:由Rumbaugh、Booch、Jacobson提出的統(tǒng)一建模語言(UnifyModeingLanguage簡稱UML)

UML是一種定義良好,易于表達(dá),功能強(qiáng)大且普遍實用的建模語言。統(tǒng)一的OOA方法由Rumbaugh、Booch、Jacobson提出

對象模型技術(shù)

(OMT,ObjectModelTech.)對象模型動態(tài)模型功能模型基本模型:三個模型分別從不同角度分析系統(tǒng)對象模型技術(shù)對象模型動態(tài)模型功能模型基本模型:三對象模型:描述靜態(tài)結(jié)構(gòu),定義做事情的實體功能模型:描述處理(數(shù)據(jù)變換),指明系統(tǒng)應(yīng)“做什么”動態(tài)模型:描述交互過程,規(guī)定什么時候做分析模型對象模型:描述靜態(tài)結(jié)構(gòu),定義做事情的實體分析模型OMT模型系統(tǒng)分析和設(shè)計過程概觀圖產(chǎn)生需求結(jié)構(gòu)及對象設(shè)計建立模型問題描述對象模型、動態(tài)模型、功能模型詳細(xì)的對象模型詳細(xì)的動態(tài)模型詳細(xì)的功能模型分析階段設(shè)計階段OMT模型系統(tǒng)分析和設(shè)計過程概觀圖產(chǎn)生需求結(jié)構(gòu)及對象建立模型設(shè)置:由廠商根據(jù)銷售狀況自動調(diào)配,并可隨時重新設(shè)置售價,但售貨機(jī)最多僅能放置50罐飲料,其按鈕設(shè)計在各種飲料樣本的下方,若經(jīng)金額計算器累計金額足夠,則選擇鍵燈會亮;若某一種飲料已銷售完畢,則售完燈會亮。銷售:顧客將硬幣投入售貨機(jī),經(jīng)累加金額足額的飲料選擇鍵燈亮,等顧客按鍵選擇。顧客按鍵后飲料由取物樓掉出,并自動結(jié)算及找錢。取消交易:顧客可在按下選擇鍵前任何一個時刻,拉動退幣桿取消交易收回硬幣。實例:飲料自動售貨機(jī)系統(tǒng)設(shè)置:由廠商根據(jù)銷售狀況自動調(diào)配,并可隨時重新設(shè)置售價,但售(1)找出對象及其關(guān)聯(lián)(2)賦予類及關(guān)聯(lián)的屬性數(shù)據(jù)(3)組織類的結(jié)構(gòu)OMT的對象圖步驟:(1)找出對象及其關(guān)聯(lián)OMT的對象圖步驟:設(shè)置:一個飲料自動售貨機(jī)可以放置五種不同或部分相同的飲料,可由廠商根據(jù)銷售狀況自動調(diào)配,并可隨時重新設(shè)置售價,但售貨機(jī)最多僅能放置50罐飲料,其按鈕設(shè)計在各種飲料樣本的下方,若經(jīng)金額計算器累計金額足夠,則選擇鍵燈會亮;若某一種飲料已銷售完畢,則售完燈會亮。銷售:

顧客將硬幣投入售貨機(jī),經(jīng)累加金額足額的飲料選擇鍵燈亮,等顧客按鍵選擇。顧客按鍵后飲料由取物樓掉出,并自動結(jié)算及找錢。取消交易:顧客可在按下選擇鍵前任何一個時刻,拉動退幣桿取消交易收回硬幣。找出飲料自動售貨機(jī)系統(tǒng)中的對象設(shè)置:一個飲料自動售貨機(jī)可以放置五種不同或部分相同的飲料描述系統(tǒng)內(nèi)部對象結(jié)構(gòu),包括對象本身的定義、對象的屬性、操作,以及對象與其它對象之間的關(guān)系。

對象模型是OMT方法論中最重要的部分,動態(tài)模型、功能模型都將依次而建立對象模型以對象圖形式呈現(xiàn),對象圖由類構(gòu)成。對象模型描述系統(tǒng)內(nèi)部對象結(jié)構(gòu),包括對象本身的定義、對象的屬性、操作,飲料自動售貨機(jī)系統(tǒng)對象圖販賣機(jī)飲料號碼價格投幣金額顯示按紐退幣售完顯示存量計算器飲料號碼存量遞減售完顯示重置選擇鈕選擇鈕狀態(tài)燈亮燈熄售完燈亮按鈕顧客姓名硬幣投幣-置入拿取飲料退幣桿退幣桿狀態(tài)拉動金額計算器金額累加找零重置購買選取被拉動屬于屬于屬于屬于飲料自動售貨機(jī)系統(tǒng)對象圖販賣機(jī)飲料號碼投幣存量計算器飲料號碼為所有模型實體準(zhǔn)備一個數(shù)據(jù)字典,精確描述每一個對象類,包括:成員約束關(guān)聯(lián)、屬性、操作建立數(shù)據(jù)字典為所有模型實體準(zhǔn)備一個數(shù)據(jù)字典,精確描述每一個對象類,包括:動態(tài)模型用來描述系統(tǒng)與時間相關(guān)的動態(tài)行為即系統(tǒng)的控制邏輯,表現(xiàn)對象彼此間經(jīng)過相互作用后,隨時間改變的不同運算順序。

動態(tài)模型以“事件”(Events)和“狀態(tài)”(States)為其模型的主要概念。動態(tài)模型以狀態(tài)圖形式呈現(xiàn)。動態(tài)模型用來描述系統(tǒng)與時間相關(guān)的動態(tài)行為即系統(tǒng)的控制邏輯,

瞬時發(fā)生的行為;引起對象狀態(tài)轉(zhuǎn)換的控制信息。事件類和屬性舉例:飛機(jī)起飛(航線、航班號、城市)按動鼠標(biāo)按鈕(按鈕、位置)……..事件瞬時發(fā)生的行為;事件

腳本和事件蹤跡腳本是系統(tǒng)某一次特定運行時期內(nèi)發(fā)生的事件序列。(腳本也叫場景)

事件追蹤圖

側(cè)重說明發(fā)生于系統(tǒng)執(zhí)行過程中的一個特定“場景(scenarios)”。腳本和事件蹤跡

通話腳本(只包括影響電話線的事件)17.打電話者掛斷電話16.電話切斷15.接電話者掛斷電話14.通電話12.接電話者電話停止振鈴13.鈴聲在打電話者端消失11.接電話者回答10.鈴聲在打電話者電話傳出9.接電話者的電話開始振鈴8.打電話者撥數(shù)字(3)7.打電話者撥數(shù)字(7)6.打電話者撥數(shù)字(3)5.打電話者撥數(shù)字(2)4.電話忙音結(jié)束3.打電話者撥數(shù)字(8)2.電話忙音開始1.打電話者拿起聽筒通話腳本(只包括影響電話線的事件)17.打電話者掛斷電話狀態(tài):鬧鈴響描述:鬧鈴響表示預(yù)定時間到產(chǎn)生本狀態(tài)的事件序列:設(shè)置鬧鐘(預(yù)定時間)不包括清除鬧鈴的任何后續(xù)操作當(dāng)前時間=預(yù)定時間表征本狀態(tài)的條件:鬧鈴=開,從預(yù)定時間起沒有按鍵的情況下,目標(biāo)時間當(dāng)前時間目標(biāo)時間=20秒本狀態(tài)接受的各種時間:

事件動作下一個狀態(tài)當(dāng)前時間=目標(biāo)時間+20重新設(shè)置鬧鐘正常按下按鈕(任意按鈕)重新設(shè)置鬧鐘正常狀態(tài):對象屬性和對象關(guān)聯(lián)的抽象形式狀態(tài):鬧鈴響狀態(tài):對象屬性和對象關(guān)聯(lián)的抽象形式

動態(tài)模型表示方法

狀態(tài)圖狀態(tài)和事件的網(wǎng)絡(luò),側(cè)重描述每一類對象的動態(tài)行為。動態(tài)模型表示方法狀態(tài)圖

狀態(tài)圖

狀態(tài)1Do:活動1狀態(tài)2.…...事件1[條件1]/動作1結(jié)束事件初始事件空閑可視菜單左邊按鈕按下/顯示彈出菜單左邊按鈕彈起/擦除彈出菜單光標(biāo)移動/高亮菜單項彈出菜單動作狀態(tài)圖狀態(tài)1Do:活動1狀態(tài)2.…...事件

事件追蹤圖舉例:打電話的事件追蹤圖掛斷電話電話切斷掛斷電話通話通話停止振鈴?fù)V拐疋忢憫?yīng)電話電話振鈴鈴聲撥號(3)撥號(7撥號(3)撥號(2)電話忙音結(jié)束撥號(8)電話忙音開始拿起聽筒電話線接電話者打電話者事件追蹤圖舉例:打電話的事件追蹤圖掛斷電話電話切斷掛斷電話

存量為零找零扣減存量燈亮余額飲料結(jié)算選擇鍵#選擇按紐燈亮金額總夠顯示總額總額累加投入硬幣金額計算器存量計算器顧客售貨機(jī)選擇鍵舉例:飲料自動售貨機(jī)系統(tǒng)的事件追蹤圖售完燈存量為零找零扣減存量燈亮余額飲料結(jié)算選擇鍵#選擇按紐燈亮用來描述系統(tǒng)中數(shù)據(jù)的變換。傳統(tǒng)DFD+控制流對象A對象B過程1過程2數(shù)據(jù)存儲區(qū)控制流數(shù)據(jù)流3.功能模型用來描述系統(tǒng)中數(shù)據(jù)的變換。對象A對象B過程過程數(shù)據(jù)存儲區(qū)控制需求陳述對象建模動態(tài)建模功能建模添加操作反復(fù)建?;谌齻€模型的分析步驟需求陳述基于三個模型的分析步驟1.分析階段理解應(yīng)用問題,建立對象模型、動態(tài)模型和功能模型,說明對象關(guān)聯(lián)、控制流及數(shù)據(jù)變換。2.系統(tǒng)設(shè)計階段

確定系統(tǒng)框架,考慮并發(fā)任務(wù)、通訊機(jī)制和數(shù)據(jù)存儲策略。3.對象設(shè)計階段

從實現(xiàn)的角度細(xì)化分析對象模型、動態(tài)模型和功能模型OMT支持整個軟件生命周期1.分析階段OMT支持整個軟件生命周期OMT方法的特點開發(fā)重點在分析階段強(qiáng)調(diào)數(shù)據(jù)結(jié)構(gòu)而不是功能形式化描述能力強(qiáng)開發(fā)步驟的銜接良好重復(fù)性的開發(fā)過程OMT方法的特點開發(fā)重點在分析階段以類與對象圖及對象狀態(tài)圖為輔助工具,建立問題域的五層模型.OOA模型被劃分為五個層次(五個視圖)Yourdon的OOA方法Yourdon的OOA方法OOA的結(jié)構(gòu)

類的邊界Class&objectlayer(類及對象層)Attributelayer(屬性層)Servicelayer(服務(wù)層)Structurelayer(結(jié)構(gòu)層)Subjectlayer(主題層)實例的邊界實例連接消息連接主題服務(wù)屬性O(shè)OA的結(jié)構(gòu)類的邊界Class&objectlaye(1)標(biāo)識類及對象(2)標(biāo)識結(jié)構(gòu)(3)標(biāo)識主題(4)定義屬性及實例連接(5)定義服務(wù)及消息連接五個步驟常根據(jù)需要交叉進(jìn)行分析階段由五個活動組成分析階段由五個活動組成(1)發(fā)現(xiàn)對象,主要策略:考慮問題域人員組織物品設(shè)備事件表格結(jié)構(gòu)考慮系統(tǒng)邊界人員設(shè)備外系統(tǒng)考慮系統(tǒng)責(zé)任步驟1:識別類與對象步驟1:識別類與對象

問題域描述中的名詞,往往是候選的對象;根據(jù)問題域結(jié)構(gòu)可提取候選的類及對象;例:銀行儲蓄管理系統(tǒng)問題域描述中的名詞,往往是候選的對象;根據(jù)問題域結(jié)構(gòu)可提取與系統(tǒng)發(fā)生作用的其它系統(tǒng)和必要的設(shè)備可作為候選的類及對象;如:打印機(jī)等(分析階段可不把與實現(xiàn)有關(guān)的計算機(jī)部件作為候選的類及對象)與系統(tǒng)發(fā)生作用的其它系統(tǒng)和必要的設(shè)備可作為候選的類及對象;系統(tǒng)必須觀測、記憶的與時間有關(guān)的事件可作為候選的類及對象;

如:建立帳戶的日期打開一個帳戶等與系統(tǒng)發(fā)生交互的人及系統(tǒng)必須保留其信息的人,可作為候選的類及對象;

如:柜員、儲戶等這些人所屬的組織單位,可作為候選的類及對象;

如:總行、分行等系統(tǒng)必須觀測、記憶的與時間有關(guān)的系統(tǒng)必須記憶、且不在問題域約束中的順序操作過程(為了指導(dǎo)人機(jī)交互)可作為候選的類及對象;

如:柜員事務(wù)、遠(yuǎn)程事務(wù)等。

其中屬性是操作過程名,操作特權(quán)及操作步驟的描述;系統(tǒng)需了解掌握的物理位置、辦公

地點等可作為候選的類及對象;

如:ATM機(jī)器、帳戶等系統(tǒng)必須記憶、且不在問題域約束中的順序操作過程(為了指導(dǎo)人機(jī)舍棄無用的類對象的精簡只有一個屬性的對象只有一個服務(wù)的對象推遲到OOD考慮的對象

(2)審查和篩選舍棄無用的類(2)審查和篩選帳冊@上級系統(tǒng)接口供貨員銷售事件商品特價商品計量商品@收款機(jī)商品一覽表超市銷售管理系統(tǒng)(對象層)帳冊@上級系統(tǒng)接口供貨員銷售事件商品特價商品計量商品@收款機(jī)定義屬性定義服務(wù)對象的狀態(tài)與狀態(tài)轉(zhuǎn)換圖例:棧的狀態(tài)/服務(wù)對照表空半滿滿壓入可執(zhí)行可執(zhí)行不可執(zhí)行彈出不可執(zhí)行可執(zhí)行可執(zhí)行步驟2:定義屬性與服務(wù)定義屬性空半滿滿壓入可執(zhí)行可執(zhí)行不可執(zhí)行彈出不可執(zhí)行可執(zhí)行可例:棧狀態(tài)轉(zhuǎn)換圖空半滿滿創(chuàng)建壓入(未滿)彈出(未空)壓入(報錯)彈出(報錯)彈出(已空)壓入彈出壓入(已滿)例:棧狀態(tài)轉(zhuǎn)換圖空半滿滿創(chuàng)建壓入(未滿)壓入彈出(報錯對象行為分類發(fā)現(xiàn)服務(wù)的策略審查與調(diào)整識別對象的主動行為服務(wù)的詳細(xì)說明(服務(wù)解釋、消息協(xié)議、消息發(fā)送、約束條件、服務(wù)流程圖)定義服務(wù)對象行為分類定義服務(wù)帳冊前班節(jié)余銷售事件表收入累計上交款本班節(jié)余接班計帳報帳交班@上級系統(tǒng)接口帳目目冊@消息發(fā)送查帳報帳價格更新種類增刪供貨員缺貨登記表缺貨登記供貨銷售事件收款人購物清單應(yīng)收款……銷售計劃入帳商品編號名稱單價架上數(shù)量下限售出補(bǔ)充價格更新特價商品開始日期結(jié)束日期計量商品*單價計量單位計價方式*售出*補(bǔ)充*價格更新@收款機(jī)本班收款員開始時間結(jié)束時間@登錄售貨結(jié)帳商品一覽表商品目錄檢索種類增刪超市銷售管理系統(tǒng)(特征層)帳冊前班節(jié)余接班@上級系統(tǒng)接口帳目目冊@消息發(fā)送供貨員缺貨登

為所有模型實體準(zhǔn)備一個數(shù)據(jù)字典,精確描述每一個對象類,包括:成員約束關(guān)聯(lián)、屬性、操作建立數(shù)據(jù)字典建立數(shù)據(jù)字典類名父類提供的服務(wù)需要的服務(wù)帳戶………………ATM………………銀行………………出納員……………………對象字典舉例:類名父類提供的服務(wù)需要的服務(wù)對象字典舉例:初步確定關(guān)聯(lián)對應(yīng)于描述性動詞或動詞短語需求陳述中隱含根據(jù)問題域知識得出篩選完善分析標(biāo)識對象之間的關(guān)系對象之間的分類關(guān)系:一般-特殊結(jié)構(gòu)對象之間的組成關(guān)系:整體-部分結(jié)構(gòu)對象之間的靜態(tài)聯(lián)系:實例連接對象之間的動態(tài)關(guān)系:消息連接步驟3:定義結(jié)構(gòu)與連接初步確定關(guān)聯(lián)步驟3:定義結(jié)構(gòu)與連接從一般類發(fā)現(xiàn)特殊類公司職員股東姓名身分證號碼……股份……職員工資……公司職員姓名身分證號碼股份工資…………………………??從一般類發(fā)現(xiàn)特殊類公司職員股東姓名股份職員工資公司職員姓名…從特殊類發(fā)現(xiàn)一般類公司職員股東姓名身分證號碼……股份……職員工資……………………股東姓名身分證號碼股份…………職員姓名身分證號碼工資…………?從特殊類發(fā)現(xiàn)一般類公司職員股東姓名股份職員工資………………股收款機(jī)ABC現(xiàn)鈔收款機(jī)DEF現(xiàn)鈔收款機(jī)ABCDEFXYZZXY為支持復(fù)用建立結(jié)構(gòu)收款機(jī)類成為可供本領(lǐng)域其它系統(tǒng)復(fù)用的領(lǐng)域構(gòu)件收款機(jī)A現(xiàn)鈔收款機(jī)D現(xiàn)鈔收款機(jī)AXZX為支持復(fù)用建立結(jié)構(gòu)收款

取消沒有特殊屬性的特殊類大學(xué)生研究生研究方向指導(dǎo)教師……學(xué)生姓名學(xué)號班級…………研究生研究方向指導(dǎo)教師……學(xué)生姓名學(xué)號班級…………取消沒有特殊屬性的特殊類大學(xué)生研究生研究方向……學(xué)生姓名通過增加屬性簡化一般-特殊結(jié)構(gòu)人員…………男人…………女人……………………美國人…………日本人…………人員性別國籍…………中國人通過增加屬性簡化一般-特殊結(jié)構(gòu)人員…………男人…………兩種結(jié)構(gòu)的變通冷藏車…………汽車…………制冷設(shè)備…………冷藏車…………汽車…………制冷設(shè)備…………僅用一般-特殊結(jié)構(gòu)兩種結(jié)構(gòu)同用冷藏車…………汽車…………制冷設(shè)備…………僅用整體-部分結(jié)構(gòu)兩種結(jié)構(gòu)的變通冷藏車…………汽車…………制冷設(shè)備…………冷藏用整體-部分結(jié)構(gòu)實現(xiàn)復(fù)用車床…………機(jī)床…………刨床…………起重機(jī)…………電動機(jī)…………鉆床…………送料車…………用整體-部分結(jié)構(gòu)實現(xiàn)復(fù)用車床…………機(jī)床…………刨床…………篩選:刪除下列關(guān)聯(lián)已刪去的類間的關(guān)聯(lián)無關(guān)或?qū)崿F(xiàn)關(guān)聯(lián)瞬時事件三元關(guān)聯(lián)派生關(guān)聯(lián)

篩選:刪除下列關(guān)聯(lián)中央計算機(jī)總行通信銀行代碼ATM擁有分行計算機(jī)出納工作站遠(yuǎn)程業(yè)務(wù)現(xiàn)金卡分行帳戶儲戶出納員出納業(yè)務(wù)通信授權(quán)存取擁有擁有持有組成擁有擁有雇傭進(jìn)入被進(jìn)入修改修改進(jìn)入ATM系統(tǒng)的初始對象圖中央總行通信銀行代碼ATM擁有分行出納遠(yuǎn)程業(yè)務(wù)現(xiàn)金卡分行帳戶步驟4:定義服務(wù)及消息連接分析和認(rèn)識對象之間在行為上的往來關(guān)系。步驟4:定義服務(wù)及消息連接順序系統(tǒng)中的消息傳遞主動對象Aa被動對象Bb被動對象Cc被動對象Dd1d2運行開始運行結(jié)束服務(wù)執(zhí)行消息發(fā)送控制點返回示意順序系統(tǒng)中的消息傳遞主動對象Aa被動對象Bb被動對象Cc被動消息連接是OOA(或OOD)模型中對對象之間行為依賴關(guān)系的表示識別和表示的主要問題:對象之間是否存在消息?消息是同一線程內(nèi)部的還是不同線程之間的?每一種消息是從發(fā)送者哪個服務(wù)發(fā)出的?由接收者哪個服務(wù)響應(yīng)處理的?消息是同步還是異步?發(fā)送者是否等待消息的處理結(jié)果?OOA對消息的表示—消息連接消息連接是OOA(或OOD)模型中對對象之間行為依賴關(guān)系的表步驟4:標(biāo)識主題(主體)

Coad/Yourdon方法中主題的概念:主題是把一組具有較強(qiáng)聯(lián)系的類組織在一起而得到的類的集合。

步驟4:標(biāo)識主題(主體)主題層是在OOA基本模型(類圖)之上建立一個能幫助人們從不同的認(rèn)識層次來理解系統(tǒng)的補(bǔ)充模型;主題一種比類和對象抽象層次更高、粒度更大的概念,用以建立系統(tǒng)的高層抽象視圖;主題有助于指導(dǎo)系統(tǒng)設(shè)計者或用戶等理解一個大的系統(tǒng)模型,有助于組織一個大項目的工作。主題概念及其用途主題層是在OOA基本模型(類圖)之上建立一個能幫助人們從不同是由一組類構(gòu)成的集合一個主題內(nèi)部的對象類應(yīng)具有某種意義上的內(nèi)在聯(lián)系描述系統(tǒng)中相對獨立的組成部分(如一個子系統(tǒng))描述系統(tǒng)中某一方面的事物(如人員、設(shè)備)解決系統(tǒng)中某一方面的問題(如輸入輸出)主題的劃分有一定的靈活性和隨意性主題概念的特點是由一組類構(gòu)成的集合主題概念的特點把每個結(jié)構(gòu)作為一個主題;

(選取結(jié)構(gòu)中最上層的類作為一主題)通過實例連接互相聯(lián)系的類可劃分到一個主題;把不屬于任何結(jié)構(gòu),也沒有實例連接的類作為一個主題。如何劃分主題把每個結(jié)構(gòu)作為一個主題;如何劃分主題從問題域和接口復(fù)雜性兩方面入手:使用問題域精練主題,即用整體/部分結(jié)構(gòu)對問題域進(jìn)行劃分,而不是按功能分解方法劃分.按高內(nèi)聚低偶合原則,通過使主題間依賴性和交互性最小原則保留能反映子問題域的主題.主題數(shù)目>7個左右,則進(jìn)一步精練主題.如何精練主題如何精練主題依賴于模型自身復(fù)雜性小系統(tǒng):不需引入主題;中等系統(tǒng):先標(biāo)識類及對象,然后引入主題;大系統(tǒng):先標(biāo)識主題,對問題域進(jìn)行劃分,分給不同的任務(wù)組;何時引入主題依賴于模型自身復(fù)雜性何時引入主題中小型系統(tǒng)可只設(shè)一層主題,最多不超過兩層;大型系統(tǒng)可只設(shè)兩層主題,最多不超過三層。主題層次的控制主題層次的控制中央計算機(jī)總行通信銀行代碼ATM擁有分行計算機(jī)出納工作站遠(yuǎn)程業(yè)務(wù)現(xiàn)金卡分行帳戶儲戶出納員出納業(yè)務(wù)通信授權(quán)存取擁有擁有持有組成擁有擁有雇傭進(jìn)入被進(jìn)入修改修改進(jìn)入把ATM系統(tǒng)劃分為三個主題2311112223333中央總行通信銀行代碼ATM擁有分行出納遠(yuǎn)程業(yè)務(wù)現(xiàn)金卡分行帳戶帳冊前班節(jié)余銷售事件表收入累計上交款本班節(jié)余接班計帳報帳交班@上級系統(tǒng)接口帳目目冊@消息發(fā)送查帳報帳價格更新種類增刪供貨員缺貨登記表缺貨登記供貨銷售事件收款人購物清單應(yīng)收款……銷售計劃入帳商品編號名稱單價架上數(shù)量下限售出補(bǔ)充價格更新特價商品開始日期結(jié)束日期計量商品*單價計量單位計價方式*售出*補(bǔ)充*價格更新1m商品一覽表商品目錄檢索種類增刪1m(關(guān)系層,完整的類圖)@收款機(jī)本班收款員開始時間結(jié)束時間@登錄售貨結(jié)帳111133332222帳冊前班節(jié)余接班@上級系統(tǒng)接口帳目目冊@消息發(fā)送供貨員缺貨登移動電話系統(tǒng)的功能:用手機(jī)做移動通訊下載鈴聲下載圖案管理電話簿范例:移動電話系統(tǒng)范例:移動電話系統(tǒng)移動電話系統(tǒng)的使用用例圖

TalktoOthersDownloadIconsManagePhonebookDownloadRingsMobileuserMobileNetwork移動電話系統(tǒng)的使用用例圖TalktoOthersDow

定義移動電話系統(tǒng)的對象(簡化)

手機(jī)包括的對象:手機(jī)屏幕手機(jī)按鈕手機(jī)(屏幕、按鈕以外的部件)其它對象:基站MButtonMDisplqyMmobileStationMmobileHandset移動電話系統(tǒng)的類圖定義移動電話系統(tǒng)的對象(簡化)MButtonMD

移動電話系統(tǒng)對象間的通信

MButtonMDisplqy:MMobileStation:MMobileHandsetMobileuser1:pushDigButton()3:pushSendButton()2:displayButtonNumber()4:connectStation()7:displayConnectSuccess()6:connectSuccess()5:createConnection()移動電話系統(tǒng)的協(xié)作圖移動電話系統(tǒng)對象間的通信MButtonMDisp

移動電話系統(tǒng)的順序圖

:MButton:MDisplqy

:MMobileHandsetMobileuserpushSendButton()displayButtonNumber()displayConnectSuccess()connectSuccess()createConnection()pushDigButton()connectStation()

:MMobileStation移動電話系統(tǒng)的順序圖:MButton:MDisp

MButtonMDisplqyMmobileStationMmobileHandset移動電話系統(tǒng)的類圖之二pushDigButton()pushSendButton()pushDisconnectButton()createConnection()destoryConnection()responseError()displayError()displayButtonNumber()displayConnectSuccess()displayIncomingCall()connectStation()disconnectStation()connectSuccess()Diaconnectsuccess()MButtonMDisplqyMmobileStat§3.4分析建摸方法結(jié)構(gòu)化分析(傳統(tǒng)建模方法)面向?qū)ο蠓治觥?.4分析建摸方法結(jié)構(gòu)化分析(傳統(tǒng)建模方法)計算機(jī)世界現(xiàn)實世界影射計算機(jī)世界現(xiàn)實世界影射計算機(jī)世界現(xiàn)實世界結(jié)構(gòu)化開發(fā)方法結(jié)構(gòu)化分析結(jié)構(gòu)化設(shè)計結(jié)構(gòu)化編程OOAOODOOP面向?qū)ο箝_發(fā)方法計算機(jī)世界現(xiàn)實世界結(jié)結(jié)構(gòu)化結(jié)構(gòu)化結(jié)構(gòu)化OOAOODOOP面

§3.4.2面向?qū)ο蠓治龇椒ㄜ浖_發(fā)中為什么要使用面向?qū)ο蠓椒??面向?qū)ο蠓治龇椒ㄅc結(jié)構(gòu)化分析方法有哪些相似之處?有何區(qū)別?面向?qū)ο蠓椒ㄊ菍^去的一個完全突破,還是“換湯不換藥”?§3.4.2面向?qū)ο蠓治龇椒ㄜ浖_發(fā)中為什么要使用面向?qū)ο螅╫bject)

現(xiàn)實世界中某個具體的物理實體或概念在計算機(jī)邏輯中的映射和體現(xiàn)。

對象具有的含義:在現(xiàn)實世界中:是客觀世界中的一個實體在面向?qū)ο蟪绦蛑校罕磉_(dá)成計算機(jī)可理解、可操縱、具有一定屬性和行為的對象在計算機(jī)世界中:是一個可標(biāo)識的存儲區(qū)域?qū)ο螅╫bject)現(xiàn)實世界中某個具體的物理實體或概念

面向?qū)ο蠓椒ㄊ且环N運用對象、類、繼承、封裝、聚合、消息傳遞、多態(tài)性等概念來構(gòu)造系統(tǒng)的軟件開發(fā)方法。面向?qū)ο?對象+類+繼承+消息通信面向?qū)ο蟮闹饕卣鳎悍忾]性(Encapsulation)繼承性(Inheritance)多態(tài)性(Polymorphism)面向?qū)ο蠓椒ㄊ且环N運用對象、類、繼承、封裝、聚合、類(class)具有共同屬性和行為的對象的抽象類與對象的關(guān)系類是對象的抽象對象是類的實例類對象類(class)具有共同屬性和行為的對象的抽象類對象對象、實體與類對象實體類抽象數(shù)據(jù)類計算機(jī)世界現(xiàn)實世界計算機(jī)邏輯的實現(xiàn)影射抽象實例化抽象概念世界對象、實體與類對象實體類抽象數(shù)據(jù)類計算機(jī)世界現(xiàn)實世界計算機(jī)邏封裝封裝是軟件開發(fā)方法的重要原則,有兩個涵義:把對象的全部屬性和全部服務(wù)結(jié)合在一起,形成一個不可分割的獨立單位(對象)。盡可能隱蔽對象的內(nèi)部細(xì)節(jié)(信息隱蔽)封裝封裝是軟件開發(fā)方法的重要原則,有兩個涵義:傳統(tǒng)方法數(shù)據(jù)與過程是分離的過程1輸入輸出過程2過程3數(shù)據(jù)實體傳統(tǒng)方法數(shù)據(jù)與過程是分離的過程1輸入輸出過程2過程3數(shù)據(jù)實體屬于該對象的數(shù)據(jù)對象處理數(shù)據(jù)的方法消息消息對象把數(shù)據(jù)和處理數(shù)據(jù)的方法封狀成一個單元屬于該對象對象處理數(shù)據(jù)的方法消息消息對象把數(shù)據(jù)和處理數(shù)據(jù)的方傳統(tǒng)方法和面向?qū)ο蠓椒ǖ谋容^傳統(tǒng)方法系統(tǒng)是過程的集合過程與數(shù)據(jù)實體交互過程接受輸入產(chǎn)生輸出面向?qū)ο蠓椒ㄏ到y(tǒng)是交互對象的集合對象與人或其它對象交互對象發(fā)送與響應(yīng)消息傳統(tǒng)方法和面向?qū)ο蠓椒ǖ谋容^傳統(tǒng)方法面向?qū)ο蠓椒ɡ^承(繼承性inheritance)繼承性是父類和子類之間共享數(shù)據(jù)和方法的機(jī)制繼承性具有傳遞性繼承性包括單繼承和多重繼承

子類繼承部分增加部分父類共性部分繼承(繼承性inheritance)繼承性是父類和子類之間繼承性作用使軟件系統(tǒng)具有開放性更好地進(jìn)行抽象與分類增強(qiáng)代碼的重用率繼承性作用使軟件系統(tǒng)具有開放性多態(tài)(多態(tài)性polymorphism)不同的對象收到同一消息可產(chǎn)生完全不同的結(jié)果,這一現(xiàn)象叫做多態(tài)多態(tài)的效果用戶發(fā)送一個通用的消息,而實現(xiàn)的細(xì)節(jié)則由接收對象自行決定多態(tài)(多態(tài)性polymorphism)不同的對象收到同一消息多態(tài)性的作用增強(qiáng)了操作的透明性,可理解性和可擴(kuò)展性增強(qiáng)了軟件的靈活性和重用性多態(tài)性的作用增強(qiáng)了操作的透明性,可理解性和可擴(kuò)展性消息(message)消息

對象之間相互請求或相互協(xié)作的途徑,是要求某個對象執(zhí)行某個功能操作的規(guī)格說明消息內(nèi)容

通常包含接收方及請求接收方完成的功能信息發(fā)送方

發(fā)出消息,請求接收方響應(yīng)接收方

收到消息后,經(jīng)過解釋,激活方法,予以響應(yīng)消息(message)消息對象之間相互請求或相互協(xié)作的為什么對面向?qū)ο蠓椒ǜ信d趣?面向?qū)ο蠓椒ǖ闹饕獌?yōu)點:自然性追求軟件系統(tǒng)對現(xiàn)實系統(tǒng)的直接模擬,盡量實現(xiàn)將現(xiàn)實世界中的事物直接映射到軟件系統(tǒng)的解空間中。軟件復(fù)用

可復(fù)用性(可重用性)reusebility可擴(kuò)展性可管理性為什么對面向?qū)ο蠓椒ǜ信d趣?面向?qū)ο蠓椒ǖ闹饕獌?yōu)點:

面向?qū)ο蠹夹g(shù)允許復(fù)用的不僅僅是代碼,通過面向?qū)ο蠹夹g(shù),我們可以復(fù)用需求、分析、設(shè)計、測試計劃、用戶界面以及體系結(jié)構(gòu)等等,事實上,軟件工程生存期中的每個部分都可以復(fù)用。

可復(fù)用性(可重用性)可復(fù)用性(可重用性)

傳統(tǒng)系統(tǒng)分析:面向功能,把系統(tǒng)看成一組功能OOA:

把問題當(dāng)作一組相互作用的實體,并確定實體間關(guān)系

(1)方法是對軟件開發(fā)過程所有階段進(jìn)行綜合考慮而得到的;(2)從生存期的一個階段到下一個階段所使用的方法與技術(shù)具有高度的連續(xù)性;(3)將OOA、OOD、OOP集成到生存期的相應(yīng)階段。面向?qū)ο蠹夹g(shù)的特點(1)方法是對軟件開發(fā)過程所有階段進(jìn)行綜合考慮而得到的;面向OO方法改進(jìn)了在生存期各個階段間的界面,因為生存期各個階段開發(fā)出來的“部件”都是類,在面向?qū)ο笊嫫诘母鱾€階段對各個類的信息進(jìn)行細(xì)化,類成為分析、設(shè)計和實現(xiàn)的基本單元。

OO方法的開發(fā)過程OO方法改進(jìn)了在生存期各個階段間的界面,因為生存類的生存期模型類的規(guī)格說明從廢棄型開發(fā)既存類的復(fù)用漸增式的實現(xiàn)漸增式的測試求精和維護(hù)

測試用例和測試的開發(fā)實現(xiàn)從既存類演變類的生存期模型類的規(guī)從廢棄型開發(fā)既存類漸增式的實現(xiàn)漸增式的測類的規(guī)格說明指導(dǎo)對存放現(xiàn)存類的軟件庫進(jìn)行查找現(xiàn)存類提供當(dāng)前應(yīng)用所需功能三種可能利用現(xiàn)存類的方向:

現(xiàn)存類的復(fù)用

從現(xiàn)存類進(jìn)行演變

從廢棄類進(jìn)行開發(fā)

類的設(shè)計與實現(xiàn)類的規(guī)格說明指導(dǎo)對存放現(xiàn)存類的軟件庫進(jìn)行查找類的設(shè)計與實現(xiàn)對象之間的聯(lián)系與對象模型對象之間的聯(lián)系與對象模型面向?qū)ο蠓椒ㄩ_發(fā)軟件通常建立的三種形式的模型

描述系統(tǒng)數(shù)據(jù)結(jié)構(gòu)的對象模型描述系統(tǒng)控制結(jié)構(gòu)的動態(tài)模型描述系統(tǒng)功能的功能模型

三種模型從三個不同但由密切相關(guān)的角度模擬目標(biāo)系統(tǒng)。

對象模型是最重要、最基本、最核心的。面向?qū)ο蠓椒ㄩ_發(fā)軟件對象模型表示靜態(tài)的、結(jié)構(gòu)的系統(tǒng)數(shù)據(jù)的性質(zhì)。對模擬客觀世界實體的對象以及對象彼此之間的關(guān)系的映射,描述了系統(tǒng)的靜態(tài)結(jié)構(gòu)。OO方法強(qiáng)調(diào)圍繞對象而不是功能來構(gòu)造系統(tǒng)。對象模型對象模型表示靜態(tài)的、結(jié)構(gòu)的系統(tǒng)數(shù)據(jù)的性質(zhì)。對象模型分類關(guān)系(歸納關(guān)系、一般與特殊的關(guān)系)組成關(guān)系(組合關(guān)系、整體/部分的關(guān)系)對象屬性之間的靜態(tài)的聯(lián)系對象行為的動態(tài)聯(lián)系

類及對象間常見的聯(lián)系類及對象間常見的聯(lián)系分類關(guān)系(一般與特殊的關(guān)系)示例學(xué)生本科生研究生分類關(guān)系(一般與特殊的關(guān)系)示例學(xué)生本科生研究生組成關(guān)系(整體與部分的關(guān)系)示例學(xué)科部辦公室學(xué)院實驗室組成關(guān)系(整體與部分的關(guān)系)示例學(xué)科部辦公室學(xué)院實驗室對象模型中表現(xiàn)

上述聯(lián)系的結(jié)構(gòu)和連接對象模型中表現(xiàn)

上述聯(lián)系的結(jié)構(gòu)和連接分類是對象抽象的基礎(chǔ)

分類結(jié)構(gòu)表現(xiàn)的是事物的一般與特殊的關(guān)系,即“is-a”關(guān)系。面向?qū)ο笮g(shù)語中常把一般與特殊的關(guān)系稱為泛化(Generalization)與特化(Specialization)聯(lián)系(1)分類結(jié)構(gòu)(一般/特殊結(jié)構(gòu))分類是對象抽象的基礎(chǔ)(1)分類結(jié)構(gòu)(一般/特殊結(jié)構(gòu))

存戶一般/特殊結(jié)構(gòu)舉例一般類(父類、基類、超類)特殊類(子類、具體類)繼承一個特殊類中的所有對象可繼承一般類中的屬性、服務(wù)、關(guān)系.賬號姓名余額存款取款支票存戶儲蓄存戶利息率存戶一般/特殊結(jié)構(gòu)舉例一般類特殊類繼承一個

組裝結(jié)構(gòu)表示對象類之間的組成關(guān)系,即整體與部分的關(guān)系。整體對于部分是“has-a”關(guān)系。(部分對于整體是“a-part-of”關(guān)系)組裝結(jié)構(gòu)體現(xiàn)了面向?qū)ο蠓椒ǖ?/p>

聚合(也叫聚集Aggregation)原則。(2)

組裝結(jié)構(gòu)(整體/部分結(jié)構(gòu))組裝結(jié)構(gòu)表示對象類之間的組成關(guān)系,即整體與部分的關(guān)1+電源主機(jī)箱鍵盤監(jiān)視器鼠標(biāo)內(nèi)存CPU硬盤o微機(jī)整體/部分結(jié)構(gòu)表示法舉例1+電源主機(jī)箱鍵盤監(jiān)視器鼠標(biāo)內(nèi)存CPU硬盤o微機(jī)整體/部實例連接表現(xiàn)了對象之間的靜態(tài)聯(lián)系,通過對象的屬性來表現(xiàn)對象之間的依賴關(guān)系。面向?qū)ο笮g(shù)語中把對象之間的實例連接稱為鏈接(Link),把類之間的實例連接稱為關(guān)聯(lián)(Association)。(3)實例連接(InstanceConnection)實例連接表現(xiàn)了對象之間的靜態(tài)聯(lián)系,通過對象的屬性來表現(xiàn)對象之

教師指導(dǎo)論文0,m1學(xué)生教師為學(xué)生指導(dǎo)論文:教師教學(xué)0,m0,n學(xué)生教師為學(xué)生授課:實例連接示例及表示教師指導(dǎo)論文學(xué)生教師為學(xué)生教師教學(xué)學(xué)生

允許實例連接帶有一組屬性,這些屬性通過關(guān)聯(lián)來描述

類1連接名稱mn類1連接屬性關(guān)聯(lián)關(guān)系(鏈屬性)的表示類1連接名稱類1連接關(guān)聯(lián)關(guān)為之工作工資職務(wù)雇主雇員個人名字身份證號公司名字地址題目答辯時間成績教師學(xué)生指導(dǎo)論文0,m1關(guān)聯(lián)關(guān)系(鏈屬性)為之工作工資雇主雇員個人公司題目教師學(xué)生指導(dǎo)對象之間的通信聯(lián)系。一需要另一個對象的服務(wù),便向它發(fā)出個對象請求服務(wù)的消息,接收消息的對象響應(yīng)消息,觸發(fā)所要求的服務(wù)操作。消息連接體現(xiàn)了對象行為的動態(tài)聯(lián)系。(4)消息連接(MessageConnection)(4)消息連接(MessageConnection)一家公司的對象模型(OMT)示例為之工作管理0,1姓名身份證號碼地址員工名字電話號碼主要產(chǎn)品地址公司職務(wù)雇用解雇項目名預(yù)算優(yōu)先級項目產(chǎn)品名成本重量產(chǎn)品工人經(jīng)理部門部門名主持參加1+1+1+1+1+生產(chǎn)一家公司的對象模型(OMT)示例為之工作管理

方法論是如何對復(fù)雜系統(tǒng)進(jìn)行“抽象”的工作,以及如何建立抽象模型。面向?qū)ο蟮姆椒ㄕ撁嫦驅(qū)ο蟮姆椒ㄕ撁嫦驅(qū)ο蠓治龇椒ù_實不同于結(jié)構(gòu)化分析方法嗎?Fichman,R.GandC.F.Kemerer,在“Object-orientedConventionalAnalysisandDesignMethodologies”中闡述:我們的結(jié)論是面向?qū)ο蠓治龇椒ū憩F(xiàn)了相對面向過程的方法學(xué)(如結(jié)構(gòu)化分析)的根本性變化,而且相對面向數(shù)據(jù)的方法學(xué)僅僅是增量性的變化。面向過程的方法學(xué)在建模過程中的關(guān)注點不是對象的內(nèi)在性質(zhì),從而導(dǎo)致了和面向?qū)ο蟮娜齻€基本原理相正交的問題域模型。二.面向?qū)ο蠓治鼋?OOA)面向?qū)ο蠓治龇椒ù_實不同于結(jié)構(gòu)化分析方法嗎?二.面向?qū)ο蠓治?/p>

面向?qū)ο蠓治龇椒ㄊ沟密浖こ處熌軌蛲ㄟ^對象、屬性和操作(作為主要的建模成分)的表示來對問題建模。面向?qū)ο蠓治龇椒ㄊ沟密浖こ處熌軌蛲ㄟ^對象、屬性和

面向?qū)ο蠓治龇椒ㄊ沟密浖こ處熌軌蛲ㄟ^對象、屬性和操作(作為主要的建模成分)的表示來對問題建模。建立分析模型5個基本原則:(1)建模信息域;(2)描述模塊功能;(3)表示模型行為;(4)分解以模型顯示更多細(xì)節(jié);(5)早期模型表示問題的本質(zhì),而后期模型提供實現(xiàn)細(xì)節(jié)。面向?qū)ο蠓治龇椒ㄊ沟密浖こ處熌軌蛲ㄟ^對象、屬性和是定義所有和被求解的問題相關(guān)的類(及同類關(guān)聯(lián)的關(guān)系和行為),為了達(dá)到這個目標(biāo),必須完成以下任務(wù):(1)必須在客戶和軟件工程師之間溝通了解基本的用戶需求;(2)必須標(biāo)識類(定義屬性和方法);(3)必須刻劃類層次;(4)表示對象對象關(guān)系(對象連接);(5)必須建模對象行為;(6)(1)到(5)遞進(jìn)地反復(fù)使用,直至完成建模OOA的意圖是定義所有和被求解的問題相關(guān)的類(及同類關(guān)聯(lián)的關(guān)系和行為),面向?qū)ο蠓治龇椒ㄏ嗨撇襟E:(1)使用基本需求作為指南選擇類和對象;(2)為對象標(biāo)識屬性和操作;(3)定義組織類的結(jié)構(gòu)和層次;(4)建造對象-關(guān)系模型的;(5)建造對象-行為模型。面向?qū)ο蠓治龇椒ㄏ嗨撇襟E:由Rumbaugh、Booch、Jacobson提出的統(tǒng)一建模語言(UnifyModeingLanguage簡稱UML)

UML是一種定義良好,易于表達(dá),功能強(qiáng)大且普遍實用的建模語言。統(tǒng)一的OOA方法由Rumbaugh、Booch、Jacobson提出

對象模型技術(shù)

(OMT,ObjectModelTech.)對象模型動態(tài)模型功能模型基本模型:三個模型分別從不同角度分析系統(tǒng)對象模型技術(shù)對象模型動態(tài)模型功能模型基本模型:三對象模型:描述靜態(tài)結(jié)構(gòu),定義做事情的實體功能模型:描述處理(數(shù)據(jù)變換),指明系統(tǒng)應(yīng)“做什么”動態(tài)模型:描述交互過程,規(guī)定什么時候做分析模型對象模型:描述靜態(tài)結(jié)構(gòu),定義做事情的實體分析模型OMT模型系統(tǒng)分析和設(shè)計過程概觀圖產(chǎn)生需求結(jié)構(gòu)及對象設(shè)計建立模型問題描述對象模型、動態(tài)模型、功能模型詳細(xì)的對象模型詳細(xì)的動態(tài)模型詳細(xì)的功能模型分析階段設(shè)計階段OMT模型系統(tǒng)分析和設(shè)計過程概觀圖產(chǎn)生需求結(jié)構(gòu)及對象建立模型設(shè)置:由廠商根據(jù)銷售狀況自動調(diào)配,并可隨時重新設(shè)置售價,但售貨機(jī)最多僅能放置50罐飲料,其按鈕設(shè)計在各種飲料樣本的下方,若經(jīng)金額計算器累計金額足夠,則選擇鍵燈會亮;若某一種飲料已銷售完畢,則售完燈會亮。銷售:顧客將硬幣投入售貨機(jī),經(jīng)累加金額足額的飲料選擇鍵燈亮,等顧客按鍵選擇。顧客按鍵后飲料由取物樓掉出,并自動結(jié)算及找錢。取消交易:顧客可在按下選擇鍵前任何一個時刻,拉動退幣桿取消交易收回硬幣。實例:飲料自動售貨機(jī)系統(tǒng)設(shè)置:由廠商根據(jù)銷售狀況自動調(diào)配,并可隨時重新設(shè)置售價,但售(1)找出對象及其關(guān)聯(lián)(2)賦予類及關(guān)聯(lián)的屬性數(shù)據(jù)(3)組織類的結(jié)構(gòu)OMT的對象圖步驟:(1)找出對象及其關(guān)聯(lián)OMT的對象圖步驟:設(shè)置:一個飲料自動售貨機(jī)可以放置五種不同或部分相同的飲料,可由廠商根據(jù)銷售狀況自動調(diào)配,并可隨時重新設(shè)置售價,但售貨機(jī)最多僅能放置50罐飲料,其按鈕設(shè)計在各種飲料樣本的下方,若經(jīng)金額計算器累計金額足夠,則選擇鍵燈會亮;若某一種飲料已銷售完畢,則售完燈會亮。銷售:

顧客將硬幣投入售貨機(jī),經(jīng)累加金額足額的飲料選擇鍵燈亮,等顧客按鍵選擇。顧客按鍵后飲料由取物樓掉出,并自動結(jié)算及找錢。取消交易:顧客可在按下選擇鍵前任何一個時刻,拉動退幣桿取消交易收回硬幣。找出飲料自動售貨機(jī)系統(tǒng)中的對象設(shè)置:一個飲料自動售貨機(jī)可以放置五種不同或部分相同的飲料描述系統(tǒng)內(nèi)部對象結(jié)構(gòu),包括對象本身的定義、對象的屬性、操作,以及對象與其它對象之間的關(guān)系。

對象模型是OMT方法論中最重要的部分,動態(tài)模型、功能模型都將依次而建立對象模型以對象圖形式呈現(xiàn),對象圖由類構(gòu)成。對象模型描述系統(tǒng)內(nèi)部對象結(jié)構(gòu),包括對象本身的定義、對象的屬性、操作,飲料自動售貨機(jī)系統(tǒng)對象圖販賣機(jī)飲料號碼價格投幣金額顯示按紐退幣售完顯示存量計算器飲料號碼存量遞減售完顯示重置選擇鈕選擇鈕狀態(tài)燈亮燈熄售完燈亮按鈕顧客姓名硬幣投幣-置入拿取飲料退幣桿退幣桿狀態(tài)拉動金額計算器金額累加找零重置購買選取被拉動屬于屬于屬于屬于飲料自動售貨機(jī)系統(tǒng)對象圖販賣機(jī)飲料號碼投幣存量計算器飲料號碼為所有模型實體準(zhǔn)備一個數(shù)據(jù)字典,精確描述每一個對象類,包括:成員約束關(guān)聯(lián)、屬性、操作建立數(shù)據(jù)字典為所有模型實體準(zhǔn)備一個數(shù)據(jù)字典,精確描述每一個對象類,包括:動態(tài)模型用來描述系統(tǒng)與時間相關(guān)的動態(tài)行為即系統(tǒng)的控制邏輯,表現(xiàn)對象彼此間經(jīng)過相互作用后,隨時間改變的不同運算順序。

動態(tài)模型以“事件”(Events)和“狀態(tài)”(States)為其模型的主要概念。動態(tài)模型以狀態(tài)圖形式呈現(xiàn)。動態(tài)模型用來描述系統(tǒng)與時間相關(guān)的動態(tài)行為即系統(tǒng)的控制邏輯,

瞬時發(fā)生的行為;引起對象狀態(tài)轉(zhuǎn)換的控制信息。事件類和屬性舉例:飛機(jī)起飛(航線、航班號、城市)按動鼠標(biāo)按鈕(按鈕、位置)……..事件瞬時發(fā)生的行為;事件

腳本和事件蹤跡腳本是系統(tǒng)某一次特定運行時期內(nèi)發(fā)生的事件序列。(腳本也叫場景)

事件追蹤圖

側(cè)重說明發(fā)生于系統(tǒng)執(zhí)行過程中的一個特定“場景(scenarios)”。腳本和事件蹤跡

通話腳本(只包括影響電話線的事件)17.打電話者掛斷電話16.電話切斷15.接電話者掛斷電話14.通電話12.接電話者電話停止振鈴13.鈴聲在打電話者端消失11.接電話者回答10.鈴聲在打電話者電話傳出9.接電話者的電話開始振鈴8.打電話者撥數(shù)字(3)7.打電話者撥數(shù)字(7)6.打電話者撥數(shù)字(3)5.打電話者撥數(shù)字(2)4.電話忙音結(jié)束3.打電話者撥數(shù)字(8)2.電話忙音開始1.打電話者拿起聽筒通話腳本(只包括影響電話線的事件)17.打電話者掛斷電話狀態(tài):鬧鈴響描述:鬧鈴響表示預(yù)定時間到產(chǎn)生本狀態(tài)的事件序列:設(shè)置鬧鐘(預(yù)定時間)不包括清除鬧鈴的任何后續(xù)操作當(dāng)前時間=預(yù)定時間表征本狀態(tài)的條件:鬧鈴=開,從預(yù)定時間起沒有按鍵的情況下,目標(biāo)時間當(dāng)前時間目標(biāo)時間=20秒本狀態(tài)接受的各種時間:

事件動作下一個狀態(tài)當(dāng)前時間=目標(biāo)時間+20重新設(shè)置鬧鐘正常按下按鈕(任意按鈕)重新設(shè)置鬧鐘正常狀態(tài):對象屬性和對象關(guān)聯(lián)的抽象形式狀態(tài):鬧鈴響狀態(tài):對象屬性和對象關(guān)聯(lián)的抽象形式

動態(tài)模型表示方法

狀態(tài)圖狀態(tài)和事件的網(wǎng)絡(luò),側(cè)重描述每一類對象的動態(tài)行為。動態(tài)模型表示方法狀態(tài)圖

狀態(tài)圖

狀態(tài)1Do:活動1狀態(tài)2.…...事件1[條件1]/動作1結(jié)束事件初始事件空閑可視菜單左邊按鈕按下/顯示彈出菜單左邊按鈕彈起/擦除彈出菜單光標(biāo)移動/高亮菜單項彈出菜單動作狀態(tài)圖狀態(tài)1Do:活動1狀態(tài)2.…...事件

事件追蹤圖舉例:打電話的事件追蹤圖掛斷電話電話切斷掛斷電話通話通話停止振鈴?fù)V拐疋忢憫?yīng)電話電話振鈴鈴聲撥號(3)撥號(7撥號(3)撥號(2)電話忙音結(jié)束撥號(8)電話忙音開始拿起聽筒電話線接電話者打電話者事件追蹤圖舉例:打電話的事件追蹤圖掛斷電話電話切斷掛斷電話

存量為零找零扣減存量燈亮余額飲料結(jié)算選擇鍵#選擇按紐燈亮金額總夠顯示總額總額累加投入硬幣金額計算器存量計算器顧客售貨機(jī)選擇鍵舉例:飲料自動售貨機(jī)系統(tǒng)的事件追蹤圖售完燈存量為零找零扣減存量燈亮余額飲料結(jié)算選擇鍵#選擇按紐燈亮用來描述系統(tǒng)中數(shù)據(jù)的變換。傳統(tǒng)DFD+控制流對象A對象B過程1過程2數(shù)據(jù)存儲區(qū)控制流數(shù)據(jù)流3.功能模型用來描述系統(tǒng)中數(shù)據(jù)的變換。對象A對象B過程過程數(shù)據(jù)存儲區(qū)控制需求陳述對象建模動態(tài)建模功能建模添加操作反復(fù)建?;谌齻€模型的分析步驟需求陳述基于三個模型的分析步驟1.分析階段理解應(yīng)用問題,建立對象模型、動態(tài)模型和功能模型,說明對象關(guān)聯(lián)、控制流及數(shù)據(jù)變換。2.系統(tǒng)設(shè)計階段

確定系統(tǒng)框架,考慮并發(fā)任務(wù)、通訊機(jī)制和數(shù)據(jù)存儲策略。3.對象設(shè)計階段

從實現(xiàn)的角度細(xì)化分析對象模型、動態(tài)模型和功能模型OMT支持整個軟件生命周期1.分析階段OMT支持整個軟件生命周期OMT方法的特點開發(fā)重點在分析階段強(qiáng)調(diào)數(shù)據(jù)結(jié)構(gòu)而不是功能形式化描述能力強(qiáng)開發(fā)步驟的銜接良好重復(fù)性的開發(fā)過程OMT方法的特點開發(fā)重點在分析階段以類與對象圖及對象狀態(tài)圖為輔助工具,建立問題域的五層模型.OOA模型被劃分為五個層次(五個視圖)Yourdon的OOA方法Yourdon的OOA方法OOA的結(jié)構(gòu)

類的邊界Class&objectlayer(類及對象層)Attributelayer(屬性層)Servicelayer(服務(wù)層)Structurelayer(結(jié)構(gòu)層)Subjectlayer(主題層)實例的邊界實例連接消息連接主題服務(wù)屬性O(shè)OA的結(jié)構(gòu)類的邊界Class&objectlaye(1)標(biāo)識類及對象(2)標(biāo)識結(jié)構(gòu)(3)標(biāo)識主題(4)定義屬性及實例連接(5)定義服務(wù)及消息連接五個步驟常根據(jù)需要交叉進(jìn)行分析階段由五個活動組成分析階段由五個活動組成(1)發(fā)現(xiàn)對象,主要策略:考慮問題域人員組織物品設(shè)備事件表格結(jié)構(gòu)考慮系統(tǒng)邊界人員設(shè)備外系統(tǒng)考慮系統(tǒng)責(zé)任步驟1:識別類與對象步驟1:識別類與對象

問題域描述中的名詞,往往是候選的對象;根據(jù)問題域結(jié)構(gòu)可提取候選的類及對象;例:銀行儲蓄管理系統(tǒng)問題域描述中的名詞,往往是候選的對象;根據(jù)問題域結(jié)構(gòu)可提取與系統(tǒng)發(fā)生作用的其它系統(tǒng)和必要的設(shè)備可作為候選的類及對象;如:打印機(jī)等(分析階段可不把與實現(xiàn)有關(guān)的計算機(jī)部件作為候選的類及對象)與系統(tǒng)發(fā)生作用的其它系統(tǒng)和必要的設(shè)備可作為候選的類及對象;系統(tǒng)必須觀測、記憶的與時間有關(guān)的事件可作為候選的類及對象;

如:建立帳戶的日期打開一個帳戶等與系統(tǒng)發(fā)生交互的人及系統(tǒng)必須保留其信息的人,可作為候選的類及對象;

如:柜員、儲戶等這些人所屬的組織單位,可作為候選的類及對象;

如:總行、分行等系統(tǒng)必須觀測、記憶的與時間有關(guān)的系統(tǒng)必須記憶、且不在問題域約束中的順序操作過程(為了指導(dǎo)人機(jī)交互)可作為候選的類及對象;

如:柜員事務(wù)、遠(yuǎn)程事務(wù)等。

其中屬性是操作過程名,操作特權(quán)及操作步驟的描述;系統(tǒng)需了解掌握的物理位置、辦公

地點等可作為候選的類及對象;

如:ATM機(jī)器、帳戶等系統(tǒng)必須記憶、且不在問題域約束中的順序操作過程(為了指導(dǎo)人機(jī)舍棄無用的類對象的精簡只有一個屬性的對象只有一個服務(wù)的對象推遲到OOD考慮的對象

(2)審查和篩選舍棄無用的類(2)審查和篩選帳冊@上級系統(tǒng)接口供貨員銷售事件商品特價商品計量商品@收款機(jī)商品一覽表超市銷售管理系統(tǒng)(對象層)帳冊@上級系統(tǒng)接口供貨員銷售事件商品特價商品計量商品@收款機(jī)定義屬性定義服務(wù)對象的狀態(tài)與狀態(tài)轉(zhuǎn)換圖例:棧的狀態(tài)/服務(wù)對照表空半滿滿壓入可執(zhí)行可執(zhí)行不可執(zhí)行彈出不可執(zhí)行可執(zhí)行可執(zhí)行步驟2:定義屬性與服務(wù)定義屬性空半滿滿壓入可執(zhí)行可執(zhí)行不可執(zhí)行彈出不可執(zhí)行可執(zhí)行可例:棧狀態(tài)轉(zhuǎn)換圖空半滿滿創(chuàng)建壓入(未滿)彈出(未空)壓入(報錯)彈出(報錯)彈出(已空)壓入彈出壓入(已滿)例:棧狀態(tài)轉(zhuǎn)換圖空半滿滿創(chuàng)建壓入(未滿)壓入彈出(報錯對象行為分類發(fā)現(xiàn)服務(wù)的策略審查與調(diào)整識別對象的主動行為服務(wù)的詳細(xì)說明(服務(wù)解釋、消息協(xié)議、消息發(fā)送、約束條件、服務(wù)流程圖)定義服務(wù)對象行為分類定義服務(wù)帳冊前班節(jié)余銷售事件表收入累計上交款本班節(jié)余接班計帳報帳交班@上級系統(tǒng)接口帳目目冊@消息發(fā)送查帳報帳價格更新種類增刪供貨員缺貨登記表缺貨登記供貨銷售事件收款人購物清單應(yīng)收款……銷售計劃入帳商品編號名稱單價架上數(shù)量下限售出補(bǔ)充價格更新特價商品開始日期結(jié)束日期計量商品*單價計量單位計價方式*售出*補(bǔ)充*價格更新@收款機(jī)本班收款員開始時間結(jié)束時間@登錄售貨結(jié)帳商品一覽表商品目錄檢索種類增刪超市銷售管理系統(tǒng)(特征層)帳冊前班節(jié)余接班@上級系統(tǒng)接口帳目目冊@消息發(fā)送供貨員缺貨登

為所有模型實體準(zhǔn)備一個數(shù)據(jù)字典,精確描述每一個對象類,包括:成員約束關(guān)聯(lián)、屬性、操作建立數(shù)據(jù)字典建立數(shù)據(jù)字典類名父類提供的服務(wù)需要的服務(wù)帳戶………………ATM………………銀行………………出納員……………………對象字典舉例:類名父類提供的服務(wù)需要的服務(wù)對象字典舉例:初步確定關(guān)聯(lián)對應(yīng)于描述性動詞或動詞短語需求陳述中隱含根據(jù)問題域知識得出篩選完善分析標(biāo)識對象之間的關(guān)系對象之間的分類關(guān)系:一般-特殊結(jié)構(gòu)對象之間的組成關(guān)系:整體-部分結(jié)構(gòu)對象之間的靜態(tài)聯(lián)系:實例連接對象之間的動態(tài)關(guān)系:消息連接步驟3:定義結(jié)構(gòu)與連接初步確定關(guān)聯(lián)步驟3:定義結(jié)構(gòu)與連接從一般類發(fā)現(xiàn)特殊類公司職員股東姓名身分證號碼……股份……職員工資……公司職員姓名身分證號碼股份工資…………………………??從一般類發(fā)現(xiàn)特殊類公司職員股東姓名股份職員工資公司職員姓名…從特殊類發(fā)現(xiàn)一般類公司職員股東姓名身分證號碼……股份……職員工資……………………股東姓名身分證號碼股份…………職員姓名身分證號碼工

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論