Wat is het verschil tussen het toevoegen en uitbreiden in gebruik Case Diagram?

Wat is het verschil tussen Includeen extendin een Gebruik case diagram ?


1, Autoriteit 100%

Uitbreiden wordt gebruikt wanneer een gebruiksgeval de stappen toevoegt aan een ander gebruik van eersteklas gebruik.

Stel je bijvoorbeeld voor dat “Cash intrekken” een gebruik is van een automatische tellerapparaat (ATM). “Beoordeling van vergoeding” zou zich uitbreiden, contant geld opnemen en het voorwaardelijke “uitbreidingspunt” beschrijven dat wordt geïnstantieerd wanneer de ATM-gebruiker niet wordt bevestigd aan de eigen instelling van de ATM. Merk op dat het gebruik van de basis “contant geld” intrekken “op zichzelf staat, zonder de extensie.

Inclusief wordt gebruikt om gebruiksfragmenten te extraheren die zijn gedupliceerd in meerdere gebruiksgevallen. De meegeleverde gebruikscase kan niet alleen staan ​​en het oorspronkelijke gebruik van het gebruik is niet compleet zonder de meegeleverde. Dit moet spaarzaam worden gebruikt en alleen in gevallen waarin de duplicatie significant is en bestaat per ontwerp (in plaats van bij toeval).

Bijvoorbeeld de stroom van gebeurtenissen die plaatsvindt aan het begin van elk ATM-gebruik (wanneer de gebruiker in hun ATM-kaart wordt geplaatst, hun pincode binnengeeft en het hoofdmenu wordt weergegeven) zou een goede kandidaat zijn voor een omvatten.


2, Autoriteit 45%

Dit kan contruppel zijn, maar de “omvat zijn altijd en strekt soms” is soms een veel voorkomende misvatting die bijna nu is overgenomen als de de-facto betekenis. Hier is een correcte aanpak (naar mijn mening en gecontroleerd tegen Jacobson, Fowler, Larmen en 10 andere referenties).

Relaties zijn afhankelijkheden

De sleutel om het gebruik van case-relaties op te nemen en uit te breiden is het realiseren dat, gemeenschappelijk met de rest van UML, de gestippelde pijl tussen gebruiksgevallen een afhankelijkheidsrelatie is. Ik gebruik de termen ‘basis’, ‘meegeleverd’ en ‘uitbreiding’ om te verwijzen naar de case-rollen gebruik.

omvatten

Een case voor het gebruik van de basis is afhankelijk van de meegeleverde gebruiksbehuizing (en); Zonder het / zij is het case voor de basisgebruik onvolledig als de meegeleverde gebruikscase (en) subsequenties van de interactie weergeven die altijd of soms kan gebeuren. (Dit is in tegenstelling tot een populaire misvatting hierover, wat uw gebruikscase suggereert dat altijd in het hoofdscenario gebeurt en soms gebeurt er in alternatieve stromen, hangt eenvoudig af van wat u als uw hoofdscenario kiest; Gebruiksgevallen kunnen eenvoudig worden geherstructureerd om een ​​andere stroom te worden geherstructureerd als het hoofdscenario en dit mogen er niet toe doen).

In de beste praktijk van eenrichtingsafhankelijkheid Het geval van de basisgebruik kent het (en verwijst naar) het meegeleverde gebruikscase, maar het meegeleverde gebruik van het gebruik mag niet ‘weten’ over het hoofdgebruiksbehuizing. Dit is de reden waarom inbegrepen gebruiksgevallen kunnen zijn: a) basisgebruikszaken in hun eigen recht en b) gedeeld door een aantal basisgebruikszaken.

verlengen

Het uitstrekkende gebruiksbehuizing is afhankelijk van het geval van het basisgebruik; Het verlengt letterlijk het gedrag dat wordt beschreven door het Case Base-gebruik. Het Case Base-gebruik moet een volledig functioneel gebruik van het gebruik op zich zijn (‘omvatten opgenomen in cursus) zonder de extra functionaliteit van het gebruik van het gebruik.

