課程簡介
目前,在軟件開發(fā)領(lǐng)域,各種框架、模型以及設(shè)計模式充斥著整個IT行業(yè),縱觀現(xiàn)在的各種軟件開發(fā)技術(shù)培訓(xùn),我們發(fā)現(xiàn)幾乎所有的培訓(xùn)中都會出現(xiàn)UML知識的培訓(xùn)。毋庸置疑,UML已經(jīng)成為了現(xiàn)在的軟件開發(fā)技術(shù)的基礎(chǔ)。但是如何透徹理解UML,迅速掌握UML的精髓卻是所有技術(shù)人員一直以來困惑的地方。
目標(biāo)收益
1、了解UML的正確應(yīng)用方法與原理;
2、學(xué)員將了解如何把UML應(yīng)用到面向?qū)ο蠓治龊驮O(shè)計乃至整個軟件過程中,包括使用UML建立業(yè)務(wù)模型、需求模型、分析模型、設(shè)計模型、實現(xiàn)模型等;
3、重點(diǎn)講解UML在具體的真實項目中的使用和應(yīng)用過程指南,如何應(yīng)用UML處理需求的變更,分析、設(shè)計出強(qiáng)壯的架構(gòu),建立充分的實現(xiàn)模型。強(qiáng)調(diào)具體項目的過程。
4、運(yùn)用系統(tǒng)分析模式進(jìn)行本質(zhì)分析;
5、了解如何設(shè)計穩(wěn)健并易于擴(kuò)展的架構(gòu);
6、通過實際的案例,掌握需求、分析設(shè)計的關(guān)鍵技巧;
7、看到好的和差的實際案例,反思自我,提高實際工作能力;
8、深入了解如何解決實際開發(fā)問題;
9、理解UM
培訓(xùn)對象
課程大綱
第一單元: UML概念(一般介紹) |
UML的構(gòu)成 視圖、模型元素、圖(用例、類、對象、序列、協(xié)作、狀態(tài)、活動、構(gòu)件、部署) 公共機(jī)制(規(guī)約、修飾符、擴(kuò)展機(jī)制) 結(jié)構(gòu)模型視圖 數(shù)據(jù)類型、多重性、類、類與對象;關(guān)聯(lián)(自關(guān)聯(lián)、關(guān)聯(lián)的多重性、角色名、關(guān)聯(lián)的具體化);屬性和操作。 行為模型視圖 序列圖(對象生命線、交互的描述、時間約束的表示、條件分支的表示、重復(fù)執(zhí)行的表示、遞歸調(diào)用的表示、對象的創(chuàng)建和撤銷) 協(xié)作圖、狀態(tài)圖、活動圖 實現(xiàn)模型視圖 包;子系統(tǒng);模型;構(gòu)件圖 |
第二單元: UML中的常見疑難問題辨析 (重點(diǎn)) |
用例圖 參與者建模中的常見問題。 用例建模中的常見問題。 UaseCase的本質(zhì)討論。 類設(shè)計 UML中關(guān)系的辨析: 依賴關(guān)系、關(guān)聯(lián)關(guān)系辨析;聚合,組合辨析。 類設(shè)計中的常見問題: 一些常見但易混淆的類關(guān)系圖; 熟悉類的自關(guān)聯(lián)形式 一些易混淆的重數(shù)表示方法 建模為對象與建模為屬性的辨析 建模為方法與建模為對象的辨析 使用關(guān)聯(lián)類 其它辨析 包與組件。 擴(kuò)展基類與覆蓋基類等。 自關(guān)聯(lián)、關(guān)聯(lián)多重性、關(guān)聯(lián)角色名辨析。 消除多重繼承的常用手段。 |
第三單元: UML面向?qū)ο蠓治黾霸O(shè)計 |
用GRASP模式指導(dǎo)系統(tǒng)分析 GRASP模式: 信息專家、創(chuàng)建者、高內(nèi)聚、低耦合、控制者、多態(tài)、間接、純虛構(gòu)、保護(hù)變化 領(lǐng)域模型介紹: 充血模型、貧血模型、失血模型。 面向?qū)ο蟮脑O(shè)計原則 類設(shè)計原則 單一職責(zé)原則、開-閉原則、里氏代換原則、依賴倒轉(zhuǎn)原則、接口隔離原則 包內(nèi)聚原則: 發(fā)布與復(fù)用等價原則、共同封閉原則、共同復(fù)用原則 包耦合原則: 無循環(huán)的依賴原則、穩(wěn)定的依賴原則、穩(wěn)定的抽象 應(yīng)用UML建模過程 概述,設(shè)計模型的內(nèi)容與演進(jìn) 全局分析: 選用架構(gòu)模式;識別關(guān)鍵抽象;標(biāo)識分析機(jī)制;常見的分析機(jī)制 局部分析: 提取分析類: 分析類的類型劃分:邊界類、實體類、控制類,分析類在模型中的位置,邊界類的復(fù)用,控制類的變通。 分析需求場景: 消息與責(zé)任;事件序列在邊界、實體及控制類間的原則;控制類在交互圖中的表現(xiàn)特征;交互圖的正確性。 整理分析類: 分析類的責(zé)任和關(guān)聯(lián)關(guān)系;動態(tài)與靜態(tài)的關(guān)系;確定類的責(zé)任;設(shè)計類和子系統(tǒng)接口。 工程中常見的架構(gòu)模式 系統(tǒng)軟件: 分層(Layer) 管道和過濾器(Pipes and Filters) 黑板(Blackboard) 分布式軟件: 經(jīng)紀(jì)人(Broker) 客戶/服務(wù)器(Client/Server) 點(diǎn)對點(diǎn)(Peer to Peer) 交互軟件: 模型-視圖-控制器(Model-View-Controller) 顯示-抽象-控制(PAC) 軟件設(shè)計中常見模式介紹 模板方式模式、適配器模式、工廠方式模式、抽象工廠模式、策略模式、橋接模式、觀察者模式、命令模式、裝飾模式等。 典型案例分析: 下載系統(tǒng)、投遞系統(tǒng)、提交搜索系統(tǒng)。 |
第四單元: 用UML進(jìn)行程序設(shè)計實踐 |
靜態(tài)設(shè)計: 按層+高內(nèi)聚低耦合的原則進(jìn)行模塊劃分 高內(nèi)聚原則;按功能分解;按業(yè)務(wù)進(jìn)行分解;以數(shù)據(jù)轉(zhuǎn)換為中心分解;實際運(yùn)用中的折中。 劃分層次 將模塊劃入對應(yīng)的層;分層與分區(qū);邏輯模塊與實體組件的對應(yīng)關(guān)系。 為模塊進(jìn)行職責(zé)分配 隔離關(guān)注面:低耦合原則;適當(dāng)采用設(shè)計模式; 用設(shè)計模式優(yōu)化核心結(jié)構(gòu):經(jīng)典模式運(yùn)用: 用橋接模式作為中心骨架。 用橋接模式作為中心骨架。 用工廠模式進(jìn)行組裝。 用命令模式處理事務(wù)。 模塊結(jié)構(gòu)的常見形式 容器模塊 + 控制者 + 功能模塊 + 臨時構(gòu)建的小類;單例模式;命令模式。 核心模塊的接口設(shè)計。 外觀模式;適配器模式;代理模式;中介者模式。 其它形式的的模塊結(jié)構(gòu):變換型模塊結(jié)構(gòu);事務(wù)型模塊結(jié)構(gòu)。 模塊間的通信及耦合設(shè)計 組件式編程。 通訊機(jī)制: 觀察者模式;本地SDK;輪訓(xùn)。 解耦: 針對接口編程;增加間接模塊;依賴注入。 設(shè)計數(shù)據(jù)層 數(shù)據(jù)結(jié)構(gòu)選用的設(shè)計;數(shù)據(jù)訪問層的設(shè)計 動態(tài)設(shè)計 抽象與統(tǒng)一不同的因素 根據(jù)業(yè)務(wù)尋找關(guān)鍵因素;統(tǒng)一到復(fù)雜的情況。 常用的流程抽象手段: 依賴注入 / 控制反轉(zhuǎn);表格法;配置文件。 邏輯控制: 控制者模式;信息專家模式。 消息通知機(jī)制 MVC模式;觀察者模式;責(zé)任鏈模式;中介者模式。 模塊調(diào)整: 調(diào)整模塊等級。 適當(dāng)封裝;把屬性提升為類;將類降為屬性;將類提升為組件。 用設(shè)計模式優(yōu)化設(shè)計 在主體的框架上進(jìn)行調(diào)整:訪問者模式;裝飾模式。 編碼時構(gòu)建適當(dāng)?shù)膭討B(tài)臨時類。 命令模式;事務(wù)處理類型。 效率的優(yōu)化 效率與結(jié)構(gòu)的折中:優(yōu)化效率的3步驟。 |
第五單元: 建模實踐及案例分析 |
領(lǐng)域分析及建模:數(shù)據(jù)投遞系統(tǒng) 收集需求 技術(shù)調(diào)研 第一次迭代 需求分析;獲取總體包圖;分析初步流程;流程細(xì)化:修改與調(diào)整;子系統(tǒng)選型;獲得第一次迭代的:主要用例、主流程圖。 第二次迭代 細(xì)化/增加需求;關(guān)于數(shù)據(jù)庫選型;初步確定一些模塊/包;主成功場景(或投遞流程);討論并調(diào)整;主用例場景與子用例場景;分層,考慮架構(gòu)模式;獲得細(xì)化的協(xié)作圖、領(lǐng)域分析類圖、活動圖。 第三次迭代 細(xì)化領(lǐng)域分析中的類圖;細(xì)化子模塊、考慮設(shè)計模式。 系統(tǒng)設(shè)計及重構(gòu):數(shù)據(jù)采集系統(tǒng): 收集需求 技術(shù)調(diào)研 需求分析功能性需求分析。 非功能性需求分析。 領(lǐng)域分析與系統(tǒng)初步設(shè)計 劃分子系統(tǒng),考慮架構(gòu)模式。 對子系統(tǒng)分層,畫出包圖。 對每個子系統(tǒng)、畫出領(lǐng)域分析類圖。 分析初步流程、畫出初步的活動圖。 細(xì)化設(shè)計 細(xì)化子系統(tǒng)、劃出子系統(tǒng)的包圖、主要類圖、活動圖。 設(shè)計模塊間的接口。 子系統(tǒng)分層。 細(xì)化設(shè)計 細(xì)化子模塊、考慮設(shè)計模式。 細(xì)化模塊間的接口及數(shù)據(jù)交換格式。 綜合性能瓶頸分析,決策改進(jìn)措施。 細(xì)化流程,列出影響因素,借助分析矩陣抽象出統(tǒng)一的流程,畫出活動圖。 實現(xiàn) 細(xì)化類圖,指導(dǎo)編碼。 得出原型系統(tǒng)。 迭代 根據(jù)原型系統(tǒng),分析不足。 根據(jù)原型系統(tǒng),分析系統(tǒng)的效率瓶頸。 重構(gòu)及優(yōu)化架構(gòu)。 適當(dāng)前瞻,改進(jìn)架構(gòu)。 |
第六單元: 其它案例分析 |
典型案例分析 領(lǐng)域分析及建模:POS收款系統(tǒng) 分析及設(shè)計:WDL解析系統(tǒng) 分析及設(shè)計:XSO文件系統(tǒng) |
第一單元: UML概念(一般介紹) UML的構(gòu)成 視圖、模型元素、圖(用例、類、對象、序列、協(xié)作、狀態(tài)、活動、構(gòu)件、部署) 公共機(jī)制(規(guī)約、修飾符、擴(kuò)展機(jī)制) 結(jié)構(gòu)模型視圖 數(shù)據(jù)類型、多重性、類、類與對象;關(guān)聯(lián)(自關(guān)聯(lián)、關(guān)聯(lián)的多重性、角色名、關(guān)聯(lián)的具體化);屬性和操作。 行為模型視圖 序列圖(對象生命線、交互的描述、時間約束的表示、條件分支的表示、重復(fù)執(zhí)行的表示、遞歸調(diào)用的表示、對象的創(chuàng)建和撤銷) 協(xié)作圖、狀態(tài)圖、活動圖 實現(xiàn)模型視圖 包;子系統(tǒng);模型;構(gòu)件圖 |
第二單元: UML中的常見疑難問題辨析 (重點(diǎn)) 用例圖 參與者建模中的常見問題。 用例建模中的常見問題。 UaseCase的本質(zhì)討論。 類設(shè)計 UML中關(guān)系的辨析: 依賴關(guān)系、關(guān)聯(lián)關(guān)系辨析;聚合,組合辨析。 類設(shè)計中的常見問題: 一些常見但易混淆的類關(guān)系圖; 熟悉類的自關(guān)聯(lián)形式 一些易混淆的重數(shù)表示方法 建模為對象與建模為屬性的辨析 建模為方法與建模為對象的辨析 使用關(guān)聯(lián)類 其它辨析 包與組件。 擴(kuò)展基類與覆蓋基類等。 自關(guān)聯(lián)、關(guān)聯(lián)多重性、關(guān)聯(lián)角色名辨析。 消除多重繼承的常用手段。 |
第三單元: UML面向?qū)ο蠓治黾霸O(shè)計 用GRASP模式指導(dǎo)系統(tǒng)分析 GRASP模式: 信息專家、創(chuàng)建者、高內(nèi)聚、低耦合、控制者、多態(tài)、間接、純虛構(gòu)、保護(hù)變化 領(lǐng)域模型介紹: 充血模型、貧血模型、失血模型。 面向?qū)ο蟮脑O(shè)計原則 類設(shè)計原則 單一職責(zé)原則、開-閉原則、里氏代換原則、依賴倒轉(zhuǎn)原則、接口隔離原則 包內(nèi)聚原則: 發(fā)布與復(fù)用等價原則、共同封閉原則、共同復(fù)用原則 包耦合原則: 無循環(huán)的依賴原則、穩(wěn)定的依賴原則、穩(wěn)定的抽象 應(yīng)用UML建模過程 概述,設(shè)計模型的內(nèi)容與演進(jìn) 全局分析: 選用架構(gòu)模式;識別關(guān)鍵抽象;標(biāo)識分析機(jī)制;常見的分析機(jī)制 局部分析: 提取分析類: 分析類的類型劃分:邊界類、實體類、控制類,分析類在模型中的位置,邊界類的復(fù)用,控制類的變通。 分析需求場景: 消息與責(zé)任;事件序列在邊界、實體及控制類間的原則;控制類在交互圖中的表現(xiàn)特征;交互圖的正確性。 整理分析類: 分析類的責(zé)任和關(guān)聯(lián)關(guān)系;動態(tài)與靜態(tài)的關(guān)系;確定類的責(zé)任;設(shè)計類和子系統(tǒng)接口。 工程中常見的架構(gòu)模式 系統(tǒng)軟件: 分層(Layer) 管道和過濾器(Pipes and Filters) 黑板(Blackboard) 分布式軟件: 經(jīng)紀(jì)人(Broker) 客戶/服務(wù)器(Client/Server) 點(diǎn)對點(diǎn)(Peer to Peer) 交互軟件: 模型-視圖-控制器(Model-View-Controller) 顯示-抽象-控制(PAC) 軟件設(shè)計中常見模式介紹 模板方式模式、適配器模式、工廠方式模式、抽象工廠模式、策略模式、橋接模式、觀察者模式、命令模式、裝飾模式等。 典型案例分析: 下載系統(tǒng)、投遞系統(tǒng)、提交搜索系統(tǒng)。 |
第四單元: 用UML進(jìn)行程序設(shè)計實踐 靜態(tài)設(shè)計: 按層+高內(nèi)聚低耦合的原則進(jìn)行模塊劃分 高內(nèi)聚原則;按功能分解;按業(yè)務(wù)進(jìn)行分解;以數(shù)據(jù)轉(zhuǎn)換為中心分解;實際運(yùn)用中的折中。 劃分層次 將模塊劃入對應(yīng)的層;分層與分區(qū);邏輯模塊與實體組件的對應(yīng)關(guān)系。 為模塊進(jìn)行職責(zé)分配 隔離關(guān)注面:低耦合原則;適當(dāng)采用設(shè)計模式; 用設(shè)計模式優(yōu)化核心結(jié)構(gòu):經(jīng)典模式運(yùn)用: 用橋接模式作為中心骨架。 用橋接模式作為中心骨架。 用工廠模式進(jìn)行組裝。 用命令模式處理事務(wù)。 模塊結(jié)構(gòu)的常見形式 容器模塊 + 控制者 + 功能模塊 + 臨時構(gòu)建的小類;單例模式;命令模式。 核心模塊的接口設(shè)計。 外觀模式;適配器模式;代理模式;中介者模式。 其它形式的的模塊結(jié)構(gòu):變換型模塊結(jié)構(gòu);事務(wù)型模塊結(jié)構(gòu)。 模塊間的通信及耦合設(shè)計 組件式編程。 通訊機(jī)制: 觀察者模式;本地SDK;輪訓(xùn)。 解耦: 針對接口編程;增加間接模塊;依賴注入。 設(shè)計數(shù)據(jù)層 數(shù)據(jù)結(jié)構(gòu)選用的設(shè)計;數(shù)據(jù)訪問層的設(shè)計 動態(tài)設(shè)計 抽象與統(tǒng)一不同的因素 根據(jù)業(yè)務(wù)尋找關(guān)鍵因素;統(tǒng)一到復(fù)雜的情況。 常用的流程抽象手段: 依賴注入 / 控制反轉(zhuǎn);表格法;配置文件。 邏輯控制: 控制者模式;信息專家模式。 消息通知機(jī)制 MVC模式;觀察者模式;責(zé)任鏈模式;中介者模式。 模塊調(diào)整: 調(diào)整模塊等級。 適當(dāng)封裝;把屬性提升為類;將類降為屬性;將類提升為組件。 用設(shè)計模式優(yōu)化設(shè)計 在主體的框架上進(jìn)行調(diào)整:訪問者模式;裝飾模式。 編碼時構(gòu)建適當(dāng)?shù)膭討B(tài)臨時類。 命令模式;事務(wù)處理類型。 效率的優(yōu)化 效率與結(jié)構(gòu)的折中:優(yōu)化效率的3步驟。 |
第五單元: 建模實踐及案例分析 領(lǐng)域分析及建模:數(shù)據(jù)投遞系統(tǒng) 收集需求 技術(shù)調(diào)研 第一次迭代 需求分析;獲取總體包圖;分析初步流程;流程細(xì)化:修改與調(diào)整;子系統(tǒng)選型;獲得第一次迭代的:主要用例、主流程圖。 第二次迭代 細(xì)化/增加需求;關(guān)于數(shù)據(jù)庫選型;初步確定一些模塊/包;主成功場景(或投遞流程);討論并調(diào)整;主用例場景與子用例場景;分層,考慮架構(gòu)模式;獲得細(xì)化的協(xié)作圖、領(lǐng)域分析類圖、活動圖。 第三次迭代 細(xì)化領(lǐng)域分析中的類圖;細(xì)化子模塊、考慮設(shè)計模式。 系統(tǒng)設(shè)計及重構(gòu):數(shù)據(jù)采集系統(tǒng): 收集需求 技術(shù)調(diào)研 需求分析功能性需求分析。 非功能性需求分析。 領(lǐng)域分析與系統(tǒng)初步設(shè)計 劃分子系統(tǒng),考慮架構(gòu)模式。 對子系統(tǒng)分層,畫出包圖。 對每個子系統(tǒng)、畫出領(lǐng)域分析類圖。 分析初步流程、畫出初步的活動圖。 細(xì)化設(shè)計 細(xì)化子系統(tǒng)、劃出子系統(tǒng)的包圖、主要類圖、活動圖。 設(shè)計模塊間的接口。 子系統(tǒng)分層。 細(xì)化設(shè)計 細(xì)化子模塊、考慮設(shè)計模式。 細(xì)化模塊間的接口及數(shù)據(jù)交換格式。 綜合性能瓶頸分析,決策改進(jìn)措施。 細(xì)化流程,列出影響因素,借助分析矩陣抽象出統(tǒng)一的流程,畫出活動圖。 實現(xiàn) 細(xì)化類圖,指導(dǎo)編碼。 得出原型系統(tǒng)。 迭代 根據(jù)原型系統(tǒng),分析不足。 根據(jù)原型系統(tǒng),分析系統(tǒng)的效率瓶頸。 重構(gòu)及優(yōu)化架構(gòu)。 適當(dāng)前瞻,改進(jìn)架構(gòu)。 |
第六單元: 其它案例分析 典型案例分析 領(lǐng)域分析及建模:POS收款系統(tǒng) 分析及設(shè)計:WDL解析系統(tǒng) 分析及設(shè)計:XSO文件系統(tǒng) |