課程簡介
本課程中解決的實際問題如下:
幫助IT企業(yè)解決獲得可重用的架構(gòu)設(shè)計的完整方案;
揭示軟件設(shè)計原理及設(shè)計過程;
幫助架構(gòu)師掌握架構(gòu)設(shè)計方法與架構(gòu)設(shè)計的模式;
幫助設(shè)計人員掌握軟件模塊劃分,及如何為模塊劃分職責;
幫助設(shè)計人員掌握領(lǐng)域分析與建模的正確方法;
幫助IT數(shù)據(jù)結(jié)構(gòu)設(shè)計及實例等;
幫助甲方解決軟件架構(gòu)評估問題;
目標收益
培訓對象
課程大綱
軟件架構(gòu)視圖 |
軟件架構(gòu)視圖的意義,軟件架構(gòu)師的多維思考 邏輯視圖、開發(fā)視圖、物理視圖、運行視圖、場景視圖、數(shù)據(jù)視圖、功能視圖 如何和怎樣繪制軟件架構(gòu)視圖 UML建模工具在架構(gòu)視圖的應(yīng)用 典型案例分析:結(jié)合多個項目實例,進行分析軟件架構(gòu)視圖 |
架構(gòu)設(shè)計中的模塊劃分及職責分配——GRASP原則 |
架構(gòu)/模塊設(shè)計中,如何劃分模塊,如何分配模塊的職責是重要的內(nèi)容。本節(jié)結(jié)合多個案例,回答: 如何進行架構(gòu)設(shè)計,什么是好的架構(gòu),怎么驗證架構(gòu)的合理性? 如何進行組件(模塊化)化設(shè)計,在架構(gòu)基礎(chǔ)上保證組件及框架的復用? 內(nèi)容一 模塊及組件的職責分配設(shè)計 分層與分區(qū)的考慮 基于面向?qū)ο蟮慕M件職責分配 組件職責分配的深入探討 大型組件與小組件職責分配的探討 典型案例分析:如何為模塊合理地分配職責,某收款系統(tǒng)、稅務(wù)系統(tǒng)的組件設(shè)計 內(nèi)容二 組件創(chuàng)建及裝載設(shè)計 組件的動態(tài)裝載 組件創(chuàng)建者的選擇原則 架構(gòu)中常見的組件創(chuàng)建方式 典型案例分析:某數(shù)據(jù)解析系統(tǒng)設(shè)計,闡述構(gòu)件創(chuàng)建的要點 內(nèi)容三 如何設(shè)計出高內(nèi)聚低耦合的架構(gòu) 組件的粒度把握原則 不同類型的模塊及其復用方式 面向過程式或面向?qū)ο蠼M件的選擇 在不同的模塊中隔離不同的關(guān)注面 用單一職責原理指導架構(gòu)設(shè)計 典型案例分析:某Html分析系統(tǒng)、某文檔驗證系統(tǒng)設(shè)計,分析高內(nèi)聚低耦合的重要意義 內(nèi)容四 架構(gòu)設(shè)計中如何有效地組織多個組件/模塊 設(shè)計控制器模塊 控制模塊與其它模塊的交互 設(shè)計不同類型的模塊在系統(tǒng)中的交互機制 對過大組件/模塊的分解原則及實踐 典型案例分析:某文檔驗證系統(tǒng)設(shè)計,闡述對系統(tǒng)的整體把握能力 內(nèi)容五 如何設(shè)計出靈活性及可擴展性高的架構(gòu) 如何設(shè)計出可擴展的架構(gòu) 多態(tài)在組件設(shè)計中的使用 間接模式在架構(gòu)設(shè)計中的價值及其使用 接模式在基于架構(gòu)的架構(gòu)中的運用 典型案例分析:UIM系統(tǒng)設(shè)計,如何構(gòu)造靈活而可擴展的系統(tǒng) 內(nèi)容六 架構(gòu)的魯棒性設(shè)計 1)隔離不同的關(guān)注面 2)如何封裝組件設(shè)計中的變化 3)組件設(shè)計中的開-閉原則 4)包內(nèi)聚原則及其運用 5)包耦合原則及其運用 典型案例分析:稅務(wù)系統(tǒng)、演示匯報系統(tǒng)實例進行分析 |
架構(gòu)設(shè)計過程 |
內(nèi)容一 商業(yè)架構(gòu)設(shè)計 軟件功能需求對架構(gòu)的影響 軟件質(zhì)量需求對架構(gòu)的影響 軟件商業(yè)質(zhì)量屬性分析 軟件約束條件與架構(gòu)的影響 確定架構(gòu)目標 系統(tǒng)功能分解(系統(tǒng)、子系統(tǒng)、模塊)和部署模式 典型案例分析:結(jié)合多個項目實例,分析質(zhì)量需求、約束對架構(gòu)的影響(項目錯誤的架構(gòu),導致反復迭代) 內(nèi)容二 邏輯架構(gòu)設(shè)計 軟件架構(gòu)立方體圖 軟件架構(gòu)模式和架構(gòu)師經(jīng)驗的引入 使用質(zhì)量場景屬性進行迭代架構(gòu)設(shè)計 綜合初步設(shè)計,確定高層分割(分層 分服務(wù) 分區(qū) 通信) 典型案例分析:結(jié)合項目實例,進行分析該階段的主要任務(wù)和相關(guān)成果 內(nèi)容三 物理架構(gòu)設(shè)計 數(shù)據(jù)模型視圖 結(jié)合邏輯架構(gòu),設(shè)計物理部署 內(nèi)容四 架構(gòu)重構(gòu) 軟件架構(gòu)重構(gòu)還是重寫 軟件架構(gòu)重構(gòu)技巧 軟件架構(gòu)復用 架構(gòu)重構(gòu)的4種方案及模式 |
核心業(yè)務(wù)邏輯層 架構(gòu)設(shè)計 |
內(nèi)容一 業(yè)務(wù)邏輯層中的子層設(shè)計 業(yè)務(wù)邏輯層組件設(shè)計 業(yè)務(wù)邏輯層工作流設(shè)計 服務(wù)facade設(shè)計 業(yè)務(wù)邏輯層實體設(shè)計 充血模型、貧血模型、失血模型的博弈及案例分析 分布式應(yīng)用場景 業(yè)務(wù)邏輯層框架(EJB,Springframework,.Net框架) 內(nèi)容二 典型案例分析 訂餐系統(tǒng),邏輯子層分析及設(shè)計中的要點 雜志訂閱系統(tǒng),需求分析到領(lǐng)域分析,業(yè)務(wù)邏輯層的設(shè)計要點 媒體墻系統(tǒng),分析系統(tǒng)的組件劃分及業(yè)務(wù)邏輯層劃分 |
質(zhì)量屬性驅(qū)動 架構(gòu)設(shè)計策略 |
什么是系統(tǒng)質(zhì)量屬性,如何進行質(zhì)量屬性進行驅(qū)動架構(gòu)設(shè)計 架構(gòu)和質(zhì)量屬性的關(guān)系 如何獲得可維護性、可擴展性、可靠性、互操作性,系統(tǒng)性能,安全性等 系統(tǒng)架構(gòu)的可靠性設(shè)計策略 系統(tǒng)架構(gòu)的可修改性設(shè)計策略 系統(tǒng)架構(gòu)的性能設(shè)計策略 系統(tǒng)架構(gòu)的安全性設(shè)計策略 系統(tǒng)架構(gòu)的易用性設(shè)計策略 系統(tǒng)架構(gòu)質(zhì)量屬性和架構(gòu)模式的應(yīng)用 典型案例分析:架構(gòu)策略如何應(yīng)用在自己的實際項目中 |
設(shè)計原則及設(shè)計模式 |
內(nèi)容一:面向?qū)ο笤O(shè)計原則及其分析 軟件設(shè)計目標,基本原則和模式關(guān)系 開閉原則 依賴倒置原則 單一職責原則 里氏替換原則 合成/聚合復用原則 接口隔離原則和Demeter法則 通過案例進行分析,模式如何使用 內(nèi)容二:常見架構(gòu)設(shè)計原則及其分析 抽象(Abstraction)、封裝(Encapsulation)和信息隱藏(Information Hiding) 分而治之(Divide-And-Conquer)和模塊化(modularization) 松耦合和高內(nèi)聚(Coupling and Cohesion) 策略和實現(xiàn)的分離(Separation of Policy and Implementation) 接口和實現(xiàn)的分離(Separation of Interface and Implementation) 單一引用點(Single Point of Reference) 典型案例分析:架構(gòu)原則在實際項目中應(yīng)用(奧運項目案例) 內(nèi)容三:案例分析—OO基本原則 (多個小案例,不涉及特定的業(yè)務(wù)) 通過經(jīng)典面向?qū)ο蟀咐?要求學員分別使用過程式和面向?qū)ο?種思維,進行設(shè)計 進行對比2種思維的不同點和結(jié)果 通過案例指出OO是否真正做到了它所說的價值 這些小案例涉及項目開發(fā)中的常見的困境、疑惑,本節(jié)探討如何通過設(shè)計原則解決。 討論設(shè)計原則與設(shè)計模式的關(guān)系,已經(jīng)在沒有合適模式可用的情況下如何分析、解決問題。 |
軟件架構(gòu)模式 |
內(nèi)容一 常見的架構(gòu)模式/風格 分層架構(gòu)模式 Pipe/Filter Pattern 黑板/看板(blackboard)模式 MVC/PVC Pattern Event-Based Pattern和Microkernel Pattern 分布式和并發(fā)架構(gòu)設(shè)計模式 解釋器和黑板模式 其他模式的介紹(元數(shù)據(jù)等) 典型案例分析:軟件架構(gòu)模式如何應(yīng)用在自己的實際項目中 內(nèi)容二 典型案例分析 某數(shù)據(jù)抓取分析系統(tǒng) 某模式識別系統(tǒng) 某多媒體制作系統(tǒng) 通過典型案例分析,總結(jié)架構(gòu)師實際項目架構(gòu)的經(jīng)驗和應(yīng)用 |
設(shè)計模式與軟件設(shè)計思想 |
內(nèi)容一 常見的設(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) 典型案例分析:分析薪酬管理、訂單管理系統(tǒng)等多個案例,展示設(shè)計模式在架構(gòu)設(shè)計中的實際應(yīng)用 內(nèi)容二 設(shè)計模式的本質(zhì)探討 指出什么是優(yōu)秀設(shè)計和丑陋設(shè)計 總結(jié)自己的模式-神似而非型似 探討相似模式的本質(zhì) “間接類”模式的推演及演化 “流程類”模式的推演及演化 避免模式的誤用,討論模式的陷阱:在看似典型的場景,但不宜使用模式的場合。 內(nèi)容三 案例- 元搜索系統(tǒng)分析及設(shè)計 簡單背景介紹 如何面對紛繁的變化因素的組合 一定要使用模式嗎——如果能很好地能抽象、隔離不同因素,也許它就是模式。 討論Command模式的本質(zhì)。 內(nèi)容四 案例- 電子文件生成器 簡單背景介紹 使用模式的第一反應(yīng),及陷入陷阱的思索 具體場景使用模式的本質(zhì)討論 多態(tài)的本質(zhì) 討論并介紹表驅(qū)動法 Template Method、DIP原則Strategy模式的的靈活使用——獲得優(yōu)雅的設(shè)計 |
IOC原理在可復用軟件框架中的運用 |
內(nèi)容一 系統(tǒng)接口設(shè)計 接口的意義 所知最少原則 組件接口的設(shè)計 接口隔離原則 子系統(tǒng)接口的設(shè)計 典型案例分析:文件處理系統(tǒng)實例分析,如何設(shè)計一個極度的松耦合接口 內(nèi)容二 IOC原理在可復用軟件框架中的運用 Spring中的IOC運用 理解IOC的本質(zhì) IOC及DIP原則的運用 服務(wù)組件的設(shè)計 功能組件的設(shè)計 不依賴于框架的IOC實現(xiàn) 內(nèi)容三 案例分析 典型案例分析:多功能文件處理系統(tǒng)的設(shè)計分析,采用逐步深入的方式,抽絲剝繭,展現(xiàn)如何設(shè)計一個優(yōu)雅而高效的文件處理框架。 |
數(shù)據(jù)訪問層設(shè)計 (持久層設(shè)計) |
數(shù)據(jù)庫設(shè)計中的常見問題 分布式數(shù)據(jù)庫設(shè)計的6種模式 偽分布式數(shù)據(jù)庫設(shè)計的優(yōu)劣及運用 數(shù)據(jù)表設(shè)計的6種模式 數(shù)據(jù)表設(shè)計中的反規(guī)范化 海量數(shù)據(jù)技術(shù):如何提高效率 數(shù)據(jù)ORM的常見問題 結(jié)合多個實際項目進行分析,總結(jié)6種數(shù)據(jù)庫設(shè)計模式及數(shù)據(jù)表設(shè)計模式,分析其實用條件。 |
系統(tǒng)內(nèi)間通信設(shè)計 |
系統(tǒng)通信設(shè)計原則 常見跨進程通訊的手段 大數(shù)據(jù)量交互的通訊手段 異構(gòu)系統(tǒng)間常見的通訊手段 基于消息隊列及控制的通訊手段 基于本地SDK的通訊手段 基于數(shù)據(jù)庫的數(shù)據(jù)交換方案 服務(wù)器推技術(shù)及對現(xiàn)代軟件的影響 協(xié)議選擇對性能的考慮 同步及異步的通訊手段 典型案例分析:結(jié)合項目實例分析,系統(tǒng)內(nèi)/間的通信設(shè)計 |
部分軟件應(yīng)用類型和架構(gòu)風格鑒賞 |
基于樹形結(jié)構(gòu)的分布式系統(tǒng) 基于總控端的分布式系統(tǒng) 基于P2P的分布式系統(tǒng) 基于數(shù)據(jù)網(wǎng)關(guān)交互的BS系統(tǒng) 基于集中控制的BS系統(tǒng) 復雜消息控制的桌面運用系統(tǒng) 松散耦合的桌面系統(tǒng) 組件化的桌面系統(tǒng) 基于腳本解釋器的桌面系統(tǒng) 其他系統(tǒng),分析其優(yōu)劣 典型案例分析:分析實際的項目案例,賞析系統(tǒng)的不同架構(gòu)風格,并評說其利弊 |
架構(gòu)設(shè)計步驟總結(jié)及實踐 |
靜態(tài)設(shè)計:子系統(tǒng)、分層及分區(qū);職責分配 模塊間的通信及耦合設(shè)計:組件式編程、考慮通訊機制、解耦、設(shè)計數(shù)據(jù)層 動態(tài)設(shè)計:抽象與統(tǒng)一不同的因素、整理邏輯控制、設(shè)計消息通知機制 模塊調(diào)整:調(diào)整模塊等級、用設(shè)計模式優(yōu)化設(shè)計、編碼時構(gòu)建適當?shù)膭討B(tài)臨時類、效率的優(yōu)化(優(yōu)化效率3步驟) 典型案例分析:總結(jié)、整理架構(gòu)設(shè)計的步驟 |
大型軟件系統(tǒng)架構(gòu)實踐與剖析 |
超市收款系統(tǒng)軟件架構(gòu)案例研究 網(wǎng)絡(luò)數(shù)據(jù)鉆取及分析軟件架構(gòu)案例研究 某政府項目軟件架構(gòu)案例研究 |
軟件架構(gòu)視圖 軟件架構(gòu)視圖的意義,軟件架構(gòu)師的多維思考 邏輯視圖、開發(fā)視圖、物理視圖、運行視圖、場景視圖、數(shù)據(jù)視圖、功能視圖 如何和怎樣繪制軟件架構(gòu)視圖 UML建模工具在架構(gòu)視圖的應(yīng)用 典型案例分析:結(jié)合多個項目實例,進行分析軟件架構(gòu)視圖 |
架構(gòu)設(shè)計中的模塊劃分及職責分配——GRASP原則 架構(gòu)/模塊設(shè)計中,如何劃分模塊,如何分配模塊的職責是重要的內(nèi)容。本節(jié)結(jié)合多個案例,回答: 如何進行架構(gòu)設(shè)計,什么是好的架構(gòu),怎么驗證架構(gòu)的合理性? 如何進行組件(模塊化)化設(shè)計,在架構(gòu)基礎(chǔ)上保證組件及框架的復用? 內(nèi)容一 模塊及組件的職責分配設(shè)計 分層與分區(qū)的考慮 基于面向?qū)ο蟮慕M件職責分配 組件職責分配的深入探討 大型組件與小組件職責分配的探討 典型案例分析:如何為模塊合理地分配職責,某收款系統(tǒng)、稅務(wù)系統(tǒng)的組件設(shè)計 內(nèi)容二 組件創(chuàng)建及裝載設(shè)計 組件的動態(tài)裝載 組件創(chuàng)建者的選擇原則 架構(gòu)中常見的組件創(chuàng)建方式 典型案例分析:某數(shù)據(jù)解析系統(tǒng)設(shè)計,闡述構(gòu)件創(chuàng)建的要點 內(nèi)容三 如何設(shè)計出高內(nèi)聚低耦合的架構(gòu) 組件的粒度把握原則 不同類型的模塊及其復用方式 面向過程式或面向?qū)ο蠼M件的選擇 在不同的模塊中隔離不同的關(guān)注面 用單一職責原理指導架構(gòu)設(shè)計 典型案例分析:某Html分析系統(tǒng)、某文檔驗證系統(tǒng)設(shè)計,分析高內(nèi)聚低耦合的重要意義 內(nèi)容四 架構(gòu)設(shè)計中如何有效地組織多個組件/模塊 設(shè)計控制器模塊 控制模塊與其它模塊的交互 設(shè)計不同類型的模塊在系統(tǒng)中的交互機制 對過大組件/模塊的分解原則及實踐 典型案例分析:某文檔驗證系統(tǒng)設(shè)計,闡述對系統(tǒng)的整體把握能力 內(nèi)容五 如何設(shè)計出靈活性及可擴展性高的架構(gòu) 如何設(shè)計出可擴展的架構(gòu) 多態(tài)在組件設(shè)計中的使用 間接模式在架構(gòu)設(shè)計中的價值及其使用 接模式在基于架構(gòu)的架構(gòu)中的運用 典型案例分析:UIM系統(tǒng)設(shè)計,如何構(gòu)造靈活而可擴展的系統(tǒng) 內(nèi)容六 架構(gòu)的魯棒性設(shè)計 1)隔離不同的關(guān)注面 2)如何封裝組件設(shè)計中的變化 3)組件設(shè)計中的開-閉原則 4)包內(nèi)聚原則及其運用 5)包耦合原則及其運用 典型案例分析:稅務(wù)系統(tǒng)、演示匯報系統(tǒng)實例進行分析 |
架構(gòu)設(shè)計過程 內(nèi)容一 商業(yè)架構(gòu)設(shè)計 軟件功能需求對架構(gòu)的影響 軟件質(zhì)量需求對架構(gòu)的影響 軟件商業(yè)質(zhì)量屬性分析 軟件約束條件與架構(gòu)的影響 確定架構(gòu)目標 系統(tǒng)功能分解(系統(tǒng)、子系統(tǒng)、模塊)和部署模式 典型案例分析:結(jié)合多個項目實例,分析質(zhì)量需求、約束對架構(gòu)的影響(項目錯誤的架構(gòu),導致反復迭代) 內(nèi)容二 邏輯架構(gòu)設(shè)計 軟件架構(gòu)立方體圖 軟件架構(gòu)模式和架構(gòu)師經(jīng)驗的引入 使用質(zhì)量場景屬性進行迭代架構(gòu)設(shè)計 綜合初步設(shè)計,確定高層分割(分層 分服務(wù) 分區(qū) 通信) 典型案例分析:結(jié)合項目實例,進行分析該階段的主要任務(wù)和相關(guān)成果 內(nèi)容三 物理架構(gòu)設(shè)計 數(shù)據(jù)模型視圖 結(jié)合邏輯架構(gòu),設(shè)計物理部署 內(nèi)容四 架構(gòu)重構(gòu) 軟件架構(gòu)重構(gòu)還是重寫 軟件架構(gòu)重構(gòu)技巧 軟件架構(gòu)復用 架構(gòu)重構(gòu)的4種方案及模式 |
核心業(yè)務(wù)邏輯層 架構(gòu)設(shè)計 內(nèi)容一 業(yè)務(wù)邏輯層中的子層設(shè)計 業(yè)務(wù)邏輯層組件設(shè)計 業(yè)務(wù)邏輯層工作流設(shè)計 服務(wù)facade設(shè)計 業(yè)務(wù)邏輯層實體設(shè)計 充血模型、貧血模型、失血模型的博弈及案例分析 分布式應(yīng)用場景 業(yè)務(wù)邏輯層框架(EJB,Springframework,.Net框架) 內(nèi)容二 典型案例分析 訂餐系統(tǒng),邏輯子層分析及設(shè)計中的要點 雜志訂閱系統(tǒng),需求分析到領(lǐng)域分析,業(yè)務(wù)邏輯層的設(shè)計要點 媒體墻系統(tǒng),分析系統(tǒng)的組件劃分及業(yè)務(wù)邏輯層劃分 |
質(zhì)量屬性驅(qū)動 架構(gòu)設(shè)計策略 什么是系統(tǒng)質(zhì)量屬性,如何進行質(zhì)量屬性進行驅(qū)動架構(gòu)設(shè)計 架構(gòu)和質(zhì)量屬性的關(guān)系 如何獲得可維護性、可擴展性、可靠性、互操作性,系統(tǒng)性能,安全性等 系統(tǒng)架構(gòu)的可靠性設(shè)計策略 系統(tǒng)架構(gòu)的可修改性設(shè)計策略 系統(tǒng)架構(gòu)的性能設(shè)計策略 系統(tǒng)架構(gòu)的安全性設(shè)計策略 系統(tǒng)架構(gòu)的易用性設(shè)計策略 系統(tǒng)架構(gòu)質(zhì)量屬性和架構(gòu)模式的應(yīng)用 典型案例分析:架構(gòu)策略如何應(yīng)用在自己的實際項目中 |
設(shè)計原則及設(shè)計模式 內(nèi)容一:面向?qū)ο笤O(shè)計原則及其分析 軟件設(shè)計目標,基本原則和模式關(guān)系 開閉原則 依賴倒置原則 單一職責原則 里氏替換原則 合成/聚合復用原則 接口隔離原則和Demeter法則 通過案例進行分析,模式如何使用 內(nèi)容二:常見架構(gòu)設(shè)計原則及其分析 抽象(Abstraction)、封裝(Encapsulation)和信息隱藏(Information Hiding) 分而治之(Divide-And-Conquer)和模塊化(modularization) 松耦合和高內(nèi)聚(Coupling and Cohesion) 策略和實現(xiàn)的分離(Separation of Policy and Implementation) 接口和實現(xiàn)的分離(Separation of Interface and Implementation) 單一引用點(Single Point of Reference) 典型案例分析:架構(gòu)原則在實際項目中應(yīng)用(奧運項目案例) 內(nèi)容三:案例分析—OO基本原則 (多個小案例,不涉及特定的業(yè)務(wù)) 通過經(jīng)典面向?qū)ο蟀咐?要求學員分別使用過程式和面向?qū)ο?種思維,進行設(shè)計 進行對比2種思維的不同點和結(jié)果 通過案例指出OO是否真正做到了它所說的價值 這些小案例涉及項目開發(fā)中的常見的困境、疑惑,本節(jié)探討如何通過設(shè)計原則解決。 討論設(shè)計原則與設(shè)計模式的關(guān)系,已經(jīng)在沒有合適模式可用的情況下如何分析、解決問題。 |
軟件架構(gòu)模式 內(nèi)容一 常見的架構(gòu)模式/風格 分層架構(gòu)模式 Pipe/Filter Pattern 黑板/看板(blackboard)模式 MVC/PVC Pattern Event-Based Pattern和Microkernel Pattern 分布式和并發(fā)架構(gòu)設(shè)計模式 解釋器和黑板模式 其他模式的介紹(元數(shù)據(jù)等) 典型案例分析:軟件架構(gòu)模式如何應(yīng)用在自己的實際項目中 內(nèi)容二 典型案例分析 某數(shù)據(jù)抓取分析系統(tǒng) 某模式識別系統(tǒng) 某多媒體制作系統(tǒng) 通過典型案例分析,總結(jié)架構(gòu)師實際項目架構(gòu)的經(jīng)驗和應(yīng)用 |
設(shè)計模式與軟件設(shè)計思想 內(nèi)容一 常見的設(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) 典型案例分析:分析薪酬管理、訂單管理系統(tǒng)等多個案例,展示設(shè)計模式在架構(gòu)設(shè)計中的實際應(yīng)用 內(nèi)容二 設(shè)計模式的本質(zhì)探討 指出什么是優(yōu)秀設(shè)計和丑陋設(shè)計 總結(jié)自己的模式-神似而非型似 探討相似模式的本質(zhì) “間接類”模式的推演及演化 “流程類”模式的推演及演化 避免模式的誤用,討論模式的陷阱:在看似典型的場景,但不宜使用模式的場合。 內(nèi)容三 案例- 元搜索系統(tǒng)分析及設(shè)計 簡單背景介紹 如何面對紛繁的變化因素的組合 一定要使用模式嗎——如果能很好地能抽象、隔離不同因素,也許它就是模式。 討論Command模式的本質(zhì)。 內(nèi)容四 案例- 電子文件生成器 簡單背景介紹 使用模式的第一反應(yīng),及陷入陷阱的思索 具體場景使用模式的本質(zhì)討論 多態(tài)的本質(zhì) 討論并介紹表驅(qū)動法 Template Method、DIP原則Strategy模式的的靈活使用——獲得優(yōu)雅的設(shè)計 |
IOC原理在可復用軟件框架中的運用 內(nèi)容一 系統(tǒng)接口設(shè)計 接口的意義 所知最少原則 組件接口的設(shè)計 接口隔離原則 子系統(tǒng)接口的設(shè)計 典型案例分析:文件處理系統(tǒng)實例分析,如何設(shè)計一個極度的松耦合接口 內(nèi)容二 IOC原理在可復用軟件框架中的運用 Spring中的IOC運用 理解IOC的本質(zhì) IOC及DIP原則的運用 服務(wù)組件的設(shè)計 功能組件的設(shè)計 不依賴于框架的IOC實現(xiàn) 內(nèi)容三 案例分析 典型案例分析:多功能文件處理系統(tǒng)的設(shè)計分析,采用逐步深入的方式,抽絲剝繭,展現(xiàn)如何設(shè)計一個優(yōu)雅而高效的文件處理框架。 |
數(shù)據(jù)訪問層設(shè)計 (持久層設(shè)計) 數(shù)據(jù)庫設(shè)計中的常見問題 分布式數(shù)據(jù)庫設(shè)計的6種模式 偽分布式數(shù)據(jù)庫設(shè)計的優(yōu)劣及運用 數(shù)據(jù)表設(shè)計的6種模式 數(shù)據(jù)表設(shè)計中的反規(guī)范化 海量數(shù)據(jù)技術(shù):如何提高效率 數(shù)據(jù)ORM的常見問題 結(jié)合多個實際項目進行分析,總結(jié)6種數(shù)據(jù)庫設(shè)計模式及數(shù)據(jù)表設(shè)計模式,分析其實用條件。 |
系統(tǒng)內(nèi)間通信設(shè)計 系統(tǒng)通信設(shè)計原則 常見跨進程通訊的手段 大數(shù)據(jù)量交互的通訊手段 異構(gòu)系統(tǒng)間常見的通訊手段 基于消息隊列及控制的通訊手段 基于本地SDK的通訊手段 基于數(shù)據(jù)庫的數(shù)據(jù)交換方案 服務(wù)器推技術(shù)及對現(xiàn)代軟件的影響 協(xié)議選擇對性能的考慮 同步及異步的通訊手段 典型案例分析:結(jié)合項目實例分析,系統(tǒng)內(nèi)/間的通信設(shè)計 |
部分軟件應(yīng)用類型和架構(gòu)風格鑒賞 基于樹形結(jié)構(gòu)的分布式系統(tǒng) 基于總控端的分布式系統(tǒng) 基于P2P的分布式系統(tǒng) 基于數(shù)據(jù)網(wǎng)關(guān)交互的BS系統(tǒng) 基于集中控制的BS系統(tǒng) 復雜消息控制的桌面運用系統(tǒng) 松散耦合的桌面系統(tǒng) 組件化的桌面系統(tǒng) 基于腳本解釋器的桌面系統(tǒng) 其他系統(tǒng),分析其優(yōu)劣 典型案例分析:分析實際的項目案例,賞析系統(tǒng)的不同架構(gòu)風格,并評說其利弊 |
架構(gòu)設(shè)計步驟總結(jié)及實踐 靜態(tài)設(shè)計:子系統(tǒng)、分層及分區(qū);職責分配 模塊間的通信及耦合設(shè)計:組件式編程、考慮通訊機制、解耦、設(shè)計數(shù)據(jù)層 動態(tài)設(shè)計:抽象與統(tǒng)一不同的因素、整理邏輯控制、設(shè)計消息通知機制 模塊調(diào)整:調(diào)整模塊等級、用設(shè)計模式優(yōu)化設(shè)計、編碼時構(gòu)建適當?shù)膭討B(tài)臨時類、效率的優(yōu)化(優(yōu)化效率3步驟) 典型案例分析:總結(jié)、整理架構(gòu)設(shè)計的步驟 |
大型軟件系統(tǒng)架構(gòu)實踐與剖析 超市收款系統(tǒng)軟件架構(gòu)案例研究 網(wǎng)絡(luò)數(shù)據(jù)鉆取及分析軟件架構(gòu)案例研究 某政府項目軟件架構(gòu)案例研究 |