軟件工程第11章面向?qū)ο笤O(shè)計_第1頁
軟件工程第11章面向?qū)ο笤O(shè)計_第2頁
軟件工程第11章面向?qū)ο笤O(shè)計_第3頁
軟件工程第11章面向?qū)ο笤O(shè)計_第4頁
軟件工程第11章面向?qū)ο笤O(shè)計_第5頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、面向?qū)ο笤O(shè)計設(shè)計是把分析階段得到的需求轉(zhuǎn)變成符合成本和質(zhì)量要求的、抽象的系統(tǒng)實現(xiàn)方案的過程。面向?qū)ο笤O(shè)計可再細分為系統(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)服務(wù)的算法。面向?qū)ο笤O(shè)計的準(zhǔn)則模塊化:對象就是模塊模塊化:對象就是模塊對象就是模塊,它是把數(shù)據(jù)結(jié)構(gòu)和操作這些數(shù)據(jù)的方法緊密地結(jié)合在一起所構(gòu)成的模塊。抽象:抽象:面向?qū)ο蠓椒ú粌H支持過程抽象,而且支持數(shù)據(jù)抽象。類實際上是一種抽象數(shù)據(jù)類型。它對外開放的公共接口構(gòu)成了類的規(guī)格說明。這種接口規(guī)定了外界可以使用的合法操作,使用者通過這些操作使用類中定義的數(shù)據(jù)。某些面向?qū)ο蟮某绦蛟O(shè)

2、計語言還支持參數(shù)化抽象,即當(dāng)描述類的規(guī)格說明時并不具體指定所要操作的數(shù)據(jù)類型,而是把數(shù)據(jù)類型作為參數(shù)。信息隱藏:信息隱藏:屬性的表示方法和操作的實現(xiàn)算法在面向?qū)ο蠓椒ㄖ?,信息隱藏通過對象的封裝性實現(xiàn):類結(jié)構(gòu)分離了接口與實現(xiàn),從而支持了信息隱藏。弱耦合:弱耦合:松散交互耦合、緊密繼承耦合交互耦合:指對象之間的耦合通過消息連接來實現(xiàn)。交互耦合應(yīng)盡可能松散:盡量降低消息連接的復(fù)雜程度。減少對象發(fā)送(接受)的消息數(shù)。繼承耦合:繼承是一般化類與特殊類之間耦合的一種形式,應(yīng)該提高繼承耦合程度。設(shè)計時應(yīng)使特殊類盡量多繼承并使用其一般化類的屬性和服務(wù)。強內(nèi)聚強內(nèi)聚:面向?qū)ο笤O(shè)計中存在3種內(nèi)聚:服務(wù)內(nèi)聚:一個服

3、務(wù)應(yīng)該完成且僅完成一個功能。類內(nèi)聚:一個類應(yīng)只有一個用途,類的屬性和服務(wù)應(yīng)全都是完成該類對象的任務(wù)所必須的,其中不包含無用的屬性或服務(wù)。一般特殊內(nèi)聚:設(shè)計出的一般特殊結(jié)構(gòu),應(yīng)該符合多數(shù)人的概念,即應(yīng)是對相應(yīng)的領(lǐng)域知識的正確抽取??芍赜茫嚎芍赜茫很浖赜檬翘岣哕浖_發(fā)生產(chǎn)率和目標(biāo)系統(tǒng)質(zhì)量的重要途徑。盡量使用已有的類。如果確實需要創(chuàng)建新類,則在設(shè)計這些新類時,應(yīng)該考慮將來可重用性。啟發(fā)規(guī)則(一)設(shè)計結(jié)果應(yīng)該清晰易懂設(shè)計結(jié)果應(yīng)該清晰易懂n用詞一致n使用已有的協(xié)議n減少消息模式的數(shù)目n避免模糊的定義一般特殊結(jié)構(gòu)的深度應(yīng)適當(dāng):一般特殊結(jié)構(gòu)的深度應(yīng)適當(dāng): 不能僅從方便編碼的角度出發(fā)隨意創(chuàng)建派生類,一個中等

4、規(guī)模(大約包含100個類)的系統(tǒng)中,類等級層次數(shù)應(yīng)保持為72。啟發(fā)規(guī)則(二)設(shè)計簡單的類:設(shè)計簡單的類:便于開發(fā)和管理便于開發(fā)和管理n避免包含過多的屬性n有明確的定義n盡量簡化對象之間的合作關(guān)系n不要提供太多服務(wù)使用簡單的協(xié)議:使用簡單的協(xié)議:減少消息中的參數(shù)減少消息中的參數(shù)使用簡單的服務(wù)使用簡單的服務(wù)把設(shè)計變動減至最小把設(shè)計變動減至最小*11.3 軟件重用(一)概念n重用:也叫再用或復(fù)用,是指同一事物不作修改或稍加改動就多次重復(fù)使用。包括知識重用、方法和標(biāo)準(zhǔn)的重用、軟件成分的重用3個層次。代碼重用代碼重用:調(diào)用庫中的模塊,n源代碼剪貼:存在配置管理問題,無法跟蹤原始代碼塊的修改n源代碼包含:

5、提供包含(include)庫中源代碼,修改庫中源代碼之后,所有包含它的程序都必須重新編譯n繼承:重用類庫中的類,不存在配置管理問題1.軟件成分的重用級別軟件成分的重用級別n設(shè)計結(jié)果重用設(shè)計結(jié)果重用:重用某個軟件系統(tǒng)的設(shè)計模型(即求解域模型)。有助于把一個應(yīng)用系統(tǒng)移植到完全不同的軟硬件平臺上。n分析結(jié)果重用分析結(jié)果重用:重用某個系統(tǒng)的分析模型。這種重用特別適用于用戶需求未改變,但系統(tǒng)體系結(jié)構(gòu)發(fā)生了根本變化的場合。1.軟件成分的重用級別軟件成分的重用級別2. 類構(gòu)件類構(gòu)件n類構(gòu)件的重用方式類構(gòu)件的重用方式n實例重用:使用適當(dāng)?shù)臉?gòu)造函數(shù),按照需要創(chuàng)建類的實例。然后向所創(chuàng)建的實例發(fā)送適當(dāng)?shù)南?,啟動?/p>

6、應(yīng)的服務(wù),完成需要完成的工作。n繼承重用:當(dāng)已有的類構(gòu)件不能通過實例重用完全滿足當(dāng)前系統(tǒng)需求時,繼承重用提供了一種對已有的類構(gòu)件進行裁剪的機制。 多態(tài)重用利用多態(tài)性不僅可以使對象的對外接口更加一般化(基類與派生類的許多對外接口是相同的),從而降低了消息連接的復(fù)雜程度,而且還提供了一種簡便可靠的軟構(gòu)件組合機制。系統(tǒng)運行時,根據(jù)接收消息的對象類型,由多態(tài)性機制啟動正確的方法,去響應(yīng)一個一般化的消息,從而簡化了消息界面和軟構(gòu)件連接過程。11.4 系統(tǒng)分解采用面向?qū)ο蠓椒ㄔO(shè)計軟件系統(tǒng)時,面向采用面向?qū)ο蠓椒ㄔO(shè)計軟件系統(tǒng)時,面向?qū)ο笤O(shè)計模型對象設(shè)計模型(即求解域的對象模型即求解域的對象模型),與,與面向

7、對象分析模型面向?qū)ο蠓治瞿P?即問題域的對象模型即問題域的對象模型)一樣,也由主題、類與對象、結(jié)構(gòu)、屬性、一樣,也由主題、類與對象、結(jié)構(gòu)、屬性、服務(wù)等服務(wù)等5個層次組成。個層次組成。大多數(shù)系統(tǒng)的面向?qū)ο笤O(shè)計模型,在大多數(shù)系統(tǒng)的面向?qū)ο笤O(shè)計模型,在邏輯邏輯上上都由四大部分組成,這四大部分對應(yīng)于都由四大部分組成,這四大部分對應(yīng)于組成目標(biāo)系統(tǒng)的四個子系統(tǒng),它們分別是組成目標(biāo)系統(tǒng)的四個子系統(tǒng),它們分別是問題域子系統(tǒng)、人機交互子系統(tǒng)、任務(wù)問題域子系統(tǒng)、人機交互子系統(tǒng)、任務(wù)管理子系統(tǒng)和數(shù)據(jù)管理子系統(tǒng)。管理子系統(tǒng)和數(shù)據(jù)管理子系統(tǒng)。圖11.2 典型的面向?qū)ο笤O(shè)計模型在面向?qū)ο蠓治鲋校簧婕暗絾栴}論域部分,其余

