《軟件系統(tǒng)開(kāi)發(fā)技術(shù)》課件第9章_第1頁(yè)
《軟件系統(tǒng)開(kāi)發(fā)技術(shù)》課件第9章_第2頁(yè)
《軟件系統(tǒng)開(kāi)發(fā)技術(shù)》課件第9章_第3頁(yè)
《軟件系統(tǒng)開(kāi)發(fā)技術(shù)》課件第9章_第4頁(yè)
《軟件系統(tǒng)開(kāi)發(fā)技術(shù)》課件第9章_第5頁(yè)
已閱讀5頁(yè),還剩50頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

9.1概述9.2面向?qū)ο蠓椒ǖ幕靖拍詈吞攸c(diǎn)9.3面向?qū)ο蟮姆治?OOA)方法9.4建立信息模型的基本方法9.5面向?qū)ο蟮脑O(shè)計(jì)(OOD)方法9.6小結(jié)自從80年代Smalltalk及其環(huán)境向計(jì)算機(jī)界推行以來(lái),面向?qū)ο蟮募夹g(shù)引起了計(jì)算機(jī)界的極大關(guān)注,因?yàn)樗鼘?duì)于軟件工程學(xué)瀕臨的困境和人工智能所遇到障礙都是一個(gè)很有希望的突破口。隨著面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言的漸趨成熟,作為一種新的程序設(shè)計(jì)風(fēng)范,它已逐漸為計(jì)算界所理解和接受,其應(yīng)用也得到迅速發(fā)展。這些成就促使研究者把一部分注意

力轉(zhuǎn)向更廣,更深的層次,即去考慮面向?qū)ο蟮能浖_(kāi)發(fā)問(wèn)題,并不斷地取得進(jìn)展。于是,一種新的軟件開(kāi)發(fā)的方法論——面向?qū)ο蟮姆椒ㄕ撻_(kāi)始形成。雖然尚不完備,但實(shí)踐證明這一新的方法論,有超越80年代處于全盛的結(jié)構(gòu)化方法論之勢(shì)。9.1概述面向?qū)ο筌浖_(kāi)發(fā)方法(Object—OrientedSoftwareDevel.opment)又稱(chēng)OOSD,它的組成和開(kāi)發(fā)過(guò)程類(lèi)似于結(jié)構(gòu)化方法。OOSD由面向?qū)ο蠓治?00A)、面向?qū)ο笤O(shè)計(jì)(00D)和面向?qū)ο蟪绦蛟O(shè)計(jì)(OOP)組成,即:OOSD→00A+00D+OOP。其開(kāi)發(fā)過(guò)程中的順序是≯00A→OOD→OOP;但其技術(shù)發(fā)展過(guò)程卻是相反的,先有00P,然后擴(kuò)展到00D,最后才有00A。其中00P是基礎(chǔ),00A和00D是應(yīng)用OOP的機(jī)制,加上已有的分析和設(shè)計(jì)技術(shù)而形成的。所以一般說(shuō)來(lái),應(yīng)用OOSD時(shí),必須有OOP和分析及設(shè)計(jì)(如結(jié)構(gòu)化方法)基礎(chǔ)。面向?qū)ο?object—oriented,簡(jiǎn)稱(chēng)OO)是一種對(duì)應(yīng)于真實(shí)世界概念化的抽象思維方法。

面向?qū)ο蟮慕Y(jié)構(gòu)是分布的;系統(tǒng)的結(jié)構(gòu)就是它自身的分類(lèi),而這種足夠適應(yīng)任何可能的擴(kuò)充和修正,在開(kāi)發(fā)過(guò)程中結(jié)構(gòu)可以保持一致;開(kāi)發(fā)過(guò)程中階段的改變,不需要方法或風(fēng)范的轉(zhuǎn)換,可以做到平滑的過(guò)渡。例如從OOA到OOD的轉(zhuǎn)換,要比以傳統(tǒng)方法開(kāi)發(fā)時(shí)從分析到設(shè)計(jì)來(lái)得平穩(wěn)和一致,因?yàn)閺男枨箅A段到實(shí)現(xiàn)階段,使用了相同的概念。面向?qū)ο蟮拈_(kāi)發(fā),最大的優(yōu)點(diǎn)是幫助分析者,設(shè)計(jì)者及用戶(hù)清楚地表述抽象概念,便于互相進(jìn)行交流通訊。面向?qū)ο蠓椒ㄊ欠治鰡?wèn)題和解決問(wèn)題的新方法,其基本出發(fā)點(diǎn)就是盡可能按照人類(lèi)認(rèn)識(shí)世界的方法和思維方式來(lái)分析和解決問(wèn)題??陀^世界是由許多具體的事物或事件,抽象

