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

下載本文檔

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

文檔簡介

第七章面向?qū)ο蠓椒▽W(xué)引論第1頁,課件共65頁,創(chuàng)作于2023年2月第七章面向?qū)ο蠓椒▽W(xué)引論7·1傳統(tǒng)方法學(xué)的缺點(diǎn)7·2快速原型法簡介7·3面向?qū)ο蠓椒▽W(xué)概述7·4面向?qū)ο蟮幕靖拍?·5面向?qū)ο蠼?·6對象模型7·7動態(tài)模型7·8功能模型7·9本章重點(diǎn)第2頁,課件共65頁,創(chuàng)作于2023年2月7·1傳統(tǒng)方法學(xué)的缺點(diǎn)傳統(tǒng)的生命周期方法學(xué)的本質(zhì),是通過需求分析預(yù)定義軟件需求,然后一個階段接著一個階段有條不紊的開發(fā)用戶所要求的軟件,實(shí)現(xiàn)預(yù)定義的軟件需求。

雖然生命周期方法較之傳統(tǒng)的軟件開發(fā)方法更為規(guī)范化,對實(shí)現(xiàn)軟件開發(fā)工程化起到了重要的促進(jìn)作用,部分緩解了軟件危機(jī),引起了軟件開發(fā)原理的一次重大變革。

但是,對于那些大的復(fù)雜的軟件系統(tǒng)而言,這種方法仍然顯得力不從心。第3頁,課件共65頁,創(chuàng)作于2023年2月一、瀑布模型的缺點(diǎn):僵化

生命周期各階段間存在嚴(yán)格的順序性與依賴性,因此其特別強(qiáng)調(diào)預(yù)先定義需求的重要性。要求預(yù)先定義并“凍結(jié)”軟件需求。 實(shí)踐表明:在系統(tǒng)建立起來很難僅僅依靠分析就能確定一套完整、準(zhǔn)確、一致、有效的應(yīng)用需求,而且該方法不適用與用戶需求不斷變化的情況: (1)某些類型的系統(tǒng)需求是模糊的。 (2)項(xiàng)目參與者之間存在通訊鴻溝。 (3)預(yù)先定義的需求可能是過時的。第4頁,課件共65頁,創(chuàng)作于2023年2月二、SA-SD-SP技術(shù)的缺點(diǎn) 本質(zhì)上是功能分解,以實(shí)現(xiàn)功能的過程為中心,而用戶的需求變化主要是針對功能的。這就使基于過程的設(shè)計(jì)不易被理解;且功能變化往往引起結(jié)構(gòu)變化較大,穩(wěn)定性不好。系統(tǒng)有明確的邊界定義,且系統(tǒng)結(jié)構(gòu)依賴于系統(tǒng)邊界的定義,系統(tǒng)不易擴(kuò)充和修改。數(shù)據(jù)與操作分開處理,可造成軟構(gòu)件對具體應(yīng)用環(huán)境的依賴,可重用性(reusability)較差.第5頁,課件共65頁,創(chuàng)作于2023年2月7·2快速原型法簡介 快速原型法適用于用戶需求模糊或隨時間變化的系統(tǒng)。以原型(軟件產(chǎn)品的樣品)為共同語言,實(shí)現(xiàn)用戶與開發(fā)者雙向溝通,來解決用戶與開發(fā)者之間的鴻溝。

原型是一個可實(shí)地運(yùn)行的模型,有正式產(chǎn)品的主要特征,但不是全部特征。 軟件原型是軟件系統(tǒng)的最初版本,以最少的費(fèi)用,最短的時間開發(fā)出的、以反映最后軟件的主要特征的系統(tǒng)。第6頁,課件共65頁,創(chuàng)作于2023年2月一、原型模型(快速成型模型)建造/修改原型用戶測試運(yùn)行原型

