Quiz User Story Mapping, Application Services & Hexagonal Architecture
Quiz 1 — INVEST principes (Restaurant casus)
Bekijk de onderstaande User Story Map voor het Restaurant bestelsysteem. De map bevat een aantal fouten. Beantwoord de vragen.
USM bronbestand (textusm formaat)
# labels: ACTIVITEIT, GEBRUIKERSDOEL, USER STORY, SPRINT 1, SPRINT 2, SPRINT 3, BACKLOG
# release1: Sprint 1 - Basics; Bestellen en betalen
# release2: Sprint 2 - Social; Reviews, Tikkie
# release3: Sprint 3 - Reviews geven
# release4: Backlog (rest)
Menukaart bekijken
Gast vraagt menu op
US-01 Gast bekijkt menukaart
US-02 Gast filtert op restricties
US-03 Gast ziet beoordelingen
US-16 Gast geeft beoordeling
US-04 Gast beheert menu
Bestelling plaatsen
US-05 Gast ziet ingrediënten
Bestelling plaatsen
Gast kiest gerecht
US-06 Gast voegt gerecht toe
US-07 Gast past bestelling aan
Gast bevestigt bestelling
US-08 Gast bevestigt bestelling
US-09 Gast ontvangt bevestigingsmail
Rekening betalen
Gast vraagt rekening op
US-10 Gast ziet rekening
US-15 Gast betaalt rekening
Betalen
US-11 Gast betaalt met pin
US-12 Gast betaalt met iDEAL
US-13 Gast splitst rekening
US-14 Medewerker ziet mislukte betalingen
Backlog overzicht:
| US-X Code | Volledige user story |
|---|---|
| US-01 | Als gast wil ik de menukaart bekijken zodat ik iets kan kiezen |
| US-02 | Als gast wil ik de menukaart filteren op voedingsrestricties zodat ik geschikte gerechten zie |
| US-03 | Als gast wil ik beoordelingen zien van een gerecht zodat ik weet wat anderen vonden |
| US-04 | Als gast wil ik een volledig beheersysteem voor de menukaart waarmee ik gerechten kan toevoegen, bewerken, verwijderen, prijzen aanpassen, allergenen beheren, foto's uploaden en dagmenu's instellen zodat de kaart altijd up-to-date is |
| US-05 | Als gast wil ik de ingrediënten van een gerecht zien zodat ik het kan bekijken |
| US-06 | Als gast wil ik een gerecht toevoegen aan mijn bestelling zodat ik het geserveerd krijg |
| US-07 | Als gast wil ik mijn winkelmandje kunnen aanpassen zodat ik fouten kan corrigeren |
| US-08 | Als gast wil ik mijn bestelling bevestigen zodat de keuken aan de slag gaat |
| US-09 | Als gast wil ik een bevestigingsmail ontvangen zodat ik bewijs heb van mijn bestelling |
| US-10 | Als gast wil ik de rekening kunnen zien zodat ik weet wat ik verschuldigd ben |
| US-11 | Als gast wil ik kunnen betalen met pin zodat ik mijn schuld vereffen |
| US-12 | Als gast wil ik kunnen betalen met iDEAL zodat ik mijn schuld vereffen |
| US-13 | Als gast wil ik de rekening kunnen splitsen zodat ik alleen mijn eigen gerechten betaal |
| US-14 | Als restaurantmedewerker wil ik zien welke betalingspogingen (pin of iDEAL) zijn mislukt zodat ik een gast proactief kan helpen |
| US-15 | Als gast wil ik betalen |
Een goede USM voldoet aan vier criteria:
- De USM heeft de goede structuur — backbone van activiteiten (1e niveau) en gebruikersdoelen (2e niveau), met user stories (3e niveau) eronder en horizontale releases.
- De USM heeft de goede vulling — user stories zijn geprioriteerd, meest waardevolle bovenaan; stories in sprint 1 hebben acceptatiecriteria.
- De user stories zijn goed qua vorm — elke story volgt 'Als [rol] wil ik [doel] zodat [reden]'; de rol is herkenbaar en het 'zodat'-deel beschrijft bedrijfswaarde.
- De user stories zijn inhoudelijk goed (INVEST) — Independent, Negotiable, Valuable, Estimable, Small, Testable.
Vragen over de INVEST-principes en kwaliteitscriteria voor user stories aan de hand van de restaurant casus.
Deze quiz helpt je toetsen of je de bron echt hebt bekeken/gelezen en begrepen. Zo niet: bekijk/lees de bron opnieuw. Gebruik deze quiz niet als 'gaming' voor de toets; de toetsvragen zijn inhoudelijk anders.
Quiz 2 — Core domain vs. supporting/generic domain (Restaurant casus)
Vragen over de keuze tussen eigen software schrijven of bestaande oplossingen gebruiken.
In deze course hoef je alleen het onderscheid te kennen tussen core domain en supporting/generic domain als 2 categorieën. Een verder onderscheid tussen supporting en generic domain bestaat er in de literatuur wel, zie uitklapbalk, maar is niet relevant voor de toets of deze quiz.
ℹ️ Verschil supporting vs. generic domain (verdieping, niet voor toets)
Een supporting domain ondersteunt het core domain maar creëert alleen indirect meerwaarde. Denk aan voorraadbeheer in een restaurant: er wordt geen maaltijd bereid, maar zonder peterselie op het bord is de klant ontevreden. Een generic domain is bovendien generiek — het is bruikbaar voor heel veel andere bedrijven en problemen, niet specifiek voor dit bedrijf.
Een supporting domain kan tegelijk generic zijn (bijv. e-mail versturen), maar dat hoeft niet: een heel specifiek voorraadbeheerssysteem voor dit restaurant is supporting maar niet generic. Als zo'n specifiek supporting domain groot genoeg wordt, kun je het als apart bedrijfsonderdeel zien dat het als eigen core domain beschouwt.
Voor developers geldt: voor het core domain schrijf je custom software die jouw Unique Selling Point ondersteunt. Voor supporting/generic domains gebruik je bestaande libraries, frameworks of cloud-diensten en koppel je die aan je core domain software.
Dit onderscheid wordt ook gebruikt in het DDD Context Mapping pattern (een andere strategic pattern, naast Ubiquitous Language en Bounded Context — zie de uitklap in Les 1-3). En ook in de techniek Wardley Mapping, die visualiseert hoe generiek of uniek onderdelen van je systeem zijn. Beide behandelen en toetsen we verder niet in DomExp.
Deze quiz helpt je toetsen of je de bron echt hebt bekeken/gelezen en begrepen. Zo niet: bekijk/lees de bron opnieuw. Gebruik deze quiz niet als 'gaming' voor de toets; de toetsvragen zijn inhoudelijk anders.
Quiz 3 — Lagen en relaties (Restaurant casus)
Vragen over toegestane en niet-toegestane relaties tussen lagen. Gebruik het onderstaande klassendiagram als referentie bij de vragen.
Deze quiz helpt je toetsen of je de bron echt hebt bekeken/gelezen en begrepen. Zo niet: bekijk/lees de bron opnieuw. Gebruik deze quiz niet als 'gaming' voor de toets; de toetsvragen zijn inhoudelijk anders.
Quiz 4 — Hexagonal Architecture (Restaurant casus)
Vragen over het plaatsen van klassen in de lagen van de hexagonal architecture. Gebruik het onderstaande diagram als referentie.
NB: In sommige bronnen (zoals Ted Young) heten poorten driving ports (inbound) en driven ports (outbound). In deze quiz gebruiken we de verzamelterm ports voor beide, en adapters voor de implementaties aan de buitenkant.

Deze quiz helpt je toetsen of je de bron echt hebt bekeken/gelezen en begrepen. Zo niet: bekijk/lees de bron opnieuw. Gebruik deze quiz niet als 'gaming' voor de toets; de toetsvragen zijn inhoudelijk anders.