跳转到内容

事件风暴

维基百科,自由的百科全书
事件风暴的例子

事件风暴(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. 

外部链接[编辑]