【課程大綱】
第1天 |
1. 架構設計文檔視圖 (1)軟件架構的定義 (2)架構師能力模型與能力培養(yǎng) (3)基于SEI 9種架構評估的方法論 (4)源代碼目錄結構與設計文檔的關系 (5)架構視圖、架構文檔與架構劉生 (6)動手實踐:基于UML模型的文檔視圖 (7)動手實踐:使用UML工具對現(xiàn)有系統(tǒng)進行反向工程 2.“業(yè)務戰(zhàn)略與IT戰(zhàn)略”相得益彰 (1)業(yè)務戰(zhàn)略關注點{整合資源、創(chuàng)造價值、以滿足顧客} (2)業(yè)務領先戰(zhàn)略 (3)業(yè)務戰(zhàn)略源于“業(yè)務研究與業(yè)務創(chuàng)新” (4)波特價值鏈模型與五力模型 (5)企業(yè)信息化總體戰(zhàn)略思維(軟、硬、應用、組織) (6)業(yè)務戰(zhàn)略映射IT戰(zhàn)略 (7)案例實踐:如何分析與解讀企業(yè)的業(yè)務戰(zhàn)略 3. 業(yè)務架構規(guī)劃與設計 (1)企業(yè)業(yè)務流程梳理與分析 (2)業(yè)務流程優(yōu)化與再造(效率、質量、風險與成本) (3)業(yè)務流程組件化 (4)CBM模型-基于矩陣的方式組織“業(yè)務組件” (5)基于CBM模型的熱區(qū)分析 (6)業(yè)務組件集成-SOA與CBM模型 (7)案例實踐:基于TOC模型的BPR 4. 應用架構設計 (1)從業(yè)務流程中提取業(yè)務領域模型 (2)業(yè)務領域模型與應用劃分 (3)業(yè)務組件與業(yè)務應用的映射 (4)基于業(yè)務流程的業(yè)務應用集成 (5)遺留業(yè)務應用系統(tǒng)的集成策略 (6)業(yè)務變化對應用體系的影響 (7)案例實踐:應用集成策略實踐 |
第2天 |
5. 需求分析與系統(tǒng)分析 (1)需求分析的層次:理解需求、分析需求與挖掘需求 (2)滿足上下游的需求:產(chǎn)品需求與開發(fā)需求 (3)已知功能需求分析的方法:IDEF0、Use Case、ATDD與BDD (4)非功能性需求分析的方法:QFD與質量效用樹 (5)需求分析的可視化方法:UML需求建模 (6)如何全面、完整、無二義性的描述需求? (7)站在系統(tǒng)工程視角的需求分析 (8)業(yè)務功能結構抽象分析 (9)動手實踐:業(yè)務功能需求深度分析動手實踐,評選典型實踐成果 (10)案例分析:開源軟件ERP5業(yè)務抽象設計 6. 架構決策與選型 (1)透視技術平臺、框架與類庫的內(nèi)涵 (2)評估技術平臺、框架與類庫的方法 (3)產(chǎn)品與產(chǎn)品線架構決策的差異性 (4)以往架構決策經(jīng)驗的復用 (5)基于骨架代碼的架構決策 (6)基于Delphi法的架構決策 (7)基于SEI的9種架構評估方法論 (8)案例研究:豐田的DFSS-Design For Six Sigma (9)動手實踐:移動應用的架構方案決策實踐,評選典型實踐成果 7. 細化架構與切割 (1)技術切割范式:針對所有業(yè)務功能進行技術切割方法論 (2)技術元素的分層組織 (3)技術元素的分包組織 (4)技術元素的相似性與重疊性分析 (5)技術元素的變化性設計 (6)技術元素的性能、可靠、穩(wěn)定與安全設計 (7)技術元素并行開發(fā)與開發(fā)管理組織 (8)技術元素難度復雜度與開發(fā)者能力關系 (9)動手實踐:面向對象與面向方面的技術切割實踐,評選典型實踐成果 8. 接口設計與解耦 (1)接口設計的基本原則 (2)接口的變化性與穩(wěn)定性 (3)定義技術元素間相互調用的接口 (4)定義系統(tǒng)外部訪問集成的接口 (5)定義框架管理的接口 (6)注入變化觀察技術元素的波及面-耦合性分析 (7)技術元素職責單一性與松耦合 (8)案例分析:google的MapReduce的接口設計 (9)動手實踐:類庫接口設計實踐,評選典型實踐成果 |
第3天 |
9. 數(shù)據(jù)庫結構設計與大數(shù)據(jù) (1)數(shù)據(jù)庫設計的基本原則:適度使用范式原則 (2)實現(xiàn)數(shù)據(jù)庫結構的彈性設計8種方案 (3)大數(shù)據(jù)設計:權衡SQL與NoSQL (4)數(shù)據(jù)切割:分庫、分區(qū)與分布 (5)數(shù)據(jù)存儲文件系統(tǒng)的彈性設計:MySQL與淘寶TFS (6)數(shù)據(jù)性能設計方案:對比MemCached、OceanBase與Spark (7)數(shù)據(jù)中的知識與決策 (8)動手實踐:分組實現(xiàn)數(shù)據(jù)庫彈性設計,評選典型實踐成果 10. 公共組件設計 (1)公共組件結構切割 (2)公共組件接口設計 (3)公共組件的彈性設計 (4)公共組件與功能組件的動態(tài)耦合設計 (5)動手實踐:Cache組件設計 (6)動手實踐:現(xiàn)有系統(tǒng)反向工程的公共組件合理性分析 11. 框架平臺設計 (1)UI框架設計 (2)功能邏輯組件集成管理框架設計 (3)數(shù)據(jù)訪問框架設計 (4)數(shù)據(jù)存儲框架設計 (5)案例分析:HADOOP框架剖析 (6)動手實踐:現(xiàn)有系統(tǒng)反向工程的自定義框架的合理性分析
12. 非功能性設計 (1)各種質量屬性設計的戰(zhàn)術策略 (2)掌控“相互沖突的質量屬性”設計的平衡點 (3)軟件變化分析與預測 (4)軟件變化設計策略 (5)基于設計模式的變化設計 (6)基于key-value的變化設計 (7)基于邏輯判斷的變化設計 (8)高可靠性設計 (9)案例分析:SAP自我維護設計策略分析 (10)動手實踐:現(xiàn)有系統(tǒng)反向工程的質量設計的合理性分析 |
第4天 |
13. 部署運行維護設計 (1)規(guī)劃系統(tǒng)開發(fā)的配置庫結構 (2)規(guī)劃系統(tǒng)的編譯方案 (3)規(guī)劃系統(tǒng)源代碼的版本方案 (4)規(guī)劃系統(tǒng)物理文件的安裝方案 (5)規(guī)劃系統(tǒng)中各個技術元素部署方案 (6)系統(tǒng)集成構建方案 (7)注入敏捷思想-持續(xù)集成構建 (8)案例分析:微軟的每日構建 (9)標注軟件結構中的“運維點” (10)制定“運維點”的運行維護策略 (11)軟件結構中內(nèi)置免疫系統(tǒng) (12)動手實踐:產(chǎn)品源代碼結構、編譯計劃、版本計劃與部署方案,評選典型實踐成果 14. 架構關鍵點與工程 (1)架構設計與開發(fā)效率:簡化開發(fā) (2)架構設計指導詳細設計與代碼編寫 (3)注入敏捷的開發(fā)實踐方法:TDD (4)融合ITIL與DevOps的架構設計 (5)軟件架構與人力組織結構映射 (6)基于“軟件工廠”的開發(fā)模式 (7)建立企業(yè)級知識庫 (8)軟件動態(tài)運行維護規(guī)劃 (9)動手實踐:現(xiàn)有系統(tǒng)反向工程的運維設計的合理性分析 15. 架構模式與設計模式 (1)模式的場景、角色、職責 (2)模式應用誤區(qū)與風險 (3)設計重構中模式應用 (4)把握模式的使用尺度-過度使用模式與適度使用模式 16. 軟件設計模式的應用(Design Patterns) (1)建筑模式與設計模式 (2)過度使用設計模式的問題 (3)設計模式如何適應變化和封裝 (4)GRASP設計原則 (5)關于功能與邏輯的分離 (6)設計模式的組合應用方式 (7)Framework設計中設計模式 (8)結合案例進行分析,應用設計模式之前和應用之后的對比 (9)動手實踐:學員依據(jù)案例進行設計模式實踐 |