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