的概念和規(guī)則等組成的,因此,我們將任何感興趣或要加以研究的事、物、概念都稱(chēng)為對(duì)象。面向?qū)ο蟮姆椒ㄕ且詫?duì)象作為最基本的元素,也是分析問(wèn)題,解決問(wèn)題的核心。下

面概要地介紹面向?qū)ο蠓椒ǖ幕靖拍詈退哂械奶攸c(diǎn)。9.2面向?qū)ο蠓椒ǖ幕靖拍詈吞攸c(diǎn)

1.對(duì)象(object)

對(duì)象是00方法的核心。然而,在不同的研究領(lǐng)域、不同的學(xué)者對(duì)“對(duì)象”的概念解釋各異。盡管目前尚未有統(tǒng)一的定義,但可以抽取如下的共同認(rèn)識(shí):

對(duì)象是人們要進(jìn)行研究的任何事物,從最簡(jiǎn)單的整數(shù)到極其復(fù)雜的宇宙飛船等都可看作對(duì)象。對(duì)象不僅能表示具體的實(shí)體,也能表示抽象的規(guī)則、計(jì)劃或事件。主要有如下的

對(duì)象類(lèi)型:

1)有形的實(shí)體:指一切看得見(jiàn)、摸得著的實(shí)物。如飛機(jī)、車(chē)輛、計(jì)算機(jī)、桌子、房子、機(jī)器人等等,都屬于有形的實(shí)體,也是最易于識(shí)別的對(duì)象。

2)作用:指人或組織,如醫(yī)生、教師、職工、學(xué)生、公司、部門(mén)等所起的作用。

3)事件:在特定時(shí)間所發(fā)生的事。如飛行、事故、演出、開(kāi)會(huì)等。

4)性能說(shuō)明:制造廠或企業(yè),往往對(duì)產(chǎn)品的性能加以全面說(shuō)明,如計(jì)算機(jī)廠對(duì)計(jì)算機(jī)的性能說(shuō)明,往往要列出型號(hào)及各種性能指標(biāo)等。

對(duì)象不僅能表示結(jié)構(gòu)化的數(shù)據(jù),而且也能表示抽象的事件、規(guī)則以及復(fù)雜的工程實(shí)體,這是結(jié)構(gòu)化方法所不能做到的。因此,對(duì)象具有很強(qiáng)的表達(dá)能力和描述功能。在面向?qū)ο蟮南到y(tǒng)中,對(duì)象是一個(gè)封裝數(shù)據(jù)屬性和操作行為的實(shí)體。數(shù)據(jù)描述了對(duì)象的狀態(tài),操作可操縱私有數(shù)據(jù),改變對(duì)象的狀態(tài)。當(dāng)其它對(duì)象向本對(duì)象發(fā)出消息,本對(duì)象響應(yīng)時(shí),其操作才得以實(shí)現(xiàn)。在對(duì)象內(nèi)的操作逋常叫做方法。

2.消息

對(duì)象之間進(jìn)行通訊的一種構(gòu)造叫做消息。當(dāng)一個(gè)消息發(fā)送給某個(gè)對(duì)象時(shí),包含要求接。

收對(duì)象去執(zhí)行某些活動(dòng)的信息。接收到消息的對(duì)象經(jīng)過(guò)解釋?zhuān)缓笥枰皂憫?yīng)。這種通訊機(jī)制叫做消息傳遞。發(fā)送消息的對(duì)象不需要知道接收消息的對(duì)象如何對(duì)請(qǐng)求予以響應(yīng)。

3.類(lèi)

一個(gè)類(lèi)定義了一組大體上相似的對(duì)象。一個(gè)類(lèi)所包含的方法和數(shù)據(jù)描述一組對(duì)象的共同行為和屬性。例如,窗口,車(chē)輪,玻璃等都是類(lèi)的例子。一個(gè)類(lèi)就是這樣一種抽象,它反映了與應(yīng)用有關(guān)的重要性質(zhì)而忽略掉其他一些無(wú)關(guān)的內(nèi)容??梢?jiàn),類(lèi)是在對(duì)象之上的抽象,有了類(lèi)以后,對(duì)象則是類(lèi)的具體化,是類(lèi)的實(shí)例。類(lèi)可以有子類(lèi)和父類(lèi),形成層次結(jié)構(gòu)。

把一組對(duì)象的共同特性加以抽象并存貯在一個(gè)類(lèi)中的能力,是面向?qū)ο蠹夹g(shù)最重要的一點(diǎn);是否建立了一個(gè)豐富的類(lèi)庫(kù),是衡量一個(gè)面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言成熟與否的重要

標(biāo)志。

4.繼承性

