面向?qū)ο蠓椒▽W(xué)概述_第1頁(yè)
面向?qū)ο蠓椒▽W(xué)概述_第2頁(yè)
面向?qū)ο蠓椒▽W(xué)概述_第3頁(yè)
面向?qū)ο蠓椒▽W(xué)概述_第4頁(yè)
面向?qū)ο蠓椒▽W(xué)概述_第5頁(yè)
已閱讀5頁(yè),還剩61頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

關(guān)于面向?qū)ο蠓椒▽W(xué)概述面向?qū)ο笏枷胱畛跗鹪从?0世紀(jì)60年代末的simula67語言。面向?qū)ο蠓椒ǖ幕疽c(diǎn)首次在simula語言中得到了表達(dá)和實(shí)現(xiàn)。80年代,位于美國(guó)加州的Xerox研究中心推出smalltalk語言及其程序設(shè)計(jì)環(huán)境,使得面向?qū)ο蟪绦蛟O(shè)計(jì)方法得到比較完善的實(shí)現(xiàn),掀起了面向?qū)ο笱芯康母叱薄?0年代中后期,面向?qū)ο蟮能浖O(shè)計(jì)和程序設(shè)計(jì)方法已發(fā)展成為一種成熟有效的軟件開發(fā)方法。相比而言,面向?qū)ο蟮姆治黾夹g(shù)發(fā)展得比較滯后。第2頁(yè),共66頁(yè),2024年2月25日,星期天第一節(jié)概述1.1傳統(tǒng)方法學(xué)

傳統(tǒng)方法學(xué)存在的問題

生產(chǎn)率提高的幅度遠(yuǎn)遠(yuǎn)不能滿足需要

軟件重用程度很低

軟件仍然很難維護(hù)

軟件往往不能真正滿足用戶需要

第3頁(yè),共66頁(yè),2024年2月25日,星期天出現(xiàn)問題的原因

僵化的瀑布模型 *某些類型的系統(tǒng)需求是模糊的 *項(xiàng)目參與者之間存在通信鴻溝 *預(yù)先定義的需求可能是過時(shí)的

結(jié)構(gòu)化技術(shù)的缺點(diǎn)

*用這種技術(shù)開發(fā)出的軟件,其穩(wěn)定性、可修改性和可重用性都比較差。 *結(jié)構(gòu)化分析、設(shè)計(jì)技術(shù)的本質(zhì)是功能分析。從代表目標(biāo)系統(tǒng)整體功能的單個(gè)處理著手,自頂向下不斷把復(fù)雜的處理分解為子處理,層層分解下去,直至僅剩下若干個(gè)容易實(shí)現(xiàn)的子處理為止。第4頁(yè),共66頁(yè),2024年2月25日,星期天功能與數(shù)據(jù)分離的軟件設(shè)計(jì)結(jié)構(gòu)與人類的現(xiàn)實(shí)世界環(huán)境很不一樣,和人的自然思維也就很不一致,因此對(duì)現(xiàn)實(shí)世界的認(rèn)識(shí)與編程之間存在著一道很深的理解上的鴻溝。

系統(tǒng)是圍繞著如何實(shí)現(xiàn)一定的行為來進(jìn)行的,當(dāng)系統(tǒng)行為易變,需要常常修改時(shí),修改極為困難。

在系統(tǒng)中模塊之間的控制作用有重要影響時(shí),也就是說,實(shí)際的控制發(fā)生的根源來自分散的各個(gè)模塊之中時(shí),由于在“好的模塊結(jié)構(gòu)”中的模塊間的控制作用只能通過上下之間的調(diào)用關(guān)系來進(jìn)行,造成信息傳遞路徑過長(zhǎng),效率低,易受干擾,甚至出錯(cuò)。自頂向下功能分解的分析方法極大地限制了軟件的可重用性。

第5頁(yè),共66頁(yè),2024年2月25日,星期天1.2面向?qū)ο蠓椒▽W(xué)

