In UML-gebruiksscenario's laat de relatie "uitbreiden" zien hoe een gebruiksgeval functionaliteit kan toevoegen aan een ander gebruiksgeval *onder specifieke omstandigheden*. Het gaat *niet* om eenvoudige opname of overerving. In plaats daarvan geeft het een optionele uitbreiding van het gedrag van de basisgebruikscasus aan.
Hier is een overzicht:
* Basisgebruiksscenario: Dit is de primaire use-case die wordt uitgebreid. Het functioneert onafhankelijk, zelfs zonder de uitgebreide gebruikscasus.
* Gebruiksscenario uitbreiden: Deze use case voegt extra stappen of functionaliteit toe aan de basis use case. Het wordt *alleen* uitgevoerd als aan een specifieke voorwaarde (of uitbreidingspunt) binnen het basisgebruiksscenario wordt voldaan. Het vervangt *niet* het basisgebruiksscenario of omvat het niet volledig.
Belangrijkste verschillen met 'Opnemen':
* Opnemen: Vertegenwoordigt een gebruiksscenario dat *altijd* is opgenomen in een ander gebruiksscenario. Het is een vorm van ontbinding, waarbij gemeenschappelijke functionaliteit buiten beschouwing wordt gelaten. De meegeleverde use case wordt uitgevoerd telkens wanneer de basis use case wordt uitgevoerd.
* Verlengen: Vertegenwoordigt een gebruiksscenario dat *voorwaardelijk* is opgenomen in een ander gebruiksscenario. Dit gebeurt alleen als aan specifieke criteria wordt voldaan binnen de basisgebruikscasus.
Voorbeeld:
Stel dat u een basisgebruiksscenario 'Procesbestelling' heeft. Meestal gaat het hierbij om het toevoegen van artikelen aan een winkelwagentje, het berekenen van het totaal en het voltooien van de betaling.
Mogelijk hebt u een uitgebreid gebruiksscenario met de naam 'Korting toepassen'. Dit gebeurt *alleen* als een klant een geldige couponcode gebruikt tijdens het gebruiksscenario "Bestelling verwerken". Het gebruiksscenario 'Korting toepassen' breidt het gebruiksscenario 'Procesorder' uit, maar wordt niet altijd uitgevoerd. Als er geen coupon wordt gebruikt, worden de stappen "Korting toepassen" eenvoudigweg overgeslagen.
In een diagram wordt de relatie 'uitbreiden' weergegeven als een gestippelde pijl met een open pijlpunt die wijst van de *extending* use case naar de *base* use case. Vaak wordt de specifieke voorwaarde voor de verlenging bij de pijl vermeld.
Kortom, "uitbreiden" in use-case-diagrammen modelleert optionele, voorwaardelijke toevoegingen aan het gedrag van een andere use-case. Het gaat om het toevoegen van extra functionaliteit onder specifieke omstandigheden, niet om altijd inbegrepen functionaliteit zoals 'include'. |