面向?qū)ο蟮脑O(shè)計(jì)ppt課件_第1頁(yè)
面向?qū)ο蟮脑O(shè)計(jì)ppt課件_第2頁(yè)
面向?qū)ο蟮脑O(shè)計(jì)ppt課件_第3頁(yè)
面向?qū)ο蟮脑O(shè)計(jì)ppt課件_第4頁(yè)
面向?qū)ο蟮脑O(shè)計(jì)ppt課件_第5頁(yè)
已閱讀5頁(yè),還剩58頁(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、第11章 面向?qū)ο蟮脑O(shè)計(jì)第11章 面向?qū)ο笤O(shè)計(jì)11.1 面向?qū)ο笤O(shè)計(jì)的準(zhǔn)那么面向?qū)ο笤O(shè)計(jì)的準(zhǔn)那么11.2 啟發(fā)規(guī)那么啟發(fā)規(guī)那么11.3 軟件重用軟件重用11.4 系統(tǒng)分解系統(tǒng)分解11.5 設(shè)計(jì)問(wèn)題域子系統(tǒng)設(shè)計(jì)問(wèn)題域子系統(tǒng)11.6 設(shè)計(jì)人機(jī)交互子系統(tǒng)設(shè)計(jì)人機(jī)交互子系統(tǒng)11.7 設(shè)計(jì)義務(wù)管理子系統(tǒng)設(shè)計(jì)義務(wù)管理子系統(tǒng)11.8 設(shè)計(jì)數(shù)據(jù)管理子系統(tǒng)設(shè)計(jì)數(shù)據(jù)管理子系統(tǒng)11.9 設(shè)計(jì)類中的效力設(shè)計(jì)類中的效力11.10 設(shè)計(jì)關(guān)聯(lián)設(shè)計(jì)關(guān)聯(lián)11.11 設(shè)計(jì)優(yōu)化設(shè)計(jì)優(yōu)化小結(jié)小結(jié)面向?qū)ο笤O(shè)計(jì) 設(shè)計(jì)那么是把分析階段得到的需求轉(zhuǎn)變成符合本錢和質(zhì)量要求的、籠統(tǒng)的系統(tǒng)實(shí)現(xiàn)方案的過(guò)程。 從面向?qū)ο蠓治龅矫嫦驅(qū)ο笤O(shè)計(jì)(OOD),

2、是一個(gè)逐漸擴(kuò)展模型的過(guò)程。 許多分析結(jié)果可以直接映射成設(shè)計(jì)結(jié)果,而在設(shè)計(jì)過(guò)程中又往往會(huì)加深和補(bǔ)充對(duì)系統(tǒng)需求的了解,從而進(jìn)一步完善分析結(jié)果。面向?qū)ο蠓椒ǖ囊淮髢?yōu)勢(shì)就是分析和設(shè)計(jì)活動(dòng)之間的平滑(無(wú)縫)過(guò)渡. 面向?qū)ο笤O(shè)計(jì)可再細(xì)分為系統(tǒng)設(shè)計(jì)和對(duì)象設(shè)計(jì)。 系統(tǒng)設(shè)計(jì)確定實(shí)現(xiàn)系統(tǒng)的戰(zhàn)略和目的系統(tǒng)的高層構(gòu)造。 對(duì)象設(shè)計(jì)確定解空間中的類、關(guān)聯(lián)、接口方式及實(shí)現(xiàn)效力的算法。 系統(tǒng)設(shè)計(jì)與對(duì)象設(shè)計(jì)之間的界限,比分析與設(shè)計(jì)之間的界限更模糊。 優(yōu)秀設(shè)計(jì)就是使得系統(tǒng)在其整個(gè)生命周期中的總開銷最小的設(shè)計(jì), 其主要特點(diǎn)就是容易維護(hù)。11.1 面向?qū)ο笤O(shè)計(jì)的準(zhǔn)那么1. 模塊化面向?qū)ο筌浖_發(fā)方式,很自然地支持模塊的設(shè)計(jì)原理:對(duì)象