“面向?qū)ο蟆?Object-Oriented)是針對(duì)“面向過程”一詞提出的,是從本質(zhì)上區(qū)別于傳統(tǒng)的結(jié)構(gòu)化方法的一種新方法,新思路。OO技術(shù)的基本原理是:按照問題域的基本事物實(shí)現(xiàn)自然分割,按人們通常的思維方式建立問題域的模型,設(shè)計(jì)盡可能直接自然表現(xiàn)問題求解的軟件系統(tǒng)。為此,OO技術(shù)引入了對(duì)象(object)概念來表現(xiàn)事物,用消息(message)傳遞建立事物間的聯(lián)系。用類(class)和繼承(inheritance)作為適應(yīng)人們一般思維方式的描述模型。用方法(method)表示作用在對(duì)象上的各種操作。

第6頁(yè),共66頁(yè),2024年2月25日,星期天建立在對(duì)象、消息、類、繼承和方法等概念基礎(chǔ)上的面向?qū)ο筌浖幕咎卣魇菍?duì)象的封裝性和繼承性。通過封裝可以將對(duì)象的定義與對(duì)象的實(shí)現(xiàn)分開。這樣,無論是對(duì)象功能的完善擴(kuò)充,還是對(duì)象實(shí)現(xiàn)的修改,影響僅限于該對(duì)象內(nèi)部,保證了面向?qū)ο筌浖目蓸?gòu)造性和易維護(hù)性。通過繼承可以表達(dá)類與類之間的聯(lián)系,大大減少了重復(fù)定義,同時(shí)也使系統(tǒng)的結(jié)構(gòu)更加清晰、易于理解和維護(hù)。

第7頁(yè),共66頁(yè),2024年2月25日,星期天早在1982年,Rentsch就曾預(yù)言80年代的面向?qū)ο蟪绦蛟O(shè)計(jì)就象70年代的結(jié)構(gòu)化程序設(shè)計(jì)一樣,每個(gè)人都喜歡用它,每個(gè)軟件開發(fā)商都開發(fā)他們的軟件支持它,每個(gè)管理員都要付出代價(jià)應(yīng)用它,每個(gè)程序員都要以不同的方式實(shí)踐它,但是沒有人能清楚地講清楚它。

第8頁(yè),共66頁(yè),2024年2月25日,星期天第二節(jié)基本概念

面向?qū)ο?對(duì)象+類+繼承+通信如果一個(gè)軟件系統(tǒng)是使用這樣四個(gè)概念設(shè)計(jì)和實(shí)現(xiàn)的,則可以認(rèn)為這個(gè)軟件系統(tǒng)是面向?qū)ο蟮摹?/p>

第9頁(yè),共66頁(yè),2024年2月25日,星期天2.1對(duì)象(object)一般說來,在系統(tǒng)分析和系統(tǒng)構(gòu)造中,對(duì)象是對(duì)客觀世界事物的一種抽象,是由數(shù)據(jù)(屬性)及在其上的操作(行為)所組成的封裝體。可以用一個(gè)公式表示為: 對(duì)象=屬性+操作

第10頁(yè),共66頁(yè),2024年2月25日,星期天對(duì)象具有如下主要特點(diǎn):*自治性對(duì)于給定的輸入,經(jīng)過狀態(tài)轉(zhuǎn)換,對(duì)象能產(chǎn)生輸出。*封閉性對(duì)象的封閉性是指對(duì)象具有信息隱蔽的能力。*通信性

對(duì)象能夠接收其它對(duì)象發(fā)來的消息,也能向其它對(duì)象發(fā)送消息。通信性反映了不同對(duì)象間的聯(lián)系。上述特點(diǎn)分別刻畫了對(duì)象不同方面的性質(zhì),自治性反映了對(duì)象獨(dú)立計(jì)算的能力,封閉性和通信性說明對(duì)象是一個(gè)既封閉又開放的相對(duì)獨(dú)立體。

第11頁(yè),共66頁(yè),2024年2月25日,星期天2.2類(class)

類是一組具有相同數(shù)據(jù)結(jié)構(gòu)和相同操作的對(duì)象的集合。類的定義包括一組數(shù)據(jù)屬性和在數(shù)據(jù)上的一組合法操作,可以用一個(gè)公式表示為: 類=(組)數(shù)據(jù)屬性+(組)數(shù)據(jù)操作

第12頁(yè),共66頁(yè),2024年2月25日,星期天第13頁(yè),共66頁(yè),2024年2月25日,星期天2.3屬性(attribute)