繼承性是父類(lèi)和子類(lèi)之間共享數(shù)據(jù)和方法的機(jī)制。這是類(lèi)之間的一種關(guān)系,在定義和實(shí)現(xiàn)一個(gè)類(lèi)的時(shí)候,可以在一個(gè)已經(jīng)存在的類(lèi)的基礎(chǔ)之上來(lái)進(jìn)行,把這個(gè)A已經(jīng)存在的類(lèi)所定義的內(nèi)容作為自己的內(nèi)容,并加入若干新的內(nèi)容。圖

9.1表示了父類(lèi)A和它的子類(lèi)B之間的繼承關(guān)系,箭頭從子類(lèi)B指向父類(lèi)A子類(lèi)B由繼承部分(C)和增加部分(D)組成。圖9.1繼承性分為單重繼承和多重繼承兩類(lèi)。單重繼承時(shí),一個(gè)子類(lèi)只有一個(gè)父類(lèi);多重繼承時(shí)一個(gè)子類(lèi)可以有多于一個(gè)的父類(lèi)。圖9.2表示了單重繼承(a)和多重繼承(b)時(shí)父類(lèi)和子類(lèi)之間的關(guān)系。

單重繼承構(gòu)成的類(lèi)之間的關(guān)系是一棵樹(shù),多重繼承構(gòu)成的類(lèi)之間的關(guān)系是一個(gè)格(如果將所有無(wú)子類(lèi)的類(lèi),如圖9.2(b)中的類(lèi)E和F,都看成還有一個(gè)公共子類(lèi)的話(huà)),兩者都

是典型的結(jié)構(gòu)形式。圖9.2繼承關(guān)系是可傳遞的,如圖9.2(a)中的E繼承C,而C繼承A,因而E也繼承了A,所以E也是A的子類(lèi),是間接的子類(lèi),C則是A的直接子類(lèi)。

繼承性是面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言不同于其他語(yǔ)言的最主要的特點(diǎn)。

5.多態(tài)性

在收到消息時(shí),對(duì)象要予以響應(yīng)。不同的對(duì)象收到同一消息可產(chǎn)生完全不同的結(jié)果,這一現(xiàn)象叫做多態(tài)。在使用多態(tài)的時(shí)候,用戶(hù)可以發(fā)送一個(gè)通用的消息,而實(shí)現(xiàn)的細(xì)節(jié)則

由接收對(duì)象自行決定,這樣,同一消息就可以調(diào)用不同的方法。多態(tài)的實(shí)現(xiàn)受到繼承性的支持,利用類(lèi)的繼承的層次關(guān)系,把具有通用功能的消息存放在高層次,而不同的實(shí)現(xiàn)這一功能的行為放在較低層次,在這些低層次上生成的對(duì)象能夠給通用消息以不同的響應(yīng)。

上面列舉了5個(gè)基本概念及其特點(diǎn),當(dāng)然還有其他特點(diǎn),如動(dòng)態(tài)聯(lián)編也是面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言的一個(gè)特點(diǎn),動(dòng)態(tài)聯(lián)編是和類(lèi)的繼承性以及多態(tài)性相聯(lián)系的。這些特點(diǎn)和概念并非在面向?qū)ο笙到y(tǒng)中最早定義的,有的在其他語(yǔ)言中已經(jīng)采用,面向?qū)ο笳Z(yǔ)言所增加新概念是類(lèi)和繼承性,并把以上幾個(gè)概念和特點(diǎn)加以擴(kuò)充和提高,使其有機(jī)地結(jié)合起來(lái),形成了更加強(qiáng)的特有的能力。

OOA的概念在80年代后期提出,目前正處于研究和開(kāi)發(fā)階段,還不很成熟,許多問(wèn)題還沒(méi)有得到完全解決。OOA方法不同于結(jié)構(gòu)化分析方法(SA),它強(qiáng)調(diào)的是對(duì)一個(gè)系統(tǒng)對(duì)

象的特征和行為的定義。

OOA方法并非丟棄已有的需求分析方法,如功能分解法、數(shù)據(jù)流方法(即結(jié)構(gòu)化分析方法)和信息造型方法等,而是將它們的精華綜合起來(lái),發(fā)展并形成更為自然,更易于為人們所理解的面向?qū)ο蟮男枨蠓治龇椒ā?.3面向?qū)ο蟮姆治?OOA)方法實(shí)際上OOA方法是把信息造型方法的主要優(yōu)點(diǎn)(來(lái)自E—R圖和語(yǔ)義數(shù)據(jù)模型)與OOP的主要優(yōu)點(diǎn)集中在一起,擴(kuò)充了對(duì)象的含義,所以比信息造型方法更完整地實(shí)現(xiàn)了從問(wèn)題空間到系統(tǒng)模型的直接映射。

