軟件設(shè)計(jì)與體系結(jié)構(gòu) 第四章 面向?qū)ο蟮能浖O(shè)計(jì)方法_第1頁(yè)
軟件設(shè)計(jì)與體系結(jié)構(gòu) 第四章 面向?qū)ο蟮能浖O(shè)計(jì)方法_第2頁(yè)
軟件設(shè)計(jì)與體系結(jié)構(gòu) 第四章 面向?qū)ο蟮能浖O(shè)計(jì)方法_第3頁(yè)
軟件設(shè)計(jì)與體系結(jié)構(gòu) 第四章 面向?qū)ο蟮能浖O(shè)計(jì)方法_第4頁(yè)
軟件設(shè)計(jì)與體系結(jié)構(gòu) 第四章 面向?qū)ο蟮能浖O(shè)計(jì)方法_第5頁(yè)
已閱讀5頁(yè),還剩56頁(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)介

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

ABa1:1的

溫馨提示

  • 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論