3、就是模塊。2. 籠統(tǒng)面向?qū)ο蠓椒ㄖС诌^(guò)程和數(shù)據(jù)籠統(tǒng)。類是一種籠統(tǒng)數(shù)據(jù)類型。運(yùn)用者無(wú)須知道類中數(shù)據(jù)元素的詳細(xì)表示方法,就可以經(jīng)過(guò)接口運(yùn)用類中定義的數(shù)據(jù)。這類籠統(tǒng)稱為規(guī)格闡明籠統(tǒng)。3. 信息隱藏對(duì)象的封裝性實(shí)現(xiàn)支持了信息隱藏。4. 弱耦合 耦合主要指不同對(duì)象之間相互關(guān)聯(lián)的嚴(yán)密程度。兩個(gè)對(duì)象應(yīng)該經(jīng)過(guò)類的接口實(shí)現(xiàn)耦合,而不應(yīng)該依賴于類的詳細(xì)實(shí)現(xiàn)細(xì)節(jié)(友元)。對(duì)象之間的兩類耦合:(1) 交互耦合:交換音訊使交互耦合盡能夠松散的準(zhǔn)那么:減少音訊中包含的參數(shù)個(gè)數(shù),降低參數(shù)的復(fù)雜程度, 減少音訊數(shù)。(2) 承繼耦合:互為基類和派生類(非模塊之間)與交互耦合相反,應(yīng)該提高承繼耦合程度。經(jīng)過(guò)承繼關(guān)系結(jié)合起來(lái)的基類

4、和派生類,構(gòu)成了更大的模塊。5. 強(qiáng)內(nèi)聚在面向?qū)ο笤O(shè)計(jì)中存在下述3種內(nèi)聚。1 效力內(nèi)聚。一個(gè)效力應(yīng)該完成一個(gè)且僅完成一個(gè)功能。2 類內(nèi)聚。設(shè)計(jì)類的原那么是,一個(gè)類應(yīng)該只需一個(gè)用途,它的屬性和效力應(yīng)該是高內(nèi)聚的。類的屬性和效力應(yīng)該全都是完成該類對(duì)象的義務(wù)所必需的。假設(shè)某個(gè)類有多個(gè)用途,通常應(yīng)該把它分解成多個(gè)公用的類。3 普通-特殊(承繼)內(nèi)聚。設(shè)計(jì)出的普通-特殊構(gòu)造,應(yīng)該符合多數(shù)人的概念,更準(zhǔn)確地說(shuō),這種構(gòu)造應(yīng)該是對(duì)相應(yīng)的領(lǐng)域知識(shí)的正確抽取。嚴(yán)密的承繼耦合與高度的普通-特殊內(nèi)聚是一致的。6. 可重用重用有兩方面的含義: 一是盡量運(yùn)用已有的類二是在設(shè)計(jì)新類的協(xié)議時(shí)思索未來(lái)的可重用性。1. 設(shè)計(jì)結(jié)果

5、應(yīng)該明晰易懂保證設(shè)計(jì)結(jié)果明晰易懂的主要要素如下:1 用詞一致:一詞一用。2 運(yùn)用已有的協(xié)議。3 減少音訊方式的數(shù)目。4 防止模糊的定義:類的用途有限,名明晰11.2 啟發(fā)規(guī)那么2. 普通-特殊構(gòu)造的深度應(yīng)適當(dāng) 一個(gè)中等規(guī)模(大約包含100個(gè)類)的系統(tǒng)中,類等級(jí)層次數(shù)應(yīng)堅(jiān)持為72。 不應(yīng)該僅僅從方便編碼的角度出發(fā)隨意創(chuàng)建派生類,應(yīng)該使普通-特殊構(gòu)造與領(lǐng)域知識(shí)或常識(shí)堅(jiān)持一致。3. 設(shè)計(jì)簡(jiǎn)單的類 小而簡(jiǎn)單的類便于開發(fā)和管理(高內(nèi)聚)。為使類堅(jiān)持簡(jiǎn)單,應(yīng)該留意以下幾點(diǎn)。(1) 防止包含過(guò)多的屬性:完成的功能能夠太多了。(2) 有明確的定義:義務(wù)應(yīng)該簡(jiǎn)單。(3) 簡(jiǎn)化對(duì)象之間的協(xié)作關(guān)系。假設(shè)需求多個(gè)對(duì)象

