課程簡介
本次交流重點在于講解領(lǐng)域驅(qū)動設(shè)計的方法體系,并將領(lǐng)域驅(qū)動設(shè)計與業(yè)務(wù)分析與建模技術(shù)結(jié)合起來,通過領(lǐng)域模型正確反映業(yè)務(wù)需求,以便于領(lǐng)域?qū)<遗c業(yè)務(wù)分析人員、開發(fā)團隊就業(yè)務(wù)需求達成共識,促進對業(yè)務(wù)需求的理解,并建立面向領(lǐng)域的架構(gòu)體系以快速響應(yīng)需求變化。
目標收益
領(lǐng)域驅(qū)動設(shè)計能夠解決:
需求分析人員與開發(fā)團隊的溝通問題
從需求到開發(fā)實現(xiàn)的設(shè)計問題
系統(tǒng)過于復雜導致代碼難以維護的開發(fā)問題
本課程將從戰(zhàn)略設(shè)計到戰(zhàn)術(shù)設(shè)計全面講解領(lǐng)域驅(qū)動設(shè)計,結(jié)合微服務(wù)架構(gòu)、六邊形架構(gòu)以 及事件驅(qū)動架構(gòu)和CQRS等知識,引入大量案例通過工作坊形式引導學員掌握領(lǐng)域驅(qū)動設(shè) 計的知識,并最終在項目開發(fā)中落地。
需求分析人員和領(lǐng)域?qū)<覠o法與團隊的設(shè)計人員和開發(fā)人員進行有效溝通。需求分析人員 不了解軟件設(shè)計,軟件設(shè)計人員常常會曲解需求內(nèi)容,這是軟件開發(fā)中容易出現(xiàn)的第一病 癥。它帶來的后果是設(shè)計頻繁變更,設(shè)計的軟件不滿足客戶需求。
培訓對象
1、專注于行業(yè)軟件開發(fā)或互聯(lián)網(wǎng)開發(fā)的軟件從業(yè)者
2、希望掌握事件風暴方法的業(yè)務(wù)分析人員與開發(fā)人員
3、希望提高領(lǐng)域建模與分析能力的軟件設(shè)計人員
4、希望掌握領(lǐng)域驅(qū)動設(shè)計方法并運用到項目中的后端開發(fā)人員
課程大綱
第一部分 領(lǐng)域驅(qū)動設(shè)計體系 |
以高屋建瓴的方式概括講解整個領(lǐng)域驅(qū)動設(shè)計體系,內(nèi)容包括: ?經(jīng)典領(lǐng)域驅(qū)動設(shè)計體系 ?軟件系統(tǒng)復雜度剖析 ?領(lǐng)域驅(qū)動設(shè)計統(tǒng)一過程 講解由Eric Evans提出的經(jīng)典領(lǐng)域驅(qū)動設(shè)計,對整套方法體系和過程有一個完整的理解,然后,剖析軟件系統(tǒng)的復雜度,明確復雜度的產(chǎn)生在于軟件系統(tǒng)的規(guī)模與業(yè)務(wù)需求的變化,由此形成業(yè)務(wù)復雜度與技術(shù)復雜度。而領(lǐng)域驅(qū)動設(shè)計通過限界上下文與領(lǐng)域建??梢栽谝欢ǔ潭冉档蜆I(yè)務(wù)復雜度,響應(yīng)業(yè)務(wù)需求的變化,并通過隔離業(yè)務(wù)復雜度與技術(shù)復雜度整體降低軟件復雜度。 針對領(lǐng)域驅(qū)動設(shè)計存在的不足,提出領(lǐng)域驅(qū)動設(shè)計統(tǒng)一過程,包括需求分析、架構(gòu)設(shè)計與領(lǐng)域建模等內(nèi)容,并在領(lǐng)域驅(qū)動設(shè)計的指導原則下進行。 案例分析: ?某航空公司地面保障系統(tǒng)的架構(gòu)設(shè)計 案例分析首先將根據(jù)復雜度分析,對整個系統(tǒng)的問題空間進行剖析,明確復雜度的成因,然后根據(jù)企業(yè)架構(gòu)思想,梳理業(yè)務(wù)架構(gòu)、應(yīng)用架構(gòu)、數(shù)據(jù)架構(gòu)與技術(shù)架構(gòu)之間的關(guān)系,推導出降低和控制系統(tǒng)復雜度的辦法。 |
第二部分 全景分析階段 |
對整個項目進行業(yè)務(wù)的全局分析,內(nèi)容包括: ?全局分析的5W模型 ?價值需求分析 ?業(yè)務(wù)需求分析 全局分析階段會梳理目標系統(tǒng)的價值需求和業(yè)務(wù)需求,利用5W模型梳理目標系統(tǒng)的利益相關(guān)人、系統(tǒng)愿景和范圍,獲得價值需求,并在價值需求的指導下,梳理參與者、目標系統(tǒng)與伴生系統(tǒng)之間的協(xié)作關(guān)系,獲得業(yè)務(wù)流程,再結(jié)合業(yè)務(wù)流程的三要素“角色、場景與時間”切分業(yè)務(wù)場景與業(yè)務(wù)服務(wù)。 在進行價值需求分析與業(yè)務(wù)需求分析中,需要用到需求分析的方法,包括: ?商業(yè)模式畫布 ?服務(wù)藍圖 ?業(yè)務(wù)服務(wù)分析方法 |
第三部分 架構(gòu)映射階段 |
在領(lǐng)域驅(qū)動的戰(zhàn)略設(shè)計階段,以領(lǐng)域為核心驅(qū)動力,以限界上下文為核心模式構(gòu)建面向領(lǐng)域的架構(gòu)體系,內(nèi)容包括: ?限界上下文 ?上下文映射 ?領(lǐng)域驅(qū)動架構(gòu) 通過全局分析階段輸出的業(yè)務(wù)場景與業(yè)務(wù)服務(wù),利用V模型從領(lǐng)域維度識別限界上下文。限界上下文作為業(yè)務(wù)能力的縱向切分、領(lǐng)域模型的知識語境,是響應(yīng)業(yè)務(wù)變化的關(guān)鍵架構(gòu)因素。由限界上下文之間的協(xié)作形成上下文映射,并根據(jù)領(lǐng)域驅(qū)動設(shè)計原則,建立面向領(lǐng)域的架構(gòu)體系,形成以菱形對稱架構(gòu)與系統(tǒng)分層架構(gòu)為支撐的領(lǐng)域驅(qū)動架構(gòu)。 工作坊: ?技術(shù)部落的架構(gòu)映射:根據(jù)全局分析輸出的業(yè)務(wù)需求對技術(shù)部落進行架構(gòu)映射,識別出系統(tǒng)的限界上下文,確定限界上下文之間的關(guān)系。 |
第四部分 領(lǐng)域建模階段 |
以領(lǐng)域場景為建模核心開展領(lǐng)域模型驅(qū)動設(shè)計,是保證領(lǐng)域驅(qū)動設(shè)計落地的重要條件,內(nèi)容包括: ?領(lǐng)域分析建模 ?領(lǐng)域設(shè)計建模 ?領(lǐng)域?qū)崿F(xiàn)建模 在限界上下文的知識邊界內(nèi)分析領(lǐng)域邏輯,提煉領(lǐng)域概念,在統(tǒng)一語言的指導下迭代地進行領(lǐng)域建模,包括建立清晰表達了領(lǐng)域概念的領(lǐng)域分析模型,與以聚合為核心要素的領(lǐng)域設(shè)計模型,通過服務(wù)驅(qū)動設(shè)計確定每個領(lǐng)域模型對象的職責,并順利地引導到領(lǐng)域?qū)崿F(xiàn)建模,以測試驅(qū)動開發(fā)的流程編寫領(lǐng)域?qū)崿F(xiàn)代碼與測試代碼。在進行領(lǐng)域建模時,會使用到如下可視化建模方法: ?快速建模法 ?服務(wù)驅(qū)動設(shè)計 案例分析: ?某系統(tǒng)的領(lǐng)域建模:利用業(yè)務(wù)服務(wù)規(guī)約,通過運用快速建模法獲得領(lǐng)域分析模型,并在限界上下文的控制下識別聚合,然后按照服務(wù)驅(qū)動設(shè)計獲得領(lǐng)域設(shè)計模型。 |
第一部分 領(lǐng)域驅(qū)動設(shè)計體系 以高屋建瓴的方式概括講解整個領(lǐng)域驅(qū)動設(shè)計體系,內(nèi)容包括: ?經(jīng)典領(lǐng)域驅(qū)動設(shè)計體系 ?軟件系統(tǒng)復雜度剖析 ?領(lǐng)域驅(qū)動設(shè)計統(tǒng)一過程 講解由Eric Evans提出的經(jīng)典領(lǐng)域驅(qū)動設(shè)計,對整套方法體系和過程有一個完整的理解,然后,剖析軟件系統(tǒng)的復雜度,明確復雜度的產(chǎn)生在于軟件系統(tǒng)的規(guī)模與業(yè)務(wù)需求的變化,由此形成業(yè)務(wù)復雜度與技術(shù)復雜度。而領(lǐng)域驅(qū)動設(shè)計通過限界上下文與領(lǐng)域建??梢栽谝欢ǔ潭冉档蜆I(yè)務(wù)復雜度,響應(yīng)業(yè)務(wù)需求的變化,并通過隔離業(yè)務(wù)復雜度與技術(shù)復雜度整體降低軟件復雜度。 針對領(lǐng)域驅(qū)動設(shè)計存在的不足,提出領(lǐng)域驅(qū)動設(shè)計統(tǒng)一過程,包括需求分析、架構(gòu)設(shè)計與領(lǐng)域建模等內(nèi)容,并在領(lǐng)域驅(qū)動設(shè)計的指導原則下進行。 案例分析: ?某航空公司地面保障系統(tǒng)的架構(gòu)設(shè)計 案例分析首先將根據(jù)復雜度分析,對整個系統(tǒng)的問題空間進行剖析,明確復雜度的成因,然后根據(jù)企業(yè)架構(gòu)思想,梳理業(yè)務(wù)架構(gòu)、應(yīng)用架構(gòu)、數(shù)據(jù)架構(gòu)與技術(shù)架構(gòu)之間的關(guān)系,推導出降低和控制系統(tǒng)復雜度的辦法。 |
第二部分 全景分析階段 對整個項目進行業(yè)務(wù)的全局分析,內(nèi)容包括: ?全局分析的5W模型 ?價值需求分析 ?業(yè)務(wù)需求分析 全局分析階段會梳理目標系統(tǒng)的價值需求和業(yè)務(wù)需求,利用5W模型梳理目標系統(tǒng)的利益相關(guān)人、系統(tǒng)愿景和范圍,獲得價值需求,并在價值需求的指導下,梳理參與者、目標系統(tǒng)與伴生系統(tǒng)之間的協(xié)作關(guān)系,獲得業(yè)務(wù)流程,再結(jié)合業(yè)務(wù)流程的三要素“角色、場景與時間”切分業(yè)務(wù)場景與業(yè)務(wù)服務(wù)。 在進行價值需求分析與業(yè)務(wù)需求分析中,需要用到需求分析的方法,包括: ?商業(yè)模式畫布 ?服務(wù)藍圖 ?業(yè)務(wù)服務(wù)分析方法 |
第三部分 架構(gòu)映射階段 在領(lǐng)域驅(qū)動的戰(zhàn)略設(shè)計階段,以領(lǐng)域為核心驅(qū)動力,以限界上下文為核心模式構(gòu)建面向領(lǐng)域的架構(gòu)體系,內(nèi)容包括: ?限界上下文 ?上下文映射 ?領(lǐng)域驅(qū)動架構(gòu) 通過全局分析階段輸出的業(yè)務(wù)場景與業(yè)務(wù)服務(wù),利用V模型從領(lǐng)域維度識別限界上下文。限界上下文作為業(yè)務(wù)能力的縱向切分、領(lǐng)域模型的知識語境,是響應(yīng)業(yè)務(wù)變化的關(guān)鍵架構(gòu)因素。由限界上下文之間的協(xié)作形成上下文映射,并根據(jù)領(lǐng)域驅(qū)動設(shè)計原則,建立面向領(lǐng)域的架構(gòu)體系,形成以菱形對稱架構(gòu)與系統(tǒng)分層架構(gòu)為支撐的領(lǐng)域驅(qū)動架構(gòu)。 工作坊: ?技術(shù)部落的架構(gòu)映射:根據(jù)全局分析輸出的業(yè)務(wù)需求對技術(shù)部落進行架構(gòu)映射,識別出系統(tǒng)的限界上下文,確定限界上下文之間的關(guān)系。 |
第四部分 領(lǐng)域建模階段 以領(lǐng)域場景為建模核心開展領(lǐng)域模型驅(qū)動設(shè)計,是保證領(lǐng)域驅(qū)動設(shè)計落地的重要條件,內(nèi)容包括: ?領(lǐng)域分析建模 ?領(lǐng)域設(shè)計建模 ?領(lǐng)域?qū)崿F(xiàn)建模 在限界上下文的知識邊界內(nèi)分析領(lǐng)域邏輯,提煉領(lǐng)域概念,在統(tǒng)一語言的指導下迭代地進行領(lǐng)域建模,包括建立清晰表達了領(lǐng)域概念的領(lǐng)域分析模型,與以聚合為核心要素的領(lǐng)域設(shè)計模型,通過服務(wù)驅(qū)動設(shè)計確定每個領(lǐng)域模型對象的職責,并順利地引導到領(lǐng)域?qū)崿F(xiàn)建模,以測試驅(qū)動開發(fā)的流程編寫領(lǐng)域?qū)崿F(xiàn)代碼與測試代碼。在進行領(lǐng)域建模時,會使用到如下可視化建模方法: ?快速建模法 ?服務(wù)驅(qū)動設(shè)計 案例分析: ?某系統(tǒng)的領(lǐng)域建模:利用業(yè)務(wù)服務(wù)規(guī)約,通過運用快速建模法獲得領(lǐng)域分析模型,并在限界上下文的控制下識別聚合,然后按照服務(wù)驅(qū)動設(shè)計獲得領(lǐng)域設(shè)計模型。 |