面向?qū)ο蟮姆治龇椒ㄖ饕峁┝?種形式的模型:信息模型、狀態(tài)模型和處理模型。這三種模型被有機(jī)地結(jié)合起來(lái),相互影響;相互制約。圖9.3充分說(shuō)明了這三個(gè)模型之間的關(guān)系。圖9.3

1.信息模型

信息模型是面向?qū)ο蠓治龅幕A(chǔ),它用實(shí)體一關(guān)系圖(E-R圖)來(lái)描述。它開(kāi)始用于數(shù)據(jù)庫(kù)的設(shè)計(jì),描述數(shù)據(jù)之間或?qū)傩灾g的關(guān)系,E-R圖則是所用的工具,這一點(diǎn)在第八章數(shù)據(jù)庫(kù)設(shè)計(jì)方法中已有介紹。在面向?qū)ο蠓治鲋?,由于加入“面向?qū)ο蟆备拍睿珽-R模型有了很大提高。兩者之間的不同之處是:在基于OOA方法的E,R圖中,數(shù)據(jù)封裝、實(shí)體和對(duì)它的屬性處理組合在同一單元之中,并采用繼承性和消息傳遞來(lái)支持模型。信息模型由問(wèn)題領(lǐng)域中的對(duì)象所組成,根據(jù)對(duì)象、屬性及對(duì)象之間的關(guān)系來(lái)規(guī)范問(wèn)題

領(lǐng)域中的信息。信息模型用兩種基本的形式來(lái)描述,一種是文本說(shuō)明形式,包括對(duì)系統(tǒng)中所有的對(duì)象、屬性、關(guān)系的描述與說(shuō)明;另一種是圖形表示形式,它提供一種全局的觀點(diǎn)來(lái)考慮系統(tǒng)中的相關(guān)性、完全性和一致性。

信息模型的圖形描述形式主要有兩種,即信息結(jié)構(gòu)圖和信息結(jié)構(gòu)概圖;其文本文件描述形式主要有3種,即對(duì)象說(shuō)明文件、關(guān)系說(shuō)明文件以及概要說(shuō)明文件。

2.狀態(tài)模型

信息模型一旦建立起來(lái),就要考查對(duì)象和關(guān)系的動(dòng)態(tài)行為。面向?qū)ο蟮姆治鲈O(shè)定所有的對(duì)象和關(guān)系都具有其生命周期。生命周期由許多階段組成,每個(gè)特定的階段都包括一系列的運(yùn)行規(guī)律和行為規(guī)則,用于調(diào)節(jié)和管理對(duì)象的行為。對(duì)象和關(guān)系的生命周期用其狀態(tài)模型來(lái)描述。

狀態(tài)模型用來(lái)描述對(duì)象和關(guān)系的狀態(tài)、狀態(tài)轉(zhuǎn)換的觸發(fā)事件、對(duì)象的行為。狀態(tài)模型可用多種形式加以描述,如狀態(tài)轉(zhuǎn)換圖和狀態(tài)轉(zhuǎn)換表。圖形描述可以幫助我們理解對(duì)象生

命周期的轉(zhuǎn)換過(guò)程,表格描述可以更詳細(xì)地說(shuō)明對(duì)象的狀態(tài)轉(zhuǎn)換關(guān)系。

3.處理模型

為狀態(tài)模型中的每個(gè)狀態(tài)建立一個(gè)數(shù)據(jù)流圖的處理過(guò)程稱(chēng)為處理模型。在面向?qū)ο蟮闹胤治龇椒ㄖ?,建立?shù)據(jù)流圖的作用不如其它面向功能的方法明顯,因?yàn)閿?shù)據(jù)流圖中并沒(méi)有添加任何新的信息。但建立處理模型可以使系統(tǒng)分析員對(duì)系統(tǒng)設(shè)計(jì)進(jìn)行精化。比較某個(gè)狀態(tài)模型中所有狀態(tài)的數(shù)據(jù)流圖就可以發(fā)現(xiàn)一些相同的處理(或相似的處理)重復(fù)使用,在這種情況下,建立處理模型有利于對(duì)處理操作的定義做些調(diào)整,以便使系統(tǒng)結(jié)構(gòu)更趨合理和完善。面向?qū)ο蟮南到y(tǒng)分析提供了一種獨(dú)特的方法,它反映了軟件問(wèn)題的本質(zhì)所在,即數(shù)據(jù)處理。數(shù)據(jù)和處理是兩件顯然相關(guān)的事情,將數(shù)據(jù)和處理人為地分離,可能會(huì)人為地制造

