軟件設(shè)計與體系結(jié)構(gòu) 第四章 面向?qū)ο蟮能浖O(shè)計方法_第1頁
軟件設(shè)計與體系結(jié)構(gòu) 第四章 面向?qū)ο蟮能浖O(shè)計方法_第2頁
軟件設(shè)計與體系結(jié)構(gòu) 第四章 面向?qū)ο蟮能浖O(shè)計方法_第3頁
軟件設(shè)計與體系結(jié)構(gòu) 第四章 面向?qū)ο蟮能浖O(shè)計方法_第4頁
軟件設(shè)計與體系結(jié)構(gòu) 第四章 面向?qū)ο蟮能浖O(shè)計方法_第5頁
已閱讀5頁,還剩56頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

面向?qū)ο蟮能浖O(shè)計共六十一頁引言(yǐnyán)面向?qū)ο箝_發(fā)方法的核心是利用面向?qū)ο蟮母拍詈头椒▽浖枨蠓治龊驮O(shè)計,建立面向?qū)ο蟮能浖治龊驮O(shè)計模型。面向?qū)ο筌浖_發(fā)過程從領(lǐng)域概念到設(shè)計概念和代碼實現(xiàn)都以類和對象為核心,是一個逐步精化的過程,因此需求分析和設(shè)計之間并沒有嚴格的分界線。本章(běnzhānɡ)使用UML進行軟件分析和設(shè)計。共六十一頁教學(xué)內(nèi)容基于UML的分析與設(shè)計過程用例分析與設(shè)計概念模型和頂層架構(gòu)設(shè)計用戶界面設(shè)計數(shù)據(jù)模型設(shè)計設(shè)計精化類設(shè)計部署(bùshǔ)模型設(shè)計共六十一頁基于UML的分析與設(shè)計(shèjì)過程UML是獨立于軟件開發(fā)過程的,它幾乎可以用于任何類型的軟件開發(fā)過程,包括瀑布式、迭代式、螺旋式等不同模型。在軟件分析和設(shè)計中,可以根據(jù)項目的特征、開發(fā)組織在已有實踐中定義的相關(guān)規(guī)范、設(shè)計人員本身的偏好等因素(yīnsù),對基于UML的軟件設(shè)計過程進行定制。根據(jù)UML各種視圖的特點,它們可能更適用于軟件分析與設(shè)計的某些活動,形成了一些常用的設(shè)計方式與過程,起到一定的指導(dǎo)作用,但并沒有強制性要求。共六十一頁基于(jīyú)UML的分析與設(shè)計過程用例分析(fēnxī)與設(shè)計概念模型與頂層架構(gòu)設(shè)計用戶界面設(shè)計數(shù)據(jù)模型設(shè)計設(shè)計精化類設(shè)計部署模型設(shè)計UML設(shè)計模型類圖包圖構(gòu)件圖用例圖交互圖活動圖類圖包圖交互圖構(gòu)件圖部署圖類圖包圖構(gòu)件圖類圖狀態(tài)圖活動圖共六十一頁基于UML的分析(fēnxī)與設(shè)計過程用例分析與設(shè)計:需求獲取,分析和描述的過程,它將利用例及用例圖表示(biǎoshì)需求。概念模型與頂層架構(gòu)設(shè)計:在用戶需求和相關(guān)的業(yè)務(wù)領(lǐng)域中,概念及概念關(guān)系的抽取用戶界面設(shè)計:設(shè)計每個界面中的所有界面元素,確定初步的界面布局,定義用戶界面動作對軟件系統(tǒng)中設(shè)計元素的要求數(shù)據(jù)模型的設(shè)計:確定設(shè)計模型中需要持久保存的類的對象及其屬性,定義持久持久存儲數(shù)據(jù)之間的組織方式,并明確數(shù)據(jù)模型中的操作行為。設(shè)計的精化:對上面的邏輯、界面、數(shù)據(jù)模型等不同側(cè)重點的設(shè)計結(jié)果進行整理,合并相似的類,保證各模型之間的一到處性,并消除冗余,為了提高整全后模型的質(zhì)量,可能需要引入繼承、聚集等關(guān)系對類設(shè)計進行組織和精化,并可能需要引入新的關(guān)鍵類和控制類。交互圖等設(shè)計模型進行精華,以更具體地描述場景交互過程。共六十一頁基于(jīyú)UML的分析與設(shè)計過程類設(shè)計:對類進行細化設(shè)計,精化類之間的關(guān)系以及類的操作和屬性,使它們能夠直接提交給軟件構(gòu)造階段進行編碼實現(xiàn)。對重要控制類,采用狀態(tài)圖描述類的實例在生存周期中對外部事件的響應(yīng)筆狀態(tài)變化過程,并可以采用活動圖對重要的方法過程開算法進行描述。部署模型設(shè)計:對軟件最終的元素(yuánsù)結(jié)構(gòu)以及運行的具體環(huán)境進行描述,包括刻畫最終可能生成的運行文件、庫文件或軟件包以及這些元素(yuánsù)之間的靜態(tài)關(guān)系,軟件最終運行的物理平臺拓樸結(jié)構(gòu),描述其中的物理節(jié)點以及它們之間的通信和交互方式,并說明軟件包、運行文件,子系統(tǒng)等元素(yuánsù)在物理節(jié)點上的部署方案共六十一頁用例的分析(fēnxī)與設(shè)計確定用例生成(shēnɡchénɡ)用例圖用例設(shè)計描述共六十一頁銀行ATM自動(zìdòng)柜員機需求簡述提供以下服務(wù):取款。顧客用銀行卡從對應(yīng)的賬戶中支取現(xiàn)金,現(xiàn)金必須是存款。顧客可以把現(xiàn)金存入銀行卡對應(yīng)的賬戶中轉(zhuǎn)賬。顧客可以把一個(yīɡè)銀行卡對應(yīng)的賂中的款項轉(zhuǎn)賬到另一個(yīɡè)銀行賬戶中查詢。顧客能夠查詢一個銀行卡對應(yīng)的賬戶中的余額該ATM系統(tǒng)包括以下組成部分:讀卡器交互的控制臺存款的插槽打印機啟動和關(guān)閉ATM系統(tǒng)的開關(guān)鍵盤ATM系統(tǒng)與銀行服務(wù)通過特定的網(wǎng)絡(luò)連接進行通信共六十一頁銀行(yínháng)ATM自動柜員機需求簡述ATM系統(tǒng)在提供以上服務(wù)的過程中,必須滿足以下要求一個顧客可以在最終確認前放棄一項交易ATM在執(zhí)行交易過程中將與銀行系統(tǒng)進行通信,對是否允許交易進行驗證ATM為每次成功(chénggōng)的交易提供一個打印回執(zhí)ATM需要維護一個內(nèi)部日志,對每次交易進行記錄共六十一頁用例的分析(fēnxī)與設(shè)計確定(quèdìng)用例—確定場景從業(yè)務(wù)需求出發(fā)獲取參與者(Actor)和場景,對場景進行匯總、分類、抽象,形成用例場景是用戶與系統(tǒng)之間進行交互的一組具體的動作獲取場景目標軟件有哪些參與者參與者希望系統(tǒng)執(zhí)行的任務(wù)有哪些?參與者希望獲得哪些信息?這些信息由誰生成?由誰修改?參與者城要通知系統(tǒng)哪些事件?系統(tǒng)響應(yīng)這些事件時會表現(xiàn)出哪些外部行為?系統(tǒng)將通告參與者哪些事件?共六十一頁用例的分析(fēnxī)與設(shè)計確定用例—確認(quèrèn)參與者和責(zé)任不同的參與者系統(tǒng)管理員、程序員、會計、出納員與系統(tǒng)通信的其他系統(tǒng)不同的責(zé)任系統(tǒng)配置、程序設(shè)計、財務(wù)管理、現(xiàn)金管理分析參與者的工作:使用案例各種使用過程、步驟共六十一頁用例的分析(fēnxī)與設(shè)計用例的確認(quèrèn)圍繞系統(tǒng)的一個工作過程,確認參與交互過程的參與者如:系統(tǒng)管理員、域控制器(計算機)用系列動作步驟描述交互過程參與者的動作、系統(tǒng)的執(zhí)行步驟要點忽略內(nèi)部細節(jié),僅考慮外部因素共六十一頁用例的分析(fēnxī)與設(shè)計ATM案例(ànlì)——參與者顧客(Customer)操作管理員(Operator)銀行服務(wù)員(BankSystem)讀卡器(CardReader)存款器(CashAcceptor)打印機(Printer)共六十一頁用例的分析(fēnxī)與設(shè)計ATM系統(tǒng)(xìtǒng)—用例取款(Withdrawal)存款(Deposit)轉(zhuǎn)賬(Transfer)查詢余額(Inquiry)開機(SystemStartup)關(guān)機(SystemShutdown)共六十一頁用例的分析(fēnxī)與設(shè)計用例建模步驟(bùzhòu)1)描述各種使用案例描述交互過程的動作序列模擬系統(tǒng)工作的交互過程2)確認動作檢查使用案例,引入并描述動作覆蓋所有可能發(fā)生的動作共六十一頁用例的分析(fēnxī)與設(shè)計用例建模步驟(bùzhòu)3)跟蹤執(zhí)行過程為每個使用案例制作序列圖描述對象之間的消息傳送過程4)構(gòu)造狀態(tài)轉(zhuǎn)移圖為每個對象構(gòu)造的狀態(tài)轉(zhuǎn)移圖反映對象接受和發(fā)送的消息考慮所有使用案例中的所有消息共六十一頁用例的分析(fēnxī)與設(shè)計ATM系統(tǒng)(xìtǒng)初步用例圖共六十一頁用例的分析與設(shè)計(shèjì)-用例設(shè)計描述用例名稱:Withdrawal參與者:Cudtomer,kBankSystem,CardReader,CashDispenser,Printer前置條件:顧客已插入銀行卡,密碼驗證正確,顧客按下“取款”按鈕主事件流:(1)顧客輸入取款金額,并確認。(2)系統(tǒng)認可取款金額,并發(fā)送指令給取款器(3)取款器把相應(yīng)金額的現(xiàn)金送出(4)打印機打印回執(zhí)輔事件流:(1)如果取款金額不是100的整數(shù)倍,則顯示信息“輸入金額必須是100的整數(shù)倍,請重新輸入”,并返回主事件流中步驟(1)(2)如果取款金額超過2000元,則顯示信息“輸入金額不能超2000元,請重新輸入”,并返回主事件流中步驟(1)(3)如果賬戶余額小于取款金額,則顯示信息“賬戶余額不足,請重新輸入”,并返回主事件流中步驟(1)(4)顧客在確認取款金額前右以選擇取消交易。后置條件:如果取款成功,系統(tǒng)從賬戶余額中減去相應(yīng)數(shù)額,并返回等待(děngdài)狀態(tài);如果顧客取消交易,則返回等待(děngdài)狀態(tài)共六十一頁用例的分析(fēnxī)與設(shè)計Startup用例的順序(shùnxù)圖描述共六十一頁用例的分析(fēnxī)與設(shè)計Session用例的順序(shùnxù)圖描述共六十一頁用例的分析(fēnxī)與設(shè)計Transaction用例的順序(shùnxù)圖描述共六十一頁用例的分析(fēnxī)與設(shè)計Withdrawal用例的順序(shùnxù)圖描述共六十一頁概念模型和頂層(dǐnɡcénɡ)架構(gòu)設(shè)計概念模型的設(shè)計標識領(lǐng)域概念模型分析類:直接服務(wù)于用戶功能性需求的概念層面的類,與具體技術(shù)沒有關(guān)系頂層架構(gòu)的設(shè)計目的:為后續(xù)(hòuxù)的分析和設(shè)計活動建立一種結(jié)構(gòu)和劃分共六十一頁概念模型和頂層(dǐnɡcénɡ)架構(gòu)設(shè)計關(guān)鍵概念來源:為建立以UML類圖表示(biǎoshì)的領(lǐng)域概念模型,首先必須標識關(guān)鍵概念。關(guān)鍵概念的來源包括:(1)業(yè)務(wù)需求描述、用例說明;(2)業(yè)務(wù)領(lǐng)域中的相關(guān)規(guī)范、標準、術(shù)語定義。(3)反映業(yè)務(wù)領(lǐng)域知識的既往經(jīng)驗。業(yè)務(wù)需求描述業(yè)務(wù)領(lǐng)域中的相關(guān)規(guī)范、標準、述評呼定義反映業(yè)務(wù)領(lǐng)域知識的既往經(jīng)驗共六十一頁概念模型和頂層(dǐnɡcénɡ)架構(gòu)設(shè)計分析類:(1)邊界類:負責(zé)目標軟件系統(tǒng)與參與者之間的交互。(2)控制(kòngzhì)類:完成用例任務(wù)的責(zé)任承擔者,負責(zé)協(xié)調(diào)、控制(kòngzhì)其他類共同完成用例規(guī)定的功能或行為。(3)實體類:負責(zé)保存目標軟件系統(tǒng)中具有持久意義的信息項并向其他類提供讀、寫信息項內(nèi)容的必要操作接口,一般不涉及業(yè)務(wù)邏輯。共六十一頁概念模型和頂層(dǐnɡcénɡ)架構(gòu)設(shè)計邊界類:其職責(zé)包括:邊界控制:包括定義數(shù)據(jù)的格式及內(nèi)容轉(zhuǎn)換,輸出結(jié)果的呈現(xiàn),軟件(ruǎnjiàn)運行過程中界面的變化與切換等。外部接口:實現(xiàn)目標軟件系統(tǒng)與外部系統(tǒng)或外部設(shè)備之間的信息交流和互操作,主要關(guān)注跨越目標軟件系統(tǒng)邊界的通信協(xié)議環(huán)境隔離:對目標軟件系統(tǒng)與操作系統(tǒng)、數(shù)據(jù)庫管理系統(tǒng)、中間件等環(huán)境軟件進行交互的功能與特性進行封裝,使目標軟件系統(tǒng)的其余部分盡右能獨立于環(huán)境軟件。共六十一頁概念模型和頂層(dǐnɡcénɡ)架構(gòu)設(shè)計ATM系統(tǒng)(xìtǒng)的概念模型——分析模型圖共六十一頁概念模型和頂層(dǐnɡcénɡ)架構(gòu)設(shè)計頂層(dǐnɡcénɡ)架構(gòu)設(shè)計頂層架構(gòu)是分析和設(shè)計階段成果的承載體可以把體系結(jié)構(gòu)設(shè)計方法與上述概念模型得到的結(jié)果結(jié)合起來考慮,利用一定的體系結(jié)構(gòu)模式(例如分層模式、模型-視圖—控制器MVC模式等)對概念模型中的相關(guān)元素進行組織,同時需要考慮目標軟件系統(tǒng)與其他參與者的外部系統(tǒng)之間的聯(lián)系和交互方式。共六十一頁概念模型和頂層(dǐnɡcénɡ)架構(gòu)設(shè)計ATM系統(tǒng)(xìtǒng)的頂層架構(gòu)圖共六十一頁用戶界面(yònɡhùjièmiàn)設(shè)計基于UML的分析與設(shè)計過程用例分析與設(shè)計概念模型和頂層架構(gòu)設(shè)計用戶界面設(shè)計數(shù)據(jù)模型設(shè)計設(shè)計精化(jīnɡhuà)類設(shè)計部署模型設(shè)計共六十一頁用戶界面(yònɡhùjièmiàn)設(shè)計用戶界面是對于用戶的直接表現(xiàn),直接影響到用戶對軟件易用性、友好性的感覺。用戶界面包含兩方面內(nèi)容:首先要完整地包括用戶在使用軟件過程(guòchéng)中所需的各種元素,例如窗口、菜單、按鈕、輸入文本框、選擇列表、提示信息等,缺乏這些元素中的某些將會導(dǎo)致軟件功能無法被用戶正常完成;其次要求具有良好的外觀和布局,例如背景顏色、按鈕等元素的位置、選擇列表中條目的順序等,這些因素的不足可能不會影響軟件功能的正確使用,但會給用戶帶來不便、迷惑甚至反感。共六十一頁用戶界面(yònɡhùjièmiàn)設(shè)計用戶界面元素分為兩個層次:屏幕:用構(gòu)造型<<screen>>表示窗口:屏幕上的組成部分(文本框、按鈕等)統(tǒng)一稱為窗口。用構(gòu)造型<<window>>表示用戶界面的結(jié)構(gòu)可以由UML類圖描述,屏幕和窗口用類進行表示,并給出它們之間的關(guān)系。屏幕之間的切換過程可以用UML狀態(tài)圖表示。每個狀態(tài)表示當時所處的屏幕,遷移表示用戶激勵。當屏幕中有許多窗口時,可以對窗口劃分層次,一些簡單的窗口可以作為復(fù)雜窗口的屬性(shǔxìng)和操作。共六十一頁用戶界面(yònɡhùjièmiàn)設(shè)計CustomerConsole用戶通過控制臺使用ATM的過程中,可分為5個相對獨立的過程(1)插入銀行卡到輸入正確密碼并進入選擇交易類型的屏幕(2)選擇“取款”交易,并到完成(wánchéng)后退出或返回選擇交易類型的屏幕(3)選擇“存款”交易,并到完成后退出或返回選擇交易類型的屏幕(4)選擇“轉(zhuǎn)帳”交易,并到完成后退出或返回選擇交易類型的屏幕(5)選擇“查詢”交易,并到完成后退出或返回選擇交易類型的屏幕共六十一頁用戶界面(yònɡhùjièmiàn)設(shè)計屏幕(píngmù)結(jié)構(gòu)類圖共六十一頁用戶界面(yònɡhùjièmiàn)設(shè)計屏幕(píngmù)變化狀態(tài)圖“插卡”過程的屏幕轉(zhuǎn)換狀態(tài)圖:每個狀態(tài)表示一個屏幕,遷移表示當前屏幕用戶的激勵。共六十一頁用戶界面(yònɡhùjièmiàn)設(shè)計屏幕(píngmù)結(jié)構(gòu)類圖InputPin屏幕的結(jié)構(gòu)圖。每個屏幕的結(jié)構(gòu)可以用類圖設(shè)計,即屏幕上有什么(窗口),如:文本框、按鈕等共六十一頁用戶界面(yònɡhùjièmiàn)設(shè)計屏幕(píngmù)結(jié)構(gòu)包圖顧客控制臺包含豐富的元素,可以進一步細化形成一個對應(yīng)的包,專門描述界面元素其中有分為5個子包,分別對應(yīng)“插卡”、“取款”、“存款”、“轉(zhuǎn)賬”、“查詢”5個獨立的過程。每個子包又對應(yīng)一些列的屏幕,并對應(yīng)到表示屏幕切換的狀態(tài)圖共六十一頁用戶界面(yònɡhùjièmiàn)設(shè)計一個獨立(dúlì)的過程包含若干屏幕變換狀態(tài)圖表示屏幕間的變換狀態(tài)圖的一個狀態(tài)表示一個屏幕一個屏幕的結(jié)構(gòu)用屏幕結(jié)構(gòu)(類)圖表示共六十一頁數(shù)據(jù)模型設(shè)計(shèjì)數(shù)據(jù)模型設(shè)計包括數(shù)據(jù)結(jié)構(gòu)設(shè)計、數(shù)據(jù)庫設(shè)計、數(shù)據(jù)文件設(shè)計等,本節(jié)主要關(guān)注持久數(shù)據(jù)存儲設(shè)計。持久數(shù)據(jù)模型設(shè)計步驟為:(1)確定設(shè)計模型中需要持久保存的類的對象及其屬性,其中實體類是主要關(guān)注對象。(2)確定持久存儲的數(shù)據(jù)之間的組織方式。(3)確定數(shù)據(jù)模型中的操作(cāozuò)行為,例如數(shù)據(jù)完整性驗證、數(shù)據(jù)讀取、存儲與更新、數(shù)據(jù)求和、求數(shù)據(jù)平均值等。(3)進一步優(yōu)化持久數(shù)據(jù)操作的性能,如使用數(shù)據(jù)索引、存儲過程、觸發(fā)器等方式。數(shù)據(jù)模型設(shè)計的輸出制品是數(shù)據(jù)模型,包括以UML類圖表示的數(shù)據(jù)庫表格以及它們之間的關(guān)系。數(shù)據(jù)模型必須滿足設(shè)計模型對持久數(shù)據(jù)存儲的要求。共六十一頁數(shù)據(jù)模型設(shè)計(shèjì)-關(guān)系數(shù)據(jù)庫建模類對應(yīng)于關(guān)系數(shù)據(jù)模型中的表格(table),對象對應(yīng)于記錄(jìlù)(record),屬性對應(yīng)于表格中的字段(field)或者列(column),類中的方法實現(xiàn)可以用SQL語句對數(shù)據(jù)庫表格進行操作。<<table>>表示表格,<<key>>表示關(guān)鍵字,<<>foreignkey>表示外鍵共六十一頁數(shù)據(jù)模型設(shè)計(shèjì)-數(shù)據(jù)模型共六十一頁設(shè)計(shèjì)精化精化任務(wù):1,精化軟件架構(gòu)2,調(diào)整軟件構(gòu)成(gòuchéng)的類3,精化交互模型4,精化類之間關(guān)系共六十一頁設(shè)計(shèjì)精化-精化軟件架構(gòu)目的:尋找理想的包劃分方案,包中類數(shù)量適中,邊界清晰的,自然,耦合度低降低耦合度拆分成子包調(diào)整類的擺放位置,移到另外的包合并包或合并后重新劃分原則避免包間的循環(huán)依賴位于(wèiyú)較低層次的通用包不應(yīng)當依賴于較高層次中的專用包在層次結(jié)構(gòu)中,較高層次的包可以依賴較低層次的包,但應(yīng)盡量在相鄰的層次間發(fā)生如果針對某些子系統(tǒng)專門劃分了接口包和實現(xiàn)包,那么,其他與該子系統(tǒng)相關(guān)的包吸能依賴于接口包,不能依賴于實現(xiàn)包共六十一頁設(shè)計(shèjì)精化-精化軟件架構(gòu)用戶交互(jiāohù)層包精化后的模型共六十一頁設(shè)計(shèjì)精化-精化軟件架構(gòu)用戶交互層中子(zhōngzǐ)包精化后的模型共六十一頁設(shè)計(shèjì)精化調(diào)整軟件(ruǎnjiàn)構(gòu)成類增加輔助類引入新類以彌補不足合并相互通信頻繁的類若類的屬性和操作簡單,但與其他類通信非常用頻繁,即耦合度很高,這樣的類可以合并到其他類中分拆規(guī)模過大的類若一個類的屬性可以區(qū)分為常用和罕用,為提高效率,拆分為“常用”類和數(shù)個“罕用”類,建立聚合關(guān)系若一個類既要負責(zé)業(yè)務(wù)邏輯,又要實現(xiàn)與外部數(shù)據(jù)通信,那么可以拆分為,業(yè)務(wù)邏輯類和通信類共六十一頁設(shè)計(shèjì)精化精化(jīnɡhuà)過程中新增加的類共六十一頁設(shè)計(shèjì)精化精化交互(jiāohù)模型交互圖進行精化時,需要考慮以下內(nèi)容軟件架構(gòu)的組成類被迫調(diào)整之后對交互模型產(chǎn)生的影響,新出現(xiàn)的對象可拆分后的對象如何參與交互過程,在其中起到什么樣的作用對象在交互過程中的消息傳遞需要哪些參數(shù)和返回值交互過程是否需要細化,例如如增加必要的消息,或?qū)植恳靡粋€更加具體的交互圖共六十一頁設(shè)計(shèjì)精化精化(jīnɡhuà)后的Withdrawal順序圖共六十一頁設(shè)計(shèjì)精化-精化類之間的關(guān)系詳細研究類之間的連接關(guān)系精確判定關(guān)系:依賴、關(guān)聯(lián)、聚合、構(gòu)成確定連接的方向吸參與連接的類對象之間的數(shù)量對應(yīng)關(guān)系根據(jù)軟件(ruǎnjiàn)復(fù)用的要求及軟件(ruǎnjiàn)結(jié)構(gòu)簡潔化、清晰化的要求,優(yōu)化類之間的關(guān)系連接關(guān)系,主要是構(gòu)筑消息通道。面向?qū)ο蟮某绦蛟O(shè)計機制提供4種手段:引用全局對象:obj1直接引用作為全局對象的obj2通過參數(shù)傳遞:obj2作為obj1的某項操作的實際參數(shù)引用局部對象:在obj1的某項操作的數(shù)數(shù)體中創(chuàng)建或獲取obj2通過類的成員變量:obj2作為obj1所屬類的司性的取值共六十一頁設(shè)計(shèjì)精化-精化類之間的關(guān)系利用繼承關(guān)系精化設(shè)計模型尋找類之間的公共屬性和操作,引進父類捕獲公共性,簡化模型將類劃分為集合,針對每個集合特性設(shè)計一個父類,讓集合中的所有類成為該父類的子類可能需要將多重繼承化解為間重繼承對業(yè)務(wù)邏輯、界面、數(shù)據(jù)模型等不同(bùtónɡ)的設(shè)計模型進行整理和融合合交相似類消除設(shè)計模型之間的冗余保證一致性共六十一頁類設(shè)計(shèjì)類設(shè)計的任務(wù)是對各種設(shè)計模型中出現(xiàn)的類進行細化設(shè)計,以使它們精細(jīngxì)至能夠直接提交給軟件構(gòu)造階段進行代碼實現(xiàn),類設(shè)計也是一種對設(shè)計的精化,類設(shè)計主要包括:(1)對類的屬性與操作進行精化。(2)對類的對象實例在其生命周期中對外部消息的響應(yīng)和狀態(tài)變化過程進行建模。(3)對類中重要操作的實現(xiàn)過程或算法進行描述。(1)關(guān)注單個類的內(nèi)部細節(jié)的設(shè)計;(2)和(3)屬于類的行為模型設(shè)計。共六十一頁類設(shè)計-精化(jīnɡhuà)類的屬性與操作對于類的每項屬性,在設(shè)計模型中,可以定義屬性的名稱、類型、初始值、取值范圍及屬性說明(后三項內(nèi)容是可選的)。操作(cāozuò)的基本內(nèi)容包括名稱、參數(shù)表(含參數(shù)的名稱和類型)、返回類型、功能描述。如果操作比較復(fù)雜,還需要用文字或UML活動圖說明操作的實現(xiàn)算法。共六十一頁類設(shè)計(shèjì)-精化類的屬性與操作屬性(shǔxìng)和操作的作用范圍:(1)public:對系統(tǒng)中所有類可見(2)protected:對本類及其子類可見(3)private:僅對本類可見確定屬性和操作作用范圍的原則:盡量縮小作用范圍,每個類僅公開那些直接響應(yīng)消息所必需的操作。原則上屬性不宜公開,如果確有必要讓其他類讀取或者設(shè)置該屬性的值,應(yīng)通過本類增加get/set函數(shù)實現(xiàn)。共六十一頁類設(shè)計-精化(jīnɡhuà)類之間的關(guān)系在類中設(shè)置相應(yīng)屬性(shǔxìng),實現(xiàn)類之間的關(guān)聯(lián)、聚合、構(gòu)成關(guān)系:a、類型為B的指針或引用b、集合類型,集合元素的類型為B的指針或引用c、類型為B的指針或引用d、集合類型,集合元素的類型為B

ABa1:1的

溫馨提示

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

評論

0/150

提交評論