MFormations
Modern Information Systems Engineering

Chapitre 14

14 - Event Storming & CRC Cards

14 - Event Storming & CRC Cards

Chapitre 14 : Event Storming & CRC Cards

Introduction

L'Event Storming, créé par Alberto Brandolini, est une technique de modélisation collaborative qui réunit experts métier et développeurs autour d'un même mur pour modéliser un domaine. Les CRC Cards complètent cette approche en permettant de définir les responsabilités et collaborations des objets du domaine.


14.1 Event Storming

14.1.1 Présentation

L'Event Storming (Brandolini, 2014) est un atelier de modélisation où les participants collent des post-its sur un mur pour représenter le comportement d'un système.

Diagramme en cours de génération...

Pourquoi l'Event Storming ?

  • Découvrir les Domain Events (DDD)
  • Aligner métier et technique
  • Identifier les bounded contexts
  • Réduire les incompréhensions
  • Favoriser la collaboration

14.1.2 Les 3 types d'Event Storming

Diagramme en cours de génération...
TypeDuréeParticipantsObjectif
Big Picture2-4h10-20Cartographier le domaine complet
Process Modeling4-8h5-10Modéliser un processus spécifique
Software Design2-4h3-5Concevoir les agrégats et événements

14.1.3 Les cartes Event Storming

Diagramme en cours de génération...
CarteCouleurSignification
Domain Event🟠 OrangeQuelque chose qui s'est passé
Command🔵 BleuAction déclenchée par un acteur
Actor🟡 JaunePersonne, rôle ou système
Aggregate🩷 RoseGroupe cohérent d'objets
Policy🟣 VioletRègle métier automatique
External System🔴 RougeSystème tiers
Read Model🟢 VertAffichage de données

14.2 Big Picture

14.2.1 Objectif

Le Big Picture donne une vue d'ensemble du domaine, idéal pour :

  • Découvrir le périmètre du système
  • Identifier les bounded contexts
  • Repérer les dépendances entre services
  • Aligner toutes les parties prenantes

14.2.2 Déroulement

Diagramme en cours de génération...

14.2.3 Exemple Big Picture — E-commerce

Diagramme en cours de génération...

14.3 Process Modeling

14.3.1 Objectif

Le Process Modeling détaille un processus spécifique avec :

  • Les événements dans l'ordre chronologique
  • Les commandes qui les déclenchent
  • Les acteurs impliqués
  • Les règles métier (policies)
  • Les systèmes externes

14.3.2 Structure d'un Process Modeling

Diagramme en cours de génération...

14.3.3 Exemple Process Modeling — Réservation hôtelière

Diagramme en cours de génération...

14.4 Software Design

14.4.1 Objectif

Le Software Design se concentre sur l'implémentation technique :

  • Définir les agrégats (DDD)
  • Spécifier les Domain Events
  • Détailer les commandes validées
  • Concevoir les projections (CQRS)

14.4.2 Exemple Software Design

Diagramme en cours de génération...

14.5 CRC Cards

14.5.1 Présentation

Les CRC Cards (Class-Responsibility-Collaboration) ont été introduites par Kent Beck et Ward Cunningham pour l'enseignement de la conception orientée objet.

Diagramme en cours de génération...

14.5.2 Format CRC Card

┌─────────────────────────────────────┐
│  Classe: Commande                   │
├─────────────────────────────────────┤
│  Responsabilités :                  │
│  - Créer une commande               │
│  - Ajouter des articles             │
│  - Calculer le total                │
│  - Valider le statut                │
│  - Appliquer les réductions         │
├─────────────────────────────────────┤
│  Collaborations :                   │
│  - Client (obtenir infos)           │
│  - Panier (copier articles)         │
│  - Paiement (valider)               │
│  - Livraison (déclencher)           │
│  - Notification (confirmer)         │
└─────────────────────────────────────┘

14.5.3 Utilisation des CRC Cards

Étapes :

  1. Identifier les classes candidates (noms du domaine)
  2. Définir les responsabilités de chaque classe
  3. Identifier les collaborations entre classes
  4. Simuler des scénarios en "jouant" les cartes

Exemple de simulation CRC :

Diagramme en cours de génération...

14.6 Domain Storytelling

14.6.1 Présentation

Le Domain Storytelling (Hofmann, Lehmann) est une technique de modélisation collaborative qui raconte des histoires du domaine avec une notation visuelle.

Acteurs : 🟢 Personnes / Systèmes Activités : 🟡 Actions Objets de travail : 📄 Documents / Données

14.6.2 Notation

[Client] → "consulte" → [Catalogue]
[Catalogue] → "affiche" → [Liste produits]
[Client] → "sélectionne" → [Produit]
[Produit] → "ajouté à" → [Panier]

14.6.3 Exemple Domain Storytelling

Diagramme en cours de génération...

14.7 Facilitation d'ateliers

14.7.1 Rôle du facilitateur

Le facilitateur garantit le bon déroulement de l'atelier :

Diagramme en cours de génération...

14.7.2 Checklist de préparation

TâcheResponsableDélai
Définir l'objectif de l'atelierFacilitateurJ-14
Inviter les participantsOrganisateurJ-14
Préparer le matériel (post-its, feutres)FacilitateurJ-7
Préparer la salle / outil en ligneSupportJ-1
Envoyer le contexte aux participantsFacilitateurJ-3
Animer l'atelierFacilitateurJ
Synthétiser les résultatsFacilitateurJ+3

14.7.3 Atelier en ligne

Pour les ateliers à distance :

OutilUsage
MiroTableau blanc collaboratif
MURALPost-its virtuels
Microsoft WhiteboardCollaboration Office
LucidchartDiagrammes et post-its
StormboardSpécialisé Event Storming

14.7.4 Écueils et conseils

ÉcueilSolution
Participants silencieuxQuestions ouvertes, tours de table
Discussions hors-sujetParking lot pour idées hors scope
Trop de détails trop tôtCommencer par Big Picture
Conflit entre participantsReformuler, recentrer sur les faits
FatiguePause toutes les 45 minutes

14.8 Synthèse

Diagramme en cours de génération...

Références

  • Alberto BrandoliniIntroducing EventStorming (Leanpub, 2014)
  • Kent Beck, Ward CunninghamCRC Cards (OOPSLA, 1989)
  • Stefan Hofmann, Martin LehmannDomain Storytelling (2020)
  • Event Storming Official
  • Domain Storytelling