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