聽取用戶意見原型范型第7頁,課件共65頁,創(chuàng)作于2023年2月二、原型的特性是一個可實(shí)際工作的系統(tǒng);沒有固定的生存期,結(jié)局可能是用后立即被拋棄,或可能成為最終系統(tǒng);可服務(wù)于不同的目的,從需求分析到最終產(chǎn)品都可做原型;建立必須快,便宜;是包含修改、評價在內(nèi)的完整重復(fù)過程。

原型指“快速軟件原型”第8頁,課件共65頁,創(chuàng)作于2023年2月三、原型化開發(fā)的應(yīng)用領(lǐng)域需求分析和定義規(guī)格說明;作為軟件設(shè)計(jì)的一種工具;作為一種解決不確定性的工具作為一種實(shí)驗(yàn)工具系統(tǒng)開發(fā)同時,作為同步培訓(xùn)工具作為開發(fā)方法,利用原型演化為最終系統(tǒng)作為軟件維護(hù)的輔助工具第9頁,課件共65頁,創(chuàng)作于2023年2月四、原型開發(fā)的分類 原型化隨建立原型目的不同分為:

(1)拋棄式原型開發(fā):輔助于瀑布模型,建立目標(biāo)是評價目標(biāo)系統(tǒng)的某個(些)特性,以便準(zhǔn)確了解需求,或嚴(yán)格驗(yàn)證方案。特點(diǎn)用完就拋棄,然后重新建立正式的目標(biāo)系統(tǒng)。 (2)演化式原型開發(fā):采用高度迭代的動態(tài)方法,每次都要再次確定需求、分析設(shè)計(jì)、開發(fā)測試、……,多次迭代直到用戶滿意為止。特點(diǎn)是系統(tǒng)的初始版本很早交付用戶試用,而且開發(fā)的成敗取決于需要雙方的耐心。第10頁,課件共65頁,創(chuàng)作于2023年2月四、原型開發(fā)的分類(續(xù))(3)遞增式原型開發(fā):融合了瀑布模型與原型迭代的特征。特點(diǎn)是采用隨日程時間的進(jìn)展而交錯的線性序列,每一個線性序列產(chǎn)生一個可發(fā)布“增量”。 如使用此方法開發(fā)一個字處理軟件,線性序列安排如下:

S1:發(fā)布基本的文件管理、編輯和文檔生成功能;

S2:增量實(shí)現(xiàn)完善的編輯和文檔生成功能;

S3:增量實(shí)現(xiàn)拼寫和語法檢查功能;

S4:增量完成高級的頁面布局功能。第11頁,課件共65頁,創(chuàng)作于2023年2月五、原型開發(fā)的優(yōu)點(diǎn)保證產(chǎn)品有較好的可維護(hù)性改善用戶與開發(fā)人員的信息交流和思想溝通,給用戶修改的機(jī)會減少或消滅下游返工的可能,改進(jìn)了瀑布模型的弊病原型系統(tǒng)可作為培訓(xùn)環(huán)境,有利于用戶培訓(xùn)和開發(fā)同步。開發(fā)成本降低,周期縮短。第12頁,課件共65頁,創(chuàng)作于2023年2月7·3面向?qū)ο蠓椒▽W(xué)概述一、傳統(tǒng)的軟件開發(fā)方法的缺點(diǎn): 特點(diǎn)是把軟件視為處理流,并定義成由一系列步驟構(gòu)成的算法。每一步驟都是帶有預(yù)定輸入和特定輸出的一個過程,把這些步驟串聯(lián)在一起可產(chǎn)生合理的穩(wěn)定的貫通于整個程序的控制流,最終產(chǎn)生一個簡單的具有靜態(tài)結(jié)構(gòu)的體系結(jié)構(gòu)。過程性開發(fā)模式側(cè)重建立構(gòu)成問題解決的處理流。數(shù)據(jù)抽象、數(shù)據(jù)結(jié)構(gòu)根據(jù)算法步驟的要求開發(fā),它貫穿于過程,提供過程所要求操作的信息。系統(tǒng)的狀態(tài)是一組全局變量,這組全局變量保存狀態(tài)的值,把它們從一個過程傳送到另一個過程。第13頁,課件共65頁,創(chuàng)作于2023年2月二、面向?qū)ο笏枷氲挠蓙韨鹘y(tǒng)的軟件開發(fā)方法—沒有直接而全面地反映問題的本質(zhì)