每一對(duì)象的屬性是一些有著確定值的,用于描述對(duì)象狀態(tài)信息的數(shù)據(jù)。屬性一般只能通過執(zhí)行對(duì)象的操作來改變。

第14頁(yè),共66頁(yè),2024年2月25日,星期天2.4消息(message)

消息就是用來請(qǐng)求對(duì)象執(zhí)行某個(gè)處理或回答某些信息的要求,是連接對(duì)象的紐帶?;蛘哒f,一個(gè)對(duì)象為實(shí)現(xiàn)其責(zé)任而與其它對(duì)象的通信稱為消息。消息通常由三個(gè)部分組成:接收消息的對(duì)象;消息選擇符(也稱為消息名);零個(gè)或多個(gè)變?cè)?/p>

第15頁(yè),共66頁(yè),2024年2月25日,星期天2.5服務(wù)(method,即操作、方法)為了完成某一任務(wù),一個(gè)對(duì)象所提供的并體現(xiàn)其責(zé)任的操作稱為服務(wù)。屬于同一類的所有對(duì)象共享相同的服務(wù)。第16頁(yè),共66頁(yè),2024年2月25日,星期天2.6繼承(inheritance)

類之間的繼承關(guān)系是現(xiàn)實(shí)世界中遺傳關(guān)系的直接模擬,它表示類之間的內(nèi)在聯(lián)系以及對(duì)屬性和操作的共享。即子類可以沿用父類(被繼承類)的某些特征。當(dāng)然,子類也具有自己獨(dú)有的屬性和操作。新類的定義可以是現(xiàn)存類所聲明的數(shù)據(jù)、定義與新類所增加的聲明的組合。在組合過程中,新類復(fù)用現(xiàn)存類的定義,而不要求修改現(xiàn)存類。

繼承的優(yōu)點(diǎn):是軟件開發(fā)中復(fù)用概念的核心便于模塊修改簡(jiǎn)化模塊第17頁(yè),共66頁(yè),2024年2月25日,星期天2.7

多形(polymorphism)與動(dòng)態(tài)連接(dynamicbinding)

多形的本質(zhì)是一個(gè)消息可以與不同的實(shí)例結(jié)合,而且這些實(shí)例屬于不同類。

第18頁(yè),共66頁(yè),2024年2月25日,星期天具體的多形行為主要表現(xiàn)在以下方面:

1)運(yùn)算符重載同一個(gè)運(yùn)算符可作用于多種數(shù)據(jù)類型上;

2)函數(shù)名重載相同的函數(shù)名可作用于不同的對(duì)象類上,并產(chǎn)生不同的行為效果;

3)虛函數(shù)與動(dòng)態(tài)聯(lián)接

這是OO方法特有的動(dòng)態(tài)性質(zhì)。當(dāng)將重載的函數(shù)名標(biāo)識(shí)為虛函數(shù)時(shí),該函數(shù)就有較大的靈活性。它既可以表示子類中的同名函數(shù),也可表示父類中的同名函數(shù)。這種較大靈活性的關(guān)鍵在于允許在運(yùn)行中才按照具體的數(shù)據(jù)類型和參量和確定選用哪一個(gè)函數(shù),這種方式稱動(dòng)態(tài)聯(lián)接方式。

第19頁(yè),共66頁(yè),2024年2月25日,星期天第三節(jié)面向?qū)ο蟮闹饕椒?/p>

Coad/Yourdon的方法Rumbaugh等的OMT方法Booch的方法Wirtf-Brock等的RDD方法此外,還有ESA的HOOD方法、Shlear和Mellor的OOSA方法、Wasserman的OOSD方法、Reenksang的OORASS方法、Embley的OSA方法、Gibon的OBA方法、Jones和Weiss及Buhr的SYNTHESIS方法等

第20頁(yè),共66頁(yè),2024年2月25日,星期天3.1Coad與Yourdon的方法

Coad與Yourdon的方法是在信息模型化技術(shù)、面向?qū)ο蟪绦蛟O(shè)計(jì)語言及知識(shí)庫(kù)系統(tǒng)的基礎(chǔ)上發(fā)展起來的,這個(gè)方法分為OOA和OOD兩部分。