6、協(xié)同配合才干做好一件事,那么破壞了類的簡(jiǎn)明性和明晰性。(4) 不要提供太多效力。典型地,一個(gè)類提供的公共效力不超越7個(gè)。 在開發(fā)大型軟件系統(tǒng)時(shí),遵照上述啟發(fā)規(guī)那么也會(huì)帶來(lái)另一個(gè)問(wèn)題:設(shè)計(jì)出大量較小的類,難承繼, 這同樣會(huì)帶來(lái)一定復(fù)雜性。 處理這個(gè)問(wèn)題的方法之一,是把系統(tǒng)中的類按邏輯分組,也就是劃分“主題。4. 運(yùn)用簡(jiǎn)單的協(xié)議音訊中的參數(shù)最好不要超越3個(gè)。復(fù)雜音訊導(dǎo)致對(duì)象緊耦合。5. 運(yùn)用簡(jiǎn)單的效力模塊復(fù)雜性 類中的效力小為好,35行源程序語(yǔ)句,可用一個(gè)簡(jiǎn)單句子描畫它的功能。 假設(shè)需求在效力中運(yùn)用復(fù)雜的CASE語(yǔ)句,思索用普通-特殊構(gòu)造替代這個(gè)類的能夠性。6. 把設(shè)計(jì)變動(dòng)減至最小穩(wěn)定性設(shè)計(jì)的質(zhì)量

7、越高,設(shè)計(jì)結(jié)果越穩(wěn)定。隨著時(shí)間推移,設(shè)計(jì)方案日趨成熟,改動(dòng)越來(lái)越小。1. 重用重用也叫再用或復(fù)用,是指同一事物不作修正或稍加改動(dòng)就多次反復(fù)運(yùn)用。軟件重用可分為3個(gè)層次:(1) 知識(shí)重用(例如,軟件工程知識(shí)的重用)。(2) 方法和規(guī)范的重用(例如,面向?qū)ο蠓椒ɑ驀?guó)家制定的軟件開發(fā)規(guī)范的重用)。(3) 軟件成分的重用。11.3 軟件重用 11.3.1 概述2. 軟件成分的重用級(jí)別軟件成分的重用的3個(gè)級(jí)別:(1)幾種方式的代碼重用源代碼剪貼:幾乎無(wú)法跟蹤原始代碼塊的修正源代碼包含#include :重新編譯都用最新源代碼承繼:可擴(kuò)展或修正庫(kù)中的類而不影響原有的代碼(2) 設(shè)計(jì)結(jié)果重用重用某個(gè)軟件系統(tǒng)

8、的設(shè)計(jì)模型。e.g. 同3(3) 分析結(jié)果重用重用分析模型, 例如,把一個(gè)運(yùn)用系統(tǒng)移植到完全不同的軟硬件平臺(tái)上。3. 10種典型的可重用軟件成分1 工程方案:軟件質(zhì)量保證方案。2 本錢估計(jì):不同工程中類似功能的本錢估算。3 體系構(gòu)造:事務(wù)類處置體系構(gòu)造。4 需求模型/規(guī)格闡明:對(duì)象模型,數(shù)據(jù)流圖。5 設(shè)計(jì):體系構(gòu)造、數(shù)據(jù)、接口和過(guò)程設(shè)計(jì)。6 源代碼:兼容的程序構(gòu)件。7 用戶文檔和技術(shù)文檔:部分重用。8 用戶界面:GUI 可占運(yùn)用程序的60%代碼量。9 數(shù)據(jù): 記錄構(gòu)造,文件和完好的數(shù)據(jù)庫(kù)。10 測(cè)試用例:與重用設(shè)計(jì)或代碼相關(guān)的用例。面向?qū)ο蠹夹g(shù)中的類構(gòu)件有3種重用方式:實(shí)例重用、承繼重用和多態(tài)