直接面對問題域中客觀存在的事物來進(jìn)行軟件開發(fā)—面向?qū)ο笙M?4頁,課件共65頁,創(chuàng)作于2023年2月二、面向?qū)ο笏枷氲挠蓙?續(xù))對象表示現(xiàn)實(shí)世界中某個具體的事物。事物可分為兩大部分:物質(zhì)

:表達(dá)具體的事物意識

:描述抽象的概念解決問題方法:(OO

Object-Oriented)現(xiàn)實(shí)問題空間面向?qū)ο蠼饪臻g物質(zhì)對象(客觀存在的)意識類(抽象的概念)第15頁,課件共65頁,創(chuàng)作于2023年2月三、對象、實(shí)體與類關(guān)系圖對象實(shí)體類抽象數(shù)據(jù)類計(jì)算機(jī)世界現(xiàn)實(shí)世界計(jì)算機(jī)邏輯的實(shí)現(xiàn)影射抽象實(shí)例化抽象第16頁,課件共65頁,創(chuàng)作于2023年2月四、面向?qū)ο蠓椒?OOM)特點(diǎn)

盡可能模擬人類習(xí)慣的思維方式,即問題域與求解域在結(jié)構(gòu)上盡可能一致。與傳統(tǒng)方法相反,OOM以數(shù)據(jù)或信息為主線,把數(shù)據(jù)和處理結(jié)合構(gòu)成統(tǒng)一體——對象。這時程序不再是一系列工作在數(shù)據(jù)上的函數(shù)集合,而是相互協(xié)作又彼此獨(dú)立的對象的集合。第17頁,課件共65頁,創(chuàng)作于2023年2月OOM舉例:郵局業(yè)務(wù)管理杭州北京Post-officeMessageSendbymethod對象ObjectObject=數(shù)據(jù)AttributeAttributes:location;employee;……+操作MethodMethods:send;sell;……注意:Object內(nèi)部的attributes不允許外部用戶直接改動,只有當(dāng)它提供了相應(yīng)的服務(wù)method時,用戶才能通過發(fā)送message來提請它執(zhí)行。我想把郵局搬到我家門口,多加幾個郵遞員,24小時都開門……對不起,本郵局不提供此類服務(wù)唉,那就先送束花吧——Post_office.Send(request,payment)第18頁,課件共65頁,創(chuàng)作于2023年2月五、面向?qū)ο蟮亩x面向?qū)ο?對象+類+繼承+通信如果一個軟件系統(tǒng)是使用這樣4個概念設(shè)計(jì)和實(shí)現(xiàn)的,則我們認(rèn)為這個軟件系統(tǒng)是面向?qū)ο蟮?。一個面向?qū)ο蟮某绦虻拿恳怀煞輵?yīng)是對象,計(jì)算是通過新的對象的建立和對象之間的通信來執(zhí)行的。面向?qū)ο笏囊兀海?)對象(2)類(3)繼承(4)消息第19頁,課件共65頁,創(chuàng)作于2023年2月六、面向?qū)ο笏囊亍獙ο髮ο?Object)是面向?qū)ο蟮幕境煞?。每個對象可用它本身的一組屬性和它可以執(zhí)行的一組操作來定義。屬性一般只能通過執(zhí)行對象的操作來改變。操作又稱為方法或服務(wù),它描述了對象執(zhí)行的功能,若通過消息傳遞,還可以為其它對象使用。第20頁,課件共65頁,創(chuàng)作于2023年2月六、面向?qū)ο笏囊亍愵悾–lass)是一組具有相同數(shù)據(jù)結(jié)構(gòu)和相同操作的對象的集合。類的定義包括一組數(shù)據(jù)屬性和在數(shù)據(jù)上的一組合法操作。類定義可以視為一個具有類似特性與共同行為的對象的模板,可用來產(chǎn)生對象。在一個類中,每個對象都是類的實(shí)例

