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

外部連結

編輯