課程簡介
本課程的目標在于為敏捷與精益開發(fā)環(huán)境中的軟件架構(gòu)設(shè)計提供指導(dǎo)。正如Martin Fowler在《Is Design Dead?》一文中所描述的,實施敏捷方法的團隊很容易陷入對軟件架構(gòu)和軟件設(shè)計的困惑。但是,有效的軟件架構(gòu)方法不僅能大幅降低設(shè)計風(fēng)險,而且在敏捷環(huán)境下更容易發(fā)揮其應(yīng)有的價值。課程講師在軟件架構(gòu)領(lǐng)域和敏捷軟件開發(fā)領(lǐng)域工作多年,能夠深入軟件架構(gòu)的本質(zhì)以及敏捷和精益的核心思想,引導(dǎo)學(xué)員掌握軟件架構(gòu)設(shè)計的基本工具及核心思想,從而做出有效的軟件架構(gòu)設(shè)計。
目標收益
通過培訓(xùn)學(xué)員可以掌握軟件架構(gòu)的核心思想和基本方法,開始運用敏捷建模方法進行軟件架構(gòu)設(shè)計和驗證。軟件開發(fā)團隊可以逐步導(dǎo)入架構(gòu)設(shè)計工作坊等開發(fā)實踐,更好地發(fā)揮軟件架構(gòu)在產(chǎn)品開發(fā)中的價值。
培訓(xùn)對象
本課程的培訓(xùn)對象是已經(jīng)使用或擬導(dǎo)入敏捷與精益方法軟件團隊的技術(shù)負責(zé)人、架構(gòu)師和軟件開發(fā)人員。
課程大綱
軟件架構(gòu)的 本質(zhì) |
內(nèi)容一:常識與謬誤:關(guān)于軟件架構(gòu)的基本觀點 1. 常見的軟件架構(gòu)認知誤區(qū) 2. 軟件架構(gòu)到底是什么——基本概念解析 3. 軟件架構(gòu)的核心目標 4. 軟件架構(gòu)的涉眾分析和關(guān)鍵成功要素 |
軟件架構(gòu)和 敏捷過程 |
內(nèi)容二:讓軟件架構(gòu)在敏捷和精益方法下有效 1. 價值與風(fēng)險導(dǎo)向的架構(gòu)設(shè)計(WHY) 2. 面向溝通的架構(gòu)設(shè)計與敏捷建模(WHAT) 3. 演進式設(shè)計與架構(gòu)的相對穩(wěn)定沖突嗎?(HOW) 4. 誰是架構(gòu)師?(WHO) |
架構(gòu)建模和 視圖 |
內(nèi)容三:模型和視圖——架構(gòu)師的標準語言 1. 模型和視圖的關(guān)鍵概念 2. Kruchten 4+1、SEI和Rational 視圖集標準 3. 架構(gòu)建模工具介紹 4. 軟件架構(gòu)逆向工程 5. 練習(xí):為既有設(shè)計進行架構(gòu)描述 |
軟件架構(gòu)設(shè)計方法 |
內(nèi)容四:基于質(zhì)量屬性非功能性需求進行軟件架構(gòu)設(shè)計 1. 非功能性需求:架構(gòu)設(shè)計的驅(qū)動因素 2. 質(zhì)量屬性場景與效用樹 3. 練習(xí):發(fā)現(xiàn)關(guān)鍵質(zhì)量屬性 內(nèi)容五:軟件架構(gòu)模式 4. 風(fēng)格、模式和框架 5. 深入理解軟件架構(gòu)模式 6. 練習(xí):軟件架構(gòu)模式分析 7. 軟件架構(gòu)模式和質(zhì)量屬性場景 內(nèi)容六:領(lǐng)域驅(qū)動設(shè)計和軟件架構(gòu) 8. 領(lǐng)域概念的發(fā)現(xiàn) 9. 合理地進行職責(zé)分配和接口設(shè)計 10. 何時對軟件架構(gòu)進行演進? |
軟件架構(gòu)的驗證與評估 |
內(nèi)容七:架構(gòu)評估——低成本的軟件架構(gòu)驗證方法 1. 敏捷和精益方法下的軟件架構(gòu)驗證 2. 基于折中的架構(gòu)評估方法 3. 構(gòu)造架構(gòu)原型 |
軟件架構(gòu)工作坊 |
內(nèi)容八:有效的組織軟件架構(gòu)設(shè)計和實施 1. 為什么需要軟件架構(gòu)工作坊 2. 如何有效組織 3. 練習(xí):軟件架構(gòu)工作坊 4. 優(yōu)秀軟件架構(gòu)案例剖析 |
軟件架構(gòu)的 本質(zhì) 內(nèi)容一:常識與謬誤:關(guān)于軟件架構(gòu)的基本觀點 1. 常見的軟件架構(gòu)認知誤區(qū) 2. 軟件架構(gòu)到底是什么——基本概念解析 3. 軟件架構(gòu)的核心目標 4. 軟件架構(gòu)的涉眾分析和關(guān)鍵成功要素 |
軟件架構(gòu)和 敏捷過程 內(nèi)容二:讓軟件架構(gòu)在敏捷和精益方法下有效 1. 價值與風(fēng)險導(dǎo)向的架構(gòu)設(shè)計(WHY) 2. 面向溝通的架構(gòu)設(shè)計與敏捷建模(WHAT) 3. 演進式設(shè)計與架構(gòu)的相對穩(wěn)定沖突嗎?(HOW) 4. 誰是架構(gòu)師?(WHO) |
架構(gòu)建模和 視圖 內(nèi)容三:模型和視圖——架構(gòu)師的標準語言 1. 模型和視圖的關(guān)鍵概念 2. Kruchten 4+1、SEI和Rational 視圖集標準 3. 架構(gòu)建模工具介紹 4. 軟件架構(gòu)逆向工程 5. 練習(xí):為既有設(shè)計進行架構(gòu)描述 |
軟件架構(gòu)設(shè)計方法 內(nèi)容四:基于質(zhì)量屬性非功能性需求進行軟件架構(gòu)設(shè)計 1. 非功能性需求:架構(gòu)設(shè)計的驅(qū)動因素 2. 質(zhì)量屬性場景與效用樹 3. 練習(xí):發(fā)現(xiàn)關(guān)鍵質(zhì)量屬性 內(nèi)容五:軟件架構(gòu)模式 4. 風(fēng)格、模式和框架 5. 深入理解軟件架構(gòu)模式 6. 練習(xí):軟件架構(gòu)模式分析 7. 軟件架構(gòu)模式和質(zhì)量屬性場景 內(nèi)容六:領(lǐng)域驅(qū)動設(shè)計和軟件架構(gòu) 8. 領(lǐng)域概念的發(fā)現(xiàn) 9. 合理地進行職責(zé)分配和接口設(shè)計 10. 何時對軟件架構(gòu)進行演進? |
軟件架構(gòu)的驗證與評估 內(nèi)容七:架構(gòu)評估——低成本的軟件架構(gòu)驗證方法 1. 敏捷和精益方法下的軟件架構(gòu)驗證 2. 基于折中的架構(gòu)評估方法 3. 構(gòu)造架構(gòu)原型 |
軟件架構(gòu)工作坊 內(nèi)容八:有效的組織軟件架構(gòu)設(shè)計和實施 1. 為什么需要軟件架構(gòu)工作坊 2. 如何有效組織 3. 練習(xí):軟件架構(gòu)工作坊 4. 優(yōu)秀軟件架構(gòu)案例剖析 |