在職軟件0322高級軟件工程lecture_第1頁
在職軟件0322高級軟件工程lecture_第2頁
在職軟件0322高級軟件工程lecture_第3頁
在職軟件0322高級軟件工程lecture_第4頁
在職軟件0322高級軟件工程lecture_第5頁
已閱讀5頁,還剩56頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、高級軟件工程第五講:系統(tǒng)詳細設(shè)計邱明博士mingqiu 廈門大學軟件學院 2013年春113年5月19日星期日第五講 系統(tǒng)詳細設(shè)計üü面向數(shù)據(jù)流的設(shè)計方法面向?qū)ο蟾攀雒嫦驅(qū)ο蟮脑O(shè)計方法面向?qū)ο蟮脑O(shè)計實例213年5月19日星期日5.1 面向數(shù)據(jù)流的設(shè)計方法確定信息流的類型劃定流界將數(shù)據(jù)流圖為程序結(jié)構(gòu)精化所得到的結(jié)構(gòu)313年5月19日星期日5.1.1 信息流類型輸入流、輸出流和變換流數(shù)據(jù)以順序的方式沿著一條或幾條直線路徑進行;信息由外部形式轉(zhuǎn)換為內(nèi)部形式,經(jīng)過加工和處理,信息再由內(nèi)部形式轉(zhuǎn)換為外部形式413年5月19日星期日5.1.1 信息流類型事務(wù)流將外部信息轉(zhuǎn)換為一個事務(wù),

2、對事務(wù)進行評估,并且根據(jù)其值啟動其中一條動作路徑流。發(fā)射出多條動作路徑的信息流中心被稱為事務(wù)中心。513年5月19日星期日5.1.1 信息流類型事務(wù)流的圖例613年5月19日星期日轉(zhuǎn)換流事務(wù)中心動作路徑5.1.2 劃定流界從物理輸入端沿數(shù)據(jù)流移動,直至達到這樣一個數(shù)據(jù)流,它再不能被作為系統(tǒng)輸入,則此前的數(shù)據(jù)流都是輸入流;用類似的方法也可以從物理輸出端出發(fā),找出輸出流;輸入流和輸出流之間的則是變換流或事務(wù)流。713年5月19日星期日5.1.3 將數(shù)據(jù)流圖映射為程序結(jié)構(gòu)從變換型數(shù)據(jù)流圖中導出程序結(jié)構(gòu)首先在變換流的位置上畫出主模塊采用自頂向下,逐步細化的思想畫出以下各層的結(jié)構(gòu)設(shè)計每一層均需按輸入、變

3、換和輸出等分支處理為每一個輸入流畫一個輸入模塊為每一個輸出流畫一個輸出模塊813年5月19日星期日面板顯示用戶命令和數(shù)據(jù)顯示信息SafeHome 軟件 0數(shù)字語音傳感器狀態(tài)線SafeHome安全功能的范圍圖913年5月19日星期日傳感器面板配置系統(tǒng)0.3用戶命令和數(shù)據(jù)配置數(shù)據(jù)配置請求與用戶交互0.1 配置信息激活/ 關(guān)閉消息顯示消息和狀態(tài)0.5啟動停止激活/ 關(guān)閉系統(tǒng)0.4顯示信息面板顯示有效ID消息配置數(shù)據(jù)處理0.2傳感器0.6數(shù)字語音傳感器狀態(tài)線1級DFD圖1013年5月19日星期日傳感器面板傳感器的2級DFD圖傳感器信息格式顯示0.6.1生成 警報信號0.6.5警報類型 配置信息傳感器I

4、D、類型和位置 評估設(shè)置0.6.2警報數(shù)據(jù)號碼傳感器ID 和類型讀傳感器0.6.3撥0.6.4數(shù)字語音傳感器狀態(tài)1113年5月19日星期日傳感器的3級DFD圖傳感器信息格式顯示0.6.1生成 警報信號0.6.5警報類型配置信息傳感器ID、類型和位置建立警報條件傳感器ID和設(shè)置警報數(shù)據(jù)號碼列表生成 撥號脈沖語音準備選擇號碼建立連接數(shù)字語音號碼獲得 響應(yīng)信息傳感器ID和設(shè)置傳感器狀態(tài) 讀傳感器0.6.31213年5月19日星期日輸入流轉(zhuǎn)換流輸出流傳感器信息格式顯示0.6.1生成 警報信號0.6.5警報類型配置信息傳感器ID、類型

5、和位置建立 警報條件警報數(shù)據(jù)號碼列表語音準備生成 撥號脈沖數(shù)字語音 選擇號碼建立連接號碼傳感器ID 和設(shè)置獲得 響應(yīng)信息讀傳感器0.6.3傳感器狀態(tài)傳感器輸入器警報條件器傳感器警報輸出器1313年5月19日星期日傳感器信息格式顯示0.6.1生成 警報信號0.6.5警報類型配置信息傳感器ID、類型和位置建立 警報條件警報數(shù)據(jù)號碼列表語音準備生成 撥號脈沖數(shù)字語音 選擇號碼建立連接號碼傳感器ID 和設(shè)置獲得 響應(yīng)信息讀傳感器0.6.3傳感器狀態(tài)傳感器輸入器格式