9、重用。1. 可重用軟構(gòu)件應(yīng)具備的特點(diǎn)(1) 模塊獨(dú)立性強(qiáng):具有單一、完好的功能,且經(jīng)過(guò)反復(fù)測(cè)試被確認(rèn)是正確的。11.3.2 類構(gòu)件(2) 具有高度可塑性:必需提供為順應(yīng)特定需求而擴(kuò)展或修正已有構(gòu)件的機(jī)制,且運(yùn)用起來(lái)非常簡(jiǎn)一方便。(3) 接口明晰、簡(jiǎn)明、可靠,詳盡的文檔闡明。2. 類構(gòu)件的重用方式(1) 實(shí)例重用按照需求創(chuàng)建類的實(shí)例。然后向它發(fā)送音訊,啟動(dòng)相應(yīng)的效力,完成需求完成的任務(wù)。還可以用幾個(gè)簡(jiǎn)單實(shí)例/類創(chuàng)建出一個(gè)更復(fù)雜的類, 見(jiàn)承繼重用。類提供的效力過(guò)少,那么難被重用。(2) 承繼重用提高承繼重用的關(guān)鍵是設(shè)計(jì)合理的、具有一定深度的類構(gòu)件承繼層次構(gòu)造:每個(gè)子類只參與少量新屬性和新效力,而降

10、低其接口復(fù)雜度,表現(xiàn)出一個(gè)明晰的進(jìn)化過(guò)程,提高可了解性;也為多態(tài)重用奠定了良好根底。(3) 多態(tài)重用利用多態(tài)性可簡(jiǎn)化對(duì)象的對(duì)外接口 (基類與派生類一樣的對(duì)外接口),從而降低了音訊的復(fù)雜程度。運(yùn)轉(zhuǎn)時(shí),接納音訊的對(duì)象由多態(tài)性機(jī)制啟動(dòng)本人特定的方法,去呼應(yīng)一個(gè)普通化的音訊,從而簡(jiǎn)化了音訊界面。能夠影響重用性的操作:與表示方法有關(guān)的操作。例如,不同實(shí)例的比較、顯示、擦除等等。與數(shù)據(jù)構(gòu)造、數(shù)據(jù)大小等有關(guān)的操作。與外部設(shè)備有關(guān)的操作。例如,設(shè)備控制。算法在未來(lái)能夠會(huì)改良(或改動(dòng))的中心操作。轉(zhuǎn)換接口:重用時(shí)都必需重新定義的效力的集合, C+言語(yǔ)編程時(shí),在基類中將其定義為純虛函數(shù)。擴(kuò)展接口:有多種能夠的實(shí)現(xiàn)

11、算法的效力,派生類可改動(dòng)算法或承繼父類中的算法。用C+言語(yǔ)實(shí)現(xiàn)時(shí),在基類中把這類效力定義為普通的虛函數(shù)。1. 質(zhì)量:重用構(gòu)件錯(cuò)誤較少2. 消費(fèi)率:3050%的重用導(dǎo)致消費(fèi)率提高2540%3. 本錢節(jié)?。篊=Cs-Cr/N-Cd11.3.3 軟件重用的效益 處理復(fù)雜問(wèn)題的普遍戰(zhàn)略:“分而治之,各個(gè)擊破系統(tǒng)的主要組成部分稱為子系統(tǒng), 根據(jù)所提供的功能來(lái)劃分。子系統(tǒng)之間應(yīng)該具有盡能夠簡(jiǎn)單、明確的接口。相對(duì)獨(dú)立地設(shè)計(jì)各個(gè)子系統(tǒng), 減少子系統(tǒng)彼此間的依賴性。面向?qū)ο笤O(shè)計(jì)模型也由主題、類與對(duì)象、構(gòu)造、屬性、效力等5個(gè)層次組成。在邏輯上都有4個(gè)子系統(tǒng): 問(wèn)題域子系統(tǒng)、人機(jī)交互子系統(tǒng)、義務(wù)管理子系統(tǒng)和數(shù)據(jù)管理