第21頁(yè),共66頁(yè),2024年2月25日,星期天3.1.1面向?qū)ο蟮姆治觯∣OA)Coad與Yourdon和其它描寫面向?qū)ο蠓椒ǖ淖髡咭粯?,認(rèn)為OOA主要考慮與一個(gè)特定應(yīng)用有關(guān)的對(duì)象及對(duì)象與對(duì)象之間在結(jié)構(gòu)與相互作用上的關(guān)系。

1.OOA的任務(wù)

1)形式地說明所面對(duì)的應(yīng)用問題,最終成為軟件系統(tǒng)基本構(gòu)成的對(duì)象,還有系統(tǒng)所必須遵從的,由應(yīng)用環(huán)境所決定的規(guī)則和約束。

2)明確地規(guī)定構(gòu)成系統(tǒng)的對(duì)象如何協(xié)同合作,完成指定的功能。

第22頁(yè),共66頁(yè),2024年2月25日,星期天在OOA中,要建立分析模型來描述系統(tǒng)的功能第一個(gè)層次主要是識(shí)別類和對(duì)象,這是整個(gè)分析模型的基礎(chǔ)。第二層和第三層是屬性層和服務(wù)層,用以說明前面已識(shí)別的類和對(duì)象。第四層是結(jié)構(gòu)層,OOA允許兩種類型的基本結(jié)構(gòu):一是整體與部分結(jié)構(gòu),也叫組裝結(jié)構(gòu),組裝結(jié)構(gòu)表示聚合,即由屬于不同類的成員聚合而成新的類;二是泛化與特化結(jié)構(gòu),也叫分類結(jié)構(gòu)。其中,特化類是泛化類的子類,泛化類是特化類的父類。分類結(jié)構(gòu)具有繼承性,泛化類和對(duì)象的屬性與服務(wù)一旦被識(shí)別,即可在特化類和對(duì)象中使用。第五層是主題層,是一些類和對(duì)象的特定組合表示,用來幫助和指導(dǎo)模型的讀者。

第23頁(yè),共66頁(yè),2024年2月25日,星期天第24頁(yè),共66頁(yè),2024年2月25日,星期天2.OOA的步驟

1)找到類和對(duì)象首先確定問題空間中包含哪些對(duì)象,有哪些操作,這些對(duì)象之間有什么關(guān)系,它們與操作又有什么關(guān)系。對(duì)象應(yīng)該是實(shí)際問題域中有意義的個(gè)體或概念實(shí)體,具有目標(biāo)軟件系統(tǒng)所關(guān)心的屬性,還應(yīng)該以某種方式與系統(tǒng)發(fā)生關(guān)聯(lián),即對(duì)象必須與系統(tǒng)中其他有意義的對(duì)象進(jìn)行消息傳遞,并提供外部服務(wù)。有關(guān)對(duì)象命名的重要原則:

a.使用單個(gè)名詞或名詞短語;

b.對(duì)象名稱必須簡(jiǎn)潔、精確、易于理解;

c.盡量使用用戶熟悉的標(biāo)準(zhǔn)詞匯。第25頁(yè),共66頁(yè),2024年2月25日,星期天2)確定結(jié)構(gòu)第一種結(jié)構(gòu)是分類結(jié)構(gòu),代表了確定的類中的繼承等級(jí)。另一種結(jié)構(gòu)是組裝結(jié)構(gòu),即由屬于不同類的成員聚合而成新的類。

3)定義主題確定主題通過將類和對(duì)象劃分成更大的單元來完成。主題是類和對(duì)象的組合。每個(gè)主題的規(guī)模按有助于讀者通過模型理解系統(tǒng)來選擇。

第26頁(yè),共66頁(yè),2024年2月25日,星期天4)定義屬性對(duì)每個(gè)對(duì)象,確定劃給該對(duì)象所需的屬性。關(guān)鍵是識(shí)別與當(dāng)前所處理的問題相關(guān)的屬性。被確定的屬性放到繼承等級(jí)的正確層次。注意應(yīng)避免冗余的或不正確的屬性

