第6章-面向?qū)ο蟮南到y(tǒng)設(shè)計(jì).ppt_第1頁(yè)
第6章-面向?qū)ο蟮南到y(tǒng)設(shè)計(jì).ppt_第2頁(yè)
第6章-面向?qū)ο蟮南到y(tǒng)設(shè)計(jì).ppt_第3頁(yè)
第6章-面向?qū)ο蟮南到y(tǒng)設(shè)計(jì).ppt_第4頁(yè)
第6章-面向?qū)ο蟮南到y(tǒng)設(shè)計(jì).ppt_第5頁(yè)
已閱讀5頁(yè),還剩29頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、梁昌勇,信息系統(tǒng)分析、設(shè)計(jì)與開(kāi)發(fā)方法,第6章 面向?qū)ο蟮南到y(tǒng)分析,6.1 從面向?qū)ο蠓治龅矫嫦驅(qū)ο笤O(shè)計(jì)6.2 面向?qū)ο笤O(shè)計(jì)的準(zhǔn)則 6.3 啟發(fā)式規(guī)則 6.4 軟件重用 6.5 系統(tǒng)分解 6.6 典型的面向?qū)ο笤O(shè)計(jì) 6.7 類中服務(wù)的設(shè)計(jì) 6.8 關(guān)聯(lián)設(shè)計(jì) 6.9 設(shè)計(jì)優(yōu)化,目錄,6.1從面向?qū)ο蠓治龅矫嫦驅(qū)ο笤O(shè)計(jì),6.1.1 從面向?qū)ο蠓治龅矫嫦驅(qū)ο笤O(shè)計(jì),面向?qū)ο蟮南到y(tǒng)設(shè)計(jì)(OOD) 就是在系統(tǒng)分析模型的基礎(chǔ)上運(yùn)用面向?qū)ο蟮姆椒ǎ瑏?lái)設(shè)計(jì)產(chǎn)生一個(gè)符合具體實(shí)現(xiàn)條件的面向?qū)ο笤O(shè)計(jì)(OOD)模型。 對(duì)于面向?qū)ο笤O(shè)計(jì)方法,盡管分析和設(shè)計(jì)的定義有明顯區(qū)別,但是在實(shí)際的軟件開(kāi)發(fā)過(guò)程中二者的界限是模糊的。分析

2、過(guò)程的結(jié)果可以直接映射成設(shè)計(jì)的結(jié)果,初期的分析過(guò)程主要是提取與系統(tǒng)相關(guān)的主要類和業(yè)務(wù)流程,而在設(shè)計(jì)階段將所有的類和流程細(xì)化,加深和補(bǔ)充對(duì)系統(tǒng)需求的理解,從而進(jìn)一步完善分析結(jié)果。,OOA與OOD關(guān)系 它們采用了相同的符號(hào)表示,因此相互之間沒(méi)有明顯的分界線,往往是反復(fù)重疊地進(jìn)行。 系統(tǒng)分析主要考慮的是做什么,因此它識(shí)別和定義的類/對(duì)象,是一些直接反映問(wèn)題域和系統(tǒng)任務(wù)的;而系統(tǒng)設(shè)計(jì)主要解決系統(tǒng)如何做,所以它識(shí)別和定義的類/對(duì)象是附加的,反映了需求的一種實(shí)現(xiàn)(對(duì)話層、任務(wù)管理層、數(shù)據(jù)管理層)。 系統(tǒng)分析是在較高的抽象層次上進(jìn)行,而系統(tǒng)設(shè)計(jì)則在較低的抽象層次上進(jìn)行。系統(tǒng)分析是獨(dú)立于程序設(shè)計(jì)語(yǔ)言的,初步的