Uitbreiden van gebruiksgevallen kunnen in verschillende situaties worden gebruikt:

  1. De case voor het gebruik van het basisgebruik vertegenwoordigt de “MOET” -functionaliteit van een project, terwijl de uitbreiding van het gebruiksbehuizing optioneel vertegenwoordigt (moet / kunnen / willen). Dit is waar de term optioneel relevant is – optioneel of het nu moet bouwen / leveren in plaats van optioneel, of het soms wordt uitgevoerd als onderdeel van de case-sequentie van het basisgebruik.
  2. In fase 1 kun je de basis use case leveren die op dat moment voldoet aan de eisen, en fase 2 zal extra functionaliteit toevoegen die wordt beschreven door de uitbreidende use case. Dit kan sequenties bevatten die altijd of soms worden uitgevoerd nadat fase 2 is opgeleverd (wederom in tegenstelling tot de populaire misvatting).
  3. Het kan worden gebruikt om subsequenties van de basisgebruikscasus te extraheren, vooral wanneer ze ‘uitzonderlijk’ complex gedrag vertegenwoordigen met zijn eigen alternatieve stromen.

Een belangrijk aspect om te overwegen is dat de uitbreidende use-case gedrag op verschillende plaatsen in de stroom van de basis-use case kan ‘invoegen’, niet alleen op een enkele plaats zoals een inbegrepen use-case doet. Om deze reden is het hoogst onwaarschijnlijk dat een uitbreidende use case geschikt is om meer dan één basis use case uit te breiden.

Wat de afhankelijkheid betreft, is het uitbreidende gebruiksgeval afhankelijk van het basisgebruiksgeval en is het opnieuw een eenrichtingsafhankelijkheid, d.w.z. het basisgebruiksgeval heeft geen enkele verwijzing nodig naar het uitbreidende gebruiksgeval in de reeks. Dat betekent niet dat je de uitbreidingspunten niet kunt demonstreren of een x-ref kunt toevoegen aan de uitbreidende use case elders in de sjabloon, maar de basis use case moet kunnen werken zonder de uitbreidende use case.

OVERZICHT

Ik hoop dat ik heb laten zien dat de veelvoorkomende misvatting van “omvat is altijd, uitbreidingen zijn soms” verkeerd of op zijn best simplistisch is. Deze versie is eigenlijk logischer als je alle problemen in overweging neemt met betrekking tot de richting van de pijlen die de misvatting presenteert – in het juiste model is het gewoon afhankelijkheid en verandert het potentieel niet als je de inhoud van de use case refactoreert.


Antwoord 3, autoriteit 34%

Ik gebruik dit vaak om de twee te onthouden:

Mijn gebruiksscenario: ik ga naar de stad.

bevat -> auto rijden

verlengt -> vul de benzine

“Vul de benzine” is misschien niet altijd vereist, maar kan optioneel vereist zijn op basis van de hoeveelheid benzine die nog in de auto zit. “Rij met de auto” is een vereiste, vandaar dat ik deze ook meeneem.


4, Autoriteit 14%

Om te vereenvoudigen,

Voor Include

  1. Wanneer de case voor het gebruik van het basisgebruik wordt uitgevoerd, wordt de inbegrepen gebruiksbehuizing telkens uitgevoerd .
  2. Het case voor het gebruik van de basis vereist de voltooiing van het meegeleverde gebruiksgeval om te voltooien.

Een typisch voorbeeld: tussen inloggen en wachtwoord controleren

(login) — & lt; & lt; omvatten & GT; & GT; — & gt; (verifieer wachtwoord)

Voor het inlogproces naar succes, “Verifieer wachtwoord” moet ook succesvol zijn.


Voor extend

  1. Wanneer de behuizing van het basisgebruik wordt uitgevoerd, wordt de uitgestrekte gebruiksbehuizing alleen soms
  2. uitgevoerd

  3. Het verlengde behuizing van het gebruik zal alleen gebeuren wanneer aan bepaalde criteria wordt voldaan.

Een typisch voorbeeld: tussen inloggen en foutmelding (alleen gebeurd soms)

(login) & lt; — & lt; & lt; Extend & GT; & GT; — (Toon foutbericht)

“Toon foutbericht” gebeurt alleen soms wanneer het inlogproces is mislukt.


Antwoord 5, autoriteit 5%

Ik denk dat wat msdn hierheeft uitgelegd, vrij gemakkelijk te begrijpen is.