系統(tǒng)分析的障礙。OOA方法是一種以數(shù)據(jù)或信息為主線(xiàn),數(shù)據(jù)和處理相結(jié)合的方法,它是以建立系統(tǒng)的信息模型為基礎(chǔ)的。在面向?qū)ο蟮南到y(tǒng)分析方法中最重要的一步是建立系統(tǒng)的信息模型,它在一定程度上發(fā)揮了關(guān)鍵的作用。一旦正確地建立了系統(tǒng)的信息模型,后繼的軟件開(kāi)發(fā)工作通常是十分

常規(guī)的事情,也使開(kāi)發(fā)者避免了許多麻煩和意外。建立信息系統(tǒng)模型的方法是現(xiàn)代軟件工程中一個(gè)十分有用的方法。9.4建立信息模型的基本方法建立系統(tǒng)的信息模型一般經(jīng)歷下面幾個(gè)步驟:

(1)系統(tǒng)調(diào)研。

(2)對(duì)系統(tǒng)進(jìn)行初始描述。

(3)建立系統(tǒng)的信息結(jié)構(gòu)圖或信息結(jié)構(gòu)概圖。

(4)建立系統(tǒng)的文本說(shuō)明文件。。

下面分別討論上述4個(gè)步驟的實(shí)現(xiàn)方法。

1.系統(tǒng)調(diào)研

建立信息模型的最大困難是如何獲得對(duì)所研究問(wèn)題的理解,而要充分理解問(wèn)題,就必須進(jìn)行周密的調(diào)查研究。在這里提出一些建議供參考,幫助讀者搜索必要的信息,并將信

息轉(zhuǎn)化成對(duì)問(wèn)題的理解。

1)尋求有用的文件。大量的信息可以從應(yīng)用專(zhuān)家建立或使用的文件中提取出來(lái)。這些文件包括舊系統(tǒng)和它的工作流程分析,操作說(shuō)明手冊(cè)等。此外,還有報(bào)表,它揭示了人們

思考問(wèn)題的方法。可以通過(guò)閱讀空白和已填寫(xiě)的報(bào)表,考察它的內(nèi)容以及不一致性。報(bào)表包含了諸如顧客帳單,進(jìn)料單,訂貨單以及進(jìn)度報(bào)告等多種信息。再還有報(bào)告、手工制表、分布圖、邏輯圖、結(jié)構(gòu)圖等,這些都是有益的信息源。

另外,為了獲得更多的一般性的背景信息,還要去圖書(shū)館查閱大量的有關(guān)資料。

2)對(duì)話(huà)。它是一種傳統(tǒng)的作法,善于思考的軟件開(kāi)發(fā)人員可以從中得到許多有效的信息。有效的對(duì)話(huà)常常在深入考查現(xiàn)實(shí)問(wèn)題和高度抽象之間來(lái)回反復(fù)。

參加對(duì)話(huà)的人通常包括專(zhuān)家和所研究問(wèn)題領(lǐng)域中的專(zhuān)業(yè)人員以及系統(tǒng)建模人員,這兩方面的專(zhuān)業(yè)人員都是不可缺少的。

對(duì)話(huà)的形式有多樣性提問(wèn)、相關(guān)性提問(wèn)、排除性提問(wèn)等,目的是搞清對(duì)象的識(shí)別,屬性的確定以及對(duì)象之間的關(guān)系等。

3)技術(shù)性注釋。有效的技術(shù)性注釋常常是將信息轉(zhuǎn)化為對(duì)問(wèn)題的理解所必需的。應(yīng)鼓勵(lì)分析人員寫(xiě)技術(shù)筆記,這在分析早期階段是特別有用的。技術(shù)性注釋包含了大量的內(nèi)容,這些內(nèi)容可用于對(duì)象描述。在進(jìn)行多次的對(duì)話(huà),會(huì)議,現(xiàn)場(chǎng)參觀或參與工作以后,考慮寫(xiě)一份技術(shù)筆記。

2.系統(tǒng)的初始描述

在系統(tǒng)調(diào)研的基礎(chǔ)上,要將調(diào)研得來(lái)的零碎材料和有關(guān)系統(tǒng)的各方面信息進(jìn)行一系列的概括、歸納、整理,形成待開(kāi)發(fā)系統(tǒng)的初始描述。這是在建立信息模型之前很重要的一步。

在對(duì)系統(tǒng)進(jìn)行初始描述時(shí),應(yīng)以相同的抽象層次描述系統(tǒng),也就是說(shuō),整個(gè)初始描述的抽象層次應(yīng)該保持一致。應(yīng)該著重弄清楚為解決問(wèn)題必須做什么,而不是解決問(wèn)題時(shí)所要進(jìn)行的處理過(guò)程的細(xì)節(jié)。初始描述來(lái)源于調(diào)研材料,而且是非正式的,通常用自然語(yǔ)言或用草圖來(lái)表示。下面是一個(gè)關(guān)于自動(dòng)售貨機(jī)的部分初始描述的例子。