5)定義服務(wù)對(duì)象怎樣進(jìn)行消息通信是用消息的聯(lián)系來確定的。這些都用來指定某一個(gè)操作。綜上所述,OOA大體上可以按照這個(gè)順序進(jìn)行。但是,分析不可能嚴(yán)格地按照預(yù)定順序進(jìn)行,大型、復(fù)雜系統(tǒng)的模型需要反復(fù)構(gòu)造多遍才能建成。第27頁(yè),共66頁(yè),2024年2月25日,星期天3.1.2面向?qū)ο蟮脑O(shè)計(jì)(OOD)OOA到OOD實(shí)際上是一個(gè)逐漸擴(kuò)充模型的過程。面向?qū)ο蠓治鲋饕M問題空間和系統(tǒng)任務(wù);而面向?qū)ο笤O(shè)計(jì)則是對(duì)其進(jìn)行擴(kuò)充,主要是增加各種組成部分。OOA識(shí)別和定義的類/對(duì)象,是一些直接反映問題空間和系統(tǒng)任務(wù)的;而OOD識(shí)別和定義的類/對(duì)象則是附加的,反映需求的一種實(shí)現(xiàn)。Coad與Yourdon在設(shè)計(jì)階段中繼續(xù)采用分析階段中提到的五個(gè)層次,他們認(rèn)為這有助于從分析到設(shè)計(jì)的過渡。不同的是,在設(shè)計(jì)階段中,這五個(gè)層次是用于建立系統(tǒng)的四個(gè)組成成分上。這四個(gè)組成成分是:?jiǎn)栴}論域,用戶界面,任務(wù)管理和數(shù)據(jù)管理。

第28頁(yè),共66頁(yè),2024年2月25日,星期天問題論域部分包括與所面對(duì)的應(yīng)用問題直接有關(guān)的所有類和對(duì)象。

在其它的三個(gè)部分中,識(shí)別和定義新的類和對(duì)象。

第29頁(yè),共66頁(yè),2024年2月25日,星期天1.問題域部分(PDC)的設(shè)計(jì)

OOA階段得到的有關(guān)應(yīng)用的概念模型描述了所要解決的問題。在OOD階段,主要是對(duì)OOA產(chǎn)生模型中的某些類與對(duì)象、結(jié)構(gòu)、屬性、操作進(jìn)行組合與分解,或者增加必要的類、屬性和聯(lián)系。

第30頁(yè),共66頁(yè),2024年2月25日,星期天1)復(fù)用設(shè)計(jì)

根據(jù)問題解決的需要,把從現(xiàn)有的類庫(kù)或其它來源得到的現(xiàn)存類增加到問題解決方案中去。

第31頁(yè),共66頁(yè),2024年2月25日,星期天第32頁(yè),共66頁(yè),2024年2月25日,星期天2)把問題論域的專用類關(guān)聯(lián)起來3)為建立公共操作集合建立一般類4)調(diào)整繼承級(jí)別

第33頁(yè),共66頁(yè),2024年2月25日,星期天2.用戶界面部分(HIC)的設(shè)計(jì)

通常在OOA階段給出了所需的屬性和操作,在設(shè)計(jì)階段必須根據(jù)需求把交互的細(xì)節(jié)加入到用戶界面的設(shè)計(jì)中,包括有效的人機(jī)交互所必需的實(shí)際顯示和輸入。第34頁(yè),共66頁(yè),2024年2月25日,星期天1)用戶分類通??蓪⑵浞譃橥庑行?、初學(xué)型、熟練型和專家型四類2)描述人及其任務(wù)的場(chǎng)景什么人、特點(diǎn)、期望軟件用途、主要要求與喜好以及任務(wù)場(chǎng)景等。3)設(shè)計(jì)命令層盡量遵循用戶界面的一般原則和規(guī)范,根據(jù)用戶分析結(jié)果確定初步的命令系統(tǒng),然后再優(yōu)化。4)設(shè)計(jì)詳細(xì)的交互5)設(shè)計(jì)HIC(人機(jī)交互)類第35頁(yè),共66頁(yè),2024年2月25日,星期天3.任務(wù)管理部分(TMC)的設(shè)計(jì)

