事件风暴第六步:场景驱动设计与测试驱动开发

本事件风暴系列是参加张逸老师的课程《面向场景的领域驱动设计全过程工作坊》的学习总结。

不作商业用途,仅作交流学习。


选择一个领域场景,由参与者开启一个初始状态,开始执行具有时序性的连续任务, 角色之间采用行为协作来共同满足业务价值,这就是场景驱动设计(Scenario Driven Design)。
这个过程是从领域分析模型领域设计模型的关键步骤,同时也有利于降低开发团队 的设计门槛,形成固化的领域驱动战术设计过程。

事件风暴第六步:场景驱动设计与测试驱动开发

场景驱动设计的过程

场景驱动设计以事件风暴识别出来的领域场景为起点,以领域分析模型中的模型对象 结合角色构造型作为参与协作的设计元素,固化为一个可按部就班执行的动态设计过 程。整个设计过程分为三个步骤:

  1. 识别场景:从需求中识别出独立的具有业务价值的领域场景
  2. 分解任务:根据职责的层次对领域场景进行任务分解
  3. 分配职责:为领域驱动设计角色构造型分配不同层次的职责

事件风暴第六步:场景驱动设计与测试驱动开发

场景驱动设计测试驱动开发之间形成了一种相辅相成的设计伴侣。场景驱动设计分解出来的任务以及角色构造型的协作时序图,可以作为测试驱动开发的起点。测试驱动开发的代码编写又反过来验证场景驱动设计的正确性,并通过重构改进代码质量, 并重新发现之前未曾发现的隐含概念。

事件风暴第六步:场景驱动设计与测试驱动开发

领域设计建模与领域实现建模

事件风暴第六步:场景驱动设计与测试驱动开发

 

DDD与测试战略

 

事件风暴第六步:场景驱动设计与测试驱动开发