Kwaliteitseisen aan een Container diagram
In de les ga je aan de slag aan de hand van voorbeelden van Container diagrammen.
In beginsel is er natuurlijk al de C4 checklist, maar het is goed zelf na te denken over kwaliteit. In het algemeen kun je vaak het best tot concrete kwaliteitseisen komen als je voorbeelden bekijkt; ook later als je ze moet opstellen voor iets nieuws in de snel veranderende wereld van softwareontwikkeling. Een slecht voorbeeld is dan ook vaak beter dan geen voorbeeld, mits het je helpt om erna iteratief tot een (voldoende) goed diagram te komen.
"Don't let perfect be the enemy of good." - Voltaire
Voorbeelden: Uber Eats C4 Container diagrammen
Voorbeeld Container diagrammen van Uber Eats
Hieronder vind je vier uitgewerkte voorbeelden van C4 Container diagrammen voor Uber Eats. Het is iets ('eats'? ;), maar er is het nodige op aan te merken. Gebruik deze om de kwaliteitseisen aan Container diagrammen te oefenen en onderling te bespreken.
Voorbeeld 1: WebApp
Voorbeeld 2: Backend
Voorbeeld 3: Mobile App
Voorbeeld 4: Volledig platform
Voorbeeld: Dynamic Container Diagram (Uber Eats bestelproces)
Twee varianten van een dynamic diagram
Er zijn verschillende manieren om een dynamisch proces te visualiseren die je moet kennen. Hieronder zie je twee varianten: een standaard UML sequence diagram (zoals studenten vaak al kennen) en een C4-PlantUML dynamic diagram (volgens de C4-standaard, aansluitend bij de andere containerdiagrammen).
UML Sequence Diagram (standaard)
Dit is een klassiek UML sequence diagram, géén C4-PlantUML. Je ziet deze stijl vaak in eerdere vakken of in algemene UML-tools.
In dit diagram zie je de belangrijkste stappen:
- De klant voert een bestelling in via de app.
- De app stuurt de bestelling naar de backend API.
- De backend stuurt de bestelling door naar het restaurant.
- Het restaurant bevestigt ontvangst.
- De backend start het betaalproces.
- De betaalservice geeft de status terug.
- De backend slaat de bestelling op in de database.
- De backend stuurt een statusupdate naar de app.
- De app toont de bevestiging aan de klant.
C4-PlantUML Dynamic Diagram
Het onderstaande diagram gebruikt de C4-PlantUML dynamic syntax (C4_Dynamic.puml) zodat de elementen en relaties aansluiten bij de C4-standaard. Hier is de Restaurant Portal als extern systeem (grijs) gemodelleerd, wat correcter is volgens de C4-regels.
De genummerde pijlen geven de volgorde van interacties weer, en de gebruikte elementen zijn gelijk aan de statische C4-containerdiagrammen.
Reflectievragen:
- Wat klopt er NIET in het dynamische diagram? (Tip: kijk kritisch naar systeemgrenzen, rollen, interacties, consistentie met het statische diagram)
- Welke variant vind je duidelijker: de C4-versie of de UML-variant? Waarom?