事件风暴(Event storming)是利用研讨方式,快速发现软件特定领域中所发生事物的作法[1][2]。和其他方式比较,此方式相当的简单,而且过程不需要电脑协助,活动只需要便利贴以及宽阔的墙面。在此活动中,商业流程会变成一连串的领域事件,在活动中会用橘色的便利贴表示

事件风暴的例子

事件风暴是由Alberto Brandolini在领域驱动设计(DDD)的情境下发明。事件风暴可以用作商业流程建模英语Business process modeling以及需求工程的工具。其概念是让软件开发者和领域专家(domain expert)聚在一起,互相讨论学习[3]。其命名是要让重心专注在领域事件中,而其进行方式类似脑力激荡法敏捷建模英语Agile modeling时的建模脑力激荡(model storming)。

需求

编辑

事件风暴的过程中,会包括有问题要提出的人(一般会是软件开发人员),以及知道相关问题答案的人(领域专家,product owners)。

建模会在宽阔的墙面以及墙面上的大张白纸上进行,便利贴会贴在白纸上。至少会需要五种不同颜色的便利贴[3]

步骤

编辑
 
事件风暴会用便利贴来进行,图中是其对应的概念、颜色以及摆放时的相对位置
 
步骤1:建立领域事件(event)
 
步骤2:加上造成领域事件发生的命令(command)
 
步骤2b:加上提出命令的人员(actor)
 
步骤3:加上对应的聚合(aggregate)

第一个步骤是找到所有的领域事件,写在橘色便利贴上。

所有领域事件都找到之后,下一个步骤是找到让领域事件发生的命令,写在蓝色便利贴上,放在对应领域事件的前面。

第三个步骤是识别命令执行以及事件发生的聚合(aggregate),聚合会写在黄色便利贴上。

事件风暴后形成的概念会分为几类,每一类都会用对应颜色的便利贴表示: 以下是五个颜色的便利贴、颜色以及内容

  领域事件(Domain event)
在商业流程中出现的事件,若用英文书写的话,以过去式表示。
  人员(Actor)
人员会透过view提出命令。
  命令(Command)
命令是使用者透过view提出的,会产生领域事件
  聚合(Aggregate)
一组可以视为单一单元处理的领域物件。
  view
用户在系统上互动,执行任务的环境。

有时也会加上以下的内容

  商业流程(Business process)
依商业规则及逻辑处理命令,会产生一个或是多个领域事件。
  外部系统(External system)
第三方的服务提供者,例如像网上收款平台或是货运公司。

例子

编辑

以下是一个事件风暴的范例。

Users
CreateAccount
AccountCreated
Signup

结果

编辑

事件风暴后,可以在建模空间中展示商业流程。不过更重要的是在参与者心里建立的知识。

参考资料

编辑
  1. ^ Brandolini, Alberto. Introducing Event Storming. 2013-11-18 [2017-04-06]. (原始内容存档于2018-05-04). 
  2. ^ George, Chiraag. How to Design an Effective Event Storming Session. Creately Blog. 2021-07-19 [2023-07-07]. (原始内容存档于2024-02-23) (美国英语). 
  3. ^ 3.0 3.1 Vernon, Vaughn. Domain-Driven Design Distilled. Addison-Wesley. 2016. ISBN 978-0134434421. 

外部链接

编辑