Opnemen[5]

Een inclusief use case roept of roept de meegeleverde op. Inclusie wordt gebruikt om te laten zien hoe een use case in kleinere stappen is opgedeeld. De meegeleverde use case bevindt zich aan het uiteinde van de pijlpunt.

Verlengen[6]

Ondertussen voegt een uitgebreide use-case doelen en stappen toe aan de uitgebreide use-case. De extensies werken alleen onder bepaalde voorwaarden. De uitgebreide use-case bevindt zich aan het uiteinde van de pijlpunt.


Antwoord 6, autoriteit 5%

Laten we dit duidelijker maken. We gebruiken Includeelke keer dat we willen uitdrukken dat het bestaan van de ene casus afhangt van het bestaan van een andere.

VOORBEELDEN:

Een gebruiker kan alleen online winkelen nadat hij is ingelogd op zijn account. Met andere woorden, hij kan pas winkelen als hij is ingelogd op zijn account.

Een gebruiker kan niet downloaden van een site voordat het materiaal is geüpload.
Ik kan dus niet downloaden als er niets is geüpload.

Begrijp je het?

Het gaat om geconditioneerde consequenties. Ik kan dit niet doen als ik dat voorheen niet deed.

Tenminste, ik denk dat dit de juiste manier is waarop we Includegebruiken.
Ik denk dat het voorbeeld met laptop en garantie van rechts hierboven het meest overtuigend is!


Antwoord 7, autoriteit 3%

wanneer er voorwaarden zijn voor een usecase, ga dan voor include.

voor usecases met authenticatie, in het slechtste geval, of optioneel zijn, ga dan voor verlengen..

voorbeeld:voor een gebruiksgeval van toegang, afspraak, ticketreservering
U MOET een formulier invullen (registratie- of feedbackformulier)….dit is waar include komt..

voorbeeld: voor een use case om het inloggen of inloggen op uw account te verifiëren, is uw authenticatie een must. denk ook aan worstcasescenario’s. zoals het retourneren van een boek met boete.. GEEN reservering krijgen.. de rekening betalen NA DE VERVALDATUM. .dit is waar extend om de hoek komt kijken…

gebruik niet te veel in de diagrammen op te nemen en uit te breiden.

HOUD HET EENVOUDIG Dwaas!!!


Antwoord 8, autoriteit 2%

“Include” wordt gebruikt om de basisgebruikscasus uit te breiden en het is een must, d.w.z. dat de inbegrepen use case-run met succes moet worden uitgevoerd om het basisgebruik te voltooien.

bijv.
Overweeg een geval van e-mailservice, hier is “Aanmelden” een inbegrepen gebruiksgeval dat moet worden uitgevoerd om een e-mail te verzenden (basisgebruiksgeval)

“Uitsluiten” aan de andere kant is een optionele use case die de basis use case uitbreidt, de basis use case kan zelfs succesvol worden uitgevoerd zonder de uitbreidende use case aan te roepen/aan te roepen.

bijv.
Overweeg “Laptop-aankoop” als basisgebruiksgeval en “Aanvullende garantie” als uitbreidingsgeval, hier kunt u basisgebruiksgeval “Laptopaankoop” uitvoeren, zelfs zonder aanvullende garantie te nemen.


Antwoord 9, autoriteit 2%

Pas ook op voor de UML-versie: het is lang geleden dat << gebruikt >> en << bevat >> zijn vervangen door << omvatten >>, en << breidt >> door << verlengen >> EN generalisatie.
Voor mij is dat vaak het misleidende punt: als voorbeeld gaat de post en link van Stephanie over een oude versie:

Als je voor een artikel betaalt, kun je ervoor kiezen om bij aflevering te betalen, met PayPal of met een kaart te betalen. Dit zijn allemaal alternatieven voor de use case “betalen voor item”. Ik kan elk van deze opties kiezen, afhankelijk van mijn voorkeur.

In feite is er geen echt alternatief voor “betalen voor item”! In de huidige UML is “betalen bij aflevering” een uitbreiding, en “betalen met paypal”/”betalen met kaart” zijn specialisaties.


Antwoord 10, autoriteit 2%