12、子系統(tǒng)。11.4 系統(tǒng)分解不同的軟件系統(tǒng)中,這四個(gè)子系統(tǒng)的重要程度和規(guī)模能夠相差很大: 某些系統(tǒng)僅有3個(gè)(甚至少于3個(gè))子系統(tǒng)。 子系統(tǒng)之間的兩種交互方式 (1) 客戶-供應(yīng)商關(guān)系 (Client-supplier) “客戶的子系統(tǒng)調(diào)用作為“供應(yīng)商的子系統(tǒng),后者完成某些效力任務(wù)并前往結(jié)果。運(yùn)用這種交互方案,作為客戶的子系統(tǒng)必需了解作為供應(yīng)商的子系統(tǒng)的接口,然而后者卻無(wú)須了解前者的接口,由于任何交互行為都是由前者驅(qū)動(dòng)的。(2) 平等同伴關(guān)系(peer-to-peer)關(guān)系每個(gè)子系統(tǒng)都能夠調(diào)用其他子系統(tǒng),因此,每個(gè)子系統(tǒng)都必需了解其他子系統(tǒng)的接口。這種組織系統(tǒng)的方案比起客戶-供應(yīng)商方案來(lái),交互更復(fù)

13、雜,從而使系統(tǒng)難于了解,容易發(fā)生不易覺(jué)察的設(shè)計(jì)錯(cuò)誤。盡量運(yùn)用客戶-供應(yīng)商關(guān)系。2.程度層次和垂直塊組織系統(tǒng)的兩種方案(1) 層次組織每層是一個(gè)子系統(tǒng)。同層的對(duì)象,彼此間相互獨(dú)立,而不同層的對(duì)象可存在客戶-供應(yīng)商關(guān)系。層次構(gòu)造又可進(jìn)一步劃分成:1) 封鎖式: 每層僅運(yùn)用其直接下層提供的效力。2) 開放式: 每層可以運(yùn)用任何下層提供的效力。優(yōu)缺陷: 簡(jiǎn)單/高效通常,在需求陳說(shuō)中只描畫了對(duì)系統(tǒng)頂層和底層的需求,頂層就是用戶看到的目的系統(tǒng),底層那么是可以運(yùn)用的資源。設(shè)計(jì)者必需設(shè)計(jì)一些中間層次: 過(guò)渡, 效率, 質(zhì)量。(2) 塊狀組織把系統(tǒng)垂直地分解成假設(shè)干個(gè)相對(duì)獨(dú)立的、弱耦合的子系統(tǒng)/塊,每塊提供一種

14、類型的效力。采用層次與塊狀的混合構(gòu)造3. 設(shè)計(jì)(分布式)系統(tǒng)的拓?fù)錁?gòu)造由子系統(tǒng)組成完好的系統(tǒng)時(shí),典型的拓?fù)錁?gòu)造有管道形、樹形、星形等。設(shè)計(jì)者應(yīng)該采用與問(wèn)題構(gòu)造相順應(yīng)的、盡能夠簡(jiǎn)單的拓?fù)錁?gòu)造,以減少子系統(tǒng)之間的交互數(shù)量。ATM系統(tǒng)的星型構(gòu)造實(shí)例設(shè)計(jì)受詳細(xì)實(shí)現(xiàn)環(huán)境的約束:本工程估計(jì)要運(yùn)用的編程言語(yǔ),可用的軟構(gòu)件庫(kù)(主要是類庫(kù))程序員的編程閱歷。 分析模型,為設(shè)計(jì)奠定了根底, 應(yīng)盡能夠保管。 設(shè)計(jì)僅需從實(shí)現(xiàn)角度對(duì)模型做一些補(bǔ)充或修正:增添、合并或分解類與對(duì)象、屬性及效力,調(diào)整承繼關(guān)系等。11.5 設(shè)計(jì)問(wèn)題域子系統(tǒng)1. 調(diào)整需求一是用戶需求或外部環(huán)境發(fā)生了變化;二是對(duì)象分析模型不能完好、準(zhǔn)確地反映用戶