3、系統(tǒng)設(shè)計(jì)在很大程度上與語(yǔ)言無(wú)關(guān),但詳細(xì)的系統(tǒng)設(shè)計(jì)則都會(huì)依賴于程序設(shè)計(jì)語(yǔ)言。,6.1從面向?qū)ο蠓治龅矫嫦驅(qū)ο笤O(shè)計(jì),6.1.1 從面向?qū)ο蠓治龅矫嫦驅(qū)ο笤O(shè)計(jì),面向?qū)ο笙到y(tǒng)設(shè)計(jì)的主要工作包括以下幾個(gè)方面的內(nèi)容: (1) 設(shè)計(jì)對(duì)象與類。包括分析對(duì)象模型,設(shè)計(jì)對(duì)象與類的屬性,設(shè)計(jì)對(duì)象與類的實(shí)現(xiàn)結(jié)構(gòu),以及設(shè)計(jì)消息與事件的內(nèi)容和格式。 (2) 設(shè)計(jì)系統(tǒng)結(jié)構(gòu)。設(shè)計(jì)系統(tǒng)結(jié)構(gòu)階段的主要任務(wù)是設(shè)計(jì)組件與子系統(tǒng)以及它們之間的靜態(tài)和動(dòng)態(tài)關(guān)系。對(duì)于人機(jī)界面、數(shù)據(jù)管理、任務(wù)管理等問(wèn)題,在面向?qū)ο蠓治鲭A段一般不提及,而是等到面向?qū)ο笤O(shè)計(jì)階段再進(jìn)行分析。,6.1從面向?qū)ο蠓治龅矫嫦驅(qū)ο笤O(shè)計(jì),6.1.1 從面向?qū)ο蠓治龅矫嫦驅(qū)ο?/p>

4、設(shè)計(jì),面向?qū)ο笙到y(tǒng)設(shè)計(jì)的主要工作包括以下幾個(gè)方面的內(nèi)容: (3) 設(shè)計(jì)人機(jī)交互子系統(tǒng)。此階段的主要任務(wù)是設(shè)計(jì)用戶界面,設(shè)計(jì)人機(jī)交互操作命令和操作順序,設(shè)計(jì)詳細(xì)交互過(guò)程,設(shè)計(jì)工作的內(nèi)容包括用戶分類,設(shè)計(jì)人機(jī)交互類等。 (4) 設(shè)計(jì)數(shù)據(jù)管理子系統(tǒng)。此階段主要是確定數(shù)據(jù)管理方法,設(shè)計(jì)數(shù)據(jù) 庫(kù)與數(shù)據(jù)文件的邏輯結(jié)構(gòu)和物理結(jié)構(gòu)。面向?qū)ο蟮姆治鲈O(shè)計(jì)方法注重的是問(wèn)題涉及的對(duì)象以及對(duì)象的相互關(guān)系和相互作用,并在此基礎(chǔ)上構(gòu)造這些問(wèn)題的模型,以期將要解決的實(shí)質(zhì)問(wèn)題模型化。,6.1從面向?qū)ο蠓治龅矫嫦驅(qū)ο笤O(shè)計(jì),6.1.1 從面向?qū)ο蠓治龅矫嫦驅(qū)ο笤O(shè)計(jì),簡(jiǎn)單與復(fù)雜 (1) 小規(guī)模和小團(tuán)隊(duì)開(kāi)發(fā)的系統(tǒng)在整體框架選擇和層次結(jié)

