2011年軟考系統(tǒng)分析師整理資料:面向?qū)ο?5)
七、面向?qū)ο蟮脑O(shè)計
面向?qū)ο笤O(shè)計是把分析階段得到的需求轉(zhuǎn)變成符合成本和質(zhì)量要求的、抽象的系統(tǒng)實現(xiàn)方案的過程。從面向?qū)ο蠓治龅矫嫦驅(qū)ο笤O(shè)計,是一個逐漸擴充模型的過程。
瀑布模型把設(shè)計進一步劃分成概要設(shè)計和詳細(xì)設(shè)計兩個階段,類似地,也可以把面向?qū)ο笤O(shè)計再細(xì)分為系統(tǒng)設(shè)計和對象設(shè)計。系統(tǒng)設(shè)計確定實現(xiàn)系統(tǒng)的策略和目標(biāo)系統(tǒng)的高層結(jié)構(gòu)。對象設(shè)計確定解空間中的類、關(guān)聯(lián)、接口形式及實現(xiàn)操作的算法。
(一)面向?qū)ο笤O(shè)計的準(zhǔn)則
1.模塊化
面向?qū)ο箝_發(fā)方法很自然地支持了把系統(tǒng)分解成模塊的設(shè)計原則:對象就是模塊。它是把數(shù)據(jù)結(jié)構(gòu)和操作這些數(shù)據(jù)的方法緊密地結(jié)合在一起所構(gòu)成的模塊。
2.抽象
面向?qū)ο蠓椒ú粌H支持過程抽象,而且支持?jǐn)?shù)據(jù)抽象。
3.信息隱藏
在面向?qū)ο蠓椒ㄖ校畔㈦[藏通過對象的封裝性來實現(xiàn)。
4.低耦合
在面向?qū)ο蠓椒ㄖ校瑢ο笫亲罨镜哪K,因此,耦合主要指不同對象之間相互關(guān)聯(lián)的緊密程度。低耦合是設(shè)計的一個重要標(biāo)準(zhǔn),因為這有助于使得系統(tǒng)中某一部分的變化對其它部分的影響降到最低程度。
5.高內(nèi)聚
(1)操作內(nèi)聚。
(2)類內(nèi)聚。
(3)一般——具體內(nèi)聚。
(二)面向?qū)ο笤O(shè)計的啟發(fā)規(guī)則
1.設(shè)計結(jié)果應(yīng)該清晰易懂
使設(shè)計結(jié)果清晰、易懂、易讀是提高軟件可維護性和可重用性的重要措施。顯然,人們不會重用那些他們不理解的設(shè)計。
要做到:
(1)用詞一致。
(2)使用已有的協(xié)議。
(3)減少消息模式的數(shù)量。
(4)避免模糊的定義。
2.一般——具體結(jié)構(gòu)的深度應(yīng)適當(dāng)
3.設(shè)計簡單類
應(yīng)該盡量設(shè)計小而簡單的類,這樣便以開發(fā)和管理。為了保持簡單,應(yīng)注意以下幾點:
(1)避免包含過多的屬性。
(2)有明確的定義。
(3)盡量簡化對象之間的合作關(guān)系。
(4)不要提供太多的操作。
4.使用簡單的協(xié)議
一般來說,消息中參數(shù)不要超過3個。
5.使用簡單的操作
面向?qū)ο笤O(shè)計出來的類中的操作通常都很小,一般只有3至5行源程序語句,可以用僅含一個動詞和一個賓語的簡單句子描述它的功能
6.把設(shè)計變動減至最小
通常,設(shè)計的質(zhì)量越高,設(shè)計結(jié)果保持不變的時間也越長。即使出現(xiàn)必須修改設(shè)計的情況,也應(yīng)該使修改的范圍盡可能小。
(三)系統(tǒng)設(shè)計
系統(tǒng)設(shè)計是問題求解及建立解答的高級策略。必須制定解決問題的基本方法,系統(tǒng)的高層結(jié)構(gòu)形式包括子系統(tǒng)的分解、它的固有并發(fā)性、子系統(tǒng)分配給硬軟件、數(shù)據(jù)存儲管理、資源協(xié)調(diào)、軟件控制實現(xiàn)、人機交互接口。
1.系統(tǒng)設(shè)計概述
設(shè)計階段先從高層入手,然后細(xì)化。系統(tǒng)設(shè)計要決定整個結(jié)構(gòu)及風(fēng)格,這種結(jié)構(gòu)為后面設(shè)計階段的更詳細(xì)策略的設(shè)計提供了基礎(chǔ)。
(1)系統(tǒng)分解。
系統(tǒng)中主要的組成部分稱為子系統(tǒng),子系統(tǒng)既不是一個對象也不是一個功能,而是類、關(guān)聯(lián)、操作、事件和約束的集合。
(2)確定并發(fā)性。
分析模型、現(xiàn)實世界及硬件中不少對象均是并發(fā)的。
(3)處理器及任務(wù)分配。
各并發(fā)子系統(tǒng)必須分配給單個硬件單元,要么是一個一般的處理器,要么是一個具體的功能單元。
(4)數(shù)據(jù)存儲管理。
系統(tǒng)中的內(nèi)部數(shù)據(jù)和外部數(shù)據(jù)的存儲管理是一項重要的任務(wù)。通常各數(shù)據(jù)存儲可以將數(shù)據(jù)結(jié)構(gòu)、文件、數(shù)據(jù)庫組合在一起,不同數(shù)據(jù)存儲要在費用、訪問時間、容量及可靠性之間做出折衷考慮。
(5)全局資源的處理。
必須確定全局資源,并且制定訪問全局資源的策略。
(6)選擇軟件控制機制。
分析模型中所有交互行為都表示為對象之間的事件。系統(tǒng)設(shè)計必須從多種方法中選擇某種方法來實現(xiàn)軟件的控制。
(7)人機交互接口設(shè)計。
設(shè)計中的大部分工作都與穩(wěn)定的狀態(tài)行為有關(guān),但必須考慮用戶使用系統(tǒng)的交互接口。
2.系統(tǒng)結(jié)構(gòu)的一般框架
3.系統(tǒng)分解——建立系統(tǒng)的體系結(jié)構(gòu)
可用的軟件庫以及程序員的編程經(jīng)驗。
通過面向?qū)ο蠓治龅玫降膯栴}域精確模型,為設(shè)計體系結(jié)構(gòu)奠定了良好的基礎(chǔ),建立了完整的框架。
4.選擇軟件控制機制
軟件系統(tǒng)中存在兩種控制流,外部控制流和內(nèi)部控制流。
5.數(shù)據(jù)存儲管理
數(shù)據(jù)存儲管理是系統(tǒng)存儲或檢索對象的基本設(shè)施,它建立在某種數(shù)據(jù)存儲管理系統(tǒng)之上,并且隔離了數(shù)據(jù)存儲管理模式的影響。
6.設(shè)計人機交互接口
在面向?qū)ο蠓治鲞^程中,已經(jīng)對用戶界面需求作了初步分析,在面向?qū)ο笤O(shè)計過程中,則應(yīng)該對系統(tǒng)的人機交互接口進行詳細(xì)設(shè)計,以確定人機交互的細(xì)節(jié),其中包括指定窗口和報表的形式、設(shè)計命令層次等項內(nèi)容。
(四)對象設(shè)計
1.對象設(shè)計概述
2.三種模型的結(jié)合
(1)獲得操作。
(2)確定操作的目標(biāo)對象。
3.算法設(shè)計
4.優(yōu)化設(shè)計
5.控制的實現(xiàn)
6.調(diào)整繼承
7.關(guān)聯(lián)的設(shè)計
【編輯推薦】


2010-12-20 10:57:15
2010-12-07 10:36:53
2010-12-21 10:57:26
2010-12-23 10:58:03
2010-12-14 10:51:53
2010-12-16 10:40:23
2010-12-22 11:04:49
2010-12-16 10:42:56
2011-01-04 11:48:04




