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