任務(wù)是進(jìn)程的別稱,是執(zhí)行一系列活動(dòng)的一段程序,或者說,任務(wù)是由目標(biāo)軟件系統(tǒng)中一段代碼決定的處理行為。任務(wù)管理主要包括任務(wù)的選擇和調(diào)整。

第36頁(yè),共66頁(yè),2024年2月25日,星期天1)識(shí)別事件驅(qū)動(dòng)任務(wù)一些負(fù)責(zé)與硬件設(shè)備通信的任務(wù)是事件驅(qū)動(dòng)的,也就是說這些任務(wù)可由事件來激發(fā),而事件常常是當(dāng)數(shù)據(jù)到來時(shí)發(fā)出的一個(gè)信號(hào)。2)識(shí)別時(shí)鐘驅(qū)動(dòng)任務(wù)以固定的時(shí)間間隔激發(fā)這種事件,以執(zhí)行某些處理。3)識(shí)別優(yōu)先任務(wù)和關(guān)鍵任務(wù)

根據(jù)處理的優(yōu)先級(jí)別來安排各種任務(wù)。在系統(tǒng)中,有些操作具有高優(yōu)先級(jí),因此必須在很強(qiáng)的時(shí)間限制內(nèi)完成;有些操作具有較低的優(yōu)先級(jí),可進(jìn)行時(shí)間要求較低的處理。關(guān)鍵任務(wù)是對(duì)系統(tǒng)的成敗起關(guān)鍵作用的處理,這些處理要求有較高的可靠性。

第37頁(yè),共66頁(yè),2024年2月25日,星期天4)識(shí)別協(xié)調(diào)者

當(dāng)有三個(gè)或更多的任務(wù)時(shí),應(yīng)當(dāng)增加一個(gè)附加任務(wù),專門負(fù)責(zé)任務(wù)之間的調(diào)度、協(xié)同和仲裁。5)評(píng)審各個(gè)任務(wù)6)定義各個(gè)任務(wù)定義任務(wù)的工作主要包括它是什么任務(wù)、如何協(xié)調(diào)工作及如何通信。任務(wù)的定義如下:name(任務(wù)名)description(描述)priority(優(yōu)先級(jí))servicesincluded(包含的操作)communicationvia(經(jīng)由誰通信)

第38頁(yè),共66頁(yè),2024年2月25日,星期天4.數(shù)據(jù)管理部分(DMC)的設(shè)計(jì)

數(shù)據(jù)管理部分提供了在數(shù)據(jù)管理系統(tǒng)中存儲(chǔ)和檢索對(duì)象的基本結(jié)構(gòu)

設(shè)計(jì)數(shù)據(jù)管理部分的目的是,將目標(biāo)軟件系統(tǒng)中依賴開發(fā)平臺(tái)的數(shù)據(jù)存取部分與其他功能分離,數(shù)據(jù)存取通過一般的數(shù)據(jù)管理系統(tǒng)實(shí)現(xiàn),但實(shí)現(xiàn)細(xì)節(jié)集中在DMC中。這樣既有利于軟件的擴(kuò)充、移植和維護(hù),又簡(jiǎn)化了軟件設(shè)計(jì)、編碼和測(cè)試的過程。

第39頁(yè),共66頁(yè),2024年2月25日,星期天1)數(shù)據(jù)管理方法數(shù)據(jù)管理方法主要有三種文件管理關(guān)系數(shù)據(jù)庫(kù)管理面向?qū)ο蟮臄?shù)據(jù)庫(kù)管理2)數(shù)據(jù)管理部分的設(shè)計(jì)數(shù)據(jù)存儲(chǔ)管理部分的設(shè)計(jì)包括數(shù)據(jù)存放方法的設(shè)計(jì)和相應(yīng)操作的設(shè)計(jì)

第40頁(yè),共66頁(yè),2024年2月25日,星期天3.2OMT(objectmodelingtechnique)

