課程簡介
工作坊介紹:
領(lǐng)域驅(qū)動設(shè)計全過程工作坊將以事件風(fēng)暴為縱貫線,以領(lǐng)域場景為橫切面,驅(qū)動從戰(zhàn) 略設(shè)計到戰(zhàn)術(shù)設(shè)計的全生命周期的完整開發(fā)過程。內(nèi)容涵蓋事件風(fēng)暴、限界上下文、 上下文映射、場景驅(qū)動設(shè)計和測試驅(qū)動開發(fā)。整個工作坊圍繞為學(xué)在線課堂的案例全程演練具有實(shí)操價值的領(lǐng)域驅(qū)動設(shè)計方法。
目標(biāo)收益
通過本次工作坊,你將能夠深刻體會領(lǐng)域驅(qū)動從戰(zhàn)略設(shè)計到戰(zhàn)術(shù)設(shè)計的全過程;你將學(xué)到如何將事件風(fēng)暴運(yùn)用到具體的項(xiàng)目開發(fā)中,并利用它進(jìn)行業(yè)務(wù)分析、架構(gòu)設(shè)計和編程開發(fā),在降低業(yè)務(wù)復(fù)雜度的同時提高開發(fā)質(zhì)量;你將學(xué)到如何利用場景驅(qū)動設(shè)計固化設(shè)計和開發(fā)過程,在現(xiàn)有開發(fā)團(tuán)隊(duì)中實(shí)現(xiàn)領(lǐng)域驅(qū)動設(shè)計在復(fù)雜系統(tǒng)下的軟著陸。
培訓(xùn)對象
1、專注于行業(yè)軟件開發(fā)或互聯(lián)網(wǎng)開發(fā)的軟件從業(yè)者
2、希望掌握事件風(fēng)暴方法的業(yè)務(wù)分析人員與開發(fā)人員
3、希望提高領(lǐng)域建模與分析能力的軟件設(shè)計人員
4、希望掌握領(lǐng)域驅(qū)動設(shè)計方法并運(yùn)用到項(xiàng)目中的后端開發(fā)人員
課程大綱
領(lǐng)域驅(qū)動設(shè)計過程 (1小時) |
貫穿戰(zhàn)略式設(shè)計到戰(zhàn)術(shù)式設(shè)計,整體介紹領(lǐng)域驅(qū)動設(shè)計的完整過程和基本概念。 |
事件風(fēng)暴(1小時) |
介紹事件風(fēng)暴的基本概念,包括領(lǐng)域事件的基本特征,事件風(fēng)暴的設(shè)計驅(qū)動力,并介紹事件風(fēng)暴的可視化符號特征,為開展事件風(fēng)暴工作坊做準(zhǔn)備。 |
探索業(yè)務(wù)全景 (3小時) |
通過識別事件風(fēng)暴的領(lǐng)域事件,并利用事件因果關(guān)系的驅(qū)動力識別各自的前置事件和 后置事件,形成一條或多條代表了時間軸的事件流。 探索過程包括: ? 識別代表業(yè)務(wù)全景的領(lǐng)域事件 ? 標(biāo)記代表問題、重要關(guān)注點(diǎn)的熱點(diǎn) ? 為每個領(lǐng)域事件識別參與者 ? 對所有事件進(jìn)行橫向和縱向的切分,獲得候選限界上下文 ? 遍歷所有事件,確定上下文映射 |
領(lǐng)域分析建模 (2小時) |
針對限界上下文內(nèi)的領(lǐng)域事件進(jìn)行領(lǐng)域分析建模。這個過程屬于事件風(fēng)暴的第二階段,將進(jìn)一步確定領(lǐng)域分析模型。分析過程如下: ? 根據(jù)領(lǐng)域事件確定決策命令 ? 根據(jù)決策命令確定讀模型 ? 根據(jù)決策命令和領(lǐng)域事件之間的關(guān)系確定聚合 ? 根據(jù)讀模型、聚合獲得領(lǐng)域分析模型 |
場景驅(qū)動設(shè)計 (1小時) |
選擇一個領(lǐng)域場景,由參與者開啟一個初始狀態(tài),開始執(zhí)行具有時序性的連續(xù)任務(wù), 角色之間采用行為協(xié)作來共同滿足業(yè)務(wù)價值,這就是場景驅(qū)動設(shè)計(Scenario?Driven Design)。 這個過程是從領(lǐng)域分析模型到領(lǐng)域設(shè)計模型的關(guān)鍵步驟,同時也有利于降低開發(fā)團(tuán)隊(duì) 的設(shè)計門檻,形成固化的領(lǐng)域驅(qū)動戰(zhàn)術(shù)設(shè)計過程。 |
場景驅(qū)動設(shè)計的過程 (2小時) |
場景驅(qū)動設(shè)計以事件風(fēng)暴識別出來的領(lǐng)域場景為起點(diǎn),以領(lǐng)域分析模型中的模型對象 結(jié)合角色構(gòu)造型作為參與協(xié)作的設(shè)計元素,固化為一個可按部就班執(zhí)行的動態(tài)設(shè)計過 程。整個設(shè)計過程分為三個步驟: ? 識別場景:從需求中識別出獨(dú)立的具有業(yè)務(wù)價值的領(lǐng)域場景 ? 分解任務(wù):根據(jù)職責(zé)的層次對領(lǐng)域場景進(jìn)行任務(wù)分解 ? 分配職責(zé):為領(lǐng)域驅(qū)動設(shè)計角色構(gòu)造型分配不同層次的職責(zé) |
測試驅(qū)動開發(fā) (2小時) | 場景驅(qū)動設(shè)計與測試驅(qū)動開發(fā)之間形成了一種相輔相成的設(shè)計伴侶。場景驅(qū)動設(shè)計分解出來的任務(wù)以及角色構(gòu)造型的協(xié)作時序圖,可以作為測試驅(qū)動開發(fā)的起點(diǎn)。測試驅(qū)動開發(fā)的代碼編寫又反過來驗(yàn)證場景驅(qū)動設(shè)計的正確性,并通過重構(gòu)改進(jìn)代碼質(zhì)量, 并重新發(fā)現(xiàn)之前未曾發(fā)現(xiàn)的隱含概念。在本次工作坊中,我們將選擇一個領(lǐng)域場景, 嚴(yán)格按照測試驅(qū)動開發(fā)的開發(fā)節(jié)奏進(jìn)行。 |
領(lǐng)域驅(qū)動設(shè)計過程 (1小時) 貫穿戰(zhàn)略式設(shè)計到戰(zhàn)術(shù)式設(shè)計,整體介紹領(lǐng)域驅(qū)動設(shè)計的完整過程和基本概念。 |
事件風(fēng)暴(1小時) 介紹事件風(fēng)暴的基本概念,包括領(lǐng)域事件的基本特征,事件風(fēng)暴的設(shè)計驅(qū)動力,并介紹事件風(fēng)暴的可視化符號特征,為開展事件風(fēng)暴工作坊做準(zhǔn)備。 |
探索業(yè)務(wù)全景 (3小時) 通過識別事件風(fēng)暴的領(lǐng)域事件,并利用事件因果關(guān)系的驅(qū)動力識別各自的前置事件和 后置事件,形成一條或多條代表了時間軸的事件流。 探索過程包括: ? 識別代表業(yè)務(wù)全景的領(lǐng)域事件 ? 標(biāo)記代表問題、重要關(guān)注點(diǎn)的熱點(diǎn) ? 為每個領(lǐng)域事件識別參與者 ? 對所有事件進(jìn)行橫向和縱向的切分,獲得候選限界上下文 ? 遍歷所有事件,確定上下文映射 |
領(lǐng)域分析建模 (2小時) 針對限界上下文內(nèi)的領(lǐng)域事件進(jìn)行領(lǐng)域分析建模。這個過程屬于事件風(fēng)暴的第二階段,將進(jìn)一步確定領(lǐng)域分析模型。分析過程如下: ? 根據(jù)領(lǐng)域事件確定決策命令 ? 根據(jù)決策命令確定讀模型 ? 根據(jù)決策命令和領(lǐng)域事件之間的關(guān)系確定聚合 ? 根據(jù)讀模型、聚合獲得領(lǐng)域分析模型 |
場景驅(qū)動設(shè)計 (1小時) 選擇一個領(lǐng)域場景,由參與者開啟一個初始狀態(tài),開始執(zhí)行具有時序性的連續(xù)任務(wù), 角色之間采用行為協(xié)作來共同滿足業(yè)務(wù)價值,這就是場景驅(qū)動設(shè)計(Scenario?Driven Design)。 這個過程是從領(lǐng)域分析模型到領(lǐng)域設(shè)計模型的關(guān)鍵步驟,同時也有利于降低開發(fā)團(tuán)隊(duì) 的設(shè)計門檻,形成固化的領(lǐng)域驅(qū)動戰(zhàn)術(shù)設(shè)計過程。 |
場景驅(qū)動設(shè)計的過程 (2小時) 場景驅(qū)動設(shè)計以事件風(fēng)暴識別出來的領(lǐng)域場景為起點(diǎn),以領(lǐng)域分析模型中的模型對象 結(jié)合角色構(gòu)造型作為參與協(xié)作的設(shè)計元素,固化為一個可按部就班執(zhí)行的動態(tài)設(shè)計過 程。整個設(shè)計過程分為三個步驟: ? 識別場景:從需求中識別出獨(dú)立的具有業(yè)務(wù)價值的領(lǐng)域場景 ? 分解任務(wù):根據(jù)職責(zé)的層次對領(lǐng)域場景進(jìn)行任務(wù)分解 ? 分配職責(zé):為領(lǐng)域驅(qū)動設(shè)計角色構(gòu)造型分配不同層次的職責(zé) |
測試驅(qū)動開發(fā) (2小時) 場景驅(qū)動設(shè)計與測試驅(qū)動開發(fā)之間形成了一種相輔相成的設(shè)計伴侶。場景驅(qū)動設(shè)計分解出來的任務(wù)以及角色構(gòu)造型的協(xié)作時序圖,可以作為測試驅(qū)動開發(fā)的起點(diǎn)。測試驅(qū)動開發(fā)的代碼編寫又反過來驗(yàn)證場景驅(qū)動設(shè)計的正確性,并通過重構(gòu)改進(jìn)代碼質(zhì)量, 并重新發(fā)現(xiàn)之前未曾發(fā)現(xiàn)的隱含概念。在本次工作坊中,我們將選擇一個領(lǐng)域場景, 嚴(yán)格按照測試驅(qū)動開發(fā)的開發(fā)節(jié)奏進(jìn)行。 |