5、構(gòu)上應(yīng)盡量簡(jiǎn)單,而大規(guī)模的系統(tǒng),要考慮到眾多模塊的合理配置,需要構(gòu)建更多的層次,選用成熟的框架體系。 (2) 在系統(tǒng)資源有限的硬件平臺(tái)上運(yùn)行的系統(tǒng),例如嵌入式系統(tǒng),在設(shè)計(jì)時(shí)應(yīng)盡量簡(jiǎn)單,以提高運(yùn)行效率;而在PC機(jī)以及服務(wù)器上運(yùn)行的系統(tǒng),可以采用復(fù)雜設(shè)計(jì),已獲得更好的擴(kuò)展性。 (3) 對(duì)于運(yùn)行性能要求高的系統(tǒng),例如需要提供并發(fā)服務(wù)的服務(wù)器系統(tǒng),則在訪問(wèn)頻繁的模塊設(shè)計(jì)上應(yīng)遵循簡(jiǎn)單的原則。,6.2 面向?qū)ο笙到y(tǒng)設(shè)計(jì)的準(zhǔn)則,6.2.1面向?qū)ο笙到y(tǒng)設(shè)計(jì)準(zhǔn)則,簡(jiǎn)單與復(fù)雜 (4) 對(duì)于開(kāi)發(fā)水平參差不齊的團(tuán)隊(duì),在開(kāi)發(fā)方案的選擇上注意選取簡(jiǎn)單的方案,減少內(nèi)部培訓(xùn)和交流的代價(jià)。而成熟的開(kāi)發(fā)團(tuán)隊(duì),則可以根據(jù)設(shè)計(jì)目標(biāo)靈

6、活地選擇設(shè)計(jì)方案。 (5) 在一個(gè)系統(tǒng)的設(shè)計(jì)中,簡(jiǎn)單和復(fù)雜的原則可能是交替作用的,在整體結(jié)構(gòu)復(fù)雜的系統(tǒng)中,可能在關(guān)鍵性能模塊的設(shè)計(jì)上追求簡(jiǎn)單。而在整體結(jié)構(gòu)簡(jiǎn)單的系統(tǒng)中,對(duì)于某些通用性較強(qiáng)的模塊可能采用復(fù)雜設(shè)計(jì)。 (6) 即使確定了簡(jiǎn)單和復(fù)雜的原則,也需要考慮到“度”,過(guò)度設(shè)計(jì)只會(huì)使得某些超前的設(shè)計(jì)方案被廢棄。,6.2 面向?qū)ο笙到y(tǒng)設(shè)計(jì)的準(zhǔn)則,6.2.1面向?qū)ο笙到y(tǒng)設(shè)計(jì)準(zhǔn)則,模塊化 模塊化是軟件設(shè)計(jì)方法不斷演變所追求的目標(biāo)之一,軟件的模塊化使得軟件的各個(gè)功能在設(shè)計(jì)時(shí)相對(duì)獨(dú)立,能夠降低軟件設(shè)計(jì)的復(fù)雜度。 面向?qū)ο筌浖_(kāi)發(fā)方法,對(duì)象就是模塊。它是把數(shù)據(jù)結(jié)構(gòu)和操作這些數(shù)據(jù)的方法緊密地結(jié)合在一起所構(gòu)成的

7、模塊。 對(duì)象與單元的區(qū)別在于:對(duì)象是數(shù)據(jù)與操作緊密結(jié)合的,在軟件運(yùn)行中有一定生命周期的實(shí)體。而單元只是一組函數(shù)功能的集合。,6.2 面向?qū)ο笙到y(tǒng)設(shè)計(jì)的準(zhǔn)則,6.2.1面向?qū)ο笙到y(tǒng)設(shè)計(jì)準(zhǔn)則,抽象化 面向?qū)ο蠓椒ú粌H支持過(guò)程抽象,而且支持?jǐn)?shù)據(jù)抽象。 在類的設(shè)計(jì)中要考慮各種類的關(guān)系,需要從具體類中抽象出具有共同特性的父類或者接口,子類繼承父類的方法,并可以重構(gòu)不同的實(shí)現(xiàn)。類實(shí)際上是一種抽象數(shù)據(jù)類型,它對(duì)外開(kāi)放的公共接口(interface)構(gòu)成了類的規(guī)格說(shuō)明,這種接口規(guī)定了外界可以使用的合法操作符,利用這些操作符可以對(duì)類實(shí)例中包含的數(shù)據(jù)進(jìn)行操作。,6.2 面向?qū)ο笙到y(tǒng)設(shè)計(jì)的準(zhǔn)則,6.2.1面向?qū)ο笙?/p>