15、的真實(shí)需求。2. 重用已有的類重用已有類的典型過(guò)程如下:(1) 選擇重用最類似的已有類。(2) 從被重用的已有類派生出問(wèn)題域類。(3) 添加或修正問(wèn)題域類中需求的屬性和效力。(4) 修正與問(wèn)題域類相關(guān)的關(guān)聯(lián)。3. 把問(wèn)題域類組合在一同可以引入一個(gè)根類把問(wèn)題域類組合在一同。e.g. 系統(tǒng)-子系統(tǒng)4. 增添普通化類以建立協(xié)議一些類需求有一個(gè)公共的協(xié)議:類似的效力, 共同接口??梢砸胍粋€(gè)根類以便建立這個(gè)協(xié)議。5. 調(diào)整承繼層次(1) 運(yùn)用多重承繼機(jī)制闊菱形比窄菱形易防止屬性及效力的命名沖突(載重)。(2) 運(yùn)用單承繼機(jī)制運(yùn)用僅提供單承繼機(jī)制的言語(yǔ),必需多重承繼構(gòu)造轉(zhuǎn)換成單承繼構(gòu)造。人機(jī)交互子系統(tǒng)設(shè)

16、計(jì)確定人機(jī)交互的細(xì)節(jié),對(duì)GUI, 包括指定窗口和報(bào)表的方式、設(shè)計(jì)命令層次等。原型是勝利地設(shè)計(jì)人機(jī)交互的常用手段。OOD的特點(diǎn):設(shè)計(jì)人機(jī)交互類, 重用, 如Visual C+的MFC類庫(kù)。11.6 設(shè)計(jì)人機(jī)交互子系統(tǒng)對(duì)象可以并發(fā)地任務(wù)。對(duì)象能夠存在相互制約的順序執(zhí)行關(guān)系。設(shè)計(jì)任務(wù)的一項(xiàng)內(nèi)容就是,確定哪些是必需/能夠同時(shí)動(dòng)作的對(duì)象,哪些是相互制約的對(duì)象。11.7 設(shè)計(jì)義務(wù)管理子系統(tǒng)1. 分析并發(fā)性動(dòng)態(tài)模型是分析并發(fā)性的主要根據(jù)。對(duì)象彼此間不存在(間接/傳送)交互那么它們可以是并發(fā)的。檢查對(duì)象的形狀圖及它們之間交換的事件,可以把假設(shè)干個(gè)非并發(fā)的對(duì)象歸并到一條控制線中:這條線上只需一個(gè)對(duì)象是活動(dòng)的。計(jì)