(Instance),它們都可使用類中提供的函數(shù)。對象的狀態(tài)則包含在它的實(shí)例變量,即實(shí)例的屬性中。第21頁,課件共65頁,創(chuàng)作于2023年2月六、面向?qū)ο笏囊亍⑾ⅲ∕essage)是一個對象與另一個對象的通信單元,是要求某個對象執(zhí)行類中定義的某個操作的規(guī)格說明。發(fā)送給一個對象的消息定義了一個方法名和一個參數(shù)表(可能是空的),并指定某一個對象。一個對象接收的消息則調(diào)用消息中指定的方法,并將形式參數(shù)與參數(shù)表中相應(yīng)的值結(jié)合起來。第22頁,課件共65頁,創(chuàng)作于2023年2月classPost_office//定義類{private:loc_typelocation;emp_typeemployee;……public:voidsend(req_typerequest,money_typepayment);voidsell(intgoods,money_typepayment);……};

main(){Post_officeMy_PO;//聲明類的示例:對象

req_typeMy_request;money_typeMy_payment;……My_PO.Send(My_request,My_payment);//通訊

……}OOM舉例:郵局業(yè)務(wù)管理第23頁,課件共65頁,創(chuàng)作于2023年2月六、面向?qū)ο笏囊亍^承繼承(Inheritance)是使用已存在的定義做為基礎(chǔ)建立新定義的技術(shù)。新類的定義可以是既存類所聲明的數(shù)據(jù)和新類所增加的聲明的組合。新類復(fù)用既存的定義,而不要求修改既存類。既存類可當(dāng)做基類來引用,則新類相應(yīng)地可當(dāng)做派生類來引用。例如,從一個既存的車輛類派生的四輪驅(qū)動車類可能不僅是車輛類子集合定義的特殊化,而且還可能在新類的界面中引入新的能力。第24頁,課件共65頁,創(chuàng)作于2023年2月七、面向?qū)ο笈c傳統(tǒng)方法比較①傳統(tǒng)方法:面向過程設(shè)計(jì),以計(jì)算為核心,數(shù)據(jù)與操作分離,不易理解。OOM:以object為核心,強(qiáng)調(diào)對現(xiàn)實(shí)概念的模擬而不強(qiáng)調(diào)算法?!懊嫦?qū)ο蠓椒▽W(xué)的基本原則,是按照人們習(xí)慣的思維方式建立問題域的模型,開發(fā)出盡可能直觀、自然地表現(xiàn)求解方法的軟件系統(tǒng)”。

Class:由特殊到一般的歸納(induction)

Inheritance:由一般到特殊的演繹(deduction)第25頁,課件共65頁,創(chuàng)作于2023年2月七、面向?qū)ο笈c傳統(tǒng)方法比較(續(xù))②傳統(tǒng)方法:結(jié)構(gòu)依賴于功能,不穩(wěn)定。OOM:以object模擬實(shí)體,需求變化不會引起結(jié)構(gòu)的整體變化,因?yàn)閷?shí)體相對穩(wěn)定,故系統(tǒng)也相應(yīng)穩(wěn)定。③傳統(tǒng)方法:通過建立標(biāo)準(zhǔn)函數(shù)庫來重用軟構(gòu)件。但標(biāo)準(zhǔn)函數(shù)缺少必要的“柔性”,難以適應(yīng)不同場合的不同需要。OOM:一個class所有的instances都可重用它的代碼;由inheritance派生出的新的class可重用其父類的代碼,并且可以修改、擴(kuò)充而不影響其父類的使用。第26頁,課件共65頁,創(chuàng)作于2023年2月七、面向?qū)ο笈c傳統(tǒng)方法比較(續(xù))穩(wěn)定性好:軟件功能需求的變化不牽動全局,只需局部修改;Class獨(dú)立性強(qiáng):只要修改不涉及class的對外接口,則內(nèi)部修改完全不影響外部調(diào)用;Inheritance和多態(tài)性(polymorphism)使其很容易被修改和擴(kuò)充;容易理解;④傳統(tǒng)方法:可維護(hù)性是最令人頭痛的問題。

OOM:從以下幾方面改善了可維護(hù)性——第27頁,課件共65頁,創(chuàng)作于2023年2月七、面向?qū)ο笈c傳統(tǒng)方法比較(續(xù))

OOM并不是減少了開發(fā)時間,而是通過提高可重用性、可維護(hù)性,進(jìn)行擴(kuò)充和修改的容易程度等,從長遠(yuǎn)角度改進(jìn)了軟件的質(zhì)量。OOM與快速原型法結(jié)合使用效果好。第28頁,課件共65頁,創(chuàng)作于2023年2月八、三種開發(fā)模型的適用范圍⑴瀑布模型Waterfall:需求穩(wěn)定少變化對環(huán)境較熟悉(低風(fēng)險(xiǎn))用戶很少參與開發(fā)面向過程編程⑵螺旋模型Spiral:需求可能在開發(fā)早期有變化對環(huán)境較熟悉(中風(fēng)險(xiǎn))用戶不同程度地參與整個過程

OOP第29頁,課件共65頁,創(chuàng)作于2023年2月八、三種開發(fā)模型的適用范圍(續(xù))⑶增量模型Incremental:需求隨時可能變化對環(huán)境不熟悉(高風(fēng)險(xiǎn))用戶完全參與開發(fā)

OOP

SA-SD-SP

與Waterfallmodel有本質(zhì)上的密切聯(lián)系;OOP由可用于任何模型。OOM的工作重點(diǎn)在分析階段,確定objects,此外,生命周期的各階段可以“無縫”連接。

第30頁,課件共65頁,創(chuàng)作于2023年2月7·4面向?qū)ο蟮幕靖拍頵1f2f3……fi……fnfi(X)Sgi(X,S)S’輸出輸出1、對象Object:=ID+Method+Attribute+Message第31頁,課件共65頁,創(chuàng)作于2023年2月對象的基本特點(diǎn)①以數(shù)據(jù)為中心,不設(shè)與數(shù)據(jù)無關(guān)的操作;②Object主動處理而不被動地等待被處理,外部只能通過message請求操作;③具有黑盒性:外部操作時,無須知道該object內(nèi)部的數(shù)據(jù)結(jié)構(gòu)及算法;④具有并行性:不同object各自獨(dú)立地處理自身數(shù)據(jù),彼此間僅通過傳遞message完成通信;⑤模塊獨(dú)立性好:內(nèi)聚強(qiáng)(①)、耦合松(③④)第32頁,課件共65頁,創(chuàng)作于2023年2月2、類Class:具有相同數(shù)據(jù)和相同操作的一組對象;3、實(shí)例Instance:某個class描述的具體對象;4、消息Message:=object_ID.method_ID(parameter(s));5、方法Method:object能做的操作,亦稱為service、responsibility,在class中須定義相應(yīng)的代碼;6、屬性Attribute

:object的固有數(shù)據(jù);7、繼承Inheritance:子類自動共享父類attributes和methods,而不必重復(fù)定義。面向?qū)ο蟮幕靖拍?續(xù))第33頁,課件共65頁,創(chuàng)作于2023年2月面向?qū)ο蟮幕靖拍?續(xù))Class中國人中國人Attributes中國人Methods張山(instance)

Class中國人張山的AttributesClass杭州人(子類)杭州人Attributes杭州人Methods

Class中國人李士(instance)中國人李士的Attributes杭州人李士的Attributes

Class杭州人例:第34頁,課件共65頁,創(chuàng)作于2023年2月繼承的特點(diǎn):①低層性質(zhì)覆蓋高層性質(zhì):若杭州人的methods中有與中國人的同名,則李士執(zhí)行該method時以杭州人為準(zhǔn),不執(zhí)行中國人中定義的同名method。②傳遞性(transitivity):AB、BCAC

一個

class繼承了上層全部classes

的一切性質(zhì)。③一個子類只有一個父類稱為單繼承(singleinheritance),一個子類可有多個父類稱為多重繼承(multipleinheritance).例④修改與擴(kuò)充可以很容易地通過派生子類來完成。第35頁,課件共65頁,創(chuàng)作于2023年2月注意:multipleinheritance在定義中應(yīng)避免二義性(ambiguity),即二個父類中定義重名,但各具不同性質(zhì)。例:FemaleChineseScholarICardDeckGraphicalObjectGraphicalDeckMethod:Draw:=takeacardfromadeckMethod:Draw:=displayagraphicalobjectMethod:Draw:=?例:第36頁,課件共65頁,創(chuàng)作于2023年2月面向?qū)ο蟮幕靖拍?續(xù))8、多態(tài)性(Polymorphism):不同層次的classes可共享一個method名,但按各自的方式來實(shí)現(xiàn)這種method。

C++中定義了虛函數(shù)(virtualfunction)來實(shí)現(xiàn)這一功能。即一個method有多個版本,運(yùn)行時才決定執(zhí)行哪一個。故亦稱為動態(tài)聯(lián)編(dynamicbinding)或滯后聯(lián)編(latebinding)第37頁,課件共65頁,創(chuàng)作于2023年2月面向?qū)ο蟮幕靖拍?續(xù))doubleavg(constdoublea[],intsize);{doublesum=0.0;for(inti=0;i<size;++i)sum+=a[i];return(sum/size);}doubleavg(constinta[],intsize);{intsum=0;for(inti=0;i<size;++i)sum+=a[i];return((double)sum/size);}main(){intk[3]={1,2,3};doublex[3]={1.1,2.2,3.3};cout<<avg(k,3)<<“intaverage\n”;cout<<avg(x,3)<<“doubleaverage\n”;}9、重載Overloading⑴函數(shù)重載:不同函數(shù)共用一個名字,而調(diào)用參數(shù)的特征不同。例:第38頁,課件共65頁,創(chuàng)作于2023年2月面向?qū)ο蟮幕靖拍?續(xù))⑵運(yùn)算符重載Operatoroverloading:同一運(yùn)算符(operator)作用于不同類型的操作數(shù)(operand)上面。在編譯(compile)階段就決定了使用類型及執(zhí)行代碼,故意亦稱為靜態(tài)聯(lián)編

(staticbinding)或先前聯(lián)編

(earlybinding)。第39頁,課件共65頁,創(chuàng)作于2023年2月7·5面向?qū)ο蠼C嫦驅(qū)ο蟮拈_發(fā)方法Booch方法

Booch最先描述了面向?qū)ο蟮能浖_發(fā)的基礎(chǔ)問題,指出了面向?qū)ο箝_發(fā)方法是一種完全不同于傳統(tǒng)的功能分解的設(shè)計(jì)方法。面向?qū)ο蟮能浖纸夥椒ǜ咏藢陀^事物的理解,而功能分解只能通過問題空間的轉(zhuǎn)換獲得。

Booch方法包括各種模型,涉及軟件系統(tǒng)的對象、動態(tài)及功能各方面,對類及繼承方面的描述特別值得借鑒。第40頁,課件共65頁,創(chuàng)作于2023年2月面向?qū)ο蟮拈_發(fā)方法(續(xù))Coad方法

1989年Coad與Yourdon提出的面向?qū)ο蠓椒?,?jīng)典著作(OOA、OOD).該方法比較完整而系統(tǒng)介紹了面向?qū)ο蟮姆治龊驮O(shè)計(jì)。 主要優(yōu)點(diǎn)是在對象、結(jié)構(gòu)、屬性和服務(wù)的認(rèn)定方面,提出了一套系統(tǒng)的原則。該方法完成了從需求角度出發(fā)的對象和分類結(jié)構(gòu)的認(rèn)定工作,面向?qū)ο蟮脑O(shè)計(jì)可以在此基礎(chǔ)上,從設(shè)計(jì)的角度進(jìn)一步類和類層次結(jié)構(gòu)的認(rèn)定。第41頁,課件共65頁,創(chuàng)作于2023年2月面向?qū)ο蟮拈_發(fā)方法(續(xù))OMT(ObjectModelingTechnique)方法

OMT方法是1991年由JamesRumbaugh等5人提出的,經(jīng)典著作為“面向?qū)ο蟮慕Ec設(shè)計(jì)”。 特點(diǎn)是開發(fā)工作起始于對真實(shí)世界的對象建模上,然后圍繞這這些對象使用這個模型來構(gòu)造獨(dú)立于語言的設(shè)計(jì)。建立三種模型:①描述系統(tǒng)數(shù)據(jù)結(jié)構(gòu)的對象模型(objectmodel).②描述系統(tǒng)控制結(jié)構(gòu)的動態(tài)模型(dynamicmodel).③描述系統(tǒng)功能的功能模型(functionmodel).第42頁,課件共65頁,創(chuàng)作于2023年2月7·6對象模型(ObjectModel) 對象模型是對模擬客觀世界實(shí)體的對象以及對象之間關(guān)系的映射,描述了系統(tǒng)的靜態(tài)結(jié)構(gòu)。 對象模型是三個模型中最關(guān)鍵的一個模型,它的作用是描述系統(tǒng)的靜態(tài)結(jié)構(gòu),包括構(gòu)成系統(tǒng)的類和對象,它們的屬性和操作,及它們之間的關(guān)系。 在建立對象模型時,需要定義一組圖形符號,并且規(guī)定一組組織這些符號以表示特定語義的規(guī)則。此處給出Coad與Yourdon的表示方法。第43頁,課件共65頁,創(chuàng)作于2023年2月一、表示類—&—對象的圖形符號ClassNameAttributesMethods類ClassClassNameAttributesMethods類&對象Class-&-Object表示屬于該類的對象第44頁,課件共65頁,創(chuàng)作于2023年2月 結(jié)構(gòu)表示問題域中的復(fù)雜關(guān)系,是客觀世界實(shí)體間關(guān)系的抽象。類及對象間的關(guān)系可概括為:歸納關(guān)系(一般/特殊結(jié)構(gòu)、分類結(jié)構(gòu))

針對事物類之間的組織關(guān)系組合關(guān)系(整體/部分結(jié)構(gòu)、組裝結(jié)構(gòu))

表示事物的整體與部分之間的組合關(guān)系關(guān)聯(lián)關(guān)系表示對象間相互依賴、相互作用關(guān)系二、表示結(jié)構(gòu)的圖形符號第45頁,課件共65頁,創(chuàng)作于2023年2月一般類特殊類特殊類...... 子類的公共屬性和操作歸屬于一般類并被每一個子類共享,每一個子類都繼承了一般類的特征。一般類(父類、基類、超類)特殊類(子類)繼承(1)一般/特殊結(jié)構(gòu)表示法第46頁,課件共65頁,創(chuàng)作于2023年2月

存戶一般/特殊結(jié)構(gòu)舉例一般類(父類、基類、超類)特殊類(子類)繼承一個特殊類中的所有對象可繼承一般類中的屬性、服務(wù)、關(guān)系.賬號姓名余額存款取款支票存戶儲蓄存戶利息率第47頁,課件共65頁,創(chuàng)作于2023年2月一個整體對象可有不同類型的部分對象.一個部分對象也可同時屬于多個整體對象.(2)整體/部分結(jié)構(gòu)表示法整體部分1部分2組合關(guān)系注:是object間的關(guān)系,有傳遞性。1,m0,n第48頁,課件共65頁,創(chuàng)作于2023年2月飛機(jī)發(fā)動機(jī)飛機(jī)-整體對象可能沒有發(fā)動機(jī)最多有四臺發(fā)動機(jī)用以實(shí)現(xiàn)"聚合"、"組合"、"劃分"發(fā)動機(jī)-部分對象0,4第49頁,課件共65頁,創(chuàng)作于2023年2月整體/部分結(jié)構(gòu)(分類結(jié)構(gòu))整體/部分結(jié)構(gòu)是一種特定的連接.

整體類中的一個對象(或稱聚合)是由各部分類的對象(或稱成分)構(gòu)成的.這一結(jié)構(gòu)是對象間的一種關(guān)系.第50頁,課件共65頁,創(chuàng)作于2023年2月微機(jī)1+電源主機(jī)箱鍵盤監(jiān)視器鼠標(biāo)內(nèi)存CPU硬盤0,1整體/部分結(jié)構(gòu)表示法舉例第51頁,課件共65頁,創(chuàng)作于2023年2月

關(guān)聯(lián)關(guān)系反映對象之間相互依賴、相互作用的關(guān)系。通常為1:1,1:M,M:N三種類型。三、表示關(guān)聯(lián)的圖形符號類1連接名稱mn類2教師指導(dǎo)論文0,m1學(xué)生表示法:教師為學(xué)生指導(dǎo)論文:m,n為階0至m第52頁,課件共65頁,創(chuàng)作于2023年2月類1連接名稱mn類1連接屬性1)關(guān)聯(lián)關(guān)系(鏈屬性)的表示 允許實(shí)例連接帶有一組屬性,這些屬性通過關(guān)聯(lián)來描述

第53頁,課件共65頁,創(chuàng)作于2023年2月為之工作1,m工資職務(wù)雇主雇員個人名字身份證號公司名字地址題目答辯時間成績教師學(xué)生指導(dǎo)論文0,m11)關(guān)聯(lián)關(guān)系(鏈屬性)示例第54頁,課件共65頁,創(chuàng)作于2023年2月教師1+書表示1個或多個2)階數(shù)(重?cái)?shù)):相關(guān)對象的數(shù)量第55頁,課件共65頁,創(chuàng)作于2023年2月目錄文件名文件發(fā)送者接受者類A限定詞類B目錄+文件名產(chǎn)生一個文件3)限定4)消息連接例:第56頁,課件共65頁,創(chuàng)作于2023年2月為之工作管理0,1姓名身份證號碼地址員工名字電話號碼主要產(chǎn)品地址公司職務(wù)雇用解雇項(xiàng)目名預(yù)算優(yōu)先級項(xiàng)目產(chǎn)品名成本重量產(chǎn)品工人經(jīng)理部門部門名主持參加1+1+1+1+1+生產(chǎn)四、一家公司的對象模型第57頁,課件共65頁,創(chuàng)作于2023年2月7·7動態(tài)模型(DynamicModel) 要想對一個系統(tǒng)了解得比較清楚,還應(yīng)當(dāng)考察在任何時刻對象及其關(guān)系的改變。系統(tǒng)的這些涉及時序和改變狀況用動態(tài)模型來描述。 動態(tài)模型著重于描述系統(tǒng)瞬時的、行為化的控制邏輯,其規(guī)定了對象模型中對象的合法的變化序列。 它包括兩個圖,一是狀態(tài)圖

溫馨提示

  • 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

提交評論