8、3部分是在面向?qū)ο笤O(shè)計中加進來的。設(shè)計問題域子系統(tǒng)(一)面向?qū)ο笤O(shè)計通常僅需從實現(xiàn)角度對問題域模型作一些補充或修改,主要是增添、合并或分解類&對象、屬性及服務(wù),調(diào)整繼承關(guān)系等。n調(diào)整需求:修改分析結(jié)果,再把修改反映到問題域子系統(tǒng)中n重用已有的類:n把問題域類組合在一起:引入一個根類把應(yīng)用的類關(guān)聯(lián)到一起,建立類的層次n增添一般化類以建立協(xié)議:在一般類中定義所有特殊類都可使用的操作,這種操作可能是虛函數(shù),其細節(jié)在特殊類中定義。n調(diào)整繼承層次:若設(shè)計語言不提供多重繼承機制,需修改分析結(jié)果。設(shè)計人機交互子系統(tǒng)(一)確定人機交互的細節(jié),其中包括指定窗口和報表的形式、設(shè)計命令層次等項內(nèi)容。設(shè)計人機

9、交互子系統(tǒng)的策略n分類用戶n描述用戶n設(shè)計命令層次:用過程抽象機制組織起來的、可供選用的服務(wù)的表現(xiàn)形式。n設(shè)計人機交互類設(shè)計任務(wù)管理子系統(tǒng)分析并發(fā)性:若兩個對象彼此間不存在交互,或者同時接受事件,則它們在本質(zhì)上是并發(fā)的;當(dāng)系統(tǒng)有許多并發(fā)行為時,需要依照各個行為的協(xié)調(diào)和通信關(guān)系,劃分各種任務(wù),以簡化并發(fā)行為的設(shè)計和編碼: 通過檢查各個對象的狀態(tài)圖及他們之間交換的事件,把若干非并發(fā)的對象歸并到一條用任務(wù)實現(xiàn)的控制線中。進程的別名,是執(zhí)行一系列活動的一段程序。設(shè)計任務(wù)管理子系統(tǒng)設(shè)計任務(wù)管理子系統(tǒng):確定各類任務(wù)并把任務(wù)分配給適當(dāng)?shù)挠布蜍浖?zhí)行。n確定事件驅(qū)動型任務(wù):由事件驅(qū)動完成通信工作的任務(wù)。n

10、確定時鐘驅(qū)動型任務(wù):每隔一定時間間隔就被觸發(fā)以執(zhí)行某些處理的任務(wù)。n確定優(yōu)先任務(wù)和關(guān)鍵任務(wù):有關(guān)系統(tǒng)成功或失敗的關(guān)鍵處理,有嚴(yán)格的可靠性要求。n確定協(xié)調(diào)任務(wù):有助于把不同任務(wù)之間的協(xié)調(diào)控制封裝起來。n盡量減少任務(wù)數(shù)n確定資源需求:決定哪些子系統(tǒng)用硬件實現(xiàn),哪些用軟件實現(xiàn)。表明某些數(shù)據(jù)到達的信號設(shè)計數(shù)據(jù)管理子系統(tǒng)選擇數(shù)據(jù)存儲管理模式n文件管理系統(tǒng)n關(guān)系數(shù)據(jù)庫管理系統(tǒng)n面向?qū)ο髷?shù)據(jù)庫管理系統(tǒng):1)擴展的關(guān)系數(shù)據(jù)庫管理系統(tǒng):增加了抽象數(shù)據(jù)類型和繼承機制,增加了創(chuàng)建及管理類和對象的通用服務(wù)2)擴展的面向?qū)ο蟪绦蛟O(shè)計語言:增加了在數(shù)據(jù)庫中存貯和管理對象的機制設(shè)計數(shù)據(jù)管理子系統(tǒng)n設(shè)計數(shù)據(jù)格式n設(shè)計相應(yīng)的服務(wù)設(shè)計類中的服務(wù)確定類中應(yīng)有的服務(wù)設(shè)計實現(xiàn)服務(wù)的方法n設(shè)計實現(xiàn)服務(wù)的算法n算法復(fù)雜度n容易理解與容易實現(xiàn)n易修改n選擇數(shù)據(jù)結(jié)構(gòu)n定義內(nèi)部類和內(nèi)部操作設(shè)計關(guān)聯(lián)關(guān)聯(lián)的遍歷實現(xiàn)單向關(guān)聯(lián)實現(xiàn)雙向關(guān)聯(lián)鏈屬性的實現(xiàn)設(shè)計優(yōu)化確定優(yōu)先級提高效率的幾項技術(shù)n增加冗余關(guān)聯(lián)以提高訪問效率n調(diào)整查詢次序n保留派生屬性調(diào)整繼承關(guān)系n抽象與具體n為提高繼承程度而修改類定義n利用委托實現(xiàn)行為共享對象模型一本書有一個封面、一個目錄、一個前言、若干章,每章有若干節(jié),每節(jié)有若干段,每段有若干句子,每節(jié)有0個或多個插圖,還有0個或多個表格,最后還有一個封底。建立該書的

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論