自動(dòng)售貨機(jī)用于將貨物分配給顧客。開(kāi)始售貨時(shí)顧客將貨幣通過(guò)接收孔投入機(jī)器中的硬幣儲(chǔ)藏器中,機(jī)器檢查貨幣的大小,重量,厚度,邊緣類(lèi)型。有效的貨幣是五角幣,一角幣和五分幣,其它的貨幣假定都被認(rèn)為是假幣,機(jī)器拒絕接收假幣,并將其從退出孔退出。

當(dāng)機(jī)器接收了有效的貨幣之后,將貨幣送入硬幣儲(chǔ)藏器中,顧客支付的貨幣根據(jù)硬幣的面值進(jìn)行累加。自動(dòng)售貨機(jī)裝有貨物分配器,每個(gè)貨物分配器中包含有零個(gè)或多個(gè)貨物并且具有相同的價(jià)格。請(qǐng)讀者注意,在對(duì)系統(tǒng)進(jìn)行初始描述時(shí),要盡量做到句子的語(yǔ)法正確,慎重使用名詞、動(dòng)詞、形容詞和同義詞,因?yàn)檫@些詞是進(jìn)一步識(shí)別系統(tǒng)中的對(duì)象、屬性及關(guān)系的基礎(chǔ)。

3.建立系統(tǒng)的信息結(jié)構(gòu)圖或信息結(jié)構(gòu)概圖

信息結(jié)構(gòu)圖是以各種形式實(shí)體關(guān)系圖(例E—R圖)為基礎(chǔ)的。它只與信息模型中說(shuō)明的對(duì)象、屬性和關(guān)系有關(guān)。但信息結(jié)構(gòu)圖并不給出它們的含義。在信息結(jié)構(gòu)圖中使用的圖

形符號(hào)概括如下:

·用方框表示對(duì)象及其屬性,在信息模型中,屬性可以加注釋。

·在表示標(biāo)識(shí)符的任何屬性名稱(chēng)前,附加一個(gè)星號(hào)“*”,在非標(biāo)識(shí)符屬性名稱(chēng)前,附加一個(gè)圓點(diǎn)“.”或圓圈“?!?。

·在參考性屬性后附加(R)或(參考)。

·可以以任何順序列出屬性名稱(chēng)。

對(duì)象及其屬性的信息結(jié)構(gòu)圖如圖9.4所示。對(duì)象之間的二元關(guān)系由畫(huà)在對(duì)象方框之間帶箭頭直線(xiàn)段來(lái)說(shuō)明;父型/子型結(jié)構(gòu)可表示成圖9.5所示的形式。圖中,短線(xiàn)指明了父型對(duì)

象,與父型對(duì)象通過(guò)短線(xiàn)連接的所有其他對(duì)象均為子型對(duì)象。圖9.4圖9.5如果在信息結(jié)構(gòu)圖中對(duì)對(duì)象和關(guān)系進(jìn)行編號(hào),那么,信息結(jié)構(gòu)圖便可作為文本說(shuō)明文件的圖表目錄。

另一種稱(chēng)為信息結(jié)構(gòu)概圖,它將屬性名從方框中去掉,只留下對(duì)象名,其它方面和信息結(jié)構(gòu)圖完全一樣。概圖使得圖變得緊湊,容易直觀反映系統(tǒng)概貌。

在對(duì)系統(tǒng)進(jìn)行了初始化描述后,分析人員應(yīng)根據(jù)系統(tǒng)的初始描述建立系統(tǒng)的信息結(jié)構(gòu)圖或信息結(jié)構(gòu)概圖。該圖說(shuō)明了系統(tǒng)的組成部分以及各部分之間的關(guān)系。建立信息結(jié)構(gòu)圖

或信息結(jié)構(gòu)概圖的步驟如下:

1)識(shí)別系統(tǒng)中的對(duì)象及其屬性。識(shí)別對(duì)象是建立信息模型的重要問(wèn)題。識(shí)別對(duì)象及其屬性的基本依據(jù)是系統(tǒng)的初始描述。系統(tǒng)初始描述中的名詞、名詞詞組可能是對(duì)象的名

詞、對(duì)象的屬性的名稱(chēng)或是其他對(duì)象與屬性的同義詞,同義詞在分析中應(yīng)刪除掉。屬性應(yīng)與現(xiàn)有的對(duì)象相聯(lián)系。在自動(dòng)售貨機(jī)的例子中,代表系統(tǒng)中部分對(duì)象的名詞有:貨幣、硬