Zowel <include>als <extend>zijn afhankelijk van de basisklasse, maar <extend>is optioneel. is afgeleid van de basisklasse, maar kan vanuit het oogpunt van gebruikers worden gebruikt of niet worden gebruikt.

<include>is opgenomen in de basisklasse, dwz het is verplicht om <include>te gebruiken in uw gebruikssituatie, anders wordt het als onvolledig beschouwd.

bijvoorbeeld:

Bij de constructie van geldautomaten (volgens het gezichtspunt van de gebruiker):

1: Opnemen, storten van contant geld en het controleren van de rekening valt onder <extend>omdat het van de gebruiker afhangt of hij wil opnemen, storten of controleren. Dit zijn optionele dingen die de gebruiker doet.

2: “Voer de pincode in, kaart plaatsen, kaart verwijderen” dit zijn de dingen die onder <include>vallen omdat de gebruiker een kaart moet en moet plaatsen en een geldige pinnen voor verificatie.


Antwoord 11, autoriteit 2%

Dit is een geweldige bron met geweldige uitleg:
Wat is include at use case?
Wat is Extend bij gebruik?

Uitbreiding van het gebruiksscenario definieert doorgaans optioneel gedrag. Het is onafhankelijkvan de uitbreidende use case

Opnemen gebruikt om gemeenschappelijke delen van het gedrag van twee of meer use-cases te extraheren


Antwoord 12

Diagramelementen

  • Acteurs: ook wel rollen genoemd. De naam en het stereotype van een acteur kunnen worden gewijzigd in het tabblad Eigenschappen.

  • Overerving: Verfijning van relaties tussen actoren. Deze relatie kan een naam en een stereotype dragen.

  • Gebruikssituaties: deze kunnen extensiepunten hebben.

  • Extensiepunten: dit definieert een locatie waar een extensie kan worden toegevoegd.

  • Associaties: tussen rollen en use cases. Het is handig om namen te geven aan verenigingen.

  • Afhankelijkheden: tussen gebruiksscenario’s. Afhankelijkheden hebben vaak een stereotype om de rol van de afhankelijkheid beter te definiëren. Om een stereotype te selecteren, selecteert u de afhankelijkheid in het diagram of het navigatievenster en wijzigt u het stereotype op het tabblad Eigenschappen. Er zijn twee speciale soorten afhankelijkheden: <<extend>>en <<include>>, waarvoor Poseidon eigen knoppen biedt (zie hieronder) .

  • Relatie uitbreiden: een eenrichtingsrelatie tussen twee gebruiksscenario’s. Een uitgebreide relatie tussen use case B en use case A betekent dat het gedrag van B kan worden opgenomen in A.

  • Relatie opnemen: een eenrichtingsrelatie tussen twee gebruiksscenario’s. Een dergelijke relatie tussen use cases A en B betekent, dat het gedrag van B altijd wordt meegenomen in A.

  • Systeemgrens: De systeemgrens is eigenlijk niet geïmplementeerd als modelelement in Poseidon voor UML. U kunt eenvoudig een rechthoek tekenen, deze naar de achtergrond sturen en als systeemrand gebruiken door alle bijbehorende gebruiksscenario’s in de rechthoek te plaatsen.


Antwoord 13

Ik raad het gebruik hiervan niet aan om de twee te onthouden:

Mijn gebruiksscenario: ik ga naar de stad.

bevat -> auto rijden

verlengt -> vul de benzine

Ik heb liever dat je het volgende gebruikt:
Mijn use case: ik ga naar de stad.

verlengt -> auto rijden

bevat -> vul de benzine

Ik heb geleerd dat het verlengen van de relatie het gedrag van een basisklasse voortzet. De functionaliteiten van de basisklasse moeten er zijn.
De include-relatie daarentegen is verwant aan functies die kunnen worden aangeroepen. Mei is vetgedrukt.

Dit is te zien vanaf
hergebruik van flexibele modellen in use-case-modellen


Antwoord 14

Het verschil tussen beide is hier uitgelegd. Maar wat niet is uitgelegd, is het feit dat <<include>>en <<extend>>gewoon helemaal niet mogen worden gebruikt.

