軟件詳細設計、建模與編檔培訓
?
??????????????????
???????????????????????
軟件詳細設計、建模與編檔?培訓
????????????????????????
???????????????????????
培訓目標:
????????????????????????? 加強學員的程序設計開發思想
?????????????????????????
理解軟件設計的基本原理
?????????????????????????
了解各種設計方法及其基本應用
?????????????????????????
理解模式的本質含義,以及模式的 “藍圖”
?????????????????????????
學習設計的基本原則,面向對象設計原則
?????????????????????????
學習系統化設計的范圍和方法
?????????????????????????
能夠在以后的實際工作中,自己構造出有效的設計
?????????????????????????
學習應用設計的關鍵問題:擴展,復用,性能,可靠,可測試性
?????????????????????????
學習運用對現有代碼進行逆向,設計進行重構
???????????????????????
???????????????????????
培訓內容:
?????????????????????????????
分析設計問題的引入一個案例中的設計問題
???????????????????????????????
思考
???????????????????????????????
為什么設計
???????????????????????????????
設計什么
???????????????????????????????
如何描述設計-采用UML建模
???????????????????????????????
展望后續的路線圖
?????????????????????????????
軟件組成原理軟件架構的基本結構
???????????????????????????????
層次框架
???????????????????????????????
功能子系統
???????????????????????????????
模塊劃分
???????????????????????????????
集成單元
???????????????????????????????
不同設計粒度的貫穿思考:從程序到架構
???????????????????????????????
通用設計原則
?????????????????????????????
需求分析基于用例的捕獲功能需求
???????????????????????????????
識別Actor和用例
???????????????????????????????
正確書寫用例文檔
???????????????????????????????
識別用例的關系
???????????????????????????????
確定非功能需求:
???????????????????????????????
性能
???????????????????????????????
可靠性
???????????????????????????????
可維護性
???????????????????????????????
可擴展性
???????????????????????????????
案例實踐:利用UML圖對需求進行建模
?????????????????????????????
領域分析 什么是領域類
???????????????????????????????
如何識別領域類
???????????????????????????????
領域類在軟件中處于什么層次,
???????????????????????????????
領域類的粒度如何把握
???????????????????????????????
建立領域類,屬性,關系
?????????????????????????????
軟件設計策略可擴展性設計策略
???????????????????????????????
可靠性設計策略
???????????????????????????????
性能設計策略
???????????????????????????????
可維護性設計策略
???????????????????????????????
易用性設計策略
???????????????????????????????
通過案例,思考設計策略如何應用
?????????????????????????????
設計原則在設計中的應用單一職責原則
???????????????????????????????
開放封閉原則
???????????????????????????????
依賴倒置原則
???????????????????????????????
接口分離原則
???????????????????????????????
里氏替換原則
???????????????????????????????
如何進行職責劃分?如何識別變化?
???????????????????????????????
并防止過度設計
?????????????????????????????
子系統與模塊設計軟件系統邊界和外部系統接口的定義
???????????????????????????????
劃分子系統原則
???????????????????????????????
子系統功能模塊的分解
???????????????????????????????
子系統間的通信接口的設計
???????????????????????????????
如何應對系統內部緊耦合、高內聚
???????????????????????????????
案例實踐:子系統與模塊設計
?????????????????????????????
層次設計典型的層次模式
???????????????????????????????
各個層次劃分方法的適應性
???????????????????????????????
層次之間的依賴關系
???????????????????????????????
案例實踐:層次設計
?????????????????????????????
類設計與建模識別類,
???????????????????????????????
確定類的屬性和方法
???????????????????????????????
設計類之間的泛化
???????????????????????????????
設計類之間的關聯(聚合、組合、連接)
???????????????????????????????
類設計的常見問題于解決方法
???????????????????????????????
類的職責劃分與對象交互設計
???????????????????????????????
案例實踐:類設計與建模
?????????????????????????????
程序處理流程設計處理流程的組成
???????????????????????????????
采用活動圖建模流程
???????????????????????????????
理解處理過程的組成:活動、狀態、轉移
???????????????????????????????
案例實踐:處理流程設計與建模
?????????????????????????????
狀態分析、設計與建模理解狀態圖組成:活動、狀態、決策點、同步
???????????????????????????????
針對需求識別狀態
???????????????????????????????
為狀態建模
???????????????????????????????
把狀態轉化為設計
???????????????????????????????
案例:狀態分析、設計與建模
?????????????????????????????
詳細設計轉化為代碼詳細設計轉化代碼結構
???????????????????????????????
詳細設計與代碼的同步方式
???????????????????????????????
結構設計與代碼關系
???????????????????????????????
交互設計與代碼關系
?????????????????????????????
設計評審與歸檔設計文檔撰寫
???????????????????????????????
設計文檔的評審與基線
???????????????????????????????
設計文檔的版本管理
???????????????????????????????
設計文檔的變更控制
?????????????????????????????
分析代碼,對詳細設計進行重構,優化設計分析并初步重構一個案例
???????????????????????????????
重構準備
???????????????????????????????
理解重構原則
???????????????????????????????
學習重構名錄
???????????????????????????????
構筑測試體系
???????????????????????????????
選擇重構工具
???????????????????????????????
分析代碼
???????????????????????????????
把握優秀程序結構的風格
???????????????????????????????
把握如何觀察代碼
???????????????????????????????
發現代碼的壞味道
???????????????????????????????
重構設計和代碼
???????????????????????????????
重新組織函數與屬性
???????????????????????????????
重新組織對象關系
???????????????????????????????
簡化表達式
???????????????????????????????
組織繼承體系
???????????????????????????????
讓重構成為習慣
???????????????????????????????
案例:基于現有系統進行代碼重構實戰
?
?
?
?