17、算機(jī)中用義務(wù)(task)/進(jìn)程(process)實(shí)現(xiàn)控制線。并發(fā)行為既可以在不同的處置器上實(shí)現(xiàn),也可以在單處置器上用多義務(wù)操作系統(tǒng)實(shí)現(xiàn)。2. 設(shè)計(jì)義務(wù)管理子系統(tǒng)義務(wù)分類: 事件驅(qū)動(dòng)型義務(wù)、時(shí)鐘驅(qū)動(dòng)型義務(wù)、優(yōu)先義務(wù)、關(guān)鍵義務(wù)和協(xié)調(diào)義務(wù)。設(shè)計(jì)義務(wù)管理子系統(tǒng),包括確定各類義務(wù)并把義務(wù)分配給適當(dāng)?shù)挠布蜍浖?zhí)行。這與面相過(guò)程設(shè)計(jì)一樣。OOD:能夠添加新類或用已有類來(lái)實(shí)現(xiàn)義務(wù)管理。數(shù)據(jù)管理子系統(tǒng)是系統(tǒng)存儲(chǔ)或檢索對(duì)象的根本設(shè)備。它建立在某種數(shù)據(jù)存儲(chǔ)管理方式(文件、關(guān)系數(shù)據(jù)庫(kù)或面向?qū)ο髷?shù)據(jù)庫(kù))之上而隔離了數(shù)據(jù)存儲(chǔ)管理方式對(duì)對(duì)象存儲(chǔ)或檢索的影響。由于對(duì)象包含了程序和數(shù)據(jù),面向?qū)ο蟮臄?shù)據(jù)管理子系統(tǒng)比面向過(guò)程的

18、系統(tǒng)更必需更復(fù)雜。OODB是為此而生的數(shù)據(jù)存儲(chǔ)管理方式。11.8 設(shè)計(jì)數(shù)據(jù)管理子系統(tǒng)1. OS文件:本錢低,簡(jiǎn)單,效率低2. 關(guān)系數(shù)據(jù)庫(kù):規(guī)范, 通用,成熟,開銷大3. 面向?qū)ο髷?shù)據(jù)庫(kù)管理系統(tǒng)專門管理對(duì)象的新技術(shù):擴(kuò)展的關(guān)系數(shù)據(jù)庫(kù)或面向?qū)ο蟪绦蛟O(shè)計(jì)言語(yǔ)。(1) RDBM+OO(2) OOL+Object 存儲(chǔ)和管理運(yùn)用方便,欠規(guī)范都用文件, 提供的效力越來(lái)越高.11.8.1 選擇數(shù)據(jù)存儲(chǔ)管理方式設(shè)計(jì)數(shù)據(jù)格式和相應(yīng)的效力。1. 設(shè)計(jì)數(shù)據(jù)格式(1) 文件系統(tǒng):屬性表規(guī)范成第一范式=紀(jì)錄。(2) 關(guān)系數(shù)據(jù)庫(kù):類的第三范式屬性表=數(shù)據(jù)庫(kù)表。(3) 面向?qū)ο髷?shù)據(jù)庫(kù):不用11.8.2 設(shè)計(jì)數(shù)據(jù)管理子系統(tǒng)2

19、. 設(shè)計(jì)相應(yīng)的效力在需求存儲(chǔ)類中添加一個(gè)屬性和效力用于完成存儲(chǔ)對(duì)象本身的任務(wù)。在某個(gè)基類中定義這樣的屬性和效力。需求存儲(chǔ)類的對(duì)象就從此基類中承繼此屬性和效力。定義一個(gè)ObjectServer(對(duì)象效力器)類,并創(chuàng)建它的實(shí)例。該類提供以下效力:- 保管對(duì)象;- 檢索和恢復(fù)已存儲(chǔ)的對(duì)象兩種方法:1 每個(gè)對(duì)象本人保管本人2 由對(duì)象效力器擔(dān)任存儲(chǔ)對(duì)象ATM系統(tǒng)中,永久性數(shù)據(jù)存儲(chǔ)放在分行計(jì)算機(jī)中。由于必需堅(jiān)持?jǐn)?shù)據(jù)的一致性和完好性,而且有多個(gè)并發(fā)事務(wù)同時(shí)訪問(wèn)這些數(shù)據(jù),因此,采用成熟的商品化關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)存儲(chǔ)數(shù)據(jù)。每個(gè)事務(wù)/更新作為一個(gè)不可分割的批操作來(lái)處置,由事務(wù)/更新封鎖賬戶直到該事務(wù)終了為止。11