OMT是美國(guó)通用電氣公司在總結(jié)其內(nèi)部多年來采用OO技術(shù)開發(fā)實(shí)踐的基礎(chǔ)上提出的一套系統(tǒng)開發(fā)方法學(xué)。OMT最早是由Loomis,Shan和Rumbaugh在1987年提出的,曾擴(kuò)展應(yīng)用于關(guān)系DB設(shè)計(jì)。J.Rumbaugh在1991年正式把OMT應(yīng)用于OO的分析和設(shè)計(jì)。它以面向?qū)ο笏枷霝榛A(chǔ),通過構(gòu)造一組相關(guān)模型(對(duì)象模型、動(dòng)態(tài)模型和功能模型)來獲得關(guān)于問題的全面認(rèn)識(shí)(即問題領(lǐng)域模型),是在實(shí)體關(guān)系模型上擴(kuò)展了類、繼承和行為而得到的。

第41頁(yè),共66頁(yè),2024年2月25日,星期天對(duì)象模型(objectmodel)代表了系統(tǒng)的靜態(tài)的、結(jié)構(gòu)方面的特性。動(dòng)態(tài)模型(dynamicmodel)代表了系統(tǒng)對(duì)象之間的時(shí)間的、行為的、控制方面的特性。功能模型(functionalmodel)主要描述值與值之間的函數(shù)關(guān)系。這三個(gè)模型從不同角度對(duì)系統(tǒng)進(jìn)行描述,分別抓住了系統(tǒng)的一個(gè)重要方面,組合起來構(gòu)成了對(duì)系統(tǒng)的完整描述。OMT認(rèn)為一個(gè)典型的軟件過程是三個(gè)方面的合作:它的數(shù)據(jù)結(jié)構(gòu)(對(duì)象模型)、它按時(shí)間順序的操作(動(dòng)態(tài)模型)和它所改變的值(功能模型)。

第42頁(yè),共66頁(yè),2024年2月25日,星期天在分析階段,應(yīng)用領(lǐng)域的一個(gè)模型被建立,不考慮最后的實(shí)現(xiàn)。在設(shè)計(jì)階段,解決領(lǐng)域的結(jié)構(gòu)加入模型中,明確系統(tǒng)中各個(gè)類的定義和相互關(guān)系以及各個(gè)類中的操作,并考慮到重用效率,重新設(shè)計(jì)一些類和關(guān)系。在實(shí)現(xiàn)階段,應(yīng)用領(lǐng)域和解決領(lǐng)域的結(jié)構(gòu)都被編碼。

第43頁(yè),共66頁(yè),2024年2月25日,星期天模型有兩層含義:從系統(tǒng)的觀點(diǎn)看對(duì)象模型動(dòng)態(tài)模型功能模型從開發(fā)階段看分析模型設(shè)計(jì)模型實(shí)現(xiàn)模型第44頁(yè),共66頁(yè),2024年2月25日,星期天3.2.1三種模型介紹

1.對(duì)象模型對(duì)象模型描述了系統(tǒng)中對(duì)象的結(jié)構(gòu),即它們的標(biāo)識(shí)、它們與其它對(duì)象之間的關(guān)系、它們的屬性以及它們的操作。對(duì)象模型為動(dòng)態(tài)模型和功能模型提供了重要的框架,因?yàn)橹挥挟?dāng)事物變化時(shí),動(dòng)態(tài)模型和功能模型才有存在的意義。對(duì)象模型用包含對(duì)象及對(duì)象的關(guān)系圖表示。

第45頁(yè),共66頁(yè),2024年2月25日,星期天第46頁(yè),共66頁(yè),2024年2月25日,星期天類之間的聯(lián)系稱為關(guān)系。類之間的關(guān)系在OMT符號(hào)中用一條線表示。對(duì)象圖在關(guān)系線的端點(diǎn)用特定的符號(hào)表示多元性。

第47頁(yè),共66頁(yè),2024年2月25日,星期天對(duì)象模型中類之間的三種基本關(guān)系以O(shè)MT符號(hào)來表示

1)相關(guān)關(guān)系

第48頁(yè),共66頁(yè),2024年2月25日,星期天2)包容關(guān)系

第49頁(yè),共66頁(yè),2024年2月25日,星期天3)繼承關(guān)系

第50頁(yè),共66頁(yè),2024年2月25日,星期天OMT建立一個(gè)對(duì)象模型的步驟大致如下:確定對(duì)象類定義一個(gè)DD,包括類、屬性和關(guān)系的描述增加類之間的關(guān)系增加對(duì)象和聯(lián)系的屬性用繼承組織和簡(jiǎn)化對(duì)象類用場(chǎng)景測(cè)試訪問路徑如有需要重復(fù)以上各步基于相近的關(guān)系和相關(guān)的功能將成組的對(duì)象形成模塊