8、統(tǒng)設(shè)計(jì)準(zhǔn)則,弱耦合與信息隱藏 對(duì)象間的耦合可分為兩大類: (1)交互耦合。如果對(duì)象間的耦合是通過(guò)消息連接來(lái)實(shí)現(xiàn),則這種耦合屬于交互耦合。交互耦合應(yīng)該盡可能松散。 (2)繼承耦合。繼承是一般化類與特殊類間耦合的一種形式,從本質(zhì)來(lái)看,是一種通過(guò)繼承關(guān)系結(jié)合起來(lái)的基類和派生類,構(gòu)成了系統(tǒng)中粒度更大的模塊。它們之間是結(jié)合得越緊密越好。,6.2 面向?qū)ο笙到y(tǒng)設(shè)計(jì)的準(zhǔn)則,6.2.1面向?qū)ο笙到y(tǒng)設(shè)計(jì)準(zhǔn)則,信息隱藏 實(shí)現(xiàn)弱耦合的重要手段,在面向?qū)ο蠓椒ㄖ?,信息隱藏通過(guò)對(duì)象的封裝性實(shí)現(xiàn). 對(duì)象的封裝有兩種形式: 源代碼級(jí)的封裝; 二進(jìn)制代碼級(jí)的封裝。,6.2 面向?qū)ο笙到y(tǒng)設(shè)計(jì)的準(zhǔn)則,6.2.1面向?qū)ο笙到y(tǒng)設(shè)計(jì)準(zhǔn)

9、則,可重用 軟件重用是提供高軟件開(kāi)發(fā)生產(chǎn)率和目標(biāo)系統(tǒng)質(zhì)量的重要途徑。派生和繼承是代碼重用的基礎(chǔ)。 重用有兩方面的含義:一是盡量使用已有的類(包括開(kāi)發(fā)環(huán)境提供的類庫(kù),及以往開(kāi)發(fā)類似系統(tǒng)時(shí)創(chuàng)建的類),二是如果確實(shí)需要?jiǎng)?chuàng)建新類,則在設(shè)計(jì)這些新類的協(xié)議時(shí),應(yīng)該考慮將來(lái)的可重復(fù)使用性。,6.2 面向?qū)ο笙到y(tǒng)設(shè)計(jì)的準(zhǔn)則,6.2.1面向?qū)ο笙到y(tǒng)設(shè)計(jì)準(zhǔn)則,設(shè)計(jì)結(jié)果應(yīng)該清晰易懂 (1) 用詞一致 (2) 使用已有的協(xié)議 (3) 減少消息模式的數(shù)目 (4) 避免模糊的定義 使類等級(jí)中包含的層次數(shù)適當(dāng) 應(yīng)該使類等級(jí)中包含的層次數(shù)適當(dāng) ,一般來(lái)說(shuō),在一個(gè)中等規(guī)模(大約包含100個(gè)類)的系統(tǒng)中,類等級(jí)層次數(shù)應(yīng)保持為72

10、。,6.3 啟發(fā)規(guī)則,設(shè)計(jì)簡(jiǎn)單的類 (1)避免包含過(guò)多的屬性; (2)有明確的定義;為了使類的定義明確,分配給每個(gè)類的任 務(wù)應(yīng)該簡(jiǎn)單,最好能用一兩個(gè)簡(jiǎn)單語(yǔ)句描述它的任務(wù)。 (3)盡量簡(jiǎn)化對(duì)象之間的合作關(guān)系;對(duì)象間的合作關(guān)系應(yīng)盡可 能的簡(jiǎn)單。 (4)不要提供太多服務(wù); 一個(gè)類提供的公共服務(wù)不超過(guò)7個(gè); 在開(kāi)發(fā)大型軟件系統(tǒng)時(shí),解決這個(gè)問(wèn)題的辦法,是把系統(tǒng) 中的類按邏輯分組。 (5) 使用簡(jiǎn)單的協(xié)議;一般消息中的參數(shù)不要超過(guò)3個(gè)。 (6) 使用簡(jiǎn)單的服務(wù); (7) 把設(shè)計(jì)變動(dòng)減至最小。,6.3 啟發(fā)規(guī)則,面向?qū)ο蠓椒ǖ囊粋€(gè)主要目標(biāo),就是提高軟件的可重用性。 軟件重用就是將已有的軟件成分用于構(gòu)造新的軟

11、件系統(tǒng)??梢员恢赜玫能浖煞忠话惴Q作可重用構(gòu)件,無(wú)論對(duì)可重用構(gòu)件原封不動(dòng)地使用還是作適當(dāng)?shù)男薷暮笤偈褂?,只要是用?lái)構(gòu)造新軟件,則都可稱作重用。 重用級(jí)別: 代碼的重用 設(shè)計(jì)的重用 分析的重用 測(cè)試信息的重用,6.4 軟件重用,設(shè)計(jì)復(fù)雜應(yīng)用系統(tǒng)時(shí),會(huì)首先根據(jù)功能對(duì)系統(tǒng)進(jìn)行分解,然后再分別設(shè)計(jì)各子系統(tǒng)。各子系統(tǒng)間通過(guò)接口進(jìn)行連接和信息傳遞,接口確定了子系統(tǒng)間的交互形式和需傳遞的信息。 劃分和設(shè)計(jì)子系統(tǒng)時(shí),應(yīng)該盡量減少子系統(tǒng)間的耦合度。,6.5 系統(tǒng)分解,問(wèn)題域子系統(tǒng)設(shè)計(jì);可能對(duì)面向?qū)ο蠓治鏊贸龅膯?wèn)題域模型做的補(bǔ)充或修改。 (1)調(diào)整需求 (2)重用已有類 (3)組合問(wèn)題域類 (4)增添一般化類以

12、建立協(xié)議 (5)調(diào)整繼承層次,6.6 典型的面向?qū)ο笤O(shè)計(jì),窄菱形模式,闊菱形模式,單繼承模式,人機(jī)交互子系統(tǒng)設(shè)計(jì) 在面向?qū)ο笤O(shè)計(jì)過(guò)程中,應(yīng)該對(duì)人機(jī)交互子系統(tǒng)進(jìn)行詳細(xì)設(shè)計(jì),以確定人機(jī)交互的細(xì)節(jié),其中包括指定窗口和報(bào)表的形式、設(shè)計(jì)命令層次等內(nèi)容。 設(shè)計(jì)人機(jī)交互子系統(tǒng)的策略 (1)分類用戶 (2)描述用戶 (3)設(shè)計(jì)命令層次 (4)設(shè)計(jì)人機(jī)交互類,6.6 典型的面向?qū)ο笤O(shè)計(jì),任務(wù)管理子系統(tǒng)設(shè)計(jì) 分析并發(fā)性 設(shè)計(jì)任務(wù)管理子系統(tǒng) 確定事件驅(qū)動(dòng)型任務(wù) 確定時(shí)鐘驅(qū)動(dòng)型任務(wù) 睡眠狀態(tài)。 確定優(yōu)先任務(wù) 確定關(guān)鍵任務(wù) 確定協(xié)調(diào)任務(wù) 盡量減少任務(wù)數(shù) 確定資源需求,6.6 典型的面向?qū)ο笤O(shè)計(jì),數(shù)據(jù)管理子系統(tǒng),是系統(tǒng)存

13、儲(chǔ)或檢索對(duì)象的基本設(shè)施,它建立在某種數(shù)據(jù)存儲(chǔ)管理系統(tǒng)之上,并且隔離了數(shù)據(jù)存儲(chǔ)管理模式的影響。 選擇數(shù)據(jù)存儲(chǔ)管理模式,6.6 典型的面向?qū)ο笤O(shè)計(jì),設(shè)計(jì)數(shù)據(jù)管理子系統(tǒng) 設(shè)計(jì)數(shù)據(jù)格式,存儲(chǔ)管理模式的設(shè)計(jì)方法: 文件系統(tǒng):定義1NF表;為每個(gè)1NF表定義一個(gè)文件; 關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng):定義3NF表;為每個(gè)3NF表定義一個(gè)數(shù)據(jù)庫(kù)表; 面向?qū)ο髷?shù)據(jù)庫(kù)管理系統(tǒng):擴(kuò)展的關(guān)系數(shù)據(jù)庫(kù)途徑;擴(kuò)展的面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言途徑。 設(shè)計(jì)相應(yīng)的服務(wù) 如果某個(gè)類的對(duì)象需要存儲(chǔ)起來(lái),則在這個(gè)類中增加一個(gè)“隱含”的屬性和服務(wù),用于完成存儲(chǔ)對(duì)象自身的工作。,6.6 典型的面向?qū)ο笤O(shè)計(jì),下面介紹使用不同數(shù)據(jù)存儲(chǔ)管理模式時(shí)的設(shè)計(jì)要點(diǎn)。

14、文件系統(tǒng):被存儲(chǔ)的對(duì)象需要知道打開(kāi)哪些文件,怎樣把文件定位到正確的記錄上,怎樣檢索出舊值,以及怎樣用現(xiàn)有值更新它們;應(yīng)該定義一個(gè)ObjectServer類,并創(chuàng)建它的實(shí)例,該類提供下列服務(wù):通知對(duì)象保存自身,檢索已存儲(chǔ)的對(duì)象。 關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng):被存儲(chǔ)的對(duì)象,應(yīng)該知道訪問(wèn)哪些數(shù)據(jù)庫(kù)表,怎樣訪問(wèn)所需要的行,怎樣檢索出舊值,以及怎樣用現(xiàn)有值更新它們;應(yīng)該定義一個(gè)ObjectServer類,并聲明它的對(duì)象,該類提供下列服務(wù):通知對(duì)象保存自身,檢索已存儲(chǔ)的對(duì)象。 面向?qū)ο髷?shù)據(jù)庫(kù)管理系統(tǒng):擴(kuò)展的關(guān)系數(shù)據(jù)庫(kù)途徑;擴(kuò)展的面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言途徑。,6.6 典型的面向?qū)ο笤O(shè)計(jì),設(shè)計(jì)類中應(yīng)有的服務(wù) 對(duì)象的許多

15、服務(wù)都與對(duì)象接收到的消息密切相關(guān),接收消息的對(duì)象必然有由消息選擇符指定的服務(wù),該服務(wù)改變對(duì)象狀態(tài),并完成對(duì)象應(yīng)做的動(dòng)作。對(duì)象的動(dòng)作既與消息有關(guān),也與對(duì)象的狀態(tài)有關(guān)。,6.7 類中服務(wù)的設(shè)計(jì),設(shè)計(jì)實(shí)現(xiàn)服務(wù)的方法 (1)設(shè)計(jì)實(shí)現(xiàn)服務(wù)的算法, 設(shè)計(jì)實(shí)現(xiàn)服務(wù)的算法時(shí),應(yīng)該考慮下列幾個(gè)因素: 算法復(fù)雜度。 容易理解與實(shí)現(xiàn)。 易修改。 (2)選擇數(shù)據(jù)結(jié)構(gòu),在面向?qū)ο笤O(shè)計(jì)過(guò)程中,則需要選擇能夠方便、有效地實(shí)現(xiàn)算法的物理數(shù)據(jù)結(jié)構(gòu)。 (3)定義內(nèi)部類和內(nèi)部操作,6.7 類中服務(wù)的設(shè)計(jì),關(guān)聯(lián)的方式 (1)關(guān)聯(lián)的遍歷;單向遍歷和雙向遍歷。 (2)實(shí)現(xiàn)單向關(guān)聯(lián) 如果關(guān)聯(lián)的重?cái)?shù)是一元的,則實(shí)現(xiàn)關(guān)聯(lián)的指針是一個(gè)簡(jiǎn)單指針;

16、如果重?cái)?shù)是多元的,則需要用一個(gè)指針集合實(shí)現(xiàn)關(guān)聯(lián)。,6.8 關(guān)聯(lián)設(shè)計(jì),用指針實(shí)現(xiàn)單向關(guān)聯(lián),(3)實(shí)現(xiàn)雙向關(guān)聯(lián),實(shí)現(xiàn)雙向關(guān)聯(lián)有下列3種方法: 只用屬性實(shí)現(xiàn)一個(gè)方向的關(guān)聯(lián),當(dāng)需要反向遍歷時(shí)就執(zhí)行 一次正向查找。 兩個(gè)方向的關(guān)聯(lián)都用屬性實(shí)現(xiàn)。 用獨(dú)立的關(guān)聯(lián)對(duì)象實(shí)現(xiàn)雙向關(guān)聯(lián)。,用指針實(shí)現(xiàn)雙向關(guān)聯(lián),用對(duì)象實(shí)現(xiàn)關(guān)聯(lián),(4)關(guān)聯(lián)對(duì)象的實(shí)現(xiàn) 可以引入一個(gè)關(guān)聯(lián)類來(lái)保存描述關(guān)聯(lián)性質(zhì)的信息,關(guān)聯(lián)中的每個(gè)連接對(duì)應(yīng)著關(guān)聯(lián)類的一個(gè)對(duì)象。實(shí)現(xiàn)關(guān)聯(lián)對(duì)象的方法取決于關(guān)聯(lián)的重?cái)?shù)。對(duì)于一對(duì)一關(guān)聯(lián)來(lái)說(shuō),關(guān)聯(lián)對(duì)象可以與參與關(guān)聯(lián)的任一個(gè)對(duì)象合并。對(duì)于一對(duì)多關(guān)聯(lián)來(lái)說(shuō),關(guān)聯(lián)對(duì)象可以與“ 多 ”端對(duì)象合并。如果是多對(duì)多關(guān)聯(lián),則關(guān)聯(lián)鏈的性質(zhì)不可能

17、只與一個(gè)參與關(guān)聯(lián)的對(duì)象有關(guān),通常用一個(gè)獨(dú)立的關(guān)聯(lián)類來(lái)保存描述關(guān)聯(lián)性質(zhì)的信息,這個(gè)類的每個(gè)實(shí)例表示一條具體的關(guān)聯(lián)鏈及該鏈的屬性。,確定優(yōu)先級(jí) 提高效率的幾項(xiàng)技術(shù) 增加冗余關(guān)聯(lián)以提高訪問(wèn)效率 調(diào)整查詢次序 保留派生屬性 調(diào)整繼承關(guān)系 抽象與具體 為提高繼承程度而修改類定義 利用委托實(shí)現(xiàn)行為共享,6.9 設(shè)計(jì)優(yōu)化,本章是對(duì)面向?qū)ο蠓治龅臄U(kuò)充,是一個(gè)逐漸擴(kuò)充模型的過(guò)程。通過(guò)對(duì)系統(tǒng)的分析模型進(jìn)行分析,了解程序應(yīng)該實(shí)現(xiàn)的功能、程序的輸入和輸出數(shù)據(jù)、數(shù)據(jù)轉(zhuǎn)換算法、用戶界面等內(nèi)容。系統(tǒng)設(shè)計(jì)從增加屬性和服務(wù)開(kāi)始,對(duì)模型進(jìn)行擴(kuò)充,建立起一個(gè)求解問(wèn)題的實(shí)現(xiàn)方案。 首先,給出了面向?qū)ο笤O(shè)計(jì)有其特有的設(shè)計(jì)準(zhǔn)則和有助于提高質(zhì)量的啟發(fā)式規(guī)則。其次,在面向?qū)ο蠓椒ㄔO(shè)計(jì)時(shí),是總體設(shè)計(jì)和詳細(xì)設(shè)計(jì)多次反復(fù)迭代的過(guò)程,一般劃分為問(wèn)題域

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論