幣、假幣、硬幣儲(chǔ)藏器、五分幣、一角幣、五角幣等,代表屬性的名詞有:重量、厚度、價(jià)格等。識(shí)別出所有的對(duì)象及其屬性之后,要進(jìn)一步確定對(duì)象是屬于問(wèn)題空間還是屬于求解空間,因?yàn)橹挥袑儆谇蠼饪臻g(軟件系統(tǒng)之內(nèi))的對(duì)象才是模型所需要的。

對(duì)象的屬性除了名詞及其詞組外,還可能是形容詞,要根據(jù)初始描述的上下文含義來(lái)確定。準(zhǔn)確地確定對(duì)象的屬性直接關(guān)系到系統(tǒng)的信息量或數(shù)據(jù)量。其原則或標(biāo)準(zhǔn)是在滿(mǎn)足

系統(tǒng)功能的前提下,使系統(tǒng)中的信息量或數(shù)據(jù)量最少。

2)識(shí)別系統(tǒng)中對(duì)象之間的關(guān)系。關(guān)系的識(shí)別完全依賴(lài)于系統(tǒng)的初始描述及其含義。在初始描述中,動(dòng)詞或介詞詞組往往隱含著兩個(gè)對(duì)象之間的關(guān)系的名稱(chēng)及其含義。如在自動(dòng)

售貨機(jī)例子中,硬幣儲(chǔ)藏器和硬幣之間的關(guān)系是:

硬幣儲(chǔ)藏器存放硬幣(1:M)

硬幣存放在硬幣儲(chǔ)藏器中

3)畫(huà)出系統(tǒng)的信息結(jié)構(gòu)圖或信息結(jié)構(gòu)概圖。識(shí)別出系統(tǒng)中的對(duì)象及其屬性以及對(duì)象之間的關(guān)系之后,便可著手畫(huà)出系統(tǒng)的信息結(jié)構(gòu)圖或信息結(jié)構(gòu)概圖。圖9.6是自動(dòng)售貨機(jī)的部分信息結(jié)構(gòu)概圖。圖9.6圖9.6表明:貨幣由貨幣接收孔進(jìn)入自動(dòng)售貨機(jī)。

一個(gè)貨幣可能是一枚假幣或真幣(硬幣),合法的硬幣對(duì)象是五分幣、一角幣或五角幣。硬幣存放在硬幣儲(chǔ)藏器中。

4.建立系統(tǒng)的文本說(shuō)明文件

為了進(jìn)一步對(duì)信息模型進(jìn)行詳細(xì)的描述,需要建立信息模型的文本說(shuō)明文件。它包括對(duì)象說(shuō)明文件、關(guān)系說(shuō)明文件和概要文件。

對(duì)象說(shuō)明文件用文本的形式描述了整個(gè)系統(tǒng)中的對(duì)象,即信息模型中的每個(gè)對(duì)象都要有一個(gè)說(shuō)明。表9.1是自動(dòng)售貨機(jī)系統(tǒng)中的為描述對(duì)象硬幣而建立的對(duì)象說(shuō)明文件。關(guān)系說(shuō)明文件用文本的形式描述了整個(gè)系統(tǒng)中對(duì)象之間的全部關(guān)系。每個(gè)關(guān)系的描述包括關(guān)系的名稱(chēng)、關(guān)系的類(lèi)型、關(guān)系的含義及關(guān)系的形成依據(jù)。

表9.2是為自動(dòng)售貨機(jī)中的部分關(guān)系所建立的說(shuō)明文件。概要說(shuō)明文件是系統(tǒng)中所有對(duì)象和關(guān)系的簡(jiǎn)要說(shuō)明文件,以簡(jiǎn)明的形式反映了系統(tǒng)中的全部信息,可作為備用參考。其形式如下:利用系統(tǒng)的初始描述建立的信息模型不可能一次就完全符合系統(tǒng)的需求,一般要經(jīng)過(guò)多次反復(fù)修改和精化,才能得到一個(gè)完全符合需求、信息量最小的、包含正確信息的信息

模型。面向?qū)ο蟮脑O(shè)計(jì)(Object—OrientedDesign)方法簡(jiǎn)稱(chēng)OOD方法。按照軟件系統(tǒng)生命周期的模型,系統(tǒng)分析之后必然是系統(tǒng)的設(shè)計(jì),在采用OOA方法之后,較自然而且相互銜接得

最好的方法,必然是面向?qū)ο蟮脑O(shè)計(jì)方法(OOD)。由于面向?qū)ο蠓椒ㄊ且环N相對(duì)年輕的方法,它用于分析與設(shè)計(jì)都處于尚未成熟與定型的階段,有關(guān)OOD方法也只能簡(jiǎn)單地介紹一

