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