![軟件設(shè)計(jì)與體系結(jié)構(gòu) 第四章 面向?qū)ο蟮能浖O(shè)計(jì)方法_第1頁(yè)](http://file4.renrendoc.com/view14/M09/13/0B/wKhkGWcHLaiAK99OAACgYu212xM001.jpg)
![軟件設(shè)計(jì)與體系結(jié)構(gòu) 第四章 面向?qū)ο蟮能浖O(shè)計(jì)方法_第2頁(yè)](http://file4.renrendoc.com/view14/M09/13/0B/wKhkGWcHLaiAK99OAACgYu212xM0012.jpg)
![軟件設(shè)計(jì)與體系結(jié)構(gòu) 第四章 面向?qū)ο蟮能浖O(shè)計(jì)方法_第3頁(yè)](http://file4.renrendoc.com/view14/M09/13/0B/wKhkGWcHLaiAK99OAACgYu212xM0013.jpg)
![軟件設(shè)計(jì)與體系結(jié)構(gòu) 第四章 面向?qū)ο蟮能浖O(shè)計(jì)方法_第4頁(yè)](http://file4.renrendoc.com/view14/M09/13/0B/wKhkGWcHLaiAK99OAACgYu212xM0014.jpg)
![軟件設(shè)計(jì)與體系結(jié)構(gòu) 第四章 面向?qū)ο蟮能浖O(shè)計(jì)方法_第5頁(yè)](http://file4.renrendoc.com/view14/M09/13/0B/wKhkGWcHLaiAK99OAACgYu212xM0015.jpg)
版權(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ū)ο箝_(kāi)發(fā)方法的核心是利用面向?qū)ο蟮母拍詈头椒▽?duì)軟件需求分析和設(shè)計(jì),建立面向?qū)ο蟮能浖治龊驮O(shè)計(jì)模型。面向?qū)ο筌浖_(kāi)發(fā)過(guò)程從領(lǐng)域概念到設(shè)計(jì)概念和代碼實(shí)現(xiàn)都以類(lèi)和對(duì)象為核心,是一個(gè)逐步精化的過(guò)程,因此需求分析和設(shè)計(jì)之間并沒(méi)有嚴(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ì)精化類(lèi)設(shè)計(jì)部署(bùshǔ)模型設(shè)計(jì)共六十一頁(yè)基于UML的分析與設(shè)計(jì)(shèjì)過(guò)程UML是獨(dú)立于軟件開(kāi)發(fā)過(guò)程的,它幾乎可以用于任何類(lèi)型的軟件開(kāi)發(fā)過(guò)程,包括瀑布式、迭代式、螺旋式等不同模型。在軟件分析和設(shè)計(jì)中,可以根據(jù)項(xiàng)目的特征、開(kāi)發(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)作用,但并沒(méi)有強(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ì)精化類(lèi)設(shè)計(jì)部署模型設(shè)計(jì)UML設(shè)計(jì)模型類(lèi)圖包圖構(gòu)件圖用例圖交互圖活動(dòng)圖類(lèi)圖包圖交互圖構(gòu)件圖部署圖類(lèi)圖包圖構(gòu)件圖類(lèi)圖狀態(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ì)模型中需要持久保存的類(lèi)的對(duì)象及其屬性,定義持久持久存儲(chǔ)數(shù)據(jù)之間的組織方式,并明確數(shù)據(jù)模型中的操作行為。設(shè)計(jì)的精化:對(duì)上面的邏輯、界面、數(shù)據(jù)模型等不同側(cè)重點(diǎn)的設(shè)計(jì)結(jié)果進(jìn)行整理,合并相似的類(lèi),保證各模型之間的一到處性,并消除冗余,為了提高整全后模型的質(zhì)量,可能需要引入繼承、聚集等關(guān)系對(duì)類(lèi)設(shè)計(jì)進(jìn)行組織和精化,并可能需要引入新的關(guān)鍵類(lèi)和控制類(lèi)。交互圖等設(shè)計(jì)模型進(jìn)行精華,以更具體地描述場(chǎng)景交互過(guò)程。共六十一頁(yè)基于(jīyú)UML的分析與設(shè)計(jì)過(guò)程類(lèi)設(shè)計(jì):對(duì)類(lèi)進(jìn)行細(xì)化設(shè)計(jì),精化類(lèi)之間的關(guān)系以及類(lèi)的操作和屬性,使它們能夠直接提交給軟件構(gòu)造階段進(jìn)行編碼實(shí)現(xiàn)。對(duì)重要控制類(lèi),采用狀態(tài)圖描述類(lèi)的實(shí)例在生存周期中對(duì)外部事件的響應(yīng)筆狀態(tài)變化過(guò)程,并可以采用活動(dòng)圖對(duì)重要的方法過(guò)程開(kāi)算法進(jìn)行描述。部署模型設(shè)計(jì):對(duì)軟件最終的元素(yuánsù)結(jié)構(gòu)以及運(yùn)行的具體環(huán)境進(jìn)行描述,包括刻畫(huà)最終可能生成的運(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)的開(kāi)關(guān)鍵盤(pá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)行匯總、分類(lèi)、抽象,形成用例場(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)開(kāi)機(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)域概念模型分析類(lèi):直接服務(wù)于用戶功能性需求的概念層面的類(lèi),與具體技術(shù)沒(méi)有關(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類(lèi)圖表示(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ì)分析類(lèi):(1)邊界類(lèi):負(fù)責(zé)目標(biāo)軟件系統(tǒng)與參與者之間的交互。(2)控制(kòngzhì)類(lèi):完成用例任務(wù)的責(zé)任承擔(dān)者,負(fù)責(zé)協(xié)調(diào)、控制(kòngzhì)其他類(lèi)共同完成用例規(guī)定的功能或行為。(3)實(shí)體類(lèi):負(fù)責(zé)保存目標(biāo)軟件系統(tǒng)中具有持久意義的信息項(xiàng)并向其他類(lèi)提供讀、寫(xiě)信息項(xiàng)內(nèi)容的必要操作接口,一般不涉及業(yè)務(wù)邏輯。共六十一頁(yè)概念模型和頂層(dǐnɡcénɡ)架構(gòu)設(shè)計(jì)邊界類(lèi):其職責(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à)類(lèi)設(shè)計(jì)部署模型設(shè)計(jì)共六十一頁(yè)用戶界面(yònɡhùjièmiàn)設(shè)計(jì)用戶界面是對(duì)于用戶的直接表現(xiàn),直接影響到用戶對(duì)軟件易用性、友好性的感覺(jué)。用戶界面包含兩方面內(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類(lèi)圖描述,屏幕和窗口用類(lèi)進(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)入選擇交易類(lèi)型的屏幕(2)選擇“取款”交易,并到完成(wánchéng)后退出或返回選擇交易類(lèi)型的屏幕(3)選擇“存款”交易,并到完成后退出或返回選擇交易類(lèi)型的屏幕(4)選擇“轉(zhuǎn)帳”交易,并到完成后退出或返回選擇交易類(lèi)型的屏幕(5)選擇“查詢”交易,并到完成后退出或返回選擇交易類(lèi)型的屏幕共六十一頁(yè)用戶界面(yònɡhùjièmiàn)設(shè)計(jì)屏幕(píngmù)結(jié)構(gòu)類(lèi)圖共六十一頁(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)類(lèi)圖InputPin屏幕的結(jié)構(gòu)圖。每個(gè)屏幕的結(jié)構(gòu)可以用類(lèi)圖設(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)的包,專(zhuān)門(mén)描述界面元素其中有分為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)(類(lèi))圖表示共六十一頁(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ì)模型中需要持久保存的類(lèi)的對(duì)象及其屬性,其中實(shí)體類(lèi)是主要關(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類(lèi)圖表示的數(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ù)建模類(lèi)對(duì)應(yīng)于關(guān)系數(shù)據(jù)模型中的表格(table),對(duì)象對(duì)應(yīng)于記錄(jìlù)(record),屬性對(duì)應(yīng)于表格中的字段(field)或者列(column),類(lèi)中的方法實(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)的類(lèi)3,精化交互模型4,精化類(lèi)之間關(guān)系共六十一頁(yè)設(shè)計(jì)(shèjì)精化-精化軟件架構(gòu)目的:尋找理想的包劃分方案,包中類(lèi)數(shù)量適中,邊界清晰的,自然,耦合度低降低耦合度拆分成子包調(diào)整類(lèi)的擺放位置,移到另外的包合并包或合并后重新劃分原則避免包間的循環(huán)依賴位于(wèiyú)較低層次的通用包不應(yīng)當(dāng)依賴于較高層次中的專(zhuān)用包在層次結(jié)構(gòu)中,較高層次的包可以依賴較低層次的包,但應(yīng)盡量在相鄰的層次間發(fā)生如果針對(duì)某些子系統(tǒng)專(zhuān)門(mén)劃分了接口包和實(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)成類(lèi)增加輔助類(lèi)引入新類(lèi)以彌補(bǔ)不足合并相互通信頻繁的類(lèi)若類(lèi)的屬性和操作簡(jiǎn)單,但與其他類(lèi)通信非常用頻繁,即耦合度很高,這樣的類(lèi)可以合并到其他類(lèi)中分拆規(guī)模過(guò)大的類(lèi)若一個(gè)類(lèi)的屬性可以區(qū)分為常用和罕用,為提高效率,拆分為“常用”類(lèi)和數(shù)個(gè)“罕用”類(lèi),建立聚合關(guān)系若一個(gè)類(lèi)既要負(fù)責(zé)業(yè)務(wù)邏輯,又要實(shí)現(xiàn)與外部數(shù)據(jù)通信,那么可以拆分為,業(yè)務(wù)邏輯類(lèi)和通信類(lèi)共六十一頁(yè)設(shè)計(jì)(shèjì)精化精化(jīnɡhuà)過(guò)程中新增加的類(lèi)共六十一頁(yè)設(shè)計(jì)(shèjì)精化精化交互(jiāohù)模型交互圖進(jìn)行精化時(shí),需要考慮以下內(nèi)容軟件架構(gòu)的組成類(lèi)被迫調(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ì)精化-精化類(lèi)之間的關(guān)系詳細(xì)研究類(lèi)之間的連接關(guān)系精確判定關(guān)系:依賴、關(guān)聯(lián)、聚合、構(gòu)成確定連接的方向吸參與連接的類(lèi)對(duì)象之間的數(shù)量對(duì)應(yīng)關(guān)系根據(jù)軟件(ruǎnjiàn)復(fù)用的要求及軟件(ruǎnjiàn)結(jié)構(gòu)簡(jiǎn)潔化、清晰化的要求,優(yōu)化類(lèi)之間的關(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ò)類(lèi)的成員變量:obj2作為obj1所屬類(lèi)的司性的取值共六十一頁(yè)設(shè)計(jì)(shèjì)精化-精化類(lèi)之間的關(guān)系利用繼承關(guān)系精化設(shè)計(jì)模型尋找類(lèi)之間的公共屬性和操作,引進(jìn)父類(lèi)捕獲公共性,簡(jiǎn)化模型將類(lèi)劃分為集合,針對(duì)每個(gè)集合特性設(shè)計(jì)一個(gè)父類(lèi),讓集合中的所有類(lèi)成為該父類(lèi)的子類(lèi)可能需要將多重繼承化解為間重繼承對(duì)業(yè)務(wù)邏輯、界面、數(shù)據(jù)模型等不同(bùtónɡ)的設(shè)計(jì)模型進(jìn)行整理和融合合交相似類(lèi)消除設(shè)計(jì)模型之間的冗余保證一致性共六十一頁(yè)類(lèi)設(shè)計(jì)(shèjì)類(lèi)設(shè)計(jì)的任務(wù)是對(duì)各種設(shè)計(jì)模型中出現(xiàn)的類(lèi)進(jìn)行細(xì)化設(shè)計(jì),以使它們精細(xì)(jīngxì)至能夠直接提交給軟件構(gòu)造階段進(jìn)行代碼實(shí)現(xiàn),類(lèi)設(shè)計(jì)也是一種對(duì)設(shè)計(jì)的精化,類(lèi)設(shè)計(jì)主要包括:(1)對(duì)類(lèi)的屬性與操作進(jìn)行精化。(2)對(duì)類(lèi)的對(duì)象實(shí)例在其生命周期中對(duì)外部消息的響應(yīng)和狀態(tài)變化過(guò)程進(jìn)行建模。(3)對(duì)類(lèi)中重要操作的實(shí)現(xiàn)過(guò)程或算法進(jìn)行描述。(1)關(guān)注單個(gè)類(lèi)的內(nèi)部細(xì)節(jié)的設(shè)計(jì);(2)和(3)屬于類(lèi)的行為模型設(shè)計(jì)。共六十一頁(yè)類(lèi)設(shè)計(jì)-精化(jīnɡhuà)類(lèi)的屬性與操作對(duì)于類(lèi)的每項(xiàng)屬性,在設(shè)計(jì)模型中,可以定義屬性的名稱、類(lèi)型、初始值、取值范圍及屬性說(shuō)明(后三項(xiàng)內(nèi)容是可選的)。操作(cāozuò)的基本內(nèi)容包括名稱、參數(shù)表(含參數(shù)的名稱和類(lèi)型)、返回類(lèi)型、功能描述。如果操作比較復(fù)雜,還需要用文字或UML活動(dòng)圖說(shuō)明操作的實(shí)現(xiàn)算法。共六十一頁(yè)類(lèi)設(shè)計(jì)(shèjì)-精化類(lèi)的屬性與操作屬性(shǔxìng)和操作的作用范圍:(1)public:對(duì)系統(tǒng)中所有類(lèi)可見(jiàn)(2)protected:對(duì)本類(lèi)及其子類(lèi)可見(jiàn)(3)private:僅對(duì)本類(lèi)可見(jiàn)確定屬性和操作作用范圍的原則:盡量縮小作用范圍,每個(gè)類(lèi)僅公開(kāi)那些直接響應(yīng)消息所必需的操作。原則上屬性不宜公開(kāi),如果確有必要讓其他類(lèi)讀取或者設(shè)置該屬性的值,應(yīng)通過(guò)本類(lèi)增加get/set函數(shù)實(shí)現(xiàn)。共六十一頁(yè)類(lèi)設(shè)計(jì)-精化(jīnɡhuà)類(lèi)之間的關(guān)系在類(lèi)中設(shè)置相應(yīng)屬性(shǔxìng),實(shí)現(xiàn)類(lèi)之間的關(guān)聯(lián)、聚合、構(gòu)成關(guān)系:a、類(lèi)型為B的指針或引用b、集合類(lèi)型,集合元素的類(lèi)型為B的指針或引用c、類(lèi)型為B的指針或引用d、集合類(lèi)型,集合元素的類(lèi)型為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ù)覽,若沒(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 陜教版道德與法治九年級(jí)上冊(cè)8.1《升學(xué)就業(yè)善選擇》聽(tīng)課評(píng)課記錄
- 浙教版數(shù)學(xué)七年級(jí)上冊(cè)第五章《一元一次方程》復(fù)習(xí)聽(tīng)評(píng)課記錄
- 蘇科版七年級(jí)數(shù)學(xué)上冊(cè)《2.7.1理數(shù)的乘方》聽(tīng)評(píng)課記錄
- 華東師大版七年級(jí)數(shù)學(xué)上冊(cè)《第1章走進(jìn)數(shù)學(xué)世界1.2人類(lèi)離不開(kāi)數(shù)學(xué) 》聽(tīng)評(píng)課記錄
- 蘇科版數(shù)學(xué)九年級(jí)下冊(cè)8.4《抽簽方法合理嗎》聽(tīng)評(píng)課記錄
- 蘇科版數(shù)學(xué)九年級(jí)上冊(cè)1.2《一元二次方程的解法》聽(tīng)評(píng)課記錄4
- 生態(tài)環(huán)境監(jiān)測(cè)數(shù)據(jù)共享合同(2篇)
- 環(huán)境數(shù)據(jù)共享服務(wù)合同(2篇)
- 聽(tīng)評(píng)課研討記錄七年級(jí)
- 滬教版數(shù)學(xué)七年級(jí)下冊(cè)15.2《直角坐標(biāo)平面內(nèi)點(diǎn)的運(yùn)動(dòng)》聽(tīng)評(píng)課記錄
- 電化學(xué)免疫傳感器的應(yīng)用
- 數(shù)據(jù)中心基礎(chǔ)知識(shí)培訓(xùn)-2024鮮版
- 供電企業(yè)輿情的預(yù)防及處置
- 【高中語(yǔ)文】《氓》課件++統(tǒng)編版+高中語(yǔ)文選擇性必修下冊(cè)
- T-WAPIA 052.3-2023 無(wú)線局域網(wǎng)設(shè)備技術(shù)規(guī)范 第3部分:接入點(diǎn)和控制器
- 第4課+中古時(shí)期的亞洲(教學(xué)設(shè)計(jì))-【中職專(zhuān)用】《世界歷史》(高教版2023基礎(chǔ)模塊)
- 金點(diǎn)子活動(dòng)總結(jié)匯報(bào)
- 運(yùn)動(dòng)技能學(xué)習(xí)與控制完整
- 原料驗(yàn)收標(biāo)準(zhǔn)知識(shí)培訓(xùn)課件
- Unit4MyfamilyStorytime(課件)人教新起點(diǎn)英語(yǔ)三年級(jí)下冊(cè)
- 物流運(yùn)作管理-需求預(yù)測(cè)
評(píng)論
0/150
提交評(píng)論