版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
9.1概述9.2面向?qū)ο蠓椒ǖ幕靖拍詈吞攸c9.3面向?qū)ο蟮姆治?OOA)方法9.4建立信息模型的基本方法9.5面向?qū)ο蟮脑O(shè)計(OOD)方法9.6小結(jié)自從80年代Smalltalk及其環(huán)境向計算機界推行以來,面向?qū)ο蟮募夹g(shù)引起了計算機界的極大關(guān)注,因為它對于軟件工程學(xué)瀕臨的困境和人工智能所遇到障礙都是一個很有希望的突破口。隨著面向?qū)ο蟪绦蛟O(shè)計語言的漸趨成熟,作為一種新的程序設(shè)計風范,它已逐漸為計算界所理解和接受,其應(yīng)用也得到迅速發(fā)展。這些成就促使研究者把一部分注意
力轉(zhuǎn)向更廣,更深的層次,即去考慮面向?qū)ο蟮能浖_發(fā)問題,并不斷地取得進展。于是,一種新的軟件開發(fā)的方法論——面向?qū)ο蟮姆椒ㄕ撻_始形成。雖然尚不完備,但實踐證明這一新的方法論,有超越80年代處于全盛的結(jié)構(gòu)化方法論之勢。9.1概述面向?qū)ο筌浖_發(fā)方法(Object—OrientedSoftwareDevel.opment)又稱OOSD,它的組成和開發(fā)過程類似于結(jié)構(gòu)化方法。OOSD由面向?qū)ο蠓治?00A)、面向?qū)ο笤O(shè)計(00D)和面向?qū)ο蟪绦蛟O(shè)計(OOP)組成,即:OOSD→00A+00D+OOP。其開發(fā)過程中的順序是≯00A→OOD→OOP;但其技術(shù)發(fā)展過程卻是相反的,先有00P,然后擴展到00D,最后才有00A。其中00P是基礎(chǔ),00A和00D是應(yīng)用OOP的機制,加上已有的分析和設(shè)計技術(shù)而形成的。所以一般說來,應(yīng)用OOSD時,必須有OOP和分析及設(shè)計(如結(jié)構(gòu)化方法)基礎(chǔ)。面向?qū)ο?object—oriented,簡稱OO)是一種對應(yīng)于真實世界概念化的抽象思維方法。
面向?qū)ο蟮慕Y(jié)構(gòu)是分布的;系統(tǒng)的結(jié)構(gòu)就是它自身的分類,而這種足夠適應(yīng)任何可能的擴充和修正,在開發(fā)過程中結(jié)構(gòu)可以保持一致;開發(fā)過程中階段的改變,不需要方法或風范的轉(zhuǎn)換,可以做到平滑的過渡。例如從OOA到OOD的轉(zhuǎn)換,要比以傳統(tǒng)方法開發(fā)時從分析到設(shè)計來得平穩(wěn)和一致,因為從需求階段到實現(xiàn)階段,使用了相同的概念。面向?qū)ο蟮拈_發(fā),最大的優(yōu)點是幫助分析者,設(shè)計者及用戶清楚地表述抽象概念,便于互相進行交流通訊。面向?qū)ο蠓椒ㄊ欠治鰡栴}和解決問題的新方法,其基本出發(fā)點就是盡可能按照人類認識世界的方法和思維方式來分析和解決問題??陀^世界是由許多具體的事物或事件,抽象
的概念和規(guī)則等組成的,因此,我們將任何感興趣或要加以研究的事、物、概念都稱為對象。面向?qū)ο蟮姆椒ㄕ且詫ο笞鳛樽罨镜脑?,也是分析問題,解決問題的核心。下
面概要地介紹面向?qū)ο蠓椒ǖ幕靖拍詈退哂械奶攸c。9.2面向?qū)ο蠓椒ǖ幕靖拍詈吞攸c
1.對象(object)
對象是00方法的核心。然而,在不同的研究領(lǐng)域、不同的學(xué)者對“對象”的概念解釋各異。盡管目前尚未有統(tǒng)一的定義,但可以抽取如下的共同認識:
對象是人們要進行研究的任何事物,從最簡單的整數(shù)到極其復(fù)雜的宇宙飛船等都可看作對象。對象不僅能表示具體的實體,也能表示抽象的規(guī)則、計劃或事件。主要有如下的
對象類型:
1)有形的實體:指一切看得見、摸得著的實物。如飛機、車輛、計算機、桌子、房子、機器人等等,都屬于有形的實體,也是最易于識別的對象。
2)作用:指人或組織,如醫(yī)生、教師、職工、學(xué)生、公司、部門等所起的作用。
3)事件:在特定時間所發(fā)生的事。如飛行、事故、演出、開會等。
4)性能說明:制造廠或企業(yè),往往對產(chǎn)品的性能加以全面說明,如計算機廠對計算機的性能說明,往往要列出型號及各種性能指標等。
對象不僅能表示結(jié)構(gòu)化的數(shù)據(jù),而且也能表示抽象的事件、規(guī)則以及復(fù)雜的工程實體,這是結(jié)構(gòu)化方法所不能做到的。因此,對象具有很強的表達能力和描述功能。在面向?qū)ο蟮南到y(tǒng)中,對象是一個封裝數(shù)據(jù)屬性和操作行為的實體。數(shù)據(jù)描述了對象的狀態(tài),操作可操縱私有數(shù)據(jù),改變對象的狀態(tài)。當其它對象向本對象發(fā)出消息,本對象響應(yīng)時,其操作才得以實現(xiàn)。在對象內(nèi)的操作逋常叫做方法。
2.消息
對象之間進行通訊的一種構(gòu)造叫做消息。當一個消息發(fā)送給某個對象時,包含要求接。
收對象去執(zhí)行某些活動的信息。接收到消息的對象經(jīng)過解釋,然后予以響應(yīng)。這種通訊機制叫做消息傳遞。發(fā)送消息的對象不需要知道接收消息的對象如何對請求予以響應(yīng)。
3.類
一個類定義了一組大體上相似的對象。一個類所包含的方法和數(shù)據(jù)描述一組對象的共同行為和屬性。例如,窗口,車輪,玻璃等都是類的例子。一個類就是這樣一種抽象,它反映了與應(yīng)用有關(guān)的重要性質(zhì)而忽略掉其他一些無關(guān)的內(nèi)容??梢?,類是在對象之上的抽象,有了類以后,對象則是類的具體化,是類的實例。類可以有子類和父類,形成層次結(jié)構(gòu)。
把一組對象的共同特性加以抽象并存貯在一個類中的能力,是面向?qū)ο蠹夹g(shù)最重要的一點;是否建立了一個豐富的類庫,是衡量一個面向?qū)ο蟪绦蛟O(shè)計語言成熟與否的重要
標志。
4.繼承性
繼承性是父類和子類之間共享數(shù)據(jù)和方法的機制。這是類之間的一種關(guān)系,在定義和實現(xiàn)一個類的時候,可以在一個已經(jīng)存在的類的基礎(chǔ)之上來進行,把這個A已經(jīng)存在的類所定義的內(nèi)容作為自己的內(nèi)容,并加入若干新的內(nèi)容。圖
9.1表示了父類A和它的子類B之間的繼承關(guān)系,箭頭從子類B指向父類A子類B由繼承部分(C)和增加部分(D)組成。圖9.1繼承性分為單重繼承和多重繼承兩類。單重繼承時,一個子類只有一個父類;多重繼承時一個子類可以有多于一個的父類。圖9.2表示了單重繼承(a)和多重繼承(b)時父類和子類之間的關(guān)系。
單重繼承構(gòu)成的類之間的關(guān)系是一棵樹,多重繼承構(gòu)成的類之間的關(guān)系是一個格(如果將所有無子類的類,如圖9.2(b)中的類E和F,都看成還有一個公共子類的話),兩者都
是典型的結(jié)構(gòu)形式。圖9.2繼承關(guān)系是可傳遞的,如圖9.2(a)中的E繼承C,而C繼承A,因而E也繼承了A,所以E也是A的子類,是間接的子類,C則是A的直接子類。
繼承性是面向?qū)ο蟪绦蛟O(shè)計語言不同于其他語言的最主要的特點。
5.多態(tài)性
在收到消息時,對象要予以響應(yīng)。不同的對象收到同一消息可產(chǎn)生完全不同的結(jié)果,這一現(xiàn)象叫做多態(tài)。在使用多態(tài)的時候,用戶可以發(fā)送一個通用的消息,而實現(xiàn)的細節(jié)則
由接收對象自行決定,這樣,同一消息就可以調(diào)用不同的方法。多態(tài)的實現(xiàn)受到繼承性的支持,利用類的繼承的層次關(guān)系,把具有通用功能的消息存放在高層次,而不同的實現(xiàn)這一功能的行為放在較低層次,在這些低層次上生成的對象能夠給通用消息以不同的響應(yīng)。
上面列舉了5個基本概念及其特點,當然還有其他特點,如動態(tài)聯(lián)編也是面向?qū)ο蟪绦蛟O(shè)計語言的一個特點,動態(tài)聯(lián)編是和類的繼承性以及多態(tài)性相聯(lián)系的。這些特點和概念并非在面向?qū)ο笙到y(tǒng)中最早定義的,有的在其他語言中已經(jīng)采用,面向?qū)ο笳Z言所增加新概念是類和繼承性,并把以上幾個概念和特點加以擴充和提高,使其有機地結(jié)合起來,形成了更加強的特有的能力。
OOA的概念在80年代后期提出,目前正處于研究和開發(fā)階段,還不很成熟,許多問題還沒有得到完全解決。OOA方法不同于結(jié)構(gòu)化分析方法(SA),它強調(diào)的是對一個系統(tǒng)對
象的特征和行為的定義。
OOA方法并非丟棄已有的需求分析方法,如功能分解法、數(shù)據(jù)流方法(即結(jié)構(gòu)化分析方法)和信息造型方法等,而是將它們的精華綜合起來,發(fā)展并形成更為自然,更易于為人們所理解的面向?qū)ο蟮男枨蠓治龇椒ā?.3面向?qū)ο蟮姆治?OOA)方法實際上OOA方法是把信息造型方法的主要優(yōu)點(來自E—R圖和語義數(shù)據(jù)模型)與OOP的主要優(yōu)點集中在一起,擴充了對象的含義,所以比信息造型方法更完整地實現(xiàn)了從問題空間到系統(tǒng)模型的直接映射。
面向?qū)ο蟮姆治龇椒ㄖ饕峁┝?種形式的模型:信息模型、狀態(tài)模型和處理模型。這三種模型被有機地結(jié)合起來,相互影響;相互制約。圖9.3充分說明了這三個模型之間的關(guān)系。圖9.3
1.信息模型
信息模型是面向?qū)ο蠓治龅幕A(chǔ),它用實體一關(guān)系圖(E-R圖)來描述。它開始用于數(shù)據(jù)庫的設(shè)計,描述數(shù)據(jù)之間或?qū)傩灾g的關(guān)系,E-R圖則是所用的工具,這一點在第八章數(shù)據(jù)庫設(shè)計方法中已有介紹。在面向?qū)ο蠓治鲋校捎诩尤搿懊嫦驅(qū)ο蟆备拍?,E-R模型有了很大提高。兩者之間的不同之處是:在基于OOA方法的E,R圖中,數(shù)據(jù)封裝、實體和對它的屬性處理組合在同一單元之中,并采用繼承性和消息傳遞來支持模型。信息模型由問題領(lǐng)域中的對象所組成,根據(jù)對象、屬性及對象之間的關(guān)系來規(guī)范問題
領(lǐng)域中的信息。信息模型用兩種基本的形式來描述,一種是文本說明形式,包括對系統(tǒng)中所有的對象、屬性、關(guān)系的描述與說明;另一種是圖形表示形式,它提供一種全局的觀點來考慮系統(tǒng)中的相關(guān)性、完全性和一致性。
信息模型的圖形描述形式主要有兩種,即信息結(jié)構(gòu)圖和信息結(jié)構(gòu)概圖;其文本文件描述形式主要有3種,即對象說明文件、關(guān)系說明文件以及概要說明文件。
2.狀態(tài)模型
信息模型一旦建立起來,就要考查對象和關(guān)系的動態(tài)行為。面向?qū)ο蟮姆治鲈O(shè)定所有的對象和關(guān)系都具有其生命周期。生命周期由許多階段組成,每個特定的階段都包括一系列的運行規(guī)律和行為規(guī)則,用于調(diào)節(jié)和管理對象的行為。對象和關(guān)系的生命周期用其狀態(tài)模型來描述。
狀態(tài)模型用來描述對象和關(guān)系的狀態(tài)、狀態(tài)轉(zhuǎn)換的觸發(fā)事件、對象的行為。狀態(tài)模型可用多種形式加以描述,如狀態(tài)轉(zhuǎn)換圖和狀態(tài)轉(zhuǎn)換表。圖形描述可以幫助我們理解對象生
命周期的轉(zhuǎn)換過程,表格描述可以更詳細地說明對象的狀態(tài)轉(zhuǎn)換關(guān)系。
3.處理模型
為狀態(tài)模型中的每個狀態(tài)建立一個數(shù)據(jù)流圖的處理過程稱為處理模型。在面向?qū)ο蟮闹胤治龇椒ㄖ校?shù)據(jù)流圖的作用不如其它面向功能的方法明顯,因為數(shù)據(jù)流圖中并沒有添加任何新的信息。但建立處理模型可以使系統(tǒng)分析員對系統(tǒng)設(shè)計進行精化。比較某個狀態(tài)模型中所有狀態(tài)的數(shù)據(jù)流圖就可以發(fā)現(xiàn)一些相同的處理(或相似的處理)重復(fù)使用,在這種情況下,建立處理模型有利于對處理操作的定義做些調(diào)整,以便使系統(tǒng)結(jié)構(gòu)更趨合理和完善。面向?qū)ο蟮南到y(tǒng)分析提供了一種獨特的方法,它反映了軟件問題的本質(zhì)所在,即數(shù)據(jù)處理。數(shù)據(jù)和處理是兩件顯然相關(guān)的事情,將數(shù)據(jù)和處理人為地分離,可能會人為地制造
系統(tǒng)分析的障礙。OOA方法是一種以數(shù)據(jù)或信息為主線,數(shù)據(jù)和處理相結(jié)合的方法,它是以建立系統(tǒng)的信息模型為基礎(chǔ)的。在面向?qū)ο蟮南到y(tǒng)分析方法中最重要的一步是建立系統(tǒng)的信息模型,它在一定程度上發(fā)揮了關(guān)鍵的作用。一旦正確地建立了系統(tǒng)的信息模型,后繼的軟件開發(fā)工作通常是十分
常規(guī)的事情,也使開發(fā)者避免了許多麻煩和意外。建立信息系統(tǒng)模型的方法是現(xiàn)代軟件工程中一個十分有用的方法。9.4建立信息模型的基本方法建立系統(tǒng)的信息模型一般經(jīng)歷下面幾個步驟:
(1)系統(tǒng)調(diào)研。
(2)對系統(tǒng)進行初始描述。
(3)建立系統(tǒng)的信息結(jié)構(gòu)圖或信息結(jié)構(gòu)概圖。
(4)建立系統(tǒng)的文本說明文件。。
下面分別討論上述4個步驟的實現(xiàn)方法。
1.系統(tǒng)調(diào)研
建立信息模型的最大困難是如何獲得對所研究問題的理解,而要充分理解問題,就必須進行周密的調(diào)查研究。在這里提出一些建議供參考,幫助讀者搜索必要的信息,并將信
息轉(zhuǎn)化成對問題的理解。
1)尋求有用的文件。大量的信息可以從應(yīng)用專家建立或使用的文件中提取出來。這些文件包括舊系統(tǒng)和它的工作流程分析,操作說明手冊等。此外,還有報表,它揭示了人們
思考問題的方法。可以通過閱讀空白和已填寫的報表,考察它的內(nèi)容以及不一致性。報表包含了諸如顧客帳單,進料單,訂貨單以及進度報告等多種信息。再還有報告、手工制表、分布圖、邏輯圖、結(jié)構(gòu)圖等,這些都是有益的信息源。
另外,為了獲得更多的一般性的背景信息,還要去圖書館查閱大量的有關(guān)資料。
2)對話。它是一種傳統(tǒng)的作法,善于思考的軟件開發(fā)人員可以從中得到許多有效的信息。有效的對話常常在深入考查現(xiàn)實問題和高度抽象之間來回反復(fù)。
參加對話的人通常包括專家和所研究問題領(lǐng)域中的專業(yè)人員以及系統(tǒng)建模人員,這兩方面的專業(yè)人員都是不可缺少的。
對話的形式有多樣性提問、相關(guān)性提問、排除性提問等,目的是搞清對象的識別,屬性的確定以及對象之間的關(guān)系等。
3)技術(shù)性注釋。有效的技術(shù)性注釋常常是將信息轉(zhuǎn)化為對問題的理解所必需的。應(yīng)鼓勵分析人員寫技術(shù)筆記,這在分析早期階段是特別有用的。技術(shù)性注釋包含了大量的內(nèi)容,這些內(nèi)容可用于對象描述。在進行多次的對話,會議,現(xiàn)場參觀或參與工作以后,考慮寫一份技術(shù)筆記。
2.系統(tǒng)的初始描述
在系統(tǒng)調(diào)研的基礎(chǔ)上,要將調(diào)研得來的零碎材料和有關(guān)系統(tǒng)的各方面信息進行一系列的概括、歸納、整理,形成待開發(fā)系統(tǒng)的初始描述。這是在建立信息模型之前很重要的一步。
在對系統(tǒng)進行初始描述時,應(yīng)以相同的抽象層次描述系統(tǒng),也就是說,整個初始描述的抽象層次應(yīng)該保持一致。應(yīng)該著重弄清楚為解決問題必須做什么,而不是解決問題時所要進行的處理過程的細節(jié)。初始描述來源于調(diào)研材料,而且是非正式的,通常用自然語言或用草圖來表示。下面是一個關(guān)于自動售貨機的部分初始描述的例子。
自動售貨機用于將貨物分配給顧客。開始售貨時顧客將貨幣通過接收孔投入機器中的硬幣儲藏器中,機器檢查貨幣的大小,重量,厚度,邊緣類型。有效的貨幣是五角幣,一角幣和五分幣,其它的貨幣假定都被認為是假幣,機器拒絕接收假幣,并將其從退出孔退出。
當機器接收了有效的貨幣之后,將貨幣送入硬幣儲藏器中,顧客支付的貨幣根據(jù)硬幣的面值進行累加。自動售貨機裝有貨物分配器,每個貨物分配器中包含有零個或多個貨物并且具有相同的價格。請讀者注意,在對系統(tǒng)進行初始描述時,要盡量做到句子的語法正確,慎重使用名詞、動詞、形容詞和同義詞,因為這些詞是進一步識別系統(tǒng)中的對象、屬性及關(guān)系的基礎(chǔ)。
3.建立系統(tǒng)的信息結(jié)構(gòu)圖或信息結(jié)構(gòu)概圖
信息結(jié)構(gòu)圖是以各種形式實體關(guān)系圖(例E—R圖)為基礎(chǔ)的。它只與信息模型中說明的對象、屬性和關(guān)系有關(guān)。但信息結(jié)構(gòu)圖并不給出它們的含義。在信息結(jié)構(gòu)圖中使用的圖
形符號概括如下:
·用方框表示對象及其屬性,在信息模型中,屬性可以加注釋。
·在表示標識符的任何屬性名稱前,附加一個星號“*”,在非標識符屬性名稱前,附加一個圓點“.”或圓圈“?!薄?/p>
·在參考性屬性后附加(R)或(參考)。
·可以以任何順序列出屬性名稱。
對象及其屬性的信息結(jié)構(gòu)圖如圖9.4所示。對象之間的二元關(guān)系由畫在對象方框之間帶箭頭直線段來說明;父型/子型結(jié)構(gòu)可表示成圖9.5所示的形式。圖中,短線指明了父型對
象,與父型對象通過短線連接的所有其他對象均為子型對象。圖9.4圖9.5如果在信息結(jié)構(gòu)圖中對對象和關(guān)系進行編號,那么,信息結(jié)構(gòu)圖便可作為文本說明文件的圖表目錄。
另一種稱為信息結(jié)構(gòu)概圖,它將屬性名從方框中去掉,只留下對象名,其它方面和信息結(jié)構(gòu)圖完全一樣。概圖使得圖變得緊湊,容易直觀反映系統(tǒng)概貌。
在對系統(tǒng)進行了初始化描述后,分析人員應(yīng)根據(jù)系統(tǒng)的初始描述建立系統(tǒng)的信息結(jié)構(gòu)圖或信息結(jié)構(gòu)概圖。該圖說明了系統(tǒng)的組成部分以及各部分之間的關(guān)系。建立信息結(jié)構(gòu)圖
或信息結(jié)構(gòu)概圖的步驟如下:
1)識別系統(tǒng)中的對象及其屬性。識別對象是建立信息模型的重要問題。識別對象及其屬性的基本依據(jù)是系統(tǒng)的初始描述。系統(tǒng)初始描述中的名詞、名詞詞組可能是對象的名
詞、對象的屬性的名稱或是其他對象與屬性的同義詞,同義詞在分析中應(yīng)刪除掉。屬性應(yīng)與現(xiàn)有的對象相聯(lián)系。在自動售貨機的例子中,代表系統(tǒng)中部分對象的名詞有:貨幣、硬
幣、假幣、硬幣儲藏器、五分幣、一角幣、五角幣等,代表屬性的名詞有:重量、厚度、價格等。識別出所有的對象及其屬性之后,要進一步確定對象是屬于問題空間還是屬于求解空間,因為只有屬于求解空間(軟件系統(tǒng)之內(nèi))的對象才是模型所需要的。
對象的屬性除了名詞及其詞組外,還可能是形容詞,要根據(jù)初始描述的上下文含義來確定。準確地確定對象的屬性直接關(guān)系到系統(tǒng)的信息量或數(shù)據(jù)量。其原則或標準是在滿足
系統(tǒng)功能的前提下,使系統(tǒng)中的信息量或數(shù)據(jù)量最少。
2)識別系統(tǒng)中對象之間的關(guān)系。關(guān)系的識別完全依賴于系統(tǒng)的初始描述及其含義。在初始描述中,動詞或介詞詞組往往隱含著兩個對象之間的關(guān)系的名稱及其含義。如在自動
售貨機例子中,硬幣儲藏器和硬幣之間的關(guān)系是:
硬幣儲藏器存放硬幣(1:M)
硬幣存放在硬幣儲藏器中
3)畫出系統(tǒng)的信息結(jié)構(gòu)圖或信息結(jié)構(gòu)概圖。識別出系統(tǒng)中的對象及其屬性以及對象之間的關(guān)系之后,便可著手畫出系統(tǒng)的信息結(jié)構(gòu)圖或信息結(jié)構(gòu)概圖。圖9.6是自動售貨機的部分信息結(jié)構(gòu)概圖。圖9.6圖9.6表明:貨幣由貨幣接收孔進入自動售貨機。
一個貨幣可能是一枚假幣或真幣(硬幣),合法的硬幣對象是五分幣、一角幣或五角幣。硬幣存放在硬幣儲藏器中。
4.建立系統(tǒng)的文本說明文件
為了進一步對信息模型進行詳細的描述,需要建立信息模型的文本說明文件。它包括對象說明文件、關(guān)系說明文件和概要文件。
對象說明文件用文本的形式描述了整個系統(tǒng)中的對象,即信息模型中的每個對象都要有一個說明。表9.1是自動售貨機系統(tǒng)中的為描述對象硬幣而建立的對象說明文件。關(guān)系說明文件用文本的形式描述了整個系統(tǒng)中對象之間的全部關(guān)系。每個關(guān)系的描述包括關(guān)系的名稱、關(guān)系的類型、關(guān)系的含義及關(guān)系的形成依據(jù)。
表9.2是為自動售貨機中的部分關(guān)系所建立的說明文件。概要說明文件是系統(tǒng)中所有對象和關(guān)系的簡要說明文件,以簡明的形式反映了系統(tǒng)中的全部信息,可作為備用參考。其形式如下:利用系統(tǒng)的初始描述建立的信息模型不可能一次就完全符合系統(tǒng)的需求,一般要經(jīng)過多次反復(fù)修改和精化,才能得到一個完全符合需求、信息量最小的、包含正確信息的信息
模型。面向?qū)ο蟮脑O(shè)計(Object—OrientedDesign)方法簡稱OOD方法。按照軟件系統(tǒng)生命周期的模型,系統(tǒng)分析之后必然是系統(tǒng)的設(shè)計,在采用OOA方法之后,較自然而且相互銜接得
最好的方法,必然是面向?qū)ο蟮脑O(shè)計方法(OOD)。由于面向?qū)ο蠓椒ㄊ且环N相對年輕的方法,它用于分析與設(shè)計都處于尚未成熟與定型的階段,有關(guān)OOD方法也只能簡單地介紹一
些基本的觀點。9.5面向?qū)ο蟮脑O(shè)計(OOD)方法
1.OOD的主要任務(wù)和目標
在面向?qū)ο箝_發(fā)方法中,分析和設(shè)計雖然是不同的活動,但兩者配合相當密切,即從OOA到OOD是對現(xiàn)實世界的進一步建模。OOA強調(diào)對現(xiàn)實世界中的問題域的理解,為問
題域建立模型,通過分析得到對象及這些對象間的相互關(guān)系。OOD則要求對特定的實現(xiàn)空間建立模型,即解決這些對象及其相互關(guān)系的實現(xiàn)問題。
OOD是一種新型的系統(tǒng)設(shè)計方法,它的核心概念是對象。它既不是功能,也不是數(shù)據(jù)的分解過程,而是首先在現(xiàn)實世界中尋找、識別出影響用戶解決問題,并必須進行操縱的
對象,然后用相應(yīng)的計算機中的軟件對象來仿真現(xiàn)實世界的對象及其行為。實際上,客觀世界問題的解早已存在于人工系統(tǒng)中,因此,采用OOD方法對已存在的且變化不大的人工
系統(tǒng)進行設(shè)計時,除了存在少量求解外,主要是如何用計算機仿真人工系統(tǒng),將客觀問題計算機化,從而獲得更有效、更優(yōu)質(zhì)、更可靠的客觀世界問題的解。
OOD方法為仿真人工系統(tǒng)提供了很自然、很直接的對應(yīng)關(guān)系,它克服了傳統(tǒng)的分析方法與設(shè)計方法所存在的客觀世界問題領(lǐng)域與軟件系統(tǒng)結(jié)構(gòu)之間的不一致性的矛盾,這也是OO方法較傳統(tǒng)方法最為突出的優(yōu)點之一。
OOD方法的主要目標是提高軟件生產(chǎn)率,提高質(zhì)量及提高可維護性。OOD是一種系統(tǒng)設(shè)計活動,它不僅能減少測試時間,而且能提高整個生命周期的效率。它還能提供對軟件
重用的支持,支持重用的是類的外部接口和組織結(jié)構(gòu)。
2.OOD方法的實現(xiàn)步驟
面向?qū)ο蟮脑O(shè)計一般可分為兩個階段:概要設(shè)計和詳細設(shè)計。概要設(shè)計階段的主要任務(wù)是定義系統(tǒng)是如何工作的,它保持較大部分獨立于編程語言的特點。而詳細設(shè)計則進一
步細化概要設(shè)計階段所給出的對象描述,它與編程語言有密切的聯(lián)系,若能采用面向?qū)ο蟮木幊陶Z言,將會更利于OOD的編程模塊設(shè)計。概要設(shè)計的主要工作是:
1)進一步細化對象行為和對象之間交互作用,并加入必要的新對象。
2)對類加以認定,以得到解空間的結(jié)構(gòu)形式,為系統(tǒng)的具體實現(xiàn)提供必要的支持。
3)把已認定的類組成類陣,用以支持重用。
4)確定外部接口和主要的數(shù)據(jù)結(jié)構(gòu)。
詳細設(shè)計是緊接著概要設(shè)計進行的,其目的則是為實現(xiàn)做好準備,而編程所需要的主要是有關(guān)對象的描述,因此,加細概要設(shè)計階段所給出的對象描述將是這個階段的主要工作。例如,一個對象中的方法,哪些是公用的,
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年錫林郭勒盟應(yīng)急管理局關(guān)于公開招聘駐礦安全生產(chǎn)監(jiān)管專家的備考題庫參考答案詳解
- 2025年中信銀行誠聘駐點客戶經(jīng)理(國企可接受無經(jīng)驗)招聘備考題庫及一套答案詳解
- 2026年寵物藥品采購合同
- 2026年裝修進度跟蹤合同
- 2026年興業(yè)銀行??诜中星锛拘@招聘備考題庫及參考答案詳解1套
- 2025年蘭溪市衛(wèi)健系統(tǒng)第一批面向高校公開招聘醫(yī)學(xué)類應(yīng)屆畢業(yè)生17人的備考題庫完整答案詳解
- 2025年達州銀行股份有限公司社會招聘備考題庫有答案詳解
- 中國冶金地質(zhì)總局礦產(chǎn)資源研究院2026年高校畢業(yè)生招聘備考題庫附答案詳解
- 中國海油生產(chǎn)成本資本開支優(yōu)勢雙驅(qū)動支撐油氣儲量產(chǎn)量持續(xù)快速增長
- (2025)紀檢監(jiān)察業(yè)務(wù)知識題庫(附含參考答案)
- 2025-2026學(xué)年人教版高一生物上冊必修1第1-3章知識清單
- GB/T 2075-2025切削加工用硬切削材料的分類和用途大組和用途小組的分類代號
- 2025年超星爾雅學(xué)習(xí)通《創(chuàng)新思維與創(chuàng)新方法》考試備考題庫及答案解析
- 四川省金太陽2025-2026學(xué)年高三上學(xué)期11月聯(lián)考英語試卷(含答案詳解)
- 血糖儀項目計劃書
- 電氣工程項目驗收規(guī)范及標準
- 種植樹苗管護合同范本
- 2023年環(huán)評工程師考試環(huán)境影響評價相關(guān)法律法規(guī)講義
- 2025工業(yè)智能體應(yīng)用現(xiàn)狀、挑戰(zhàn)及對策建議報告-
- 人工流產(chǎn)術(shù)后宣教
- 《危險化學(xué)品安全法》知識培訓(xùn)
評論
0/150
提交評論