課程簡介
本課程將對軟件生命周期與軟件架構(gòu)進(jìn)行介紹,重點講述面向?qū)ο蟪绦蛟O(shè)計原則與模式及方法論、用UML輔助系統(tǒng)分析與設(shè)計、借鑒RUP的設(shè)計過程、設(shè)計模式與軟件設(shè)計思想、架構(gòu)設(shè)計實踐等要點,并結(jié)合軟件架構(gòu)設(shè)計案例進(jìn)行進(jìn)一步分析
目標(biāo)收益
培訓(xùn)對象
課程大綱
軟件生命周期與軟件 架構(gòu)介紹 |
軟件架構(gòu)介紹 IT行業(yè)的人才結(jié)構(gòu)與軟件架構(gòu)師的定位 軟件架構(gòu)師應(yīng)掌握的知識體系 軟件架構(gòu)設(shè)計的特點、層次、分類 軟件架構(gòu)的主要理論、方向和趨勢 軟件工廠,實現(xiàn)軟件開發(fā)的產(chǎn)業(yè)化 軟件生命周期進(jìn)程模型介紹 RUP與XP Agile與CMMI MSF |
技術(shù)架構(gòu)視圖─面向?qū)ο蟪绦蛟O(shè)計原則與模式及方法論 |
衡量軟件系統(tǒng)質(zhì)量的標(biāo)準(zhǔn) 軟件系統(tǒng)開始變壞的表現(xiàn):硬化、脆弱、綁死、膠著。 軟件系統(tǒng)關(guān)鍵的質(zhì)量特性:正確性、健壯性、可擴(kuò)展性、可復(fù)用性、兼容、可移植性、高效性、timeliness、economy and functionality 面向?qū)ο笤O(shè)計的基本原則 類的設(shè)計原則: 開閉原則、依賴倒置原則、Liskov替換原則、單一職責(zé)原則、接口分離原則、組合復(fù)用原則、所知最少原則 例:會議管理系統(tǒng)等、API函數(shù)的啟示等 包內(nèi)聚原則:發(fā)布與復(fù)用等價原則、共同封閉原則、共同復(fù)用原則 包耦合原則:無循環(huán)的依賴原則、穩(wěn)定的依賴原則、穩(wěn)定的抽象 用GRASP模式指導(dǎo)架構(gòu)設(shè)計 GRASP架構(gòu)模式: 信息專家、創(chuàng)建者、高內(nèi)聚、低耦合、控制者、多態(tài)、間接、純虛構(gòu)、保護(hù)變化 典型案例分析: 違反信息專家模式案例分析 應(yīng)用信息專家模式案例分析 應(yīng)用GRASP模式精化架構(gòu)設(shè)計案例分析 軟件架構(gòu)設(shè)計的關(guān)鍵因素 什么是架構(gòu), 它和系統(tǒng)是如何關(guān)聯(lián)的。 如何獲得可維護(hù)性、可擴(kuò)展性、可重用性、互操作性等。 在系統(tǒng)中如何組織組件(Component) 。 如何組織組件(Component)的內(nèi)部。 如何保持平臺相關(guān)的細(xì)節(jié)和應(yīng)用的分離。 如何應(yīng)用封裝(encapsulation)、抽象(abstraction)和委派(delegation)的原則。 如何應(yīng)用設(shè)計模式來實現(xiàn)好的結(jié)構(gòu)。 案例分析 模板容器、Movie查詢等 |
用UML輔助系統(tǒng)分析與設(shè)計 |
UML中的常見疑難問題辨析 用例圖 - 參與者建模中的常見問題 - 用例建模中的常見問題 - UaseCase的本質(zhì)討論 類設(shè)計 - UML中關(guān)系的辨析: 依賴關(guān)系、關(guān)聯(lián)關(guān)系辨析;聚合,組合辨析 類設(shè)計中的常見問題: - 一些常見但易混淆的類關(guān)系圖; - 熟悉類的自關(guān)聯(lián)形式;使用關(guān)聯(lián)類; - 一些易混淆的重數(shù)表示方法 - 建模為對象與建模為屬性 / 建模為方法與建模為對象的辨析。 其它辨析 - 包與組件 - 擴(kuò)展基類與覆蓋基類等;自關(guān)聯(lián)、關(guān)聯(lián)多重性、關(guān)聯(lián)角色名辨析 - 消除多重繼承的常用手段 |
借鑒RUP的設(shè)計過程 |
借鑒RUP的設(shè)計過程 全局分析: 選用架構(gòu)模式;識別關(guān)鍵抽象;標(biāo)識分析機(jī)制;常見的分析機(jī)制 局部分析: 提取分析類: 分析類的類型劃分:邊界類、實體類、控制類,分析類在模型中的位置,邊界類的復(fù)用,控制類的變通。 分析動態(tài)場景: 消息與責(zé)任;事件序列在邊界、實體及控制類間的原則;控制類在交互圖中的表現(xiàn)特征;交互圖的正確性。 整理分析類: 分析類的責(zé)任和關(guān)聯(lián)關(guān)系;動態(tài)與靜態(tài)的關(guān)系;確定類的責(zé)任;設(shè)計類和子系統(tǒng)接口。 |
設(shè)計模式與軟件設(shè)計思想 |
GOF設(shè)計模式 - 使用GOF設(shè)計模式,借鑒前人的經(jīng)驗。 - 分析創(chuàng)建型模式: - 單例模式(Singleton)、工廠模式、抽象工廠模式(Abstractfactory) - 分析結(jié)構(gòu)型模式: - 橋梁模式(Bridge)、裝飾模式(Decorator)、適配器模式(Adapter)、代理模式(Proxy)、組合模式(Composite) - 分析行為型模式: - 命令模式(Command )、觀察者模式(Observer)、狀態(tài)模式(State)、策略模式(Strategy)、模板方法模式(Template Method)、訪問者模式(Template Method) 設(shè)計模式深入討論 - 設(shè)計模式的本質(zhì): - 隔離變化點;間接;透明;局部雙向依賴;邏輯與功能;用接口抹平差異、延遲調(diào)用。 - 模式的推演: - 掌握模式的本質(zhì),而非形式。 - 設(shè)計模式的高級運用: - 高手的選擇;神似而非形似;一切以工程實際為標(biāo)準(zhǔn);可以犧牲掉的特征;簡化的模式;防止濫用;自創(chuàng)的模式。 常用的軟件架構(gòu)風(fēng)格及適用情況分析 - 系統(tǒng)軟件 - 分層(Layer)、管道和過濾器(Pipes and Filters)、黑板(Blackboard) - 分布式軟件 - 經(jīng)紀(jì)人(Broker) 、客戶/服務(wù)器(Client/Server)、點對點(Peer to Peer) - 交互軟件 模型-視圖-控制器(Model-View-Controller)、顯示-抽象-控制(Presentation-Abstraction-COntrol) SOA的設(shè)計思想 - SOA的概念 - SOA的設(shè)計目標(biāo) 異構(gòu)性Heterogeneity;可伸縮性Scalability;適用性Availability;分布式Distribution; .機(jī)動性Flexibility;可見性 典型案例分析 媒體顯示、數(shù)據(jù)采集系統(tǒng)、編輯器、文件解析器。 |
架構(gòu)設(shè)計實踐 |
靜態(tài)設(shè)計 - 按層+高內(nèi)聚低耦合的原則進(jìn)行模塊劃分 高內(nèi)聚原則;按功能分解;按業(yè)務(wù)進(jìn)行分解;以數(shù)據(jù)轉(zhuǎn)換為中心分解;實際運用中的折中。 - 劃分層次 - 將模塊劃入對應(yīng)的層;分層與分區(qū);邏輯模塊與實體組件的對應(yīng)關(guān)系。 - 為模塊進(jìn)行職責(zé)分配 隔離關(guān)注面:低耦合原則;適當(dāng)采用設(shè)計模式; 用設(shè)計模式優(yōu)化核心結(jié)構(gòu):經(jīng)典模式運用: 用橋接模式作為中心骨架。 用橋接模式作為中心骨架。 用工廠模式進(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步驟。 |
軟件架構(gòu)設(shè)計案例分析 |
綜合架構(gòu)案例剖析 - 商店P(guān)OS系統(tǒng)架構(gòu)設(shè)計 - 薪酬系統(tǒng)架構(gòu)設(shè)計 - 倉庫管理系統(tǒng)架構(gòu)設(shè)計 實戰(zhàn)典型案例分析(以實際項目案例為背景) - 需求分析、領(lǐng)域建模:零售店銷售系統(tǒng) - 設(shè)計模式的綜合運用:Dvc文件分析系統(tǒng) - 架構(gòu)分析:互聯(lián)網(wǎng)商品數(shù)據(jù)分析系統(tǒng) - 綜合案例分析:圖像處理系統(tǒng) 基于搜索的二次開發(fā)系統(tǒng) |
軟件生命周期與軟件 架構(gòu)介紹 軟件架構(gòu)介紹 IT行業(yè)的人才結(jié)構(gòu)與軟件架構(gòu)師的定位 軟件架構(gòu)師應(yīng)掌握的知識體系 軟件架構(gòu)設(shè)計的特點、層次、分類 軟件架構(gòu)的主要理論、方向和趨勢 軟件工廠,實現(xiàn)軟件開發(fā)的產(chǎn)業(yè)化 軟件生命周期進(jìn)程模型介紹 RUP與XP Agile與CMMI MSF |
技術(shù)架構(gòu)視圖─面向?qū)ο蟪绦蛟O(shè)計原則與模式及方法論 衡量軟件系統(tǒng)質(zhì)量的標(biāo)準(zhǔn) 軟件系統(tǒng)開始變壞的表現(xiàn):硬化、脆弱、綁死、膠著。 軟件系統(tǒng)關(guān)鍵的質(zhì)量特性:正確性、健壯性、可擴(kuò)展性、可復(fù)用性、兼容、可移植性、高效性、timeliness、economy and functionality 面向?qū)ο笤O(shè)計的基本原則 類的設(shè)計原則: 開閉原則、依賴倒置原則、Liskov替換原則、單一職責(zé)原則、接口分離原則、組合復(fù)用原則、所知最少原則 例:會議管理系統(tǒng)等、API函數(shù)的啟示等 包內(nèi)聚原則:發(fā)布與復(fù)用等價原則、共同封閉原則、共同復(fù)用原則 包耦合原則:無循環(huán)的依賴原則、穩(wěn)定的依賴原則、穩(wěn)定的抽象 用GRASP模式指導(dǎo)架構(gòu)設(shè)計 GRASP架構(gòu)模式: 信息專家、創(chuàng)建者、高內(nèi)聚、低耦合、控制者、多態(tài)、間接、純虛構(gòu)、保護(hù)變化 典型案例分析: 違反信息專家模式案例分析 應(yīng)用信息專家模式案例分析 應(yīng)用GRASP模式精化架構(gòu)設(shè)計案例分析 軟件架構(gòu)設(shè)計的關(guān)鍵因素 什么是架構(gòu), 它和系統(tǒng)是如何關(guān)聯(lián)的。 如何獲得可維護(hù)性、可擴(kuò)展性、可重用性、互操作性等。 在系統(tǒng)中如何組織組件(Component) 。 如何組織組件(Component)的內(nèi)部。 如何保持平臺相關(guān)的細(xì)節(jié)和應(yīng)用的分離。 如何應(yīng)用封裝(encapsulation)、抽象(abstraction)和委派(delegation)的原則。 如何應(yīng)用設(shè)計模式來實現(xiàn)好的結(jié)構(gòu)。 案例分析 模板容器、Movie查詢等 |
用UML輔助系統(tǒng)分析與設(shè)計 UML中的常見疑難問題辨析 用例圖 - 參與者建模中的常見問題 - 用例建模中的常見問題 - UaseCase的本質(zhì)討論 類設(shè)計 - UML中關(guān)系的辨析: 依賴關(guān)系、關(guān)聯(lián)關(guān)系辨析;聚合,組合辨析 類設(shè)計中的常見問題: - 一些常見但易混淆的類關(guān)系圖; - 熟悉類的自關(guān)聯(lián)形式;使用關(guān)聯(lián)類; - 一些易混淆的重數(shù)表示方法 - 建模為對象與建模為屬性 / 建模為方法與建模為對象的辨析。 其它辨析 - 包與組件 - 擴(kuò)展基類與覆蓋基類等;自關(guān)聯(lián)、關(guān)聯(lián)多重性、關(guān)聯(lián)角色名辨析 - 消除多重繼承的常用手段 |
借鑒RUP的設(shè)計過程 借鑒RUP的設(shè)計過程 全局分析: 選用架構(gòu)模式;識別關(guān)鍵抽象;標(biāo)識分析機(jī)制;常見的分析機(jī)制 局部分析: 提取分析類: 分析類的類型劃分:邊界類、實體類、控制類,分析類在模型中的位置,邊界類的復(fù)用,控制類的變通。 分析動態(tài)場景: 消息與責(zé)任;事件序列在邊界、實體及控制類間的原則;控制類在交互圖中的表現(xiàn)特征;交互圖的正確性。 整理分析類: 分析類的責(zé)任和關(guān)聯(lián)關(guān)系;動態(tài)與靜態(tài)的關(guān)系;確定類的責(zé)任;設(shè)計類和子系統(tǒng)接口。 |
設(shè)計模式與軟件設(shè)計思想 GOF設(shè)計模式 - 使用GOF設(shè)計模式,借鑒前人的經(jīng)驗。 - 分析創(chuàng)建型模式: - 單例模式(Singleton)、工廠模式、抽象工廠模式(Abstractfactory) - 分析結(jié)構(gòu)型模式: - 橋梁模式(Bridge)、裝飾模式(Decorator)、適配器模式(Adapter)、代理模式(Proxy)、組合模式(Composite) - 分析行為型模式: - 命令模式(Command )、觀察者模式(Observer)、狀態(tài)模式(State)、策略模式(Strategy)、模板方法模式(Template Method)、訪問者模式(Template Method) 設(shè)計模式深入討論 - 設(shè)計模式的本質(zhì): - 隔離變化點;間接;透明;局部雙向依賴;邏輯與功能;用接口抹平差異、延遲調(diào)用。 - 模式的推演: - 掌握模式的本質(zhì),而非形式。 - 設(shè)計模式的高級運用: - 高手的選擇;神似而非形似;一切以工程實際為標(biāo)準(zhǔn);可以犧牲掉的特征;簡化的模式;防止濫用;自創(chuàng)的模式。 常用的軟件架構(gòu)風(fēng)格及適用情況分析 - 系統(tǒng)軟件 - 分層(Layer)、管道和過濾器(Pipes and Filters)、黑板(Blackboard) - 分布式軟件 - 經(jīng)紀(jì)人(Broker) 、客戶/服務(wù)器(Client/Server)、點對點(Peer to Peer) - 交互軟件 模型-視圖-控制器(Model-View-Controller)、顯示-抽象-控制(Presentation-Abstraction-COntrol) SOA的設(shè)計思想 - SOA的概念 - SOA的設(shè)計目標(biāo) 異構(gòu)性Heterogeneity;可伸縮性Scalability;適用性Availability;分布式Distribution; .機(jī)動性Flexibility;可見性 典型案例分析 媒體顯示、數(shù)據(jù)采集系統(tǒng)、編輯器、文件解析器。 |
架構(gòu)設(shè)計實踐 靜態(tài)設(shè)計 - 按層+高內(nèi)聚低耦合的原則進(jìn)行模塊劃分 高內(nèi)聚原則;按功能分解;按業(yè)務(wù)進(jìn)行分解;以數(shù)據(jù)轉(zhuǎn)換為中心分解;實際運用中的折中。 - 劃分層次 - 將模塊劃入對應(yīng)的層;分層與分區(qū);邏輯模塊與實體組件的對應(yīng)關(guān)系。 - 為模塊進(jìn)行職責(zé)分配 隔離關(guān)注面:低耦合原則;適當(dāng)采用設(shè)計模式; 用設(shè)計模式優(yōu)化核心結(jié)構(gòu):經(jīng)典模式運用: 用橋接模式作為中心骨架。 用橋接模式作為中心骨架。 用工廠模式進(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步驟。 |
軟件架構(gòu)設(shè)計案例分析 綜合架構(gòu)案例剖析 - 商店P(guān)OS系統(tǒng)架構(gòu)設(shè)計 - 薪酬系統(tǒng)架構(gòu)設(shè)計 - 倉庫管理系統(tǒng)架構(gòu)設(shè)計 實戰(zhàn)典型案例分析(以實際項目案例為背景) - 需求分析、領(lǐng)域建模:零售店銷售系統(tǒng) - 設(shè)計模式的綜合運用:Dvc文件分析系統(tǒng) - 架構(gòu)分析:互聯(lián)網(wǎng)商品數(shù)據(jù)分析系統(tǒng) - 綜合案例分析:圖像處理系統(tǒng) 基于搜索的二次開發(fā)系統(tǒng) |