6、顯示生成警報信號警報條件器傳感器建立連接 生成撥號脈沖警報輸出器 1413年5月19日星期日5.1.3 將數(shù)據(jù)流圖映射為程序結(jié)構(gòu)從事務(wù)型數(shù)據(jù)流圖導出程序結(jié)構(gòu)確定以事務(wù)為中心的結(jié)構(gòu),找出事務(wù)中心和事務(wù)來源按功能劃分事務(wù),將具備相同功能的事務(wù)歸為一類,建立事務(wù)模塊為每個事務(wù)處理模塊建立全部的操作層模塊1513年5月19日星期日取款數(shù)額信息取款取款啟動/停止命令讀入外部命令命令信息用戶命令取款命令轉(zhuǎn)賬命令分析轉(zhuǎn)帳轉(zhuǎn)賬命令命令啟動命令處理賬戶信息存款命令存款存款存款數(shù)額1613年5月19日星期日事務(wù)流輸入流輸出流取款數(shù)額信息取款取款啟動/停止讀入外部命令命令信息取款命令用戶轉(zhuǎn)賬命令分析轉(zhuǎn)帳轉(zhuǎn)賬命令命令

7、啟動命令處理賬戶信息存款命令存款存款存款數(shù)額取款命令分析器帳戶管理轉(zhuǎn)賬命令處理器存款1713年5月19日星期日5.1.4精化程序結(jié)構(gòu)整齊排列分層、扇入抽象化、深度和廣度、扇出和M1M1M2M3M4M2M3M4M5M51813年5月19日星期日第五講 系統(tǒng)詳細設(shè)計面向功能的設(shè)計方法üü面向?qū)ο蟾攀雒嫦驅(qū)ο蟮脑O(shè)計方法面向?qū)ο蟮脑O(shè)計實例1913年5月19日星期日5.2 面向?qū)ο蟾攀鲆粋€對象是由狀態(tài)和在此狀態(tài)上的一組操作的實體狀態(tài)由一組對象屬性來表示。與對象相關(guān)的操作提供給其他對象相應(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ū)ο蟾攀鲱惖睦^承機制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è)計原則開關(guān)原則模塊應(yīng)該對外延具有開放性,對修改具有封閉性Liskov替換原則子類可以替換它們的父類依賴倒置原則依賴于抽象,而非具體實現(xiàn)2413年5月19日星期日第五講 系統(tǒng)詳細設(shè)計面向功能的設(shè)計方法面向?qū)ο蟾攀?#252;ü面向?qū)ο蟮脑O(shè)計方法面向?qū)ο蟮脑O(shè)計實例2513年5月19日星期日5.3 面向?qū)ο蟮脑O(shè)計方法GRASP方法General Res

10、ponsibilityAssignment Software Patterns2613年5月19日星期日5.3 面向?qū)ο蟮脑O(shè)計方法五種主要的GRASP方法將職責分配給那些知道完成該職責所需要信息的對象分隔UI對象和業(yè)務(wù)邏輯對象幫助確定對象之間的創(chuàng)建關(guān)系減少對象之間的關(guān)系, 以降低變更時的波及面使每個對象所擁有的職責具有一定的關(guān)系2713年5月19日星期日5.3 面向?qū)ο蟮脑O(shè)計方法大2813年5月19日星期日5.3 面向?qū)ο蟮脑O(shè)計方法大的面向?qū)ο笤O(shè)計diesboardDie MonopolyGam 2faceValueplayerssquare402.82913年5月19日星期日onSquare

11、SquarenamePiecenamePlayerpiecename5.3 面向?qū)ο蟮脑O(shè)計方法創(chuàng)建者模式:Usercreatecreate3013年5月19日星期日:Square:Board5.3 面向?qū)ο蟮脑O(shè)計方法信息模式:UsergetSquare(name)3113年5月19日星期日:Board5.3 面向?qū)ο蟮脑O(shè)計方法低耦合:Users=getSquare(name)3213年5月19日星期日sqs=glSqure()s=get(name)sqs:Map<String,Square>board:Board:Dog5.3 面向?qū)ο蟮脑O(shè)計方法低耦合(續(xù))2boardplayer

12、ssquare402.83313年5月19日星期日onSquareSquarenamePiecenamePlayerpiecenameDogBoardDiediesMonopolyGameboardfaceValue5.3 面向?qū)ο蟮脑O(shè)計方法器3413年5月19日星期日5.3 面向?qū)ο蟮脑O(shè)計方法高內(nèi)聚3513年5月19日星期日第五講 系統(tǒng)詳細設(shè)計面向功能的設(shè)計方法面向?qū)ο蟾攀雒嫦驅(qū)ο蟮脑O(shè)計方法üü面向?qū)ο蟮脑O(shè)計實例3613年5月19日星期日5.4 面向?qū)ο蟮脑O(shè)計實例面向?qū)ο蟮脑O(shè)計過程3713年5月19日星期日5.4 面向?qū)ο蟮脑O(shè)計實例第一次迭代的需求實現(xiàn)的基本場景棋子可以在

13、棋盤上移動實現(xiàn)的啟動場景支持二到八個人參與采取回合制,運行20個回合3813年5月19日星期日5.4 面向?qū)ο蟮脑O(shè)計實例第一次迭代需求(續(xù))在每回合中,每個人依次擲色子。要求顯示每個人的姓名,計算色子點數(shù)以及新格子的位置不考慮錢,沒有輸贏,不能不動產(chǎn),也不支持,沒有特殊的格子,但每個格子都有名字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è)計實例第二次

14、迭代的需求每個玩家擁有1500元初始資金每次玩家經(jīng)過 Go, 都獲得200元.當 玩家到達 Go-To-Jail,則移到Jail格當玩家到達 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 第二次迭代順序圖改進后的takeTurn5413年5月19日星期日5.4 面向?qū)ο蟮脑O(shè)計實例第三次迭代的需求引入各種不同的格子空地、火車站和公用設(shè)施如果是無主的不動產(chǎn),可以如果價格.如果是,則從玩家的資金中扣除不動產(chǎn)的的不動產(chǎn),則什么也不做5513年5月

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論