些基本的觀點(diǎn)。9.5面向?qū)ο蟮脑O(shè)計(jì)(OOD)方法

1.OOD的主要任務(wù)和目標(biāo)

在面向?qū)ο箝_(kāi)發(fā)方法中,分析和設(shè)計(jì)雖然是不同的活動(dòng),但兩者配合相當(dāng)密切,即從OOA到OOD是對(duì)現(xiàn)實(shí)世界的進(jìn)一步建模。OOA強(qiáng)調(diào)對(duì)現(xiàn)實(shí)世界中的問(wèn)題域的理解,為問(wèn)

題域建立模型,通過(guò)分析得到對(duì)象及這些對(duì)象間的相互關(guān)系。OOD則要求對(duì)特定的實(shí)現(xiàn)空間建立模型,即解決這些對(duì)象及其相互關(guān)系的實(shí)現(xiàn)問(wèn)題。

OOD是一種新型的系統(tǒng)設(shè)計(jì)方法,它的核心概念是對(duì)象。它既不是功能,也不是數(shù)據(jù)的分解過(guò)程,而是首先在現(xiàn)實(shí)世界中尋找、識(shí)別出影響用戶(hù)解決問(wèn)題,并必須進(jìn)行操縱的

對(duì)象,然后用相應(yīng)的計(jì)算機(jī)中的軟件對(duì)象來(lái)仿真現(xiàn)實(shí)世界的對(duì)象及其行為。實(shí)際上,客觀世界問(wèn)題的解早已存在于人工系統(tǒng)中,因此,采用OOD方法對(duì)已存在的且變化不大的人工

系統(tǒng)進(jìn)行設(shè)計(jì)時(shí),除了存在少量求解外,主要是如何用計(jì)算機(jī)仿真人工系統(tǒng),將客觀問(wèn)題計(jì)算機(jī)化,從而獲得更有效、更優(yōu)質(zhì)、更可靠的客觀世界問(wèn)題的解。

OOD方法為仿真人工系統(tǒng)提供了很自然、很直接的對(duì)應(yīng)關(guān)系,它克服了傳統(tǒng)的分析方法與設(shè)計(jì)方法所存在的客觀世界問(wèn)題領(lǐng)域與軟件系統(tǒng)結(jié)構(gòu)之間的不一致性的矛盾,這也是OO方法較傳統(tǒng)方法最為突出的優(yōu)點(diǎn)之一。

OOD方法的主要目標(biāo)是提高軟件生產(chǎn)率,提高質(zhì)量及提高可維護(hù)性。OOD是一種系統(tǒng)設(shè)計(jì)活動(dòng),它不僅能減少測(cè)試時(shí)間,而且能提高整個(gè)生命周期的效率。它還能提供對(duì)軟件

重用的支持,支持重用的是類(lèi)的外部接口和組織結(jié)構(gòu)。

2.OOD方法的實(shí)現(xiàn)步驟

面向?qū)ο蟮脑O(shè)計(jì)一般可分為兩個(gè)階段:概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)。概要設(shè)計(jì)階段的主要任務(wù)是定義系統(tǒng)是如何工作的,它保持較大部分獨(dú)立于編程語(yǔ)言的特點(diǎn)。而詳細(xì)設(shè)計(jì)則進(jìn)一

步細(xì)化概要設(shè)計(jì)階段所給出的對(duì)象描述,它與編程語(yǔ)言有密切的聯(lián)系,若能采用面向?qū)ο蟮木幊陶Z(yǔ)言,將會(huì)更利于OOD的編程模塊設(shè)計(jì)。概要設(shè)計(jì)的主要工作是:

1)進(jìn)一步細(xì)化對(duì)象行為和對(duì)象之間交互作用,并加入必要的新對(duì)象。

2)對(duì)類(lèi)加以認(rèn)定,以得到解空間的結(jié)構(gòu)形式,為系統(tǒng)的具體實(shí)現(xiàn)提供必要的支持。

3)把已認(rèn)定的類(lèi)組成類(lèi)陣,用以支持重用。

4)確定外部接口和主要的數(shù)據(jù)結(jié)構(gòu)。

詳細(xì)設(shè)計(jì)是緊接著概要設(shè)計(jì)進(jìn)行的,其目的則是為實(shí)現(xiàn)做好準(zhǔn)備,而編程所需要的主要是有關(guān)對(duì)象的描述,因此,加細(xì)概要設(shè)計(jì)階段所給出的對(duì)象描述將是這個(gè)階段的主要工作。例如,一個(gè)對(duì)象中的方法,哪些是公用的,

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論