第51頁(yè),共66頁(yè),2024年2月25日,星期天 2.動(dòng)態(tài)模型動(dòng)態(tài)模型描述系統(tǒng)中與時(shí)間有關(guān)的方面以及操作執(zhí)行的順序,包括引起變化的事件、事件的序列、定義事件序列上下文的狀態(tài)、以及事件和狀態(tài)的主次。動(dòng)態(tài)建模中的主要概念是事件和狀態(tài)。一個(gè)對(duì)象的狀態(tài)是指對(duì)象所擁有的屬性值和連接關(guān)系。從一個(gè)對(duì)象到另一個(gè)對(duì)象的單個(gè)消息叫作一個(gè)事件。 在系統(tǒng)的一個(gè)特定的執(zhí)行中發(fā)生的一系列事件叫一個(gè)場(chǎng)景。

第52頁(yè),共66頁(yè),2024年2月25日,星期天第53頁(yè),共66頁(yè),2024年2月25日,星期天動(dòng)態(tài)模型由多個(gè)狀態(tài)圖組成,每個(gè)用來描述一個(gè)類的重要?jiǎng)討B(tài)行為,并表明整個(gè)系統(tǒng)的活動(dòng)方式,不同類的狀態(tài)圖通過共享的事件組成一個(gè)動(dòng)態(tài)模型。狀態(tài)圖的結(jié)點(diǎn)是狀態(tài),標(biāo)有事件的線是轉(zhuǎn)移。轉(zhuǎn)移的箭頭指向接收事件后的目標(biāo)狀態(tài)。

第54頁(yè),共66頁(yè),2024年2月25日,星期天第55頁(yè),共66頁(yè),2024年2月25日,星期天第56頁(yè),共66頁(yè),2024年2月25日,星期天建立一個(gè)動(dòng)態(tài)模型的步驟準(zhǔn)備典型的交互序列的場(chǎng)景確定對(duì)象之間的事件和為每個(gè)場(chǎng)景準(zhǔn)備一個(gè)事件跟蹤圖為每個(gè)系統(tǒng)準(zhǔn)備一個(gè)事件流圖為每個(gè)有重要的動(dòng)態(tài)行為的類開發(fā)一個(gè)狀態(tài)圖檢驗(yàn)狀態(tài)圖之間的共享的事件的一致性和完整性。

第57頁(yè),共66頁(yè),2024年2月25日,星期天 3.功能模型對(duì)象模型指出事件要發(fā)生在什么方面,動(dòng)態(tài)模型指出什么時(shí)候發(fā)生,功能模型則指出要發(fā)生什么。功能模型表示怎樣從輸入值得到輸出值。包括函數(shù)、映射、約束和功能性依賴。功能模型由多個(gè)DFD組成,它們表示從外部輸入,通過操作和內(nèi)部數(shù)據(jù)存儲(chǔ),到外部輸出這樣一個(gè)流。DFD不表示控制或?qū)ο蠼Y(jié)構(gòu)信息,這些分別屬于動(dòng)態(tài)模型和對(duì)象模型。功能是由動(dòng)態(tài)模型的動(dòng)作引起,并在對(duì)象模型里表示對(duì)對(duì)象的操作。一個(gè)DFD包括轉(zhuǎn)換數(shù)據(jù)的過程,移動(dòng)數(shù)據(jù)的DF,生產(chǎn)和消費(fèi)數(shù)據(jù)的角色對(duì)象,以及被動(dòng)地存儲(chǔ)數(shù)據(jù)的數(shù)據(jù)存儲(chǔ)對(duì)象。第58頁(yè),共66頁(yè),2024年2月25日,星期天建立一個(gè)功能模型的步驟確定輸入和輸出值需要時(shí)用DFD表示功能的依賴性描述每個(gè)功能干什么確定限制,指定優(yōu)化準(zhǔn)則

第59頁(yè),共66頁(yè),2024年2月25日,星期天 4.三個(gè)模型之間的關(guān)系對(duì)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論