




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、高級(jí)軟件工程第五講:系統(tǒng)詳細(xì)設(shè)計(jì)邱明博士mingqiu 廈門大學(xué)軟件學(xué)院 2013年春113年5月19日星期日第五講 系統(tǒng)詳細(xì)設(shè)計(jì)üü面向數(shù)據(jù)流的設(shè)計(jì)方法面向?qū)ο蟾攀雒嫦驅(qū)ο蟮脑O(shè)計(jì)方法面向?qū)ο蟮脑O(shè)計(jì)實(shí)例213年5月19日星期日5.1 面向數(shù)據(jù)流的設(shè)計(jì)方法確定信息流的類型劃定流界將數(shù)據(jù)流圖為程序結(jié)構(gòu)精化所得到的結(jié)構(gòu)313年5月19日星期日5.1.1 信息流類型輸入流、輸出流和變換流數(shù)據(jù)以順序的方式沿著一條或幾條直線路徑進(jìn)行;信息由外部形式轉(zhuǎn)換為內(nèi)部形式,經(jīng)過(guò)加工和處理,信息再由內(nèi)部形式轉(zhuǎn)換為外部形式413年5月19日星期日5.1.1 信息流類型事務(wù)流將外部信息轉(zhuǎn)換為一個(gè)事務(wù),
2、對(duì)事務(wù)進(jìn)行評(píng)估,并且根據(jù)其值啟動(dòng)其中一條動(dòng)作路徑流。發(fā)射出多條動(dòng)作路徑的信息流中心被稱為事務(wù)中心。513年5月19日星期日5.1.1 信息流類型事務(wù)流的圖例613年5月19日星期日轉(zhuǎn)換流事務(wù)中心動(dòng)作路徑5.1.2 劃定流界從物理輸入端沿?cái)?shù)據(jù)流移動(dòng),直至達(dá)到這樣一個(gè)數(shù)據(jù)流,它再不能被作為系統(tǒng)輸入,則此前的數(shù)據(jù)流都是輸入流;用類似的方法也可以從物理輸出端出發(fā),找出輸出流;輸入流和輸出流之間的則是變換流或事務(wù)流。713年5月19日星期日5.1.3 將數(shù)據(jù)流圖映射為程序結(jié)構(gòu)從變換型數(shù)據(jù)流圖中導(dǎo)出程序結(jié)構(gòu)首先在變換流的位置上畫(huà)出主模塊采用自頂向下,逐步細(xì)化的思想畫(huà)出以下各層的結(jié)構(gòu)設(shè)計(jì)每一層均需按輸入、變
3、換和輸出等分支處理為每一個(gè)輸入流畫(huà)一個(gè)輸入模塊為每一個(gè)輸出流畫(huà)一個(gè)輸出模塊813年5月19日星期日面板顯示用戶命令和數(shù)據(jù)顯示信息SafeHome 軟件 0數(shù)字語(yǔ)音傳感器狀態(tài)線SafeHome安全功能的范圍圖913年5月19日星期日傳感器面板配置系統(tǒng)0.3用戶命令和數(shù)據(jù)配置數(shù)據(jù)配置請(qǐng)求與用戶交互0.1 配置信息激活/ 關(guān)閉消息顯示消息和狀態(tài)0.5啟動(dòng)停止激活/ 關(guān)閉系統(tǒng)0.4顯示信息面板顯示有效ID消息配置數(shù)據(jù)處理0.2傳感器0.6數(shù)字語(yǔ)音傳感器狀態(tài)線1級(jí)DFD圖1013年5月19日星期日傳感器面板傳感器的2級(jí)DFD圖傳感器信息格式顯示0.6.1生成 警報(bào)信號(hào)0.6.5警報(bào)類型 配置信息傳感器I
4、D、類型和位置 評(píng)估設(shè)置0.6.2警報(bào)數(shù)據(jù)號(hào)碼傳感器ID 和類型讀傳感器0.6.3撥0.6.4數(shù)字語(yǔ)音傳感器狀態(tài)1113年5月19日星期日傳感器的3級(jí)DFD圖傳感器信息格式顯示0.6.1生成 警報(bào)信號(hào)0.6.5警報(bào)類型配置信息傳感器ID、類型和位置建立警報(bào)條件傳感器ID和設(shè)置警報(bào)數(shù)據(jù)號(hào)碼列表生成 撥號(hào)脈沖語(yǔ)音準(zhǔn)備選擇號(hào)碼建立連接數(shù)字語(yǔ)音號(hào)碼獲得 響應(yīng)信息傳感器ID和設(shè)置傳感器狀態(tài) 讀傳感器0.6.31213年5月19日星期日輸入流轉(zhuǎn)換流輸出流傳感器信息格式顯示0.6.1生成 警報(bào)信號(hào)0.6.5警報(bào)類型配置信息傳感器ID、類型
5、和位置建立 警報(bào)條件警報(bào)數(shù)據(jù)號(hào)碼列表語(yǔ)音準(zhǔn)備生成 撥號(hào)脈沖數(shù)字語(yǔ)音 選擇號(hào)碼建立連接號(hào)碼傳感器ID 和設(shè)置獲得 響應(yīng)信息讀傳感器0.6.3傳感器狀態(tài)傳感器輸入器警報(bào)條件器傳感器警報(bào)輸出器1313年5月19日星期日傳感器信息格式顯示0.6.1生成 警報(bào)信號(hào)0.6.5警報(bào)類型配置信息傳感器ID、類型和位置建立 警報(bào)條件警報(bào)數(shù)據(jù)號(hào)碼列表語(yǔ)音準(zhǔn)備生成 撥號(hào)脈沖數(shù)字語(yǔ)音 選擇號(hào)碼建立連接號(hào)碼傳感器ID 和設(shè)置獲得 響應(yīng)信息讀傳感器0.6.3傳感器狀態(tài)傳感器輸入器格式
6、顯示生成警報(bào)信號(hào)警報(bào)條件器傳感器建立連接 生成撥號(hào)脈沖警報(bào)輸出器 1413年5月19日星期日5.1.3 將數(shù)據(jù)流圖映射為程序結(jié)構(gòu)從事務(wù)型數(shù)據(jù)流圖導(dǎo)出程序結(jié)構(gòu)確定以事務(wù)為中心的結(jié)構(gòu),找出事務(wù)中心和事務(wù)來(lái)源按功能劃分事務(wù),將具備相同功能的事務(wù)歸為一類,建立事務(wù)模塊為每個(gè)事務(wù)處理模塊建立全部的操作層模塊1513年5月19日星期日取款數(shù)額信息取款取款啟動(dòng)/停止命令讀入外部命令命令信息用戶命令取款命令轉(zhuǎn)賬命令分析轉(zhuǎn)帳轉(zhuǎn)賬命令命令啟動(dòng)命令處理賬戶信息存款命令存款存款存款數(shù)額1613年5月19日星期日事務(wù)流輸入流輸出流取款數(shù)額信息取款取款啟動(dòng)/停止讀入外部命令命令信息取款命令用戶轉(zhuǎn)賬命令分析轉(zhuǎn)帳轉(zhuǎn)賬命令命令
7、啟動(dòng)命令處理賬戶信息存款命令存款存款存款數(shù)額取款命令分析器帳戶管理轉(zhuǎn)賬命令處理器存款1713年5月19日星期日5.1.4精化程序結(jié)構(gòu)整齊排列分層、扇入抽象化、深度和廣度、扇出和M1M1M2M3M4M2M3M4M5M51813年5月19日星期日第五講 系統(tǒng)詳細(xì)設(shè)計(jì)面向功能的設(shè)計(jì)方法üü面向?qū)ο蟾攀雒嫦驅(qū)ο蟮脑O(shè)計(jì)方法面向?qū)ο蟮脑O(shè)計(jì)實(shí)例1913年5月19日星期日5.2 面向?qū)ο蟾攀鲆粋€(gè)對(duì)象是由狀態(tài)和在此狀態(tài)上的一組操作的實(shí)體狀態(tài)由一組對(duì)象屬性來(lái)表示。與對(duì)象相關(guān)的操作提供給其他對(duì)象相應(yīng)的服務(wù)2013年5月19日星期日5.2 面向?qū)ο蟾攀龇椒?方法6Employeenameaddre
8、ssdateOfBirth employeeNo屬性department狀態(tài)salary方法2方法5status.join()leave()方法retire()方法3方法42113年5月19日星期日類名5.2 面向?qū)ο蟾攀鲱惖睦^承機(jī)制ManagerProgrammerbudgetsControlled dateAppointedprogLanguageProjectDept.ManagerManager2213年5月19日星期日Employee5.2 面向?qū)ο蟾攀鲱愔g的關(guān)聯(lián)關(guān)系1.*employeesManagerProgrammerbudgetsControlled dateAppoint
9、edprogLanguagemanagerprojectProjectDept.ProjectManagerManagerproject2313年5月19日星期日EmployeeDepartmentdept5.2 面向?qū)ο蟾攀雒嫦驅(qū)ο蟮幕驹O(shè)計(jì)原則開(kāi)關(guān)原則模塊應(yīng)該對(duì)外延具有開(kāi)放性,對(duì)修改具有封閉性Liskov替換原則子類可以替換它們的父類依賴倒置原則依賴于抽象,而非具體實(shí)現(xiàn)2413年5月19日星期日第五講 系統(tǒng)詳細(xì)設(shè)計(jì)面向功能的設(shè)計(jì)方法面向?qū)ο蟾攀?#252;ü面向?qū)ο蟮脑O(shè)計(jì)方法面向?qū)ο蟮脑O(shè)計(jì)實(shí)例2513年5月19日星期日5.3 面向?qū)ο蟮脑O(shè)計(jì)方法GRASP方法General Res
10、ponsibilityAssignment Software Patterns2613年5月19日星期日5.3 面向?qū)ο蟮脑O(shè)計(jì)方法五種主要的GRASP方法將職責(zé)分配給那些知道完成該職責(zé)所需要信息的對(duì)象分隔UI對(duì)象和業(yè)務(wù)邏輯對(duì)象幫助確定對(duì)象之間的創(chuàng)建關(guān)系減少對(duì)象之間的關(guān)系, 以降低變更時(shí)的波及面使每個(gè)對(duì)象所擁有的職責(zé)具有一定的關(guān)系2713年5月19日星期日5.3 面向?qū)ο蟮脑O(shè)計(jì)方法大2813年5月19日星期日5.3 面向?qū)ο蟮脑O(shè)計(jì)方法大的面向?qū)ο笤O(shè)計(jì)diesboardDie MonopolyGam 2faceValueplayerssquare402.82913年5月19日星期日onSquare
11、SquarenamePiecenamePlayerpiecename5.3 面向?qū)ο蟮脑O(shè)計(jì)方法創(chuàng)建者模式:Usercreatecreate3013年5月19日星期日:Square:Board5.3 面向?qū)ο蟮脑O(shè)計(jì)方法信息模式:UsergetSquare(name)3113年5月19日星期日:Board5.3 面向?qū)ο蟮脑O(shè)計(jì)方法低耦合:Users=getSquare(name)3213年5月19日星期日sqs=glSqure()s=get(name)sqs:Map<String,Square>board:Board:Dog5.3 面向?qū)ο蟮脑O(shè)計(jì)方法低耦合(續(xù))2boardplayer
12、ssquare402.83313年5月19日星期日onSquareSquarenamePiecenamePlayerpiecenameDogBoardDiediesMonopolyGameboardfaceValue5.3 面向?qū)ο蟮脑O(shè)計(jì)方法器3413年5月19日星期日5.3 面向?qū)ο蟮脑O(shè)計(jì)方法高內(nèi)聚3513年5月19日星期日第五講 系統(tǒng)詳細(xì)設(shè)計(jì)面向功能的設(shè)計(jì)方法面向?qū)ο蟾攀雒嫦驅(qū)ο蟮脑O(shè)計(jì)方法üü面向?qū)ο蟮脑O(shè)計(jì)實(shí)例3613年5月19日星期日5.4 面向?qū)ο蟮脑O(shè)計(jì)實(shí)例面向?qū)ο蟮脑O(shè)計(jì)過(guò)程3713年5月19日星期日5.4 面向?qū)ο蟮脑O(shè)計(jì)實(shí)例第一次迭代的需求實(shí)現(xiàn)的基本場(chǎng)景棋子可以在
13、棋盤(pán)上移動(dòng)實(shí)現(xiàn)的啟動(dòng)場(chǎng)景支持二到八個(gè)人參與采取回合制,運(yùn)行20個(gè)回合3813年5月19日星期日5.4 面向?qū)ο蟮脑O(shè)計(jì)實(shí)例第一次迭代需求(續(xù))在每回合中,每個(gè)人依次擲色子。要求顯示每個(gè)人的姓名,計(jì)算色子點(diǎn)數(shù)以及新格子的位置不考慮錢,沒(méi)有輸贏,不能不動(dòng)產(chǎn),也不支持,沒(méi)有特殊的格子,但每個(gè)格子都有名字3913年5月19日星期日5.4.1 第一次迭代用例圖4013年5月19日星期日5.4.1 第一次迭代領(lǐng)域模型4113年5月19日星期日5.4.1 第一次迭代系統(tǒng)順序圖4213年5月19日星期日4313年5月19日星期日5.4.1 第一次迭代類圖4413年5月19日星期日5.4 面向?qū)ο蟮脑O(shè)計(jì)實(shí)例第二次
14、迭代的需求每個(gè)玩家擁有1500元初始資金每次玩家經(jīng)過(guò) Go, 都獲得200元.當(dāng) 玩家到達(dá) Go-To-Jail,則移到Jail格當(dāng)玩家到達(dá) Income-Tax,則需要付 10% 的稅,稅不少于200元4513年5月19日星期日5.4.2 第二次迭代領(lǐng)域模型(局部)4613年5月19日星期日5.4.2 第二次迭代類圖(局部)4713年5月19日星期日5.4.2 第二次迭代順序圖takeTurn4813年5月19日星期日5.4.2 第二次迭代順序圖GoSquare.landedOn4913年5月19日星期日5.4.2 第二次迭代順序圖RegularSquare.landedOn5013年5月19日星期日5.4.2 第二次迭代順序圖IncomeTaxSquare.landedOn5113年5月19日星期日5.4.2 第二次迭代順序圖GoToJailSquare.landedOn5213年5月19日星期日5.4.2 第二次迭代類圖(局部)5313年5月19日星期日5.4.2 第二次迭代順序圖改進(jìn)后的takeTurn5413年5月19日星期日5.4 面向?qū)ο蟮脑O(shè)計(jì)實(shí)例第三次迭代的需求引入各種不同的格子空地、火車站和公用設(shè)施如果是無(wú)主的不動(dòng)產(chǎn),可以如果價(jià)格.如果是,則從玩家的資金中扣除不動(dòng)產(chǎn)的的不動(dòng)產(chǎn),則什么也不做5513年5月
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 17215.241-2025電測(cè)量設(shè)備通用要求、試驗(yàn)和試驗(yàn)條件第41部分:多電能和多費(fèi)率儀表的電能計(jì)度方法和要求
- GB/T 45208-2025飼料中辣椒紅的測(cè)定高效液相色譜法
- JJF 2187-2025半徑樣板校準(zhǔn)規(guī)范
- 出售草坪種子合同范本
- 借款合同范本上交銀行
- 2025年西安貨運(yùn)資格證考試答題20題
- 買房時(shí)開(kāi)發(fā)商給合同范本
- 農(nóng)村煤炭采購(gòu)合同范本
- 包工不包料合同范本
- 公司財(cái)產(chǎn)轉(zhuǎn)移合同范本
- 2025年度度假村景觀設(shè)計(jì)及施工一體化合同
- 2025年山東化工職業(yè)學(xué)院高職單招職業(yè)技能測(cè)試近5年??及鎱⒖碱}庫(kù)含答案解析
- 《如何規(guī)劃養(yǎng)禽場(chǎng)》課件
- 2024-2025學(xué)年云南省昆明市盤(pán)龍區(qū)三年級(jí)(上)期末數(shù)學(xué)試卷(含答案)
- 物業(yè)公司行政人事部職責(zé)
- 醫(yī)療健康行業(yè)保密免責(zé)協(xié)議書(shū)
- 《設(shè)計(jì)思維與方法》課件
- 第一課走進(jìn)人工智能 說(shuō)課稿 2023-2024學(xué)年浙教版(2023)初中信息技術(shù)八年級(jí)下冊(cè)
- 健身行業(yè)會(huì)員權(quán)益保障及免責(zé)條款協(xié)議
- 體檢中心前臺(tái)接待流程
- 2024年大唐集團(tuán)招聘筆試試題及答案-
評(píng)論
0/150
提交評(píng)論