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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、高級軟件工程第五講:系統(tǒng)詳細設計邱明博士mingqiu 廈門大學軟件學院 2013年春113年5月19日星期日第五講 系統(tǒng)詳細設計üü面向數據流的設計方法面向對象概述面向對象的設計方法面向對象的設計實例213年5月19日星期日5.1 面向數據流的設計方法確定信息流的類型劃定流界將數據流圖為程序結構精化所得到的結構313年5月19日星期日5.1.1 信息流類型輸入流、輸出流和變換流數據以順序的方式沿著一條或幾條直線路徑進行;信息由外部形式轉換為內部形式,經過加工和處理,信息再由內部形式轉換為外部形式413年5月19日星期日5.1.1 信息流類型事務流將外部信息轉換為一個事務,

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

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

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

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

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

7、啟動命令處理賬戶信息存款命令存款存款存款數額取款命令分析器帳戶管理轉賬命令處理器存款1713年5月19日星期日5.1.4精化程序結構整齊排列分層、扇入抽象化、深度和廣度、扇出和M1M1M2M3M4M2M3M4M5M51813年5月19日星期日第五講 系統(tǒng)詳細設計面向功能的設計方法üü面向對象概述面向對象的設計方法面向對象的設計實例1913年5月19日星期日5.2 面向對象概述一個對象是由狀態(tài)和在此狀態(tài)上的一組操作的實體狀態(tài)由一組對象屬性來表示。與對象相關的操作提供給其他對象相應的服務2013年5月19日星期日5.2 面向對象概述方法1方法6Employeenameaddre

8、ssdateOfBirth employeeNo屬性department狀態(tài)salary方法2方法5status.join()leave()方法retire()方法3方法42113年5月19日星期日類名5.2 面向對象概述類的繼承機制ManagerProgrammerbudgetsControlled dateAppointedprogLanguageProjectDept.ManagerManager2213年5月19日星期日Employee5.2 面向對象概述類之間的關聯關系1.*employeesManagerProgrammerbudgetsControlled dateAppoint

9、edprogLanguagemanagerprojectProjectDept.ProjectManagerManagerproject2313年5月19日星期日EmployeeDepartmentdept5.2 面向對象概述面向對象的基本設計原則開關原則模塊應該對外延具有開放性,對修改具有封閉性Liskov替換原則子類可以替換它們的父類依賴倒置原則依賴于抽象,而非具體實現2413年5月19日星期日第五講 系統(tǒng)詳細設計面向功能的設計方法面向對象概述üü面向對象的設計方法面向對象的設計實例2513年5月19日星期日5.3 面向對象的設計方法GRASP方法General Res

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

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

12、ssquare402.83313年5月19日星期日onSquareSquarenamePiecenamePlayerpiecenameDogBoardDiediesMonopolyGameboardfaceValue5.3 面向對象的設計方法器3413年5月19日星期日5.3 面向對象的設計方法高內聚3513年5月19日星期日第五講 系統(tǒng)詳細設計面向功能的設計方法面向對象概述面向對象的設計方法üü面向對象的設計實例3613年5月19日星期日5.4 面向對象的設計實例面向對象的設計過程3713年5月19日星期日5.4 面向對象的設計實例第一次迭代的需求實現的基本場景棋子可以在

13、棋盤上移動實現的啟動場景支持二到八個人參與采取回合制,運行20個回合3813年5月19日星期日5.4 面向對象的設計實例第一次迭代需求(續(xù))在每回合中,每個人依次擲色子。要求顯示每個人的姓名,計算色子點數以及新格子的位置不考慮錢,沒有輸贏,不能不動產,也不支持,沒有特殊的格子,但每個格子都有名字3913年5月19日星期日5.4.1 第一次迭代用例圖4013年5月19日星期日5.4.1 第一次迭代領域模型4113年5月19日星期日5.4.1 第一次迭代系統(tǒng)順序圖4213年5月19日星期日4313年5月19日星期日5.4.1 第一次迭代類圖4413年5月19日星期日5.4 面向對象的設計實例第二次

14、迭代的需求每個玩家擁有1500元初始資金每次玩家經過 Go, 都獲得200元.當 玩家到達 Go-To-Jail,則移到Jail格當玩家到達 Income-Tax,則需要付 10% 的稅,稅不少于200元4513年5月19日星期日5.4.2 第二次迭代領域模型(局部)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 面向對象的設計實例第三次迭代的需求引入各種不同的格子空地、火車站和公用設施如果是無主的不動產,可以如果價格.如果是,則從玩家的資金中扣除不動產的的不動產,則什么也不做5513年5月

溫馨提示

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

評論

0/150

提交評論