Wat is een use case?

Use case: een beschrijving van een reeks aan uitvoeringen van acties(inclusief varianten) dat een systeem uitvoert om een aantoonbaar resultaat bereikt, wat gepresenteerd kan worden aan een actor(persoon of machine).

Een use case beschrijft een interactie tussen de gebruiker en het systeem voor een specifieke functionaliteit van het systeem. Het is deel van het Universal Modeling Language (UML), net zoals een activity diagram en een klasse diagram.

Use cases bevatten het functionele vereiste van een systeem

Voorbeeld

Systeem: een snack automaat Actor: een klant Use Case: koop een product

  1. De klant selecteert een product
  2. De klant werpt het bedrag in de automaat
  3. De automaat geeft de klant het geselecteerde product

In een diagram zou dit er bijvoorbeeld zo uit zien:

Identificeren van verschillende onderdelen

Een use case is dus een interactie tussen 2 onderdelen:

  • Het systeem
  • De actors

Actors in use cases

Actor: Een actor (in een use case) is de rol die word gespeeld bij de gebruiker. een actor kan een gebruiker of een ander systeem zijn. Actors staan altijd buiten het systeem waarmee ze omgaan

Een paar voorbeelden van actors zijn:

  • Gasten
  • Studenten
  • Medewerkers
  • Administrators
  • Klanten

Use case details

De hoofdinhoud van een use case is een reeks aan stappen dat de interactie beschrijft tussen het systeem en de actor. Iedere stap beschrijft wie wat doet.

De use case beschrijft alleen het extern zichtbare gedrag

niet de interne details van een systeem.

Oftewel, minimaliseer de interne details van het systeem. Schrijf alleen de interactie tussen de actor en het systeem op.

Een stap geeft de intentie van de gebruiker weer

niet de specifieke handelingen.

Zorg ervoor dat je geen onnodige details verteld. Zet het algemeen neer.

Een use case stap kan een loop bevatten

bijvoorbeeld voor meerdere actors of totdat een conditie voldaan is.

De Main Success Scenario(MSS) beschrijft de meest directe interactie voor een use case

wat er van uit gaat dat alles goed gaat.

Dit word ook de Basic Course of Action of de Main Flow of Events genoemd

Extensies zijn toevoegingen aan de MSS dat alternatieve of uitzonderlijke uitkomsten beschrijft

Het beschrijft variaties op het basisscenario die voor kunnen komen als bepaalde dingen mis gaan.

Extensies worden onder de MSS geschreven. Stap problemen worden genoteerd met het stapnummer. Universele problem worden genoteerd met een ster. De problemen worden genummerd met a,b,c,d,etc… Onthoud hierbij dat dit niet een universele regel is, maar een veelgebruikte conventie

Blijf ervan bewust dat de MSS op zichzelf het hele scenario kan uitleggen, de extensies voegen er aan toe. Een extensie word bijvoorbeeld op de voglende manier weergeven in een diagram.

Een use case kan een andere case bevatten

Door middel van een code te geven aan een use case kan je refereren naar andere cases (Includes). De eerste case zou UC01 kunnen heten en de tweede UC02 Dit kan weergeven worden met een underline. Het refereren naar andere bestanden kunnen handig zijn wanneer:

  • Je je use case schoon wilt houden door niet veel details van een andere case toe te voegen
  • Wanneer een zelfde aantal stappen herhaald is in verschillende use cases

In een diagram zien includes er uit als een stippellijntje. De pijlen wijzen naar hoe de include is toegevoegd de volgorde van stappen.

Precondities specificeren een staat waarin het systeem verwacht word te zijn

voordat de use case in gebruik word gezet.

Dit word toegevoegd in de lijst van het systeem, use case, actor, etc..

Guarantees specificeren wat de use case zal geven

aan het eind van de operatie.

Dit word net zoals Precondities toegevoegd aan de lijst van eigenschappen.

Overige details

  • Een use case kan meerdere actors bevatten
  • Actors kunnen deelnemen aan meerdere use cases
  • 1 persoon of systeem kan meerdere rollen spelen
  • meerdere personen of systemen kunnen 1 rol spelen
  • Use cases kunnen verschillende niveaus hebben aan detail

Voorbeeld van een use case met ieder detail

Voorbeeld

Systeem: een online leersysteem
Use case:UC02 - Studenten en leeraren kunnen bestanden opslaan
Actor: Student, leeraar
Precondition: De gebruiker is een aangemelde student of leeraar
Guarantees:

  • Het bestand zal upgeloadet zijn
  • Het bestand zal niet te groot of ongeldig zijn

MSS:

  1. Een actor vraagt aan om een bestand te uploaden.
  2. Het leersysteem vraagt naar het bestand
  3. De actor specificeert het bestands locatie door de locatie op te zoeken in zijn computer. (specifieke handeling)
  4. Het leersysteem upload het bestand.
  5. Het leersysteem slaat het bestand op in de database. (interne handeling) Use case beëindigt.

Extensions:
3a. Het bestand is niet een geldig type/te groot
3a1. Het leersysteem geeft aan dat het bestand ongeldig/te groot is.
3a2. De actor moet opnieuw een bestand kiezen
 Stappen 3a1 en 3a2 worden herhaald totdat er een correct bestand is gekozen.
 Use case gaat verder op stap 4

*a. Wanneer dan ook, de gebruiker geeft aan om het overzetten stop te zetten.
*a1. Het leersysteem vraagt voor bevestiging
*a2. De gebruiker bevestigt het stopzetten
 De use case beëindigt.

*b. De sessie van de leerling verloopt.
*b1. Het leersysteem vraagt de actor om opnieuw in te loggen (UC04)
 Use case gaat verder op stap 2