20、.8.3 例子分析得出的對(duì)象模型只列出最中心的效力。設(shè)計(jì)必需把動(dòng)態(tài)模型中對(duì)象的行為以及功能模型中的數(shù)據(jù)處置,轉(zhuǎn)換成由適當(dāng)?shù)念愃峁┑男ЯΑ?1.9 設(shè)計(jì)類中的效力 11.9.1 確定類中應(yīng)有的效力數(shù)據(jù)流圖中的某些處置能夠與對(duì)象(=數(shù)據(jù)流)提供的效力相對(duì)應(yīng),以下規(guī)那么有助于確定操作的目的對(duì)象類(該對(duì)象類的效力實(shí)現(xiàn)此操作):1 假設(shè)某個(gè)處置的功能是從輸入流中抽取一個(gè)值,那么該輸入流就是目的對(duì)象。2 假設(shè)某個(gè)處置具有類型一樣的輸入流和輸出流,而且輸出流本質(zhì)上是輸入流的另一種方式,那么該輸入=輸出流就是目的對(duì)象。3 假設(shè)某個(gè)處置從多個(gè)輸入流得出輸出值,那么該處置是輸出流類的一個(gè)效力。4 假設(shè)某個(gè)處置把

21、對(duì)輸入流處置的結(jié)果輸出給數(shù)據(jù)存儲(chǔ)或動(dòng)作對(duì)象,那么該數(shù)據(jù)存儲(chǔ)或動(dòng)作對(duì)象就是目的對(duì)象。當(dāng)一個(gè)處置涉及多個(gè)對(duì)象時(shí),下面兩條規(guī)那么有助于確定處置的歸屬:1 假設(shè)處置影響或修正了一個(gè)對(duì)象,最好把處置定為處置的目的的效力。2 調(diào)查處置涉及的對(duì)象類及他們之間的關(guān)聯(lián),找中心類,其他類和關(guān)聯(lián)圍繞的中心類應(yīng)為處置的目的。1. 設(shè)計(jì)實(shí)現(xiàn)效力的算法思索的要素:(1) 選用復(fù)雜度較低的算法,不要過(guò)分追求高效率。(2) 容易了解與容易實(shí)現(xiàn):往往與高效率有矛盾。(3) 易修正: 預(yù)測(cè)并預(yù)備能夠的修正。11.9.2 設(shè)計(jì)實(shí)現(xiàn)效力的方法2. 選擇數(shù)據(jù)構(gòu)造為分析階段的邏輯構(gòu)造,設(shè)計(jì)方便、有效的物理數(shù)據(jù)構(gòu)造:LIST/ARRAY,STRING/INT。3. 定義內(nèi)部類和內(nèi)部操作增添一些在需求陳說(shuō)中沒(méi)有提到的類,如用來(lái)存放在執(zhí)行算法過(guò)程中的中間結(jié)果。復(fù)雜操作可以分解為簡(jiǎn)單操作。設(shè)計(jì)中應(yīng)該定義這些新添加的簡(jiǎn)單操作為內(nèi)部操作。設(shè)計(jì)必需確定實(shí)現(xiàn)關(guān)聯(lián)的戰(zhàn)略。1. 關(guān)聯(lián)的遍歷方式:?jiǎn)蜗蚝碗p向11.10 設(shè)計(jì)關(guān)聯(lián)2. 實(shí)現(xiàn)單向關(guān)聯(lián)用指針可以方便地實(shí)現(xiàn)單向關(guān)聯(lián)。實(shí)現(xiàn)一元關(guān)聯(lián)(a)的簡(jiǎn)單指針(b)=屬性;實(shí)現(xiàn)多元關(guān)聯(lián)(a)的指針集合(b)。3. 實(shí)現(xiàn)雙向關(guān)聯(lián)實(shí)現(xiàn)雙向關(guān)聯(lián)的3

溫馨提示

  • 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)論