Interactie-, samenwerkings- en volgordediagrammen met voorbeelden

Wat is interactiediagram?

Interactiediagram worden in UML gebruikt om communicatie tussen objecten tot stand te brengen. Het manipuleert de gegevens die verband houden met het specifieke communicatiepad niet. Interactiediagrammen richten zich vooral op het doorgeven van berichten en hoe deze berichten één functionaliteit van een systeem vormen. Interactiediagrammen zijn ontworpen om weer te geven hoe de objecten de specifieke vereisten van een systeem zullen realiseren. Het cruciale onderdeel in een interactiediagram zijn de levenslijn en berichten.

Verschillende UML-elementen bezitten doorgaans interactiediagrammen. De details van interactie kunnen worden weergegeven met behulp van verschillende notaties, zoals sequentiediagram, timingdiagram, communicatie-/samenwerkingsdiagram. Interactiediagrammen leggen het dynamische gedrag van elk systeem vast.

Interactiediagram
Notatie van een interactiediagram

Hieronder staan ​​de verschillende typen interactie-diagrammen die in UML zijn gedefinieerd:

  • Volgordediagram
  • Samenwerkingsdiagram
  • Tijdschema

Het doel van een sequentiediagram in UML-diagram is om de volgorde van een berichtenstroom in het systeem te visualiseren. Het sequentiediagram in Software Engineering toont de interactie tussen twee levenslijnen als een in de tijd geordende reeks gebeurtenissen.

Het samenwerkingsdiagram in UML wordt ook wel een communicatiediagram genoemd. Het doel van een samenwerkingsdiagram is om structurele aspecten van een systeem te benadrukken, dat wil zeggen hoe verschillende levenslijnen in het systeem met elkaar verbonden zijn.

Timingdiagrammen richten zich op het moment waarop een bericht van het ene object naar het andere object wordt verzonden.

Doel van een interactiediagram

Interactiediagrammen helpen u het interactieve gedrag van een systeem te visualiseren. Interactiediagrammen worden gebruikt om weer te geven hoe een of meer objecten in het systeem verbinding maken en met elkaar communiceren.

Interactiediagrammen richten zich op het dynamische gedrag van een systeem. Een interactiediagram geeft ons de context van een interactie tussen één of meerdere levenslijnen in het systeem.

In UMLDe interactiediagrammen worden voor de volgende doeleinden gebruikt:

  • Interactiediagrammen worden gebruikt om het dynamische gedrag van een systeem te observeren.
  • Interactiediagram visualiseert de communicatie en de volgorde van het doorgeven van berichten in het systeem.
  • Het interactiemodelleringsdiagram vertegenwoordigt de structurele aspecten van verschillende objecten in het systeem.
  • Interactiediagram vertegenwoordigt de geordende volgorde van interacties binnen een systeem.
  • Interactiediagram biedt de mogelijkheid om de realtime gegevens via UML te visualiseren.
  • UML-interactiediagrammen kunnen worden gebruikt om de architectuur van een objectgeoriënteerd of gedistribueerd systeem uit te leggen.

Belangrijke terminologie

Een interactiediagram bevat levenslijnen, berichten, operatoren, toestandsinvarianten en beperkingen.

reddingslijn

Een levenslijn vertegenwoordigt een enkele deelnemer aan een interactie. Het beschrijft hoe een instantie van een specifieke classificator deelneemt aan de interactie.

Een lifeline vertegenwoordigt een rol die een instantie van de classifier kan spelen in de interactie. Hieronder volgen verschillende kenmerken van een lifeline,

  1. Naam
    1. Het wordt gebruikt om de levenslijn te verwijzen binnen een specifieke interactie.
    2. Een naam van een levenslijn is optioneel.
  2. Type
    1. Het is de naam van een classificator waarvan de levenslijn een instantie vertegenwoordigt.
  3. Keuzeschakelaar
    1. Het is een Booleaanse voorwaarde die wordt gebruikt om een ​​bepaalde instantie te selecteren die aan de vereiste voldoet.
    2. Het selectorkenmerk is ook optioneel.

De notatie van levenslijn wordt uitgelegd in de notatiesectie.

Berichten

Een bericht is een specifiek type communicatie tussen twee levenslijnen in een interactie. Een bericht omvat de volgende activiteiten,

  1. Een oproepbericht dat wordt gebruikt om een ​​bewerking aan te roepen.
  2. Een bericht om een ​​exemplaar te maken.
  3. Een bericht om een ​​exemplaar te vernietigen.
  4. Voor het verzenden van een signaal.

Wanneer een lifeline een oproepbericht ontvangt, fungeert het als een verzoek om een ​​bewerking aan te roepen die een vergelijkbare handtekening heeft als gespecificeerd in het bericht. Wanneer een lifeline een bericht uitvoert, heeft het een focus van controle. Naarmate de interactie in de loop van de tijd vordert, beweegt de focus van controle tussen verschillende lifelines. Deze beweging wordt een flow of control genoemd.

Hieronder staan ​​de berichten die in een systeeminteractiediagram worden gebruikt:

Berichtnaam: Betekenis
Syncroneuze boodschap De afzender van een bericht blijft wachten tot de ontvanger de controle over de uitvoering van het bericht teruggeeft.
Asynchroon bericht De afzender wacht niet op een antwoord van de ontvanger; in plaats daarvan gaat het door met de uitvoering van een volgend bericht.
Retour bericht De ontvanger van een eerder bericht geeft de focus van de controle terug aan de afzender.
Object creatie De afzender maakt een exemplaar van een classificator.
Object vernietiging De afzender vernietigt het gemaakte exemplaar.
Bericht gevonden De afzender van het bericht valt buiten het bereik van de interactie.
Verloren bericht Het bericht bereikt nooit de bestemming en gaat verloren in de interactie.

Staatsinvarianten en beperkingen

Wanneer een instantie of een lifeline een bericht ontvangt, kan dit ervoor zorgen dat de status verandert. Een status is een conditie of een situatie tijdens de levensduur van een object waarbij het voldoet aan een beperking, een aantal bewerkingen uitvoert en wacht op een gebeurtenis.

In een interactiediagram zorgen niet alle berichten ervoor dat de status van een instantie verandert. Sommige berichten hebben niet de waarden van bepaalde attributen. Het heeft geen bijwerkingen op de toestand van een object.

Operator

Een operator specificeert een bewerking hoe de operanden worden uitgevoerd. De operators in UML ondersteunen bewerkingen op gegevens in de vorm van vertakking en een iteratie. Verschillende operators kunnen worden gebruikt om het gebruik van iteratie en vertakking in het UML-model te garanderen. De opt- en alt-operatoren worden gebruikt voor vertakkingsbewerkingen. De loop-operator wordt gebruikt om de iteratiebewerkingen te garanderen waarin een voorwaarde herhaaldelijk wordt uitgevoerd totdat het bevredigende resultaat is geproduceerd. De break-operator wordt gebruikt binnen de loop- of iteratiebewerkingen. Het zorgt ervoor dat de loop wordt beëindigd wanneer een break-operator wordt aangetroffen. Als er geen break-voorwaarde is gespecificeerd, wordt de loop oneindig vaak uitgevoerd, wat resulteert in een crash van het programma.

Hieronder staan ​​de operatoren die in een interactiediagram worden gebruikt:

Operator Naam Betekenis
opt Keuze Een operand wordt uitgevoerd als de voorwaarde waar is.
bijvoorbeeld Als anders
anders Alternatief De operand waarvan de voorwaarde waar is, wordt uitgevoerd.
bijvoorbeeld schakelen
Ringleiding Ringleiding Het wordt gebruikt om een ​​instructie voor een bepaalde periode te herhalen.
Breken Breken Het verbreekt de lus als een voorwaarde waar of onwaar is, en de volgende instructie wordt uitgevoerd.
Ref Referentie Het wordt gebruikt om naar een andere interactie te verwijzen.
via Parallel Alle operanden worden parallel uitgevoerd.

herhaling

In een interactiediagram kunnen we iteratie ook weergeven met behulp van een iteratie-expressie. Een iteratie-expressie bestaat uit een iteratiespecificatie en een optionele iteratieclausule. Er is geen vooraf gespecificeerde syntaxis voor UML-iteratie.

In iteratie wordt parallel iteratie-specifier gebruikt om aan te geven dat berichten parallel worden verzonden. Een parallel iteratie-specifier wordt aangeduid met *//. Iteratie in UML wordt bereikt door de lusoperator te gebruiken.

vertakking

In een interactiediagram kunnen we vertakking weergeven door guard-voorwaarden aan de berichten toe te voegen. Guard-voorwaarden worden gebruikt om te controleren of een bericht kan worden doorgestuurd of niet. Een bericht wordt alleen doorgestuurd als de guard-voorwaarde waar is. Een bericht kan meerdere guard-voorwaarden hebben, of meerdere berichten kunnen dezelfde guard-voorwaarde hebben. Vertakking in UML wordt bereikt met behulp van alt- en opt-operatoren.

Dit zijn enkele van de belangrijkste terminologieën die worden gebruikt in UML-interactiediagrammen.

Soorten interactiediagrammen en notaties

Hieronder staan ​​de verschillende typen interactie-diagrammen die in UML zijn gedefinieerd:

  • Volgordediagram
  • Samenwerkingsdiagram
  • Tijdschema

De basisnotatie van interactie is een rechthoek met een vijfhoek in de linkerbovenhoek van een rechthoekig vak.

Wat is een sequentiediagram?

A Volgordediagram toont eenvoudigweg de interactie tussen objecten in een opeenvolgende volgorde. Het doel van een sequentiediagram in UML is om de volgorde van een berichtenstroom in het systeem te visualiseren. Het sequentiediagram toont de interactie tussen twee levenslijnen als een in de tijd geordende reeks gebeurtenissen.

  • Een sequentiediagram toont een implementatie van een scenario in het systeem. Levenslijnen in het systeem nemen deel aan de uitvoering van een systeem.
  • In een sequentiediagram wordt een levenslijn weergegeven door een verticale balk.
  • Een berichtenstroom tussen twee of meer objecten wordt weergegeven met een verticale stippellijn die zich over de onderkant van de pagina uitstrekt.
  • In een sequentiediagram worden verschillende soorten berichten en operatoren gebruikt die hierboven zijn beschreven.
  • In een sequentiediagram worden ook iteratie en vertakkingen gebruikt.
Volgordediagram
Notaties in reeksdiagram

Het bovenstaande sequentiediagram bevat lifeline-notaties en notaties van verschillende berichten die in een sequentiediagram worden gebruikt, zoals een bericht maken, beantwoorden, asynchroon bericht, enz.

Voorbeeld van een sequentiediagram

Het volgende voorbeeld van een sequentiediagram geeft het bestelsysteem van McDonald's weer:

Volgordediagram
Volgordediagram van het bestelsysteem van McDonald's

De geordende volgorde van gebeurtenissen in een bepaald sequentiediagram is als volgt:

  1. Een bestelling plaatsen.
  2. Betaal geld aan de kassa.
  3. Order bevestiging.
  4. Voorbereiding van bestellingen.
  5. Bestel serveren.

Als je de volgorde van de handelingen verandert, kan het programma crashen. Het kan ook leiden tot het genereren van onjuiste of buggy resultaten. Elke sequentie in het hierboven gegeven sequentiediagram wordt aangeduid met een ander type bericht. Je kunt niet hetzelfde type bericht gebruiken om alle interacties in het diagram aan te duiden, omdat dit complicaties in het systeem veroorzaakt.

U moet voorzichtig zijn bij het selecteren van de notatie van een bericht voor een bepaalde interactie. De notatie moet overeenkomen met de specifieke reeks in het diagram.

Voordelen van een reeksdiagram

  • Volgordediagrammen worden gebruikt om elke echte toepassing of systeem te verkennen.
  • Volgordediagrammen worden gebruikt om de berichtenstroom van het ene object naar het andere object weer te geven.
  • Volgordediagrammen zijn gemakkelijker te onderhouden.
  • Volgordediagrammen zijn gemakkelijker te genereren.
  • Volgordediagrammen kunnen eenvoudig worden bijgewerkt op basis van de veranderingen binnen een systeem.
  • Het volgordediagram maakt zowel reverse als forward engineering mogelijk.

Nadelen van een sequentiediagram

  • Sequentiediagrammen kunnen complex worden als er te veel levenslijnen in het systeem zijn betrokken.
  • Als de volgorde van de berichtenreeks wordt gewijzigd, worden onjuiste resultaten geproduceerd.
  • Elke sequentie moet worden weergegeven met een andere berichtnotatie, wat nogal complex kan zijn.
  • Het type bericht bepaalt het type reeks binnen het diagram.

Wat is het samenwerkingsdiagram?

Samenwerkingsdiagram geeft de relaties en interacties tussen softwareobjecten weer. Ze worden gebruikt om de objectarchitectuur binnen een systeem te begrijpen in plaats van de stroom van een bericht zoals in een sequentiediagram. Ze staan ​​ook bekend als "communicatiediagrammen."

Volgens Object-Oriented Programming (OOP's) heeft een objectentiteit verschillende attributen die eraan zijn gekoppeld. Meestal zijn er meerdere objecten aanwezig in een objectgeoriënteerd systeem waarbij elk object aan een ander object in het systeem kan worden gekoppeld. Samenwerkingsdiagrammen worden gebruikt om de architectuur van objecten in het systeem te verkennen. De berichtenstroom tussen de objecten kan worden weergegeven met behulp van een samenwerkingsdiagram.

Voordelen van samenwerkingsdiagram

  • Het wordt ook wel een communicatiediagram genoemd.
  • Het benadrukt de structurele aspecten van een interactiediagram: hoe levenslijnen met elkaar verbonden zijn.
  • De syntaxis ervan lijkt op die van een sequentiediagram, behalve dat de levenslijnen geen staarten hebben.
  • Berichten die via sequentie worden verzonden, worden aangegeven door elk bericht hiërarchisch te nummeren.
  • Vergeleken met het sequentiediagram is het communicatiediagram semantisch zwak.
  • Objectdiagrammen zijn een speciaal geval van communicatiediagrammen.
  • Hiermee kunt u zich concentreren op de elementen in plaats van op de berichtenstroom, zoals beschreven in het sequentiediagram.
  • Volgordediagrammen kunnen eenvoudig worden omgezet in een samenwerkingsdiagram, aangezien samenwerkingsdiagrammen niet erg expressief zijn.
  • Bij het modelleren van samenwerkingsdiagrammen met sequentiediagrammen kan bepaalde informatie verloren gaan.

Notaties van samenwerkingsdiagrammen
Notaties van samenwerkingsdiagrammen

De bovenstaande notatie van het samenwerkingsdiagram bevat levenslijnen samen met connectoren, self-loops, voorwaartse en achterwaartse berichten die in een samenwerkingsdiagram worden gebruikt.

Nadelen van een samenwerkingsdiagram

  • Samenwerkingsdiagrammen kunnen complex worden als er te veel objecten in het systeem aanwezig zijn.
  • Het is moeilijk om elk object in het systeem te verkennen.
  • Samenwerkingsdiagrammen zijn tijdrovend.
  • Het object wordt vernietigd na beëindiging van een programma.
  • De toestand van een object verandert tijdelijk, wat het moeilijk maakt om elke afzonderlijke verandering die zich binnen een object van een systeem voordoet, bij te houden.

Samenwerkingsdiagram Voorbeeld

Het volgende diagram geeft de volgorde van het studentenbeheersysteem weer:

Samenwerkingsdiagram

Samenwerkingsdiagram voor studentenbeheersysteem

Het bovenstaande samenwerkingsdiagram vertegenwoordigt een studentinformatiebeheersysteem. De communicatiestroom in het bovenstaande diagram wordt gegeven door:

  1. Een student vraagt ​​een login aan via het inlogsysteem.
  2. Een authenticatiemechanisme van software controleert het verzoek.
  3. Als er een student in de database voorkomt, wordt toegang verleend. Anders wordt er een foutmelding weergegeven.

Wat is een timingdiagram?

Tijdschema is een golfvorm of een grafiek die wordt gebruikt om de status van een levenslijn op elk moment van de tijd te beschrijven. Het wordt gebruikt om de transformatie van een object van de ene vorm naar de andere vorm aan te duiden. Het timingdiagram bevat geen notaties zoals vereist in het sequentie- en samenwerkingsdiagram. De stroom tussen het softwareprogramma op verschillende momenten van de tijd wordt weergegeven met behulp van een golfvorm.

  • Het is een goede weergave van interacties die zich richt op de specifieke timing van berichten die tussen verschillende objecten worden verzonden.
  • Timingdiagrammen worden gebruikt om de gedetailleerde tijdverwerking van een bepaald object uit te leggen.
  • Timingdiagrammen worden gebruikt om uit te leggen hoe een object tijdens zijn levensduur verandert.
  • Timingdiagrammen worden meestal gebruikt bij gedistribueerde en ingebedde systemen.
  • In UML worden timingdiagrammen van links naar rechts gelezen volgens de naam van een levenslijn die aan de linkerkant is gespecificeerd.
  • Timingdiagrammen worden gebruikt om verschillende veranderingen weer te geven die van tijd tot tijd binnen een levenslijn plaatsvinden.
  • Timingdiagrammen worden gebruikt om een ​​grafische weergave van verschillende toestanden van een levenslijn per tijdseenheid weer te geven.
  • UML biedt verschillende notaties om de overgangstoestand tussen twee levenslijnen per tijdseenheid te vereenvoudigen.

Timingdiagram Voorbeeld

Het onderstaande timingdiagram vertegenwoordigt enkele fasen van a levenscyclus van softwareontwikkeling.

Tijdschema

Voorbeeld van een timingdiagram

In het bovenstaande diagram doorloopt de software eerst de requirementsfase, vervolgens de ontwerpfase en later de ontwikkelingsfase. De output van de vorige fase op dat gegeven tijdstip wordt als input aan de tweede fase gegeven. Het timingdiagram kan dus worden gebruikt om SDLC (Software Development Life Cycle) in UML te beschrijven.

Voordelen van een timingdiagram

  • Timingdiagrammen worden gebruikt om de toestand van een object op een bepaald tijdstip weer te geven.
  • Het timingdiagram maakt zowel reverse als forward engineering mogelijk.
  • Het timingdiagram kan worden gebruikt om elke verandering binnen het systeem bij te houden.

Nadelen van een timingdiagram

  • Timingdiagrammen zijn moeilijk te begrijpen.
  • Timingdiagrammen zijn moeilijk te onderhouden.

Hoe teken je een interactiediagram?

Interactiediagrammen worden gebruikt om het interactieve gedrag van een systeem weer te geven. Interactiediagrammen richten zich op het dynamische gedrag van een systeem. Een interactiediagram geeft ons de context van een interactie tussen één of meerdere levenslijnen in het systeem.

Om een ​​interactiediagram te tekenen, moet u eerst het scenario bepalen waarvoor u een interactiediagram moet tekenen. Nadat u de situatie hebt bepaald, identificeert u verschillende levenslijnen die bij de interactie betrokken zullen zijn. Categoriseer alle levenslijnelementen en verken ze om mogelijke verbindingen te identificeren en hoe de levenslijnen met elkaar in verband staan. Om een ​​interactiediagram te tekenen, zijn de volgende dingen vereist:

  1. Het totale aantal levenslijnen dat deel gaat uitmaken van een interactie
  2. is een reeks berichtenstromen binnen verschillende objecten van een systeem.
  3. Verschillende operatoren om de functionaliteit van een interactiediagram te vereenvoudigen.
  4. Verschillende soorten berichten om de interactie duidelijker en preciezer weer te geven.
  5. De geordende reeks berichten.
  6. Organisatie en structuur van een object.
  7. Verschillende tijdconstructies van een object.

Gebruik van een interactiediagram

Interactiediagrammen bestaan ​​uit een sequentiediagram, samenwerkingsdiagram en timingdiagrammen. Hieronder volgt het specifieke doel van een interactiediagram:

  • Volgordediagrammen worden gebruikt om elke echte toepassing of systeem te verkennen.
  • Interactiediagrammen worden gebruikt om het gebruik van volgorde-, samenwerkings- en timingdiagrammen te verkennen en te vergelijken.
  • Interactiediagrammen worden gebruikt om het gedrag van een systeem vast te leggen. Het geeft de dynamische structuur van een systeem weer.
  • Volgordediagrammen worden gebruikt om de berichtenstroom van het ene object naar het andere object weer te geven.
  • Samenwerkingsdiagrammen worden gebruikt om inzicht te krijgen in de objectarchitectuur van een systeem in plaats van in de berichtenstroom.
  • Interactiediagrammen worden gebruikt om een ​​systeem te modelleren als een in de tijd geordende reeks gebeurtenissen.
  • Interactiediagrammen worden zowel bij reverse als forward engineering gebruikt.
  • Interactiediagrammen worden gebruikt om de structuur van interactieve elementen te ordenen.

Samenvatting

  • De interacties zijn eenvoudigweg eenheden van het gedrag van een classificator.
  • De kritische elementen in een interactiediagram zijn levenslijn en berichten.
  • Interactiediagrammen zijn vooral gericht op het doorgeven van berichten.
  • Interactiediagrammen leggen het dynamische gedrag van elk systeem vast.
  • Interactiediagram bevat sequentiediagram, timingdiagram, communicatie-/samenwerkingsdiagram.
  • Het sequentie-UML-diagram is bedoeld om de volgorde van een berichtenstroom in het systeem te visualiseren.
  • Het doel van een samenwerkingsdiagram is om structurele aspecten te benadrukken.
  • Timingdiagrammen richten zich op het moment waarop een bericht van het ene object naar het andere object wordt verzonden.