Als je Bittner/Spence leest, weet je dat use-cases over synthese gaan, niet over analyse. Hergebruik van use cases is onzin. Het laat duidelijk zien dat je je domein verkeerd hebt geknipt. Toegevoegde waarde moet per se uniek zijn. Het enige hergebruik van toegevoegde waarde dat ik ken is franchise. Dus als je in hamburgerzaken zit, leuk. Maar overal is het jouw taak als BA om te proberen een USP te vinden. En dat moet in goede gebruikssituaties worden gepresenteerd.

Telkens wanneer ik mensen een van die relaties zie gebruiken, is dat wanneer ze functionele decompositie proberen uit te voeren. En dat is gewoon verkeerd.

Om het simpel te zeggen: als je je baas zonder aarzeling kunt antwoorden “Ik heb gedaan …”, dan is de “…” je gebruiksvoorbeeld, omdat je er geld voor hebt gekregen. (Dat maakt ook duidelijk dat “login” helemaal geen use case is.)

In dat opzicht is het zeer onwaarschijnlijk om op zichzelf staande use-cases te vinden die zijn opgenomen of andere use-cases uit te breiden. Uiteindelijk kunt u <<extend>>gebruiken om de optionaliteit van uw systeem te tonen, d.w.z. een licentieschema dat het mogelijk maakt om gebruiksscenario’s voor sommige licenties op te nemen of weg te laten. Maar anders – vermijd ze gewoon.


Antwoord 15

Verlengtwordt gebruikt wanneer u begrijpt dat uw gebruikssituatie te complex is. Dus je extraheert de complexe stappen in hun eigen “extensie” use cases.

Inclusiefwordt gebruikt wanneer u veelvoorkomend gedrag ziet in twee gebruiksscenario’s. Dus je abstraheert het algemene gedrag in een aparte “abstracte” use case.

(ref: Jeffrey L. Whitten, Lonnie D. Bentley, Systeemanalyse en ontwerpmethoden, McGraw-Hill/Irwin, 2007)


Antwoord 16

Met de relatie opnemenkan een use-case de stappen van een andere use-case opnemen.

Stel bijvoorbeeld dat u een Amazon-account hebt en u wilt een bestelling controleren, nou, het is onmogelijk om in te checken in de bestelling zonder eerst in te loggen op uw account. Dus de stroom van gebeurtenissen zou willen …

De verlengen Relatie wordt gebruikt om een ​​extra stap toe te voegen aan de stroom van een gebruikscase, dat is meestal een optionele stap …

Stel je voor dat we het nog steeds over je Amazon-account hebben. Laten we aannemen dat de basisgeval Order is en het behuizing van de extensie is Amazon Prime . De gebruiker kan ervoor kiezen om het item regelmatig te bestellen, of de gebruiker heeft de optie om Amazon Prime te selecteren die ervoor zorgt dat zijn bestelling sneller aankomt tegen hogere kosten.

Merk echter op dat de gebruiker echter geen Amazon Prime hoeft te selecteren, dit is slechts een optie, ze kunnen ervoor kiezen om dit gebruikscase te negeren.


17

Ik vind het leuk om te denken aan “omvat” als een noodzakelijke vereiste / begeleiding van het case voor het gebruik van de basis. Dit betekent dat het gebruik van het basisgebruik niet kan worden beschouwd zonder het gebruikscase dat het bevat. Ik geef het voorbeeld van een e-commerce-website die items aan klanten verkoopt. Er is geen manier om een ​​artikel te betalen zonder eerst dat artikel te selecteren en in de winkelwagentje te plaatsen. Dit impliceert dat het gebruikscase “Pay for Item” bevat “Selecteer item”.

Er zijn verschillende toepassingen van extends, maar ik beschouw het graag als een alternatief dat al dan niet kan worden gebruikt. Bijvoorbeeld – nog steeds op de e-commercesite. Bij het betalen van een artikel kunt u ervoor kiezen om te betalen bij aflevering, te betalen met PayPal of met een kaart te betalen. Dit zijn allemaal alternatieven voor de use case “betalen voor item”. Ik kan elk van deze opties kiezen, afhankelijk van mijn voorkeur.

Voor meer duidelijkheid en de regels rond gebruiksscenario’s, lees mijn artikel hier:

http://businessanalystlearnings.com/ ba-techniques/2013/2/20/use-case-diagram-the-basics

Other episodes