




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
面向?qū)ο蠓椒ǜ攀雒嫦驅(qū)ο螅∣O,ObjectOriented)技術(shù)是軟件工程領(lǐng)域中的重要技術(shù),這種軟件開(kāi)發(fā)思想比較自然地模擬了人類(lèi)認(rèn)識(shí)客觀世界的方式,成為當(dāng)前計(jì)算機(jī)軟件工程學(xué)中的主流方法“面向?qū)ο蟆?Object-Oriented)是針對(duì)“面向過(guò)程”一詞提出的,是從本質(zhì)上區(qū)別于傳統(tǒng)的結(jié)構(gòu)化方法的一種新方法,新思路應(yīng)該特別強(qiáng)調(diào)的是,面向?qū)ο蠹夹g(shù)不僅僅是一種程序設(shè)計(jì)方法,更重要的是一種對(duì)真實(shí)世界的抽象思維方式面向?qū)ο蠓椒ǜ攀觥尘皞鹘y(tǒng)開(kāi)發(fā)方法由一整套過(guò)程、方法和工具作為支撐,在一定時(shí)期內(nèi)對(duì)解決軟件危機(jī)起了很大作用,曾指導(dǎo)開(kāi)發(fā)出很多成功的系統(tǒng),但其缺點(diǎn)也日益顯現(xiàn)傳統(tǒng)軟件開(kāi)發(fā)方法不能完全消除軟件危機(jī),并且生產(chǎn)率的提高不能滿足需要從50年代到80年代,美國(guó)的軟件生產(chǎn)率翻了兩翻。但社會(huì)對(duì)軟件的需求每年以兩位數(shù)字的百分比在增長(zhǎng)。軟件的開(kāi)發(fā)已成為影響計(jì)算機(jī)應(yīng)用的瓶頸面向?qū)ο蠓椒ǜ攀觥尘?1)傳統(tǒng)開(kāi)發(fā)方法存在的問(wèn)題軟件維護(hù)系統(tǒng)是圍繞著如何實(shí)現(xiàn)一定的行為來(lái)進(jìn)行的,當(dāng)系統(tǒng)行為易變,需要常常修改時(shí),修改極為困難軟件結(jié)構(gòu)嚴(yán)重依賴(lài)于系統(tǒng)功能,基于功能分解的系統(tǒng)結(jié)構(gòu)將很難進(jìn)行修改和擴(kuò)充用戶功能需求的改變將導(dǎo)致軟件結(jié)構(gòu)的相應(yīng)改變,給軟件的開(kāi)發(fā)及維護(hù)造成很大困難數(shù)據(jù)和對(duì)數(shù)據(jù)的處理操作是分離的,對(duì)數(shù)據(jù)的修改將影響某個(gè)功能的實(shí)現(xiàn)傳統(tǒng)開(kāi)發(fā)方法的軟件維護(hù)比軟件開(kāi)發(fā)效率低幾十倍。80年代,美國(guó)一年花費(fèi)的軟件維護(hù)費(fèi)用高達(dá)300多億美元。90年代,軟件維護(hù)費(fèi)用占系統(tǒng)研制、開(kāi)發(fā)總費(fèi)用的70%。面向?qū)ο蠓椒ǜ攀觥尘?2)傳統(tǒng)開(kāi)發(fā)方法存在的問(wèn)題自頂向下功能分解的分析方法極大地限制了軟件的可重用性結(jié)構(gòu)化分析、設(shè)計(jì)技術(shù)的本質(zhì)是功能分析從代表目標(biāo)系統(tǒng)整體功能的單個(gè)處理著手,自頂向下不斷把復(fù)雜的處理分解為子處理,層層分解下去,直至僅剩下若干個(gè)容易實(shí)現(xiàn)的子處理為止傳統(tǒng)方法通過(guò)建立標(biāo)準(zhǔn)函數(shù)庫(kù)和子程序庫(kù)實(shí)現(xiàn)軟件的可重用性,然而標(biāo)準(zhǔn)函數(shù)庫(kù)等只是對(duì)建立在數(shù)學(xué)模型基礎(chǔ)上的應(yīng)用問(wèn)題有可重用的功效,而對(duì)其它實(shí)際應(yīng)用問(wèn)題則不能很好地進(jìn)行軟件重用面向?qū)ο蠓椒ǜ攀觥尘?3)傳統(tǒng)開(kāi)發(fā)方法存在的問(wèn)題以輸入-處理-輸出為核心的分析和設(shè)計(jì)方法不符合人類(lèi)的思維方式軟件不能真正了解用戶的需要,以致開(kāi)發(fā)出的軟件系統(tǒng)與用戶預(yù)期的系統(tǒng)不一致,不能滿足用戶的需要功能與數(shù)據(jù)分離的軟件設(shè)計(jì)結(jié)構(gòu)與人類(lèi)的現(xiàn)實(shí)世界環(huán)境很不一樣,和人的自然思維也就很不一致,因此對(duì)現(xiàn)實(shí)世界的認(rèn)識(shí)與編程之間存在著一道很深的理解上的鴻溝Standish94報(bào)告中指出:31%軟件項(xiàng)目沒(méi)有完全完成,53%的項(xiàng)目花費(fèi)最先預(yù)算的200%之多,并且估計(jì)美國(guó)的公司和政府機(jī)構(gòu)在1995年為了取消軟件項(xiàng)目的生產(chǎn)而花費(fèi)了810億美元面向?qū)ο蠓椒ǜ攀觥尘?4)傳統(tǒng)開(kāi)發(fā)方法存在的問(wèn)題系統(tǒng)中模塊之間控制作用的重要影響在系統(tǒng)中,實(shí)際控制發(fā)生的根源來(lái)自分散的各個(gè)模塊之中時(shí),由于在“好的模塊結(jié)構(gòu)”中的模塊間的控制作用只能通過(guò)上下之間的調(diào)用關(guān)系來(lái)進(jìn)行,造成信息傳遞路徑過(guò)長(zhǎng),效率低,易受干擾,甚至出錯(cuò)面向?qū)ο蠓椒ǜ攀觥尘?5)為了解決傳統(tǒng)開(kāi)發(fā)方法的問(wèn)題,在軟件開(kāi)發(fā)實(shí)踐中人們提出了許多針對(duì)具體開(kāi)發(fā)的方法快速原型法面向?qū)ο蠓椒ā?誕生了面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言,并基于面向?qū)ο笏枷胝Q生了面向?qū)ο筌浖_(kāi)發(fā)方法面向?qū)ο蠓椒ǜ攀觥l(fā)展歷程面向?qū)ο蟮乃枷胱畛醭霈F(xiàn)于挪威奧斯陸大學(xué)和挪威計(jì)算中心于60年代末共同研制推出的S1mula67語(yǔ)言中,該語(yǔ)言首先引入了類(lèi)的概念和繼承機(jī)制80年代,美國(guó)加利福尼亞Xerox研究中心推出的Smalltalk-76和Smalltalk-80語(yǔ)言,它具備了面向?qū)ο笳Z(yǔ)言的繼承和封裝的主要特征,比較完善地實(shí)現(xiàn)了面向?qū)ο蟮某绦蛟O(shè)計(jì),推動(dòng)了面向?qū)ο蠹夹g(shù)的飛速發(fā)展面向?qū)ο蠓椒ǜ攀觥l(fā)展歷程(1)從80年代中期到90年代,面向?qū)ο笳Z(yǔ)言十分熱門(mén),涌現(xiàn)出大批比較實(shí)用的面向?qū)ο缶幊陶Z(yǔ)言如C++、ObjectPascal等隨著面向?qū)ο缶幊陶Z(yǔ)言走向?qū)嵱?,開(kāi)始了對(duì)面向?qū)ο蠓治龊兔嫦驅(qū)ο笤O(shè)計(jì)的研究面向?qū)ο蟮姆治龊驮O(shè)計(jì)技術(shù)逐漸走向?qū)嵱?,最終形成了由分析、設(shè)計(jì)到編程、測(cè)試與維護(hù)一整套的軟件工程體系組成的面向?qū)ο筌浖_(kāi)發(fā)方法面向?qū)ο蠓椒ǚǜ攀觥l(fā)發(fā)展歷程(2)在面向?qū)ο筌涇浖_(kāi)發(fā)方法法發(fā)展中,出出現(xiàn)了很多方方法,典型的的以發(fā)明者命命名的方法有有:Booch法、Rambaugh法、Jacobson法、Coad和Yourdon法、Wirfs-Broch法等等1995年,,GradyBooch、IvarJacobson和JamesRumbaugh一起合作,,將各自的方方法組合成一一種統(tǒng)一的方方法,稱(chēng)為““統(tǒng)一建模語(yǔ)語(yǔ)言”,即(UnifiedModelingLanguage,UML)1997年提提出UML1.0版本UML現(xiàn)已在在整個(gè)行業(yè)使使用OO技術(shù)的基本原原理按照問(wèn)題域的的基本事物實(shí)實(shí)現(xiàn)自然分割割,按人們通通常的思維方方式建立問(wèn)題題域的模型,,設(shè)計(jì)盡可能能直接自然表表現(xiàn)問(wèn)題求解解的軟件系統(tǒng)統(tǒng)。OO技術(shù)引入入了對(duì)象(object)概念來(lái)表表現(xiàn)事物;用用消息(message)傳遞建立立事物間的聯(lián)聯(lián)系;用類(lèi)(class)和繼承(inheritance)作為適應(yīng)人們們一般思維方方式的描述模模型;用方法法(method)表示作用在對(duì)對(duì)象上的各種種操作。OO技術(shù)的基本原原理(1)傳統(tǒng)的程序設(shè)設(shè)計(jì)方法,針針對(duì)的是數(shù)學(xué)學(xué)模型,出發(fā)發(fā)點(diǎn)是“怎樣樣做(How)?”用計(jì)算機(jī)求解解一個(gè)實(shí)際問(wèn)問(wèn)題應(yīng)該怎樣樣做?從實(shí)際問(wèn)題到到求解模型((數(shù)學(xué)模型))的抽象都是是圍繞怎樣做做?去進(jìn)行的的面向?qū)ο螅∣O)方法的的出發(fā)點(diǎn)是““是什么(What)?”要求解的實(shí)際際問(wèn)題,到底底是什么?用對(duì)象表現(xiàn)現(xiàn)現(xiàn)實(shí)世界中的的某個(gè)具體的的事物OO技術(shù)的基本原原理(2)面向?qū)ο螅∣O)方法的的出發(fā)點(diǎn)是““(What)?”由物質(zhì)組成現(xiàn)現(xiàn)實(shí)世界物體多樣化的的表現(xiàn)形式構(gòu)構(gòu)成問(wèn)題域((Domain)人認(rèn)識(shí)事物的的規(guī)律:首先先認(rèn)識(shí)問(wèn)題域域是什么?當(dāng)物體反映到到頭腦中后,,變成意識(shí)形形成抽象的概概念,既邏輯輯世界由對(duì)象組成邏邏輯世界對(duì)象在具體的的邏輯世界中中擔(dān)當(dāng)一定的的角色,并完完成一定的功功能(動(dòng)作))對(duì)象有自己的的屬性和動(dòng)作作。對(duì)象表現(xiàn)現(xiàn)現(xiàn)實(shí)世界中中的某個(gè)具體體的事物。OO技術(shù)的基本本原理(3)基本思想客觀世界是是由對(duì)象組組成的任何復(fù)雜的的軟件都是是由簡(jiǎn)單的的對(duì)象組合合而成的面向?qū)ο蟮牡能浖到y(tǒng)統(tǒng)同樣是由由對(duì)象組成成的具有相同數(shù)數(shù)據(jù)和相同同操作的對(duì)對(duì)象可以歸歸并為一個(gè)個(gè)類(lèi)類(lèi)具有封裝裝性,其數(shù)數(shù)據(jù)和操作作等對(duì)外界界是不可見(jiàn)見(jiàn)的,外界界只能通過(guò)過(guò)消息請(qǐng)求求進(jìn)行某些些操作,提提供所需要要的服務(wù)所有對(duì)象都都可以劃分分為不同的的對(duì)象類(lèi)每個(gè)對(duì)象類(lèi)類(lèi)都有自己己特定的數(shù)數(shù)據(jù)和方法法對(duì)象是對(duì)象象類(lèi)的一個(gè)個(gè)實(shí)例OO技術(shù)的基本本原理(4)基本思想對(duì)象類(lèi)具有有層次結(jié)構(gòu)構(gòu)上層的類(lèi)稱(chēng)稱(chēng)為“父類(lèi)類(lèi)”或““基類(lèi)”,,下層的的類(lèi)稱(chēng)為““子類(lèi)”或或“派生生類(lèi)”父類(lèi)可以派生生出子類(lèi),,子類(lèi)繼承承父類(lèi)的全全部特性((數(shù)據(jù)和操操作),又又可以有自自己的新特特性子類(lèi)與父類(lèi)類(lèi)形成類(lèi)的的層次結(jié)構(gòu)構(gòu)對(duì)象之間通通過(guò)消息機(jī)機(jī)制傳遞相相互聯(lián)系OO技術(shù)的基本本原理(5)思想的精髓髓是按照對(duì)對(duì)象(事物物、概念、、實(shí)體)的的觀點(diǎn)考慮慮問(wèn)題域和和邏輯解決決方案“面向?qū)ο笙蟆奔夹g(shù)追追求的是軟軟件系統(tǒng)對(duì)對(duì)現(xiàn)實(shí)世界界的直接模模擬盡量實(shí)現(xiàn)將將現(xiàn)實(shí)世界界中的事物物直接映射射到軟件系系統(tǒng)的解空空間OO技術(shù)的基本本原理(6)軟件工程學(xué)學(xué)家Codd和Yourdon認(rèn)為面向?qū)ο蟮牡某绦蛟O(shè)計(jì)計(jì)技術(shù)是以以對(duì)象為基基礎(chǔ),以消消息驅(qū)動(dòng)對(duì)對(duì)象實(shí)現(xiàn)操操作的一種種全新的程程序設(shè)計(jì)方方法如果一個(gè)軟軟件系統(tǒng)使使用這些概概念來(lái)建立立模型并予予以實(shí)現(xiàn),,那么它采采用的就是是面向?qū)ο笙筌浖_(kāi)發(fā)發(fā)方法面向?qū)ο螅剑綄?duì)象+類(lèi)類(lèi)+繼承++通信面向?qū)ο蠓椒椒ńM成(1)與結(jié)構(gòu)化軟軟件開(kāi)發(fā)方方法類(lèi)似,,面向?qū)ο笙筌浖_(kāi)發(fā)發(fā)方法也由由三部分組組成面向?qū)ο蠓址治龇椒ǎǎ∣OA))重點(diǎn)在于發(fā)發(fā)現(xiàn)并描述述問(wèn)題域中中的對(duì)象((或概念))例如:圖書(shū)書(shū)館信息系系統(tǒng)中的書(shū)書(shū)(book)面向?qū)ο笤O(shè)設(shè)計(jì)方法((OOD))重點(diǎn)在于定定義能最終終面向?qū)ο笙蟪绦蛟O(shè)計(jì)計(jì)語(yǔ)言的實(shí)實(shí)現(xiàn)的邏輯輯軟件對(duì)象象軟件對(duì)象具具有方法和和屬性例如:對(duì)象象書(shū)(book))具有一個(gè)個(gè)題目屬性性(title)和和一個(gè)打印印方法(print)面向?qū)ο蟪坛绦蛟O(shè)計(jì)方方法(OOP)面向?qū)ο蠓椒椒ńM成(2)與結(jié)構(gòu)化軟軟件開(kāi)發(fā)方方法類(lèi)似,,面向?qū)ο笙筌浖_(kāi)發(fā)發(fā)方法也由由三部分組組成面向?qū)ο蟪坛绦蛟O(shè)計(jì)方方法(OOP)實(shí)現(xiàn)所設(shè)計(jì)計(jì)的構(gòu)件例如采用c++、Java語(yǔ)語(yǔ)言編寫(xiě)一一個(gè)book類(lèi)面向?qū)ο蠓椒椒ńM成(3)面向?qū)ο笏妓枷霃?qiáng)調(diào)的的是對(duì)象的的表示領(lǐng)域概念用面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言表示分析過(guò)程中概念的表示booktitlePublicclassbook{publicvoidprint();…..privateStringtitle;}面向?qū)ο蠓椒椒ńM成(4)面向?qū)ο蟪坛绦蛟O(shè)計(jì)方方法(OOP)———被一些人人稱(chēng)為“面面向?qū)ο笞冏兂芍浮薄钡腁lanKay,確定定了以下關(guān)關(guān)于OOP[Kay1993]的基本本特征任何事物是是一個(gè)對(duì)象象通過(guò)互相聯(lián)聯(lián)系的對(duì)象象請(qǐng)求其他他對(duì)象執(zhí)行行一定的行行為來(lái)完成成計(jì)算對(duì)象通過(guò)發(fā)發(fā)送和接收收消息進(jìn)行行通信消息是指對(duì)對(duì)特定行為為的請(qǐng)求,,并且伴隨隨著完成這這項(xiàng)任務(wù)所所需要的參參數(shù)每個(gè)對(duì)象都都有自己的的存儲(chǔ)空間間,用來(lái)儲(chǔ)儲(chǔ)存其他對(duì)對(duì)象面向?qū)ο蠓椒椒ńM成(5)面向?qū)ο蟪坛绦蛟O(shè)計(jì)方方法(OOP)———被一些人人稱(chēng)為“面面向?qū)ο笞冏兂芍浮薄钡腁lanKay,確定定了以下關(guān)關(guān)于OOP[Kay1993]的基本本特征每個(gè)對(duì)象都都是一個(gè)類(lèi)類(lèi)的實(shí)例,,類(lèi)用來(lái)代代表一組相相似的對(duì)象象例如:整數(shù)數(shù)、鏈表等等類(lèi)可以看作作是存儲(chǔ)倉(cāng)倉(cāng)庫(kù),用來(lái)來(lái)保存與一一個(gè)對(duì)象相相關(guān)的行為為同一個(gè)類(lèi)的的多個(gè)實(shí)例例對(duì)象能夠夠執(zhí)行相同同的行為類(lèi)可以組織織成一個(gè)單單根樹(shù)狀結(jié)結(jié)構(gòu),成為為繼成層次次在該結(jié)構(gòu)中中,一個(gè)類(lèi)類(lèi)實(shí)例的存存儲(chǔ)空間和和行為自動(dòng)動(dòng)地被其派派生類(lèi)使用用面向?qū)ο笈c與面向功能能的分析與與設(shè)計(jì)軟件項(xiàng)目是是復(fù)雜的分而治之是是處理復(fù)雜雜問(wèn)題的主主要策略將問(wèn)題分解解為易于管管理和控制制的單元結(jié)構(gòu)化的分分析與設(shè)計(jì)計(jì)(前,流流行)對(duì)問(wèn)題的分分解尺度主主要依據(jù)功功能和過(guò)程程處理問(wèn)題的的結(jié)果是將將一個(gè)復(fù)雜雜的過(guò)程分分解為一系系列具有層層次關(guān)系的的字過(guò)程面向?qū)ο蟮牡姆治雠c設(shè)設(shè)計(jì)(現(xiàn),,流行)以對(duì)象為尺尺度分解問(wèn)問(wèn)題空間面向?qū)ο笈c與面向功能能的分析與與設(shè)計(jì)(1)以圖書(shū)館信信息系統(tǒng)為為例圖書(shū)館信息息系統(tǒng)面向?qū)ο蟮牡姆治雠c設(shè)設(shè)計(jì)按對(duì)象或概概念分解CatalogLibrarianBookLibrary結(jié)構(gòu)化的分分析與設(shè)計(jì)計(jì)按功能或過(guò)過(guò)程分解SystemRecordLoansAddResourcesReportFines面向?qū)ο蠓椒椒▋?yōu)點(diǎn)與人類(lèi)的思思維習(xí)慣相相一致所開(kāi)發(fā)出的的系統(tǒng)部件件可重用性性好系統(tǒng)可維護(hù)護(hù)性強(qiáng)生產(chǎn)率得到到了大幅提提高人的認(rèn)識(shí)過(guò)過(guò)程是從一一般到特殊殊的漸進(jìn)思維維過(guò)程,是是從是什么么開(kāi)始,認(rèn)識(shí)識(shí)事物及其其本質(zhì)規(guī)律律,主觀隨意意性受到限限制。而傳傳統(tǒng)方法是從從”怎樣做做?“開(kāi)始始,到做什么??反認(rèn)識(shí)規(guī)規(guī)律而動(dòng),,主觀隨意性性太多。OO方法采采用封裝機(jī)機(jī)制和信息息隱藏機(jī)制,使其其內(nèi)部實(shí)現(xiàn)現(xiàn)與外界完完全隔離,具有有較強(qiáng)的獨(dú)獨(dú)立性(對(duì)對(duì)象對(duì)外界而言言,好象一一個(gè)”黑匣匣子“)。較好地解解決了“軟軟件復(fù)雜性性控制”問(wèn)題。OO方法中類(lèi)類(lèi)的繼承性性是一種代碼重用用的有效途途徑。開(kāi)發(fā)發(fā)者在設(shè)計(jì)軟件件的過(guò)程中中,將一些些精心設(shè)計(jì)、測(cè)測(cè)試過(guò)的代代碼不斷加加入到已有的類(lèi)類(lèi)庫(kù)中。而而類(lèi)庫(kù)是可可供共享的代碼碼庫(kù)。因此此用OOP開(kāi)發(fā)的軟件具有有較好的可可重用性。。局部修改,,不影響大大局,錯(cuò)誤誤不會(huì)傳播播;封裝性和信信息隱藏機(jī)機(jī)制易于閱閱讀、理解解;符合人類(lèi)習(xí)習(xí)慣的思維維方法,對(duì)對(duì)原系統(tǒng)所所做的修改,,往往通過(guò)過(guò)在原有類(lèi)類(lèi)的基礎(chǔ)上上派生一些新新類(lèi)即可實(shí)實(shí)現(xiàn),易于于貫通。派派生類(lèi)繼承原原有類(lèi)的特特性,只需需測(cè)試新增增加的特性實(shí)體和對(duì)象象實(shí)體客觀存在的的事物客觀世界中中的問(wèn)題都都是由實(shí)體體及其相互互之間的關(guān)關(guān)系構(gòu)成的的例:實(shí)體和對(duì)象象對(duì)象(Object)一般說(shuō)來(lái),,在系統(tǒng)分分析和系統(tǒng)統(tǒng)構(gòu)造中,,對(duì)象是對(duì)對(duì)客觀世界界事物的一一種抽象,,是由數(shù)據(jù)據(jù)(屬性)及在其上上的操作(行為)所所組成的封封裝體用來(lái)來(lái)描描述述客客觀觀事事物物的的一一個(gè)個(gè)實(shí)實(shí)體體,,它它是是實(shí)實(shí)體體的的抽抽象象,,是是構(gòu)構(gòu)成成系系統(tǒng)統(tǒng)的的一一個(gè)個(gè)基基本本單單位位由一一組組屬屬性性和和對(duì)對(duì)這這組組屬屬性性進(jìn)進(jìn)行行處處理理的的一一組組服服務(wù)務(wù)((也也稱(chēng)稱(chēng)操操作作))組組成成對(duì)象象可可以以是是具具體體實(shí)實(shí)體體也也可可以以是是抽抽象象實(shí)實(shí)體體具體體實(shí)實(shí)體體::學(xué)學(xué)生生、、書(shū)書(shū)等等抽象象實(shí)實(shí)體體::規(guī)規(guī)則則、、算算法法、、事事件件等等封裝裝了了對(duì)對(duì)象象的的數(shù)數(shù)據(jù)據(jù)屬屬性性和和操操作作服服務(wù)務(wù),,將將其其結(jié)結(jié)合合成成一一個(gè)個(gè)獨(dú)獨(dú)立立的的系系統(tǒng)統(tǒng)單單位位,,并并盡盡可可能能隱隱藏藏對(duì)對(duì)象象的的內(nèi)內(nèi)部部細(xì)細(xì)節(jié)節(jié)實(shí)體體和和對(duì)對(duì)象象————對(duì)對(duì)象象(1)公式式表表示示屬性性表表示示對(duì)對(duì)象象的的結(jié)結(jié)構(gòu)構(gòu)特特征征,,描描述述了了對(duì)對(duì)象象的的狀狀態(tài)態(tài)用來(lái)來(lái)描描述述對(duì)對(duì)象象靜靜態(tài)態(tài)特特征征的的一一個(gè)個(gè)數(shù)數(shù)據(jù)據(jù)項(xiàng)項(xiàng)屬性性一一般般只只能能通通過(guò)過(guò)執(zhí)執(zhí)行行對(duì)對(duì)象象的的操操作作來(lái)來(lái)改改變變操作作可可以以改改變變對(duì)對(duì)象象的的狀狀態(tài)態(tài)用來(lái)來(lái)描描述述對(duì)對(duì)象象動(dòng)動(dòng)態(tài)態(tài)特特征征((行行為為))的的一一個(gè)個(gè)處處理理序序列列,,即即處處理理屬屬性性數(shù)數(shù)據(jù)據(jù)的的算算法法通過(guò)過(guò)操操作作可可以以獲獲得得或或改改變變對(duì)對(duì)象象的的屬屬性性對(duì)象象=屬屬性性+操操作作實(shí)體體和和對(duì)對(duì)象象————對(duì)對(duì)象象(2)通過(guò)過(guò)傳傳遞遞消消息息實(shí)實(shí)現(xiàn)現(xiàn)對(duì)對(duì)象象的的操操作作每當(dāng)當(dāng)需需要要改改變變對(duì)對(duì)象象的的狀狀態(tài)態(tài)時(shí)時(shí),,只只能能由由其其它它對(duì)對(duì)象象向向該該對(duì)對(duì)象象發(fā)發(fā)出出消消息息對(duì)象象響響應(yīng)應(yīng)消消息息時(shí)時(shí),,按按照照消消息息模模式式找找出出與與之之匹匹配配的的方方法法,,并并執(zhí)執(zhí)行行該該操操作作實(shí)體和和對(duì)象象———對(duì)象象(3)三個(gè)特特征標(biāo)識(shí)用來(lái)唯唯一區(qū)區(qū)分一一個(gè)對(duì)對(duì)象狀態(tài)使用對(duì)對(duì)象的的屬性性描述述行為由對(duì)象象的操操作體體現(xiàn),,用于于改變變對(duì)象象的狀狀態(tài)行為分分為自身所所承受受的操操作以及施加于于其它它對(duì)象象的操操作兩類(lèi)實(shí)體和和對(duì)象象———對(duì)象象(4)主要特特點(diǎn)自治性性對(duì)于給給定的的輸入入,經(jīng)經(jīng)過(guò)狀狀態(tài)轉(zhuǎn)轉(zhuǎn)換,,對(duì)象象能產(chǎn)產(chǎn)生輸輸出所設(shè)操操作都都與數(shù)數(shù)據(jù)要要做的的處理理有關(guān)關(guān)封閉性性對(duì)象的的封閉閉性是是指對(duì)對(duì)象具具有信信息隱隱蔽的的能力力對(duì)象的的私有有數(shù)據(jù)據(jù)完全全被封封裝在在內(nèi)部部,對(duì)對(duì)外是是不可可見(jiàn)的的要使用用對(duì)象象的私私有數(shù)數(shù)據(jù),,只需需知道道數(shù)據(jù)據(jù)的取取值范范圍和和可以以對(duì)該該數(shù)據(jù)據(jù)施加加的操操作,,根本本無(wú)須須知道道數(shù)據(jù)據(jù)的具具體結(jié)結(jié)構(gòu)以以及實(shí)實(shí)現(xiàn)操操作的的算法法實(shí)體和和對(duì)象象———對(duì)象象(5)主要特特點(diǎn)通信性性對(duì)象能能夠接接收其其它對(duì)對(duì)象發(fā)發(fā)來(lái)的的消息息,也也能向向其它它對(duì)象象發(fā)送送消息息通信性性反映映了不不同對(duì)對(duì)象間間的聯(lián)聯(lián)系上述特特點(diǎn)分分別刻刻畫(huà)了了對(duì)象象不同同方面面的性性質(zhì)自治性性反映映了對(duì)對(duì)象獨(dú)獨(dú)立計(jì)計(jì)算的的能力力封閉性性和通通信性性說(shuō)明明對(duì)象象是一一個(gè)既既封閉閉又開(kāi)開(kāi)放的的相對(duì)對(duì)獨(dú)立立體實(shí)體和和對(duì)象象———對(duì)象象(6)其它特特點(diǎn)對(duì)象的的并行行性反反映出出不同同對(duì)象象各自自獨(dú)立立地處處理自自身的的數(shù)據(jù)據(jù),彼彼此通通過(guò)發(fā)發(fā)消息息傳遞遞信息息完成成通信信;對(duì)對(duì)象主主動(dòng)性性表現(xiàn)現(xiàn)對(duì)象象本身身是進(jìn)進(jìn)行處處理的的主體體,不不是被被動(dòng)地地等待待處理理(與與傳統(tǒng)統(tǒng)的數(shù)數(shù)據(jù)有有本質(zhì)質(zhì)不同同);;而對(duì)對(duì)象的的內(nèi)聚聚性強(qiáng)強(qiáng),對(duì)對(duì)象間間的耦耦合性性弱,,則體體現(xiàn)了了模塊塊獨(dú)立立性好好服務(wù)和和消息息面向?qū)?duì)象技技術(shù)的的封裝裝機(jī)制制使對(duì)對(duì)象是是相互互獨(dú)立立獨(dú)立立的,,并且且彼此此之間間信息息是隱隱藏的的在面向向?qū)ο笙蟮募技夹g(shù)中中,消消息是是對(duì)象象之間間相互互請(qǐng)求求或相相互協(xié)協(xié)作的的惟一一途徑徑對(duì)象間間的聯(lián)聯(lián)系只只能通通過(guò)傳傳遞消消息來(lái)來(lái)進(jìn)行行對(duì)象也也只能能在收收到消消息時(shí)時(shí)才被被激活活消息通通信機(jī)機(jī)制是是對(duì)象象之間間聯(lián)系系的唯唯一合合法途途徑,,使對(duì)對(duì)象間間的行行為能能夠相相互配配合,,從而而共同同完成成一定定的功功能,,形成成一個(gè)個(gè)統(tǒng)一一的系系統(tǒng)服務(wù)和和消息息(1)服務(wù)(method,即操操作、、方法法)的定義義為了完完成某某一任任務(wù),,一個(gè)個(gè)對(duì)象象所提提供的的并體體現(xiàn)其其責(zé)任任的操操作稱(chēng)稱(chēng)為服服務(wù)屬于同同一類(lèi)類(lèi)的所所有對(duì)對(duì)象共共享相相同的的服務(wù)務(wù)服務(wù)和和消息息(2)消息的的定義義消息就就是用用來(lái)請(qǐng)請(qǐng)求對(duì)對(duì)象執(zhí)執(zhí)行某某個(gè)處處理或或回答答某些些信息息的要要求,,是連連接對(duì)對(duì)象的的紐帶帶(對(duì)提供供服務(wù)務(wù)的對(duì)對(duì)象發(fā)發(fā)出的的服務(wù)務(wù)請(qǐng)求求)或者說(shuō)說(shuō),一一個(gè)對(duì)對(duì)象為為實(shí)現(xiàn)現(xiàn)其責(zé)責(zé)任而而與其其它對(duì)對(duì)象的的通信信稱(chēng)為為消息息消息通通常由由三個(gè)個(gè)部分分信息息組成成接收消消息的的對(duì)象象:對(duì)象標(biāo)標(biāo)識(shí)消息選選擇符符(也也稱(chēng)為為消息息名)):服務(wù)標(biāo)標(biāo)識(shí)零個(gè)或或多個(gè)個(gè)變?cè)狠斎胄判畔⒑秃蛻?yīng)答答信息息服務(wù)和和消息息(3)通常,,一個(gè)個(gè)對(duì)象象會(huì)向向另一一個(gè)對(duì)對(duì)象發(fā)出出消息息請(qǐng)求求某項(xiàng)項(xiàng)服務(wù)務(wù),接接收消息息的對(duì)對(duì)象響響應(yīng)該該消息息,激激發(fā)所要要求的的服務(wù)務(wù)操作作,并并將操操作結(jié)果果返回回給請(qǐng)請(qǐng)求服服務(wù)的的對(duì)象象發(fā)送消消息的的對(duì)象象稱(chēng)為為發(fā)送送者接收消消息的的對(duì)象象稱(chēng)為為接收收者服務(wù)和和消息息(4)消息的的性質(zhì)質(zhì)同一對(duì)對(duì)象可可接收收不同同形式式的多多個(gè)消消息產(chǎn)生不不同的的響應(yīng)應(yīng),達(dá)達(dá)到提提供不不同服服務(wù)的的目的的相同形形式的的消息息可以以送給給不同同的對(duì)對(duì)象所做出出的響響應(yīng)可可以是是截然然不同同的,,即不不同的的對(duì)象象可針針對(duì)同同一消消息提提供不不同的的服務(wù)務(wù)消息的的發(fā)送送可以以不考考慮具具體的的接收收者對(duì)象可可以響響應(yīng)消消息,,也可可以對(duì)對(duì)消息息不予予理會(huì)會(huì)對(duì)消息息的響響應(yīng)并并不是是必須須的服務(wù)和和消息息(5)消息的的類(lèi)別別公有消消息對(duì)象所所接收收的消消息是是由外外部對(duì)對(duì)象直直接發(fā)發(fā)送給給它的的消息息私有消消息對(duì)象所所接收收的消消息是是由對(duì)對(duì)象發(fā)發(fā)送給給自身身的消消息服務(wù)和和消息息(6)在面向向?qū)ο笙缶幊坛讨?,,服?wù)務(wù)的啟啟動(dòng)是是通過(guò)過(guò)將““消息息”傳傳遞給給對(duì)此此操作作負(fù)責(zé)責(zé)的對(duì)對(duì)象來(lái)來(lái)完成成的。。消息對(duì)對(duì)服務(wù)務(wù)的要要求進(jìn)進(jìn)行編編碼,,并且且伴隨隨著執(zhí)執(zhí)行要要求所所需的的附加加信息息(參參數(shù)))一起起傳遞遞。“接受受者””就是是消息息發(fā)送送的對(duì)對(duì)象如果接接受者者接受受了消消息,,那么么他同同時(shí)也也接受受了消消息所所包含含的服服務(wù)責(zé)責(zé)任接受者者響應(yīng)應(yīng)消息息,執(zhí)執(zhí)行相相應(yīng)的的方法法已實(shí)實(shí)現(xiàn)要要求服務(wù)和和消息息(7)消息傳傳遞與與過(guò)程程調(diào)用用“接受受者””就是是消息息發(fā)送送的對(duì)對(duì)象,,過(guò)程程調(diào)用用沒(méi)有有指定定的接接受者者消息的的解釋釋由接接受者者決定定解釋———選選擇響響應(yīng)消消息的的方法法雖接受受者的的不同同而不不同類(lèi)和類(lèi)類(lèi)層次次類(lèi)類(lèi)是OO技技術(shù)中中最重重要的的概念念OOP中所所有的的操作作都可可歸結(jié)結(jié)為對(duì)對(duì)類(lèi)的的操作作類(lèi)的概概念符符合人人類(lèi)對(duì)對(duì)事物物按照照一定定特點(diǎn)點(diǎn)進(jìn)行行分類(lèi)類(lèi)的思思想例如::物質(zhì)對(duì)象動(dòng)物植物花樹(shù)哺乳動(dòng)物人鴨嘴獸…….……類(lèi)和類(lèi)類(lèi)層次次———類(lèi)(1)類(lèi)是一一組具具有相相同數(shù)數(shù)據(jù)結(jié)結(jié)構(gòu)和和相同同操作作的對(duì)對(duì)象的的集合合類(lèi)的一一個(gè)實(shí)實(shí)例就就是對(duì)對(duì)象所有對(duì)對(duì)象都都是類(lèi)類(lèi)的實(shí)實(shí)例在響應(yīng)應(yīng)消息息時(shí)調(diào)調(diào)用何何種方方法由由類(lèi)的的接收收者來(lái)來(lái)決定定一個(gè)特特定類(lèi)類(lèi)的所所有對(duì)對(duì)象使使用相相同的的方法法來(lái)響響應(yīng)相相似的的消息息類(lèi)與實(shí)實(shí)例之之間的的關(guān)系系,可可以看看成是是抽象象與具具體的的關(guān)系系例如::書(shū)是是一個(gè)個(gè)對(duì)象象類(lèi)。?!禪ML和模模式應(yīng)應(yīng)用》》是““書(shū)””對(duì)象象類(lèi)的的一個(gè)個(gè)實(shí)例例類(lèi)和類(lèi)類(lèi)層次次———類(lèi)(2)類(lèi)的定定義公式表表示具有相相同屬屬性和和服務(wù)務(wù)的一一組對(duì)對(duì)象的的集合合它為屬屬于該該類(lèi)的的全部部對(duì)象象提供供了統(tǒng)統(tǒng)一的的抽象象描述述,其其內(nèi)部部包括括屬性性和服服務(wù)兩兩個(gè)主主要部部分例如::C++中對(duì)對(duì)象類(lèi)類(lèi)的定定義類(lèi)=(組)數(shù)據(jù)據(jù)屬性性+(組)數(shù)據(jù)據(jù)操作作面向?qū)?duì)象方方法概概述類(lèi)和類(lèi)類(lèi)層次次類(lèi)的定定義例如::C++中對(duì)對(duì)象類(lèi)類(lèi)的定定義CLASSperson{Private:&&私有數(shù)數(shù)據(jù)和和操作作charname[20];intage;cahraddress[80];charsex[2];voidPrintName();viodPrintAge();voidPrintAddress();voidPrintSex();Public:&&公公有有操作作voidPrint(){PrintName();PrintAge();PrintAddress();PrintSex();}};結(jié)構(gòu)特特征數(shù)數(shù)據(jù)成成員行為特特征成成員員函數(shù)數(shù)類(lèi)和類(lèi)類(lèi)層次次———類(lèi)的的表示示(3)類(lèi)名類(lèi)的名名稱(chēng)類(lèi)名一一般為為名詞詞,由由一個(gè)個(gè)單詞詞組成成,英英文首首字母母大寫(xiě)寫(xiě)屬性類(lèi)的一一個(gè)特特性,,描述述了類(lèi)類(lèi)的對(duì)對(duì)象所所具有有的一一系列列特征征值每一對(duì)象象的屬性性是一些些有著確確定值的的,用于于描述對(duì)對(duì)象狀態(tài)態(tài)信息的的數(shù)據(jù)屬性一般般只能通通過(guò)執(zhí)行行對(duì)象的的操作來(lái)來(lái)改變屬性名一一般小寫(xiě)寫(xiě)操作類(lèi)能夠提提供的服服務(wù)操作名一一般小寫(xiě)寫(xiě)類(lèi)和類(lèi)層層次———類(lèi)的表表示(4)類(lèi)和類(lèi)層層次———類(lèi)層次次類(lèi)可以組組織成一一個(gè)有層層次的繼繼承結(jié)構(gòu)構(gòu)由很多類(lèi)構(gòu)成成一個(gè)層次化化的結(jié)構(gòu)處于上層的類(lèi)類(lèi)稱(chēng)為父類(lèi)或或基類(lèi),下層層類(lèi)是上層類(lèi)類(lèi)的子類(lèi)一個(gè)子類(lèi)繼承承層次樹(shù)中更更高一層的父父類(lèi)的屬性抽象父類(lèi)是指指沒(méi)有具體實(shí)實(shí)例的類(lèi)(如如哺乳動(dòng)物)),它只是用用來(lái)生產(chǎn)子類(lèi)類(lèi)的物質(zhì)對(duì)象動(dòng)物植物花樹(shù)哺乳動(dòng)物人鴨嘴獸…….……類(lèi)和類(lèi)層次(1)類(lèi)層次示例OO方法的特特點(diǎn)抽象機(jī)制抽象是指將實(shí)實(shí)際問(wèn)題化簡(jiǎn)簡(jiǎn)為計(jì)算機(jī)能能處理和表示示的形式將實(shí)體抽象為為對(duì)象,將對(duì)對(duì)象抽象為類(lèi)類(lèi)對(duì)象具有極強(qiáng)強(qiáng)的抽象表達(dá)達(dá)能力OO方法采用用對(duì)象來(lái)表達(dá)達(dá)一切事物對(duì)象實(shí)現(xiàn)了抽抽象的數(shù)據(jù)類(lèi)類(lèi)型用戶可以根據(jù)據(jù)實(shí)際問(wèn)題的的需要,自定定義對(duì)象類(lèi),,它使OO方方法具有更強(qiáng)強(qiáng)的解決復(fù)雜雜問(wèn)題的能力力。規(guī)范化的抽象象方法OO方法的抽抽象技術(shù)更加加接近于人類(lèi)類(lèi)認(rèn)識(shí)客觀事事物的思維方方法。OO方法的特特點(diǎn)(1)封裝機(jī)制封裝是指將數(shù)數(shù)據(jù)及對(duì)數(shù)據(jù)據(jù)的操作集成成在一起,形形成一個(gè)能動(dòng)動(dòng)的實(shí)體對(duì)象象,對(duì)外隱藏細(xì)細(xì)節(jié),方便了了重用,降低低了系統(tǒng)耦合合度用戶不必知道道對(duì)象行為的的實(shí)現(xiàn)細(xì)節(jié),,只要根據(jù)對(duì)對(duì)象提供的外外部特征及接接口來(lái)訪問(wèn)對(duì)對(duì)象“封裝性”是是一種信息隱隱藏技術(shù),其其目的是將對(duì)對(duì)象的設(shè)計(jì)者者和對(duì)象的使使用者分開(kāi)OO方法的特特點(diǎn)(2)封裝機(jī)制———主要表現(xiàn)具有清楚的邊邊界對(duì)象的數(shù)據(jù)結(jié)結(jié)構(gòu)和操作限限定與其中具有統(tǒng)一的外外部接口(也也稱(chēng)消息模式式)它描述了對(duì)象象之間的相互互作用、請(qǐng)求求和響應(yīng)通過(guò)消息傳遞遞機(jī)制實(shí)現(xiàn)對(duì)對(duì)象之間的通通信協(xié)作代碼保護(hù)對(duì)象內(nèi)部的實(shí)實(shí)現(xiàn)代碼受到到封裝殼的保保護(hù),外界不不能直接修改改本對(duì)象的數(shù)數(shù)據(jù)和代碼OO方法的特特點(diǎn)(3)繼承機(jī)制提供了方便的的重用機(jī)制,,是OO與傳傳統(tǒng)系統(tǒng)之間間的關(guān)鍵區(qū)分分因素之一新類(lèi)的定義可可以是現(xiàn)存類(lèi)類(lèi)所聲明的數(shù)數(shù)據(jù)、定義與與新類(lèi)所增加加的聲明的組組合在組合過(guò)程中中,新類(lèi)復(fù)用用現(xiàn)存類(lèi)的定定義,而不要要求修改現(xiàn)存存類(lèi)類(lèi)之間的繼承承關(guān)系是現(xiàn)實(shí)實(shí)世界中遺傳傳關(guān)系的直接接模擬,它表表示類(lèi)之間的的內(nèi)在聯(lián)系以以及對(duì)屬性和和操作的共享享即子類(lèi)可以沿沿用父類(lèi)(被被繼承類(lèi))的的某些特征子類(lèi)也具有自自己獨(dú)有的屬屬性和操作OO方法的特特點(diǎn)(4)繼承機(jī)制對(duì)象和類(lèi)的繼繼承關(guān)系類(lèi)的對(duì)象實(shí)例例將繼承該類(lèi)類(lèi)的所有屬性性和操作類(lèi)的繼承關(guān)系系子類(lèi)將繼承父父類(lèi)的所有屬屬性和操作父類(lèi)中的屬性性或操作中的的任何變化都都會(huì)立即被該該父類(lèi)的所有有子類(lèi)所繼承承,因此父類(lèi)類(lèi)的變化可以以立即傳播到到系統(tǒng)的其他他部分繼承的優(yōu)點(diǎn)是軟件開(kāi)發(fā)中中復(fù)用概念的的核心便于模塊修改改簡(jiǎn)化模塊OO方法的特特點(diǎn)(5)多態(tài)是指在父類(lèi)中中定義的屬性性或服務(wù)被子子類(lèi)繼承后,,可以具有不不同的數(shù)據(jù)類(lèi)類(lèi)型或表現(xiàn)出出不同的行為為多態(tài)的本質(zhì)是是一個(gè)消息可可以與不同的的實(shí)例結(jié)合,,而且這些實(shí)實(shí)例屬于不同同類(lèi)不同層次的類(lèi)類(lèi)可以共享一一個(gè)操作,但但卻有各自不不同的實(shí)現(xiàn)當(dāng)一個(gè)對(duì)象接接收到一個(gè)請(qǐng)請(qǐng)求時(shí),它根根據(jù)其所屬的的類(lèi),動(dòng)態(tài)地地選用在該類(lèi)類(lèi)中定義的操操作多態(tài)是可以大大大減少需要要用于擴(kuò)展現(xiàn)現(xiàn)存OO系統(tǒng)統(tǒng)工作量的特特性,是OO的基本特征征之一OO方法的特特點(diǎn)(6)多態(tài)——主要要表現(xiàn)運(yùn)算符重載同一個(gè)運(yùn)算符符可作用于多多種數(shù)據(jù)類(lèi)型型上虛函數(shù)與動(dòng)態(tài)態(tài)聯(lián)接這是OO方法特有的動(dòng)動(dòng)態(tài)性質(zhì)當(dāng)將重載的函函數(shù)名標(biāo)識(shí)為為虛函數(shù)時(shí),,該函數(shù)就有有較大的靈活活性。它既可可以表示子類(lèi)類(lèi)中的同名函函數(shù),也可表表示父類(lèi)中的的同名函數(shù)。。動(dòng)態(tài)聯(lián)接方式式是靈活性的的關(guān)鍵。動(dòng)態(tài)聯(lián)接方式式允許在運(yùn)行中才按照照具體的數(shù)據(jù)類(lèi)型、參參量和確定選用哪一個(gè)個(gè)函數(shù)。OO方法的特特點(diǎn)(7)多態(tài)——主要要表現(xiàn)函數(shù)名重載相同的函數(shù)名名可作用于不不同的對(duì)象類(lèi)類(lèi)上,并產(chǎn)生生不同的行為為效果有時(shí)不同的類(lèi)類(lèi)中具有相同同名稱(chēng)的操作作,多態(tài)的特特性使每次調(diào)調(diào)用操作時(shí)都都要確定究竟竟調(diào)用哪個(gè)同同名操作例如門(mén)、窗、、盒等類(lèi)都有有名為“打開(kāi)開(kāi)”的操作,,每個(gè)類(lèi)的對(duì)對(duì)象都自己知知道如何執(zhí)行行自己的“打打開(kāi)”操作OO方法的特特點(diǎn)(8)多態(tài)——示例例說(shuō)明例如在一個(gè)應(yīng)應(yīng)用中需要畫(huà)畫(huà)圖,現(xiàn)實(shí)現(xiàn)現(xiàn)了圓、矩形形、三角形、、平行四邊形形。在傳統(tǒng)方方法中一般使使用下面的控控制邏輯caseofgraphtype:circle:DrawCircle();rectangle:DrawRectangle();triangle:DarwTriangle();parallelogram:DrawParallelogram();endcase;OO方法的特特點(diǎn)(9)多態(tài)——示例例說(shuō)明這樣的設(shè)計(jì)很很直接,但當(dāng)當(dāng)加入新的圖圖形類(lèi)型時(shí)可可能非常麻煩煩,需要對(duì)每每種新圖形都都創(chuàng)建一個(gè)新新的畫(huà)圖程序序,然后每種種控制畫(huà)圖類(lèi)類(lèi)型的控制邏邏輯都需要被被更新使用OO方法法,將圖形抽抽象為一個(gè)基基類(lèi)graph,每種圖圖形都是該基基類(lèi)的子類(lèi),,每個(gè)子類(lèi)中中定義操作draw,完完成該子類(lèi)的的畫(huà)圖操作,,一個(gè)對(duì)象可可以傳遞draw消息給給任意子類(lèi)的的任意實(shí)例對(duì)對(duì)象,畫(huà)出相相應(yīng)的圖形,,由此前面的的程序段將簡(jiǎn)簡(jiǎn)化為graphtypedraw();OO方法的特特點(diǎn)(10)多態(tài)——示例例說(shuō)明當(dāng)新的圖形類(lèi)類(lèi)型加入到系系統(tǒng)中時(shí),將將創(chuàng)建一個(gè)具具有自己的操操作draw的子類(lèi),但但是在任何希希望畫(huà)圖的對(duì)對(duì)象中不需要要進(jìn)行任何的的改變,因?yàn)闉橄raw是不變的的當(dāng)系統(tǒng)的其其他部分請(qǐng)請(qǐng)求繪制一一個(gè)幾何圖圖形時(shí),消消息中的服服務(wù)都是““draw”,但每每個(gè)子類(lèi)接接收到該消消息時(shí)卻各各自執(zhí)行不不同的繪圖圖算法OO方法的的特點(diǎn)———總結(jié)建立在對(duì)象象、消息、、類(lèi)、繼承承和方法等等概念基礎(chǔ)礎(chǔ)上的面向向?qū)ο筌浖幕咎靥卣魇菍?duì)象象的封裝性性和繼承性性。通過(guò)封裝可可以將對(duì)象象的定義與與對(duì)象的實(shí)實(shí)現(xiàn)分開(kāi)。。這樣,無(wú)無(wú)論是對(duì)象象功能的完完善擴(kuò)充,,還是對(duì)象象實(shí)現(xiàn)的修修改,影響響僅限于該該對(duì)象內(nèi)部部,保證了了面向?qū)ο笙筌浖目煽蓸?gòu)造性和和易維護(hù)性性。通過(guò)繼承可可以表達(dá)類(lèi)類(lèi)與類(lèi)之間間的聯(lián)系,,大大減少少了重復(fù)定定義,同時(shí)時(shí)也使系統(tǒng)統(tǒng)的結(jié)構(gòu)更更加清晰、、易于理解解和維護(hù)多態(tài)機(jī)制為為軟件的結(jié)結(jié)構(gòu)設(shè)計(jì)提提供了靈活活性,減少少了信息冗冗余,明顯顯提高了軟軟件的可復(fù)復(fù)用性和可可擴(kuò)充性面向?qū)ο蠓址治觯∣OA)OOA主要要考慮與一一個(gè)特定應(yīng)應(yīng)用有關(guān)的的對(duì)象及對(duì)對(duì)象與對(duì)象象之間在結(jié)結(jié)構(gòu)與相互互作用上的的關(guān)系OOA的關(guān)鍵是識(shí)識(shí)別出問(wèn)題題域內(nèi)的對(duì)對(duì)象,并分分析它們相相互之間的的關(guān)系,最最終建立起起問(wèn)題域的的精確、可可理解的正正確模型OOA階段主要是是明確問(wèn)題題中存在哪哪些數(shù)據(jù)實(shí)實(shí)體,它們們的意義是是什么,而而不考慮對(duì)對(duì)它們的處處理OOA最終終目的是產(chǎn)產(chǎn)生一個(gè)符符合用戶需需求,并能能夠直接反反映問(wèn)題域域的OOA模型及其其軟件需求求規(guī)格說(shuō)明明面向?qū)ο蠓址治鯫OA基本本任務(wù)運(yùn)用OO方方法,對(duì)問(wèn)問(wèn)題域進(jìn)行行分析和理理解形式地說(shuō)明明所面對(duì)的的應(yīng)用問(wèn)題題,最終成成為軟件系系統(tǒng)基本構(gòu)構(gòu)成的對(duì)象象,還有系系統(tǒng)所必須須遵從的,,由應(yīng)用環(huán)環(huán)境所決定定的規(guī)則和和約束明確地規(guī)定定構(gòu)成系統(tǒng)統(tǒng)的對(duì)象如如何協(xié)同合合作,完成成指定的功功能找出描述問(wèn)問(wèn)題域所需需的對(duì)象及及類(lèi)定義這些對(duì)對(duì)象和類(lèi)的的屬性與服服務(wù)定義對(duì)象和和類(lèi)之間所所形成的結(jié)結(jié)構(gòu)、靜態(tài)態(tài)聯(lián)系和動(dòng)動(dòng)態(tài)聯(lián)系面向?qū)ο蠓址治觥⒎治瞿DP兔枋鱿迪到y(tǒng)的功能能以面向?qū)ο笙笏枷霝榛A(chǔ),通過(guò)過(guò)構(gòu)造一組組相關(guān)模型型獲得關(guān)于于問(wèn)題的全全面認(rèn)識(shí)((即問(wèn)題領(lǐng)領(lǐng)域模型))對(duì)象模型(objectmodel)代表了系系統(tǒng)的靜態(tài)態(tài)的、結(jié)構(gòu)構(gòu)方面的特特性動(dòng)態(tài)模型(dynamicmodel)代表了系系統(tǒng)對(duì)象之之間的時(shí)間間的、行為為的、控制制方面的特特性功能模型(functionalmodel)主要描述述值與值之之間的函數(shù)數(shù)關(guān)系面向?qū)ο蠓址治觥⒎治瞿DP兔枋鱿迪到y(tǒng)的功能能(1)上述三個(gè)模模型從不同同角度對(duì)系系統(tǒng)進(jìn)行描描述,分別別描述系統(tǒng)統(tǒng)的一個(gè)重重要方面,,組合起來(lái)來(lái)構(gòu)成對(duì)系系統(tǒng)的完整整描述對(duì)象模型指指出事件要要發(fā)生在什什么方面動(dòng)態(tài)模型指指出什么時(shí)時(shí)候發(fā)生功能模型則則指出要發(fā)發(fā)生什么面向?qū)ο蠓址治觥⒎治瞿DP兔枋鱿迪到y(tǒng)的功能能(2)對(duì)象模型對(duì)象模型描描述了系統(tǒng)統(tǒng)中對(duì)象的的結(jié)構(gòu)對(duì)象的標(biāo)識(shí)識(shí)、對(duì)象與與其它對(duì)象象之間的關(guān)關(guān)系、屬性性以及操作作對(duì)象模型為為動(dòng)態(tài)模型型和功能模模型提供了了重要的框框架只有當(dāng)事物物變化時(shí),,動(dòng)態(tài)模型型和功能模模型才有存存在的意義義對(duì)象模型用用包含對(duì)象象及對(duì)象的的關(guān)系圖表表示面向?qū)ο蠓址治觥⒎治瞿DP兔枋鱿迪到y(tǒng)的功能能(3)對(duì)象模型的的5個(gè)層次次第一個(gè)層次次主要是識(shí)識(shí)別類(lèi)和對(duì)對(duì)象,是整整個(gè)分析模模型的基礎(chǔ)礎(chǔ)第二層和第第三層是屬屬性層和服服務(wù)層,用用以說(shuō)明前前面已識(shí)別別的類(lèi)和對(duì)對(duì)象面向?qū)ο蠓址治觥⒎治瞿DP兔枋鱿迪到y(tǒng)的功能能(4)對(duì)象模型的的5個(gè)層次次第四層是結(jié)結(jié)構(gòu)層OOA允許兩種類(lèi)類(lèi)型的基本本結(jié)構(gòu):1)整體與與部分結(jié)構(gòu)構(gòu)(組裝結(jié)結(jié)構(gòu)),表表示聚合,,即由屬于于不同類(lèi)的的成員聚合合而成新的的類(lèi);2))泛化與特特化結(jié)構(gòu)((分類(lèi)結(jié)構(gòu)構(gòu)),特化化類(lèi)是泛化化類(lèi)的子類(lèi)類(lèi),泛化類(lèi)類(lèi)是特化類(lèi)類(lèi)的父類(lèi)。。分類(lèi)結(jié)構(gòu)構(gòu)具有繼承承性。第五層是主主題層,是是一些類(lèi)和和對(duì)象的特特定組合表表示,用來(lái)來(lái)幫助和指指導(dǎo)模型的的讀者面向?qū)ο蠓址治觥⒎治瞿DP兔枋鱿迪到y(tǒng)的功能能(5)動(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ì)象所擁?yè)碛械膶傩孕灾岛瓦B接接關(guān)系動(dòng)態(tài)模型由由多個(gè)狀態(tài)態(tài)圖組成每個(gè)用來(lái)描描述一個(gè)類(lèi)類(lèi)的重要?jiǎng)觿?dòng)態(tài)行為,,并表明整整個(gè)系統(tǒng)的的活動(dòng)方式式,不同類(lèi)類(lèi)的狀態(tài)圖圖通過(guò)共享享的事件組組成一個(gè)動(dòng)動(dòng)態(tài)模型面向?qū)ο蠓址治觥⒎治瞿DP兔枋鱿迪到y(tǒng)的功能能(6)功能模型功能模型表表示怎樣從從輸入值得得到輸出值值包括函數(shù)、、映射、約約束和功能能性依賴(lài)功能是由動(dòng)動(dòng)態(tài)模型的的動(dòng)作引起起,并在對(duì)對(duì)象模型里里表示對(duì)對(duì)對(duì)象的操作作面向?qū)ο蠓址治觥狾OA的步驟建立對(duì)象模模型確定類(lèi)和對(duì)對(duì)象首先確定問(wèn)問(wèn)題空間中中包含哪些些對(duì)象,有有哪些操作作,這些對(duì)對(duì)象之間有有什么關(guān)系系,它們與與操作又有有什么關(guān)系系對(duì)象應(yīng)該是是實(shí)際問(wèn)題題域中有意意義的個(gè)體體或概念實(shí)實(shí)體具有目標(biāo)軟軟件系統(tǒng)所所關(guān)心的屬屬性,還應(yīng)應(yīng)該以某種種方式與系系統(tǒng)發(fā)生關(guān)關(guān)聯(lián)即對(duì)象必須須與系統(tǒng)中中其他有意意義的對(duì)象象進(jìn)行消息息傳遞,并并提供外部部服務(wù)面向?qū)ο蠓址治觥狾OA的步驟(1)確定類(lèi)和對(duì)對(duì)象如何確定類(lèi)類(lèi)和對(duì)象找出候選的的類(lèi)和對(duì)象象選擇出正確確的類(lèi)和對(duì)對(duì)象去掉籠統(tǒng)的的類(lèi)確定對(duì)象的的屬性定義操作面向?qū)ο蠓址治觥狾OA的步驟(3)確定結(jié)構(gòu)兩個(gè)或多個(gè)個(gè)對(duì)象之間間的相互依依賴(lài)、相互互作用的關(guān)關(guān)系就是關(guān)關(guān)聯(lián),由關(guān)關(guān)聯(lián)可構(gòu)成成OOA的的兩種基本本結(jié)構(gòu)分類(lèi)結(jié)構(gòu)代表了確定定的類(lèi)中的的繼承等級(jí)級(jí)組裝結(jié)構(gòu)由屬于不同同類(lèi)的成員員聚合而成成新的類(lèi)面向?qū)ο蠓址治觥狾OA的步驟(4)定義主題確定主題通通過(guò)將類(lèi)和和對(duì)象劃分分成更大的的單元來(lái)完完成主題是類(lèi)和和對(duì)象的組組合每個(gè)主題的的規(guī)模按有有助于讀者者通過(guò)模型型理解系統(tǒng)統(tǒng)來(lái)選擇確定主題方方法按問(wèn)題域確確定主題按不同主題題內(nèi)的對(duì)象象相互依賴(lài)賴(lài)和交互最最小的原則則來(lái)確定主主題面向?qū)ο蠓址治觥狾OA的步驟(5)定義屬性對(duì)每個(gè)對(duì)象象,確定劃劃給該對(duì)象象所需的屬屬性關(guān)鍵是識(shí)別別與當(dāng)前所所處理的問(wèn)問(wèn)題相關(guān)的的屬性被確定的屬屬性放到繼繼承等級(jí)的的正確層次次注意應(yīng)避免免冗余的或或不正確的的屬性屬性的確定定既與問(wèn)題題域有關(guān),,也和目標(biāo)標(biāo)系統(tǒng)的任任務(wù)有關(guān)。。應(yīng)該只考考慮與具體體應(yīng)用直接接相關(guān)的屬屬性,不考考慮那些超超出所要解解決問(wèn)題范范圍的屬性性面向?qū)ο蠓址治觥狾OA的步驟(6)定義義服服務(wù)務(wù)對(duì)象象怎怎樣樣進(jìn)進(jìn)行行消消息息通通信信是是用用消消息息的的聯(lián)聯(lián)系系來(lái)來(lái)確確定定的的用來(lái)來(lái)指指定定某某一一個(gè)個(gè)操操作作綜上上所所述述分析析不不可可能能?chē)?yán)嚴(yán)格格地地按按照照預(yù)預(yù)定定順順序序進(jìn)進(jìn)行行,,大大型型、、復(fù)復(fù)雜雜系系統(tǒng)統(tǒng)的的模模型型需需要要反反復(fù)復(fù)構(gòu)構(gòu)造造多多遍遍才才能能建建成成建立立模模型型的的過(guò)過(guò)程程往往往往是是反反復(fù)復(fù)修修改改的的過(guò)過(guò)程程,,只只要要發(fā)發(fā)現(xiàn)現(xiàn)模模型型有有缺缺陷陷,,就就必必須須返返回回到到前前期期階階段段進(jìn)進(jìn)行行修修改改面向向?qū)?duì)象象分分析析————建建模模工工具具用例(UseCase)將客戶需求收收集起來(lái)之后后,分析員可可以創(chuàng)建一組組標(biāo)識(shí)一串待待構(gòu)造系統(tǒng)的的使用場(chǎng)景,,這些場(chǎng)景就就被稱(chēng)為“用用例”(use-case)CRC面向?qū)ο蠓治鑫觥美ǎ║seCase))UseCase是OOA/OOD中的橋梁典型場(chǎng)景(scenarios)Scenario從最簡(jiǎn)簡(jiǎn)單到復(fù)雜進(jìn)進(jìn)行問(wèn)題分析析;用UseCase把復(fù)雜的情情景圖歸納到到簡(jiǎn)單。采用最容易理理解的表達(dá)方方式,為技術(shù)術(shù)人員和業(yè)務(wù)務(wù)人員之間、、技術(shù)人員和和技術(shù)人員之之間建立橋梁梁在OOA/OOD的發(fā)發(fā)展過(guò)程中,,UseCase具有有突破性用例是Jacobson在面象對(duì)象象的軟件工程程中提出的,,但它實(shí)際上上是獨(dú)立于面面象對(duì)象的用例是獲取業(yè)業(yè)務(wù)過(guò)程和系系統(tǒng)需求的有有效方式。而而且技術(shù)本身身是非常簡(jiǎn)單單易學(xué)的面向?qū)ο蠓治鑫觥美?1)UseCase的作用用使用典型場(chǎng)景景(scenarios)來(lái)理解業(yè)業(yè)務(wù)和系統(tǒng),,使用UseCases將這些場(chǎng)場(chǎng)景獲取正式式化、形式化化封裝系統(tǒng)不涉及系統(tǒng)內(nèi)內(nèi)部,讓注意意力集中到對(duì)對(duì)需求或服務(wù)務(wù)的充分理解解上??梢苑浅H菀滓椎貫g覽、準(zhǔn)準(zhǔn)確地定義和和了解需求基于UseCase的的重用面向?qū)ο蠓治鑫觥美?2)UseCase的重要要性是表達(dá)需求的的主要手段是界面設(shè)計(jì)的的輔助手段來(lái)發(fā)現(xiàn)和建立立類(lèi)的依據(jù)。。是測(cè)試實(shí)例生生成的基礎(chǔ)是團(tuán)隊(duì)開(kāi)發(fā)管管理和任務(wù)分分配的主要依依據(jù)面向?qū)ο蠓治鑫觥美?3)UseCase定義UseCase是指一個(gè)用戶戶或其它系統(tǒng)統(tǒng)與要設(shè)計(jì)的的系統(tǒng)進(jìn)行的的一個(gè)交互,,這個(gè)交互是是了達(dá)到某個(gè)個(gè)目標(biāo)用Actor描述有該目目標(biāo)的人或系系統(tǒng),強(qiáng)調(diào)了了任何人或系系統(tǒng)擁有目標(biāo)標(biāo)的事實(shí)目標(biāo)本身是一一個(gè)動(dòng)詞短語(yǔ)語(yǔ),如“下訂單”UseCase是指系系統(tǒng)(BusinesssystemorInformationsystem))為角色提供供的服務(wù)面向?qū)ο蠓治鑫觥美?4)定義UseCase的的準(zhǔn)則容易被需求方方和瀏覽者所所理解不涉及業(yè)務(wù)體體系的組織細(xì)細(xì)節(jié)不應(yīng)包含系統(tǒng)統(tǒng)的任何實(shí)現(xiàn)現(xiàn)細(xì)節(jié)不需要處理的的分支交給文文檔來(lái)處理,,確實(shí)需要處處理的分支定定義擴(kuò)展UseCase包含的步驟不不要太多(15個(gè))不要細(xì)化到功功能層面面向?qū)ο蠓治鑫觥美?5)UseCase描述述文檔備注:最直接接的說(shuō)明簡(jiǎn)單文檔:用用簡(jiǎn)單的一句句話描述清楚楚即可結(jié)構(gòu)化文檔::比較清楚的的文檔結(jié)構(gòu)附加文檔:對(duì)對(duì)特殊用例的的說(shuō)明交互圖:順序序圖和協(xié)作圖圖ATM操作過(guò)過(guò)程順序圖面向?qū)ο蠓治鑫觥美ńS美峁┝讼迪到y(tǒng)將被如何何使用的描述述用例從終端用用戶的觀點(diǎn)對(duì)對(duì)系統(tǒng)進(jìn)行建建模面向?qū)ο蠓治鑫觥美ń?1)用例在需求誘誘導(dǎo)時(shí)創(chuàng)建,,應(yīng)達(dá)到以下下目標(biāo)通過(guò)定義由終終端用戶和軟軟件工程小組組共同認(rèn)可的的使用場(chǎng)景,,定義系統(tǒng)的的功能和運(yùn)行行需求提供清楚而無(wú)無(wú)二義性的終終端用戶和系系統(tǒng)如何相互互交互的描述述提供確認(rèn)測(cè)試試的基礎(chǔ)在OOA中,,用例是分析析模型的基礎(chǔ)礎(chǔ)在UML中,,用例使用圖圖形表示,稱(chēng)稱(chēng)為“用例圖圖”。用例圖圖也可以從不不同的抽象層層次表示面向?qū)ο蠓治鑫觥美ń?2)用例描述一系列行行為,是參與與者為完成指指定任務(wù)而執(zhí)執(zhí)行的典型動(dòng)動(dòng)作序列,表表明系統(tǒng)對(duì)外外所提供的服服務(wù)在用例圖中使使用橫放的橢橢圓表示用例一般使用用動(dòng)詞短語(yǔ)來(lái)來(lái)表示,用例例名稱(chēng)通常由由2~3個(gè)單單詞組成:第第1個(gè)是動(dòng)詞詞;第2個(gè)是是名詞;第3個(gè)一般為形形容詞。用例例應(yīng)從參與者者角度而非系系統(tǒng)角度來(lái)命命名,如“購(gòu)購(gòu)買(mǎi)物品”而而不是“出售售物品”面向?qū)ο蠓治鑫觥美ń?3)參與者(actor)又稱(chēng)為執(zhí)行者者,是在與系系統(tǒng)的一次或或多次交互中中扮演角色的的人、組織或或外部系統(tǒng)。。在用例圖中使使用火柴棒裝裝人形表示,,人形下寫(xiě)明明參與者名稱(chēng)稱(chēng)面向?qū)ο蠓治鑫觥美ń?4)關(guān)聯(lián)參與者和用例例之間的聯(lián)系系,在用例圖圖中使用實(shí)線線表示。直線線一端可以有有箭頭,箭頭頭常表示這個(gè)個(gè)關(guān)聯(lián)初始調(diào)調(diào)用的方向只要參與者與與用戶之間存存在交互,就就存在關(guān)聯(lián)面向?qū)ο蠓治鑫觥美ń?5)系統(tǒng)邊框可選項(xiàng),圍繞繞用例繪制的的一個(gè)方框,,表示系統(tǒng)的的范圍,框內(nèi)內(nèi)表示系統(tǒng)提提供的功能,,框外的不是是。面向?qū)ο蠓治鑫觥美?6)用例建模要點(diǎn)點(diǎn)用例是可以不不斷改變的,,不是一成不不變的用例之間沒(méi)有有按照時(shí)間排排序一個(gè)參與者可可能涉及多個(gè)個(gè)用例用例不是功能能,而是一項(xiàng)項(xiàng)有價(jià)值的服服務(wù)關(guān)聯(lián)線上最好好無(wú)箭頭,箭箭頭會(huì)使人困困惑,無(wú)價(jià)值值圖不要太大每個(gè)參與者至至少涉及一個(gè)個(gè)用例,一個(gè)個(gè)用例至少設(shè)設(shè)計(jì)一個(gè)參與與者關(guān)聯(lián)只存在于于參與者和用用例之間面向?qū)ο蠓治鑫觥美ń?7)用例圖示例面向?qū)ο蠓治鑫觥美D?8)識(shí)別用例之間間的關(guān)系泛化(Generalization)包含(Include))擴(kuò)展(Extend)識(shí)別參與者之之間的關(guān)系泛化面向?qū)ο蠓治鑫觥美D?9)識(shí)別用例泛化化關(guān)系泛化代表從一一般到特殊的的關(guān)系。被泛泛化的用例稱(chēng)稱(chēng)為父用例,,泛化出來(lái)的的用例稱(chēng)為子子用例。子用例繼承父父用例的所有有行為,并有有自己的新的的行為或覆蓋蓋父用例的行行為面向?qū)ο蠓治鑫觥美D?10)識(shí)別用例包含含關(guān)系盡管每個(gè)用例例是獨(dú)立的,,但也可以分分解成更加簡(jiǎn)簡(jiǎn)單的用例,,這種用例之之間的關(guān)系稱(chēng)稱(chēng)為包含。即即包含用例完完成基本用例例的一部分行行為。如果若干用例例的某些行為為都是相同的的,則可以將將這些相同的的行為提取出出來(lái)單獨(dú)組成成一個(gè)用例,,在其他用例例中包含該用用例,便包含含了該用例的的所有行為。。面向?qū)ο蠓治鑫觥美ń?11)識(shí)別用例包含含關(guān)系沒(méi)有了包含用用例,基本用用例的行為不不完整面向?qū)ο蠓治鑫觥美?12)識(shí)別用例擴(kuò)展展關(guān)系在一個(gè)用例中中加入一些新新的動(dòng)作,則則構(gòu)成了另一一個(gè)用例,這這種用例之間間的關(guān)系稱(chēng)為為擴(kuò)展。擴(kuò)展展可以對(duì)已經(jīng)經(jīng)存在的用例例增加新的功功能,即通過(guò)過(guò)擴(kuò)展用例增增加基本用例例的行為擴(kuò)展用例可以以根據(jù)需要有有選擇地繼承承原有用例的的部分行為面向?qū)ο蠓治鑫觥美ń?13)識(shí)別用例擴(kuò)展展關(guān)系沒(méi)有擴(kuò)展用例例,基本用例例的行為依然然完整面向?qū)ο蠓治鑫觥美?14)識(shí)別參與者泛泛化關(guān)系被泛化的參與與者稱(chēng)為父參參與者,泛化化出來(lái)的參與與者稱(chēng)為子參參與者。子參與者繼承承父參與者的的所有屬性及與用例的關(guān)關(guān)聯(lián)關(guān)系,并并有自己的新的屬性已經(jīng)經(jīng)新的與用例例的關(guān)聯(lián)關(guān)系系面向?qū)ο蠓治鑫觥美ń?15)用例文檔:一一般使用表格格描述用例編號(hào)給每個(gè)用例的一個(gè)編號(hào)用例名稱(chēng)用例名用例描述對(duì)該該用例的簡(jiǎn)要功能介紹,包括任務(wù)和結(jié)果參與者該用例所涉及的所有參與者前置條件該用例執(zhí)行所必須滿足的條件后置條件該用例執(zhí)行后所改變的狀態(tài)基本事件流描述用例的正常啟動(dòng)、處理、結(jié)束過(guò)程擴(kuò)展事件流描述用例的非正常流程補(bǔ)充說(shuō)明描述用例的其它說(shuō)明面向?qū)ο蠓治鑫觥狢RC建模Class-Responsibility-Collaborator,類(lèi)-責(zé)責(zé)任-協(xié)作者者識(shí)別候選類(lèi)并并指明它們的的責(zé)任和協(xié)作作實(shí)際上是一組組表示類(lèi)的標(biāo)標(biāo)準(zhǔn)的索引卡卡片集合卡片的頂部::類(lèi)的名字、、類(lèi)型卡片的左邊::列出類(lèi)的責(zé)責(zé)任,包括類(lèi)類(lèi)所包含屬性性及操作卡片的右邊::列出協(xié)作者者,即其它相相關(guān)的類(lèi)面向?qū)ο蠓治鑫觥狢RC建模(1)CRC卡片面向?qū)ο蠓治鑫觥狢RC建模(2)CRC卡片示示例面向?qū)ο蠓治鑫觥狢RC建模(3)識(shí)別候選類(lèi)任何外部實(shí)體體、事務(wù)、發(fā)發(fā)生的事情或或事件、角色色、位置等都都可以成為候候選類(lèi)候選類(lèi)的類(lèi)型型邊界類(lèi):表示示系統(tǒng)存儲(chǔ)和和管理的永久久信息實(shí)體類(lèi):系統(tǒng)統(tǒng)與角色的接接口,在每一一個(gè)用例中,,一個(gè)角色對(duì)對(duì)應(yīng)一個(gè)邊界界類(lèi)。邊界類(lèi)類(lèi)收集來(lái)自角角色的信息,,并將其轉(zhuǎn)換換成實(shí)體類(lèi)和和控制類(lèi)可以以使用的中間間接口控制類(lèi)類(lèi):負(fù)負(fù)責(zé)協(xié)協(xié)調(diào)邊邊界類(lèi)類(lèi)和實(shí)實(shí)體類(lèi)類(lèi),通通常在在現(xiàn)實(shí)實(shí)世界界中沒(méi)沒(méi)有對(duì)對(duì)應(yīng)的的事物物,它它負(fù)責(zé)責(zé)接收收邊界界類(lèi)的的信息息,并并將其其分發(fā)發(fā)給實(shí)實(shí)體類(lèi)類(lèi)面向?qū)?duì)象分分析———OOA目標(biāo)標(biāo)實(shí)現(xiàn)現(xiàn)關(guān)鍵USECASE都都已獲獲得適適當(dāng)?shù)牡慕馕鑫龊兔杳枋鲆呀?jīng)提提取了了大部部分關(guān)關(guān)鍵對(duì)對(duì)象和和類(lèi)為OOD做做好了了充分分的準(zhǔn)準(zhǔn)備在OOA階階段,,重點(diǎn)點(diǎn)在于于分析析ACTOR與與系統(tǒng)統(tǒng)的交交互,,并把把業(yè)務(wù)務(wù)邏輯輯充分分體現(xiàn)現(xiàn)出來(lái)來(lái)在OOD階階段,,在OOA模型型的基基礎(chǔ)上上進(jìn)行行層次次的分分離和和責(zé)任任的再再分配配,這這時(shí)候候的重重點(diǎn)是是業(yè)務(wù)務(wù)邏輯輯的封封裝OOA的注注釋和和說(shuō)明明是OOD和OOP的重重要提提示面向?qū)?duì)象設(shè)設(shè)計(jì)((OOD))OOD是用OO觀點(diǎn)建建立求求解域域模型型的過(guò)過(guò)程O(píng)OA到OOD實(shí)際上上是一一個(gè)逐逐漸擴(kuò)擴(kuò)充模模型的的過(guò)程程面向?qū)?duì)象分分析主主要模模擬問(wèn)問(wèn)題空空間和和系統(tǒng)統(tǒng)任務(wù)務(wù)而面向向?qū)ο笙笤O(shè)計(jì)計(jì)則是是對(duì)其其進(jìn)行行擴(kuò)充充,主主要是是增加加各種種組成成部分分OOA識(shí)別和和定義義的類(lèi)類(lèi)/對(duì)象,,是一一些直直接反反映問(wèn)問(wèn)題空空間和和系統(tǒng)統(tǒng)任務(wù)務(wù)的而OOD識(shí)別和和定義義的類(lèi)類(lèi)/對(duì)象則則是附附加的的,反反映需需求的的一種種實(shí)現(xiàn)現(xiàn)面向?qū)?duì)象設(shè)設(shè)計(jì)———OOD的目標(biāo)標(biāo)提高生生產(chǎn)率率OOD是一一種系系統(tǒng)設(shè)設(shè)計(jì)活活動(dòng)OOD使用用重用用類(lèi)機(jī)機(jī)制來(lái)來(lái)改進(jìn)進(jìn)效率率,類(lèi)類(lèi)庫(kù)是是這種種結(jié)構(gòu)構(gòu)的主主要組組成部部分提高質(zhì)質(zhì)量OOA和OOD過(guò)程程能夠夠減少少開(kāi)發(fā)發(fā)后期期發(fā)現(xiàn)現(xiàn)的錯(cuò)錯(cuò)誤,,大大大提高高系統(tǒng)統(tǒng)的質(zhì)質(zhì)量提高可可維護(hù)護(hù)性O(shè)O方方法開(kāi)開(kāi)發(fā)的的系統(tǒng)統(tǒng)中,,穩(wěn)定定的是是類(lèi),,可變變的是是服務(wù)務(wù),服服務(wù)的的復(fù)雜雜程度度、外外部接接口是是最可可能變變化的的部分分,把把系統(tǒng)統(tǒng)中穩(wěn)穩(wěn)定的的部分分和易易變的的部分分分離離開(kāi)來(lái)來(lái)面向?qū)?duì)象設(shè)設(shè)計(jì)———面向?qū)?duì)象設(shè)設(shè)計(jì)的的準(zhǔn)則則模塊化化對(duì)象就就是模模塊抽象支持過(guò)過(guò)程抽抽象、、數(shù)據(jù)據(jù)抽象象、規(guī)規(guī)格說(shuō)說(shuō)明抽抽象和和參數(shù)數(shù)化抽抽象信息隱隱藏通過(guò)封封裝性性實(shí)現(xiàn)現(xiàn)面向?qū)?duì)象設(shè)設(shè)計(jì)———面向?qū)?duì)象設(shè)設(shè)計(jì)的的準(zhǔn)則則弱耦合合對(duì)象間間有兩兩類(lèi)耦耦合““交互互耦合合”((消息息傳遞遞)和和“繼繼承偶偶合””(父父、子子類(lèi)間間的聯(lián)聯(lián)系))強(qiáng)內(nèi)聚聚服務(wù)內(nèi)內(nèi)聚((一個(gè)個(gè)服務(wù)務(wù)完成成一個(gè)個(gè)功能能)類(lèi)內(nèi)聚聚(一一個(gè)類(lèi)類(lèi)應(yīng)只只有一一個(gè)用用途))一般-特殊殊內(nèi)聚可重用盡量使用已有類(lèi);設(shè)計(jì)新類(lèi)時(shí)要考慮可重用面向?qū)?duì)象設(shè)設(shè)計(jì)———設(shè)設(shè)計(jì)過(guò)過(guò)程在設(shè)計(jì)計(jì)階段段中繼繼續(xù)采采用分分析階階段中中提到到的五五個(gè)層層次,,有助助于從從分析析到設(shè)設(shè)計(jì)的的過(guò)渡渡這五個(gè)個(gè)層次次是用用于建建立系系統(tǒng)的的四個(gè)個(gè)組成成成分分上問(wèn)題論論域用戶界界面任務(wù)管管理數(shù)據(jù)管管理人機(jī)交互問(wèn)題域任務(wù)管理數(shù)據(jù)管理主題層類(lèi)對(duì)象層結(jié)構(gòu)層屬性層服務(wù)層面向?qū)?duì)象設(shè)設(shè)計(jì)———設(shè)計(jì)過(guò)過(guò)程(1)問(wèn)題域域(PDC)的設(shè)設(shè)計(jì)OOA階段得得到的的有關(guān)關(guān)應(yīng)用用的概概念模模型描描述了了所要要解決決的問(wèn)問(wèn)題為問(wèn)題題域的的設(shè)計(jì)計(jì)奠定定了基基礎(chǔ)建立了了求解解域的的總體體框架架面向?qū)?duì)象設(shè)設(shè)計(jì)———設(shè)計(jì)過(guò)過(guò)程(2)問(wèn)題域域(PDC)的設(shè)設(shè)計(jì)OOD階段,,主要要對(duì)OOA產(chǎn)生模模型中中的某某些類(lèi)類(lèi)與對(duì)對(duì)象、、結(jié)構(gòu)構(gòu)、屬屬性、、操作作進(jìn)行行組合合與分分解,,或者者增加加必要要的類(lèi)類(lèi)、屬屬性和和聯(lián)系系復(fù)用設(shè)設(shè)計(jì)根據(jù)問(wèn)問(wèn)題解解決的的需要要,把把從現(xiàn)現(xiàn)有的的類(lèi)庫(kù)庫(kù)或其其它來(lái)來(lái)源得得到的的現(xiàn)存存類(lèi)增增加到到問(wèn)題題解決決方案案中去去把問(wèn)題題論域域的專(zhuān)專(zhuān)用類(lèi)類(lèi)關(guān)聯(lián)聯(lián)起來(lái)來(lái)調(diào)整需需求、、重用用設(shè)計(jì)計(jì)(類(lèi)類(lèi))、、組合合問(wèn)題題域相相關(guān)的的類(lèi)、、為建立立公共共操作作集合合建立立一般般類(lèi)增添一一般化化類(lèi)來(lái)來(lái)建立立類(lèi)間間協(xié)議議改進(jìn)進(jìn)性能能與加加入較較低層層的構(gòu)構(gòu)件調(diào)整繼繼承層次面向?qū)ο笤O(shè)設(shè)計(jì)——設(shè)計(jì)過(guò)程(3)用戶界面部部分(HIC)的設(shè)計(jì)用戶界面的的設(shè)計(jì)結(jié)果,將對(duì)對(duì)用戶情緒緒和工作效效率產(chǎn)生重重要影響設(shè)計(jì)準(zhǔn)則一致性使用一致的的術(shù)語(yǔ)、一一致的步驟驟、一致的的動(dòng)作減少步驟應(yīng)使用戶為為做某件事事情而需操操作的步驟驟最少及時(shí)提供反反饋信息及及撤消命令令易學(xué),富有有吸引力應(yīng)提供聯(lián)機(jī)機(jī)幫助系統(tǒng)統(tǒng)或參考資資料面向?qū)ο笤O(shè)設(shè)計(jì)——設(shè)計(jì)過(guò)程(4)用戶界面部部分(HIC)的設(shè)計(jì)在OOA階段給出了了所需的屬屬性和操作作,在設(shè)計(jì)計(jì)階段必須須根據(jù)需求求把交互的的細(xì)節(jié)加入入到用戶界界面的設(shè)計(jì)計(jì)中,包括括有效的人人機(jī)交互所所必需的實(shí)實(shí)際顯示和和輸入設(shè)計(jì)策略用戶分類(lèi)描述用戶設(shè)計(jì)命令層層次設(shè)計(jì)詳細(xì)的的交互設(shè)計(jì)人-機(jī)機(jī)交互類(lèi)通常可將其其分為外行行型、初學(xué)型、熟練練型和專(zhuān)家家型四類(lèi)什么人、特特點(diǎn)、期望望軟件用途途、主要要求與與喜好以及及任務(wù)場(chǎng)景景等盡量遵循用用戶界面的的一般原則則和規(guī)范,根根據(jù)用戶分分析結(jié)果確確定初步的命命令系統(tǒng)然然后再優(yōu)化化面向?qū)ο笤O(shè)設(shè)計(jì)——設(shè)計(jì)過(guò)程(5)用戶界面部部分(HIC)的設(shè)計(jì)設(shè)計(jì)人-機(jī)機(jī)交互類(lèi)組織窗口和和部件的用用戶界面的的設(shè)計(jì)通常包括類(lèi)類(lèi)窗口、條條件窗口、、檢查窗口口、文檔窗窗口、畫(huà)圖圖窗口等每個(gè)類(lèi)包括
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 彩鋼板開(kāi)洞施工方案
- 露營(yíng)基地設(shè)備租賃方案
- 巖板上墻鋪貼施工方案
- 海南瓊口口腔醫(yī)院項(xiàng)目環(huán)境影響報(bào)告表環(huán)評(píng)報(bào)告表
- 銅陵安全人臉識(shí)別施工方案
- 濟(jì)南玻璃鋼纖維布施工方案
- 滁州家用車(chē)庫(kù)地坪施工方案
- 氣象站防電涌入侵施工方案
- 臨沂古建施工方案公司
- 壓花地坪施工方案
- 2022年4月自考00150金融理論與實(shí)務(wù)試題及答案含解析
- 早期矯正知識(shí)培訓(xùn)課件模板
- 化工建設(shè)行業(yè)分析
- 教師事業(yè)單位獎(jiǎng)勵(lì)審批表主要事跡六篇
- 私樁共享商業(yè)計(jì)劃書(shū)
- 蔬菜基地報(bào)告
- 新時(shí)代這十年的變化
- 山地光伏培訓(xùn)課件
- 醫(yī)療器械經(jīng)營(yíng)基礎(chǔ)知識(shí)培訓(xùn)售后服務(wù)規(guī)范
- 制造產(chǎn)品運(yùn)營(yíng)方案
- 人工智能技術(shù)的應(yīng)用前景與發(fā)展趨勢(shì)
評(píng)論
0/150
提交評(píng)論