Interaktions-, Samarbejds- & Sekvensdiagrammer med eksempler

Hvad er interaktionsdiagram?

Interaktionsdiagram bruges i UML til at etablere kommunikation mellem objekter. Den manipulerer ikke de data, der er knyttet til den bestemte kommunikationssti. Interaktionsdiagrammer fokuserer for det meste på meddelelsesoverførsel, og hvordan disse meddelelser udgør én funktionalitet i et system. Interaktionsdiagrammer er designet til at vise, hvordan objekterne vil realisere de særlige krav til et system. Den kritiske komponent i et interaktionsdiagram er livline og budskaber.

Forskellige UML-elementer ejer typisk interaktionsdiagrammer. Detaljerne for interaktion kan vises ved hjælp af flere notationer, såsom sekvensdiagram, timingdiagram, kommunikations-/samarbejdsdiagram. Interaktionsdiagrammer fanger ethvert systems dynamiske adfærd.

Interaktionsdiagram
Notation af et interaktionsdiagram

Følgende er de forskellige typer interaktionsdiagrammer defineret i UML:

  • Sekvensdiagram
  • Samarbejdsdiagram
  • Tidsdiagram

Formålet med et sekvensdiagram i UML diagram er at visualisere rækkefølgen af ​​et meddelelsesflow i systemet. Sekvensdiagrammet i Software Engineering viser interaktionen mellem to livslinjer som en tidsbestemt sekvens af begivenheder.

Samarbejdsdiagrammet i UML kaldes også et kommunikationsdiagram. Formålet med et samarbejdsdiagram er at understrege strukturelle aspekter af et system, dvs. hvordan forskellige livslinjer i systemet hænger sammen.

Timingdiagrammer fokuserer på det tilfælde, hvor en meddelelse sendes fra et objekt til et andet objekt.

Formål med et interaktionsdiagram

Interaktionsdiagrammer hjælper dig med at visualisere et systems interaktive adfærd. Interaktionsdiagrammer bruges til at repræsentere, hvordan et eller flere objekter i systemet forbinder og kommunikerer med hinanden.

Interaktionsdiagrammer fokuserer på et systems dynamiske adfærd. Et interaktionsdiagram giver os konteksten af ​​en interaktion mellem en eller flere livslinjer i systemet.

In UML, bruges interaktionsdiagrammerne til følgende formål:

  • Interaktionsdiagrammer bruges til at observere et systems dynamiske adfærd.
  • Interaktionsdiagram visualiserer kommunikationen og rækkefølgen af ​​meddelelser, der sendes i systemet.
  • Interaktionsmodelleringsdiagram repræsenterer de strukturelle aspekter af forskellige objekter i systemet.
  • Interaktionsdiagram repræsenterer den ordnede sekvens af interaktioner i et system.
  • Interaktionsdiagram giver mulighed for at visualisere realtidsdata via UML.
  • UML-interaktionsdiagrammer kan bruges til at forklare arkitekturen af ​​et objektorienteret eller et distribueret system.

Vigtig terminologi

Et interaktionsdiagram indeholder livslinjer, beskeder, operatører, tilstandsinvarianter og begrænsninger.

Lifeline

En livline repræsenterer en enkelt deltager i en interaktion. Den beskriver, hvordan en instans af en specifik klassifikator deltager i interaktionen.

En livline repræsenterer en rolle, som en instans af klassificereren kan spille i interaktionen. Følgende er forskellige egenskaber ved en livline,

  1. Navn
    1. Det bruges til at henvise livline inden for en specifik interaktion.
    2. Et navn på en livline er valgfrit.
  2. Type
    1. Det er navnet på en klassifikator, som livslinjen repræsenterer en instans af.
  3. Selector
    1. Det er en boolsk betingelse, som bruges til at vælge en bestemt instans, der opfylder kravet.
    2. Selector-attribut er også valgfri.

Notationen af ​​livline er forklaret i notationsafsnittet.

Beskeder

Et budskab er en specifik form for kommunikation mellem to livslinjer i en interaktion. En besked involverer følgende aktiviteter,

  1. En opkaldsmeddelelse, som bruges til at kalde en operation.
  2. En besked om at oprette en instans.
  3. En besked om at ødelægge en instans.
  4. For at sende et signal.

Når en livline modtager en opkaldsmeddelelse, fungerer den som en anmodning om at påkalde en handling, der har en lignende signatur som angivet i meddelelsen. Når en livline udfører et budskab, har den et fokus på kontrol. Efterhånden som interaktionen skrider frem over tid, flytter fokus for kontrol mellem forskellige livslinjer. Denne bevægelse kaldes et flow af kontrol.

Følgende er de meddelelser, der bruges i et systeminteraktionsdiagram:

Meddelelsesnavn Betydning
Syncærefuld besked Afsenderen af ​​en meddelelse bliver ved med at vente på, at modtageren returnerer kontrol fra meddelelsesudførelsen.
Asynkron besked Afsenderen venter ikke på en retur fra modtageren; i stedet fortsætter den udførelsen af ​​en næste besked.
Send besked Modtageren af ​​en tidligere besked returnerer fokus for kontrol til afsenderen.
Oprettelse af objekt Afsenderen opretter en instans af en klassifikator.
Objekt ødelæggelse Afsenderen ødelægger den oprettede instans.
Fundet besked Afsenderen af ​​beskeden er uden for interaktionens rammer.
Mistet besked Beskeden når aldrig destinationen, og den går tabt i interaktionen.

Angiv invarianter og begrænsninger

Når en instans eller en livline modtager en besked, kan det få den til at ændre tilstanden. En tilstand er en tilstand eller en situation i et objekts levetid, hvor det opfylder en vis begrænsning, udfører nogle operationer og venter på en begivenhed.

I interaktionsdiagrammet er det ikke alle meddelelser, der forårsager at en forekomsts tilstand ændres. Nogle meddelelser har ikke værdierne for nogle attributter. Det har ingen bivirkninger på et objekts tilstand.

OperaTor

En operatør specificerer en operation på, hvordan operanderne skal udføres. Operatørerne i UML understøtter operationer på data i form af forgrening samt en iteration. Forskellige operatører kan bruges til at sikre brugen af ​​iteration og forgrening i UML-modellen. Opt- og alt-operatorerne bruges til forgreningsoperationer. Sløjfeoperatoren bruges til at sikre iterationsoperationerne, hvor en betingelse udføres gentagne gange, indtil det tilfredsstillende resultat er produceret. Break-operator bruges inde i loop- eller iterationsoperationerne. Det sikrer, at løkken afsluttes, hver gang en pauseoperatør støder på. Hvis en pausebetingelse ikke er angivet, så udfører løkken det uendelige antal gange, hvilket resulterer i at programmet går ned.

Følgende er de operatører, der bruges i et interaktionsdiagram:

OperaTor Navn Betydning
Opt Option En operand udføres, hvis betingelsen er sand.
fx hvis andet
andre Alternative Operanden, hvis tilstand er sand, udføres.
fx skifte
Loop Loop Den bruges til at sløjfe en instruktion i en bestemt periode.
Pause Pause Det bryder løkken, hvis en betingelse er sand eller falsk, og den næste instruktion udføres.
Ref Henvisning Det bruges til at henvise til en anden interaktion.
af Parallel Alle operander udføres parallelt.

iteration

I et interaktionsdiagram kan vi også vise iteration ved hjælp af et iterationsudtryk. Et iterationsudtryk består af en iterationsspecifikation og en valgfri iterationssætning. Der er ingen foruddefineret syntaks for UML-iteration.

I iteration for at vise, at meddelelser sendes parallelt, bruges parallel iterationsspecifikation. En parallel iterationsspecifikation er angivet med *//. Iteration i UML opnås ved at bruge loop-operatoren.

forgrening

I et interaktionsdiagram kan vi repræsentere forgrening ved at tilføje vagtbetingelser til meddelelserne. Vagtbetingelser bruges til at kontrollere, om en besked kan sendes videre eller ej. En besked sendes kun videre, når dens vagttilstand er sand. En besked kan have flere vagtbetingelser, eller flere meddelelser kan have den samme vagttilstand. Forgrening i UML opnås ved hjælp af alt og opt, operatører.

Disse er nogle af de vigtigste terminologier brugt i UML interaktionsdiagram.

Typer af interaktionsdiagram og notationer

Følgende er de forskellige typer interaktionsdiagrammer defineret i UML:

  • Sekvensdiagram
  • Samarbejdsdiagram
  • Tidsdiagram

Den grundlæggende notation af interaktion er et rektangel med en femkant i øverste venstre hjørne af en rektangulær kasse.

Hvad er et sekvensdiagram?

A Sekvensdiagram skildrer blot interaktion mellem objekter i en sekventiel rækkefølge. Formålet med et sekvensdiagram i UML er at visualisere sekvensen af ​​et meddelelsesflow i systemet. Sekvensdiagrammet viser samspillet mellem to livslinjer som et tidsbestemt hændelsesforløb.

  • Et sekvensdiagram viser en implementering af et scenarie i systemet. Livslinjer i systemet deltager under udførelsen af ​​et system.
  • I et sekvensdiagram er en livline repræsenteret af en lodret streg.
  • Et meddelelsesflow mellem to eller flere objekter er repræsenteret ved hjælp af en lodret stiplet linje, der strækker sig hen over bunden af ​​siden.
  • I et sekvensdiagram bruges forskellige typer meddelelser og operatører, som er beskrevet ovenfor.
  • I et sekvensdiagram bruges også iteration og forgrening.
Sekvensdiagram
Notationer i sekvensdiagram

Ovenstående sekvensdiagram indeholder livslinjenotationer og notation af forskellige meddelelser, der bruges i et sekvensdiagram, såsom oprettelse, svar, asynkron meddelelse osv.

Eksempel på sekvensdiagram

Følgende eksempel på sekvensdiagram repræsenterer McDonald's bestillingssystem:

Sekvensdiagram
Sekvensdiagram af Mcdonald's bestillingssystem

Den ordnede rækkefølge af hændelser i et givet sekvensdiagram er som følger:

  1. Bestille.
  2. Betal penge til kassedisken.
  3. Ordrebekræftelse.
  4. Ordreforberedelse.
  5. Bestil servering.

Hvis man ændrer rækkefølgen af ​​operationerne, kan det resultere i at programmet går ned. Det kan også føre til at generere forkerte eller fejlagtige resultater. Hver sekvens i det ovenfor givne sekvensdiagram er angivet ved hjælp af en anden type meddelelse. Man kan ikke bruge den samme type besked til at betegne alle interaktionerne i diagrammet, fordi det skaber komplikationer i systemet.

Du skal være forsigtig, når du vælger notationen for en besked for en bestemt interaktion. Notationen skal matche den bestemte sekvens inde i diagrammet.

Fordele ved et sekvensdiagram

  • Sekvensdiagrammer bruges til at udforske enhver virkelig applikation eller et system.
  • Sekvensdiagrammer bruges til at repræsentere meddelelsesflow fra et objekt til et andet objekt.
  • Sekvensdiagrammer er nemmere at vedligeholde.
  • Sekvensdiagrammer er nemmere at generere.
  • Sekvensdiagrammer kan nemt opdateres i henhold til ændringerne i et system.
  • Sekvensdiagram tillader både bak- og fremadrettet konstruktion.

Ulemper ved et sekvensdiagram

  • Sekvensdiagrammer kan blive komplekse, når der er for mange livliner involveret i systemet.
  • Hvis rækkefølgen af ​​meddelelsessekvensen ændres, produceres der forkerte resultater.
  • Hver sekvens skal repræsenteres ved hjælp af forskellig beskednotation, som kan være lidt kompleks.
  • Meddelelsestypen bestemmer typen af ​​sekvens inde i diagrammet.

Hvad er samarbejdsdiagrammet?

Samarbejdsdiagram skildrer relationerne og interaktionerne mellem softwareobjekter. De bruges til at forstå objektarkitekturen i et system snarere end strømmen af ​​en besked som i et sekvensdiagram. De er også kendt som "Kommunikationsdiagrammer."

I henhold til objektorienteret programmering (OOP'er) har en objektentitet forskellige attributter knyttet til sig. Normalt er der flere objekter til stede i et objektorienteret system, hvor hvert objekt kan associeres med et hvilket som helst andet objekt inde i systemet. Samarbejdsdiagrammer bruges til at udforske arkitekturen af ​​objekter inde i systemet. Meddelelsesstrømmen mellem objekterne kan repræsenteres ved hjælp af et samarbejdsdiagram.

Fordele ved samarbejdsdiagram

  • Det kaldes også som et kommunikationsdiagram.
  • Det understreger de strukturelle aspekter af et interaktionsdiagram - hvordan livline forbinder.
  • Dens syntaks svarer til sekvensdiagrammet, bortset fra at livline ikke har hale.
  • Meddelelser overført over sekvensering er angivet ved at nummerere hver meddelelse hierarkisk.
  • Sammenlignet med sekvensdiagrammet er kommunikationsdiagrammet semantisk svagt.
  • Objektdiagrammer er specielle tilfælde af kommunikationsdiagram.
  • Det giver dig mulighed for at fokusere på elementerne i stedet for at fokusere på beskedstrømmen som beskrevet i sekvensdiagrammet.
  • Sekvensdiagrammer kan nemt konverteres til et samarbejdsdiagram, da samarbejdsdiagrammer ikke er særligt udtryksfulde.
  • Mens der modelleres samarbejdsdiagrammer i forhold til sekvensdiagrammer, kan nogle oplysninger gå tabt.

Samarbejdsdiagramnotationer
Samarbejdsdiagramnotationer

Ovenstående samarbejdsdiagramnotation indeholder livslinjer sammen med konnektorer, selvløkker, fremadgående og omvendte beskeder, der bruges i et samarbejdsdiagram.

Ulemper ved et samarbejdsdiagram

  • Samarbejdsdiagrammer kan blive komplekse, når der er for mange objekter til stede i systemet.
  • Det er svært at udforske hvert enkelt objekt inde i systemet.
  • Samarbejdsdiagrammer er tidskrævende.
  • Objektet destrueres efter afslutning af et program.
  • Et objekts tilstand ændrer sig momentant, hvilket gør det vanskeligt at holde styr på hver eneste ændring, der sker i et objekt i et system.

Samarbejdsdiagram Eksempel

Følgende diagram repræsenterer sekvenseringen over elevstyringssystemet:

Samarbejdsdiagram

Samarbejdsdiagram for elevstyringssystem

Ovenstående samarbejdsdiagram repræsenterer et elevinformationsstyringssystem. Kommunikationsstrømmen i ovenstående diagram er givet ved,

  1. En elev anmoder om et login gennem login-systemet.
  2. En godkendelsesmekanisme af software kontrollerer anmodningen.
  3. Hvis der findes en elevindgang i databasen, er adgangen tilladt; ellers returneres en fejl.

Hvad er tidsdiagram?

Tidsdiagram er en bølgeform eller en graf, der bruges til at beskrive tilstanden af ​​en livline på ethvert tidspunkt. Det bruges til at betegne transformationen af ​​et objekt fra en form til en anden form. Tidsdiagrammet indeholder ikke notationer som krævet i sekvens- og samarbejdsdiagrammet. Strømmen mellem softwareprogrammet på forskellige tidspunkter er repræsenteret ved hjælp af en bølgeform.

  • Det er en korrekt repræsentation af interaktioner, der fokuserer på de specifikke tidspunkter for beskeder sendt mellem forskellige objekter.
  • Tidsdiagrammer bruges til at forklare den detaljerede tidsbehandling af et bestemt objekt.
  • Tidsdiagrammer bruges til at forklare, hvordan et objekt ændrer sig inden for dets levetid.
  • Tidsdiagrammer bruges mest med distribuerede og indlejrede systemer.
  • I UML læses timingdiagrammer fra venstre mod højre i henhold til navnet på en livline angivet i venstre kant.
  • Tidsdiagrammer bruges til at repræsentere forskellige ændringer, der sker inden for en livline fra tid til anden.
  • Tidsdiagrammer bruges til at vise en grafisk repræsentation af forskellige tilstande af en livline pr. tidsenhed.
  • UML giver forskellige notationer for at forenkle overgangstilstanden mellem to livliner pr. tidsenhed.

Timing diagram Eksempel

Tidsdiagrammet nedenfor repræsenterer nogle få faser af en livscyklus til softwareudvikling.

Tidsdiagram

Eksempel på tidsdiagram

I ovenstående diagram passerer softwaren først gennem kravfasen, derefter design- og senere udviklingsfasen. Outputtet fra den foregående fase på det givne tidspunkt gives til den anden fase som input. Tidsdiagrammet kan således bruges til at beskrive SDLC (Software Development Life Cycle) i UML.

Fordele ved et tidsdiagram

  • Timingdiagrammer bruges til at repræsentere et objekts tilstand på et bestemt tidspunkt.
  • Timingdiagram tillader både bak- og fremadrettet konstruktion.
  • Timing diagram kan bruges til at holde styr på hver ændring inde i systemet.

Ulemper ved et tidsdiagram

  • Tidsdiagrammer er svære at forstå.
  • Tidsdiagrammer er svære at vedligeholde.

Hvordan tegner man et interaktionsdiagram?

Interaktionsdiagrammer bruges til at repræsentere et systems interaktive adfærd. Interaktionsdiagrammer fokuserer på et systems dynamiske adfærd. Et interaktionsdiagram giver os konteksten af ​​en interaktion mellem en eller flere livslinjer i systemet.

For at tegne et interaktionsdiagram skal du først bestemme scenariet, for hvilket du skal tegne et interaktionsdiagram. Efter at have besluttet situationen, skal du identificere forskellige livslinjer, der vil være involveret i interaktionen. Kategoriser alle livline-elementerne og udforsk dem for at identificere mulige forbindelser, og hvordan livlinerne er relateret til hinanden. For at tegne et interaktionsdiagram kræves følgende:

  1. Det samlede antal livliner, der skal være en del af en interaktion
  2. er en sekvens af meddelelsesflow inden for forskellige objekter i et system.
  3. Forskellige operatører for at lette funktionaliteten af ​​et interaktionsdiagram.
  4. Forskellige typer beskeder for at vise interaktionen mere tydeligt og præcist.
  5. Den ordnede rækkefølge af beskeder.
  6. Organisation og en struktur af et objekt.
  7. Forskellige tidskonstruktioner af et objekt.

Brug af et interaktionsdiagram

Interaktionsdiagrammer består af et sekvensdiagram, samarbejdsdiagram og tidsdiagrammer. Følgende er det specifikke formål med et interaktionsdiagram:

  • Sekvensdiagrammer bruges til at udforske enhver virkelig applikation eller et system.
  • Interaktionsdiagrammer bruges til at udforske og sammenligne brugen af ​​sekvens, samarbejder og timingdiagrammer.
  • Interaktionsdiagrammer bruges til at fange et systems adfærd. Det viser den dynamiske struktur af et system.
  • Sekvensdiagrammer bruges til at repræsentere meddelelsesflow fra et objekt til et andet objekt.
  • Samarbejdsdiagrammer bruges til at forstå objektarkitekturen i et system frem for meddelelsesflow.
  • Interaktionsdiagrammer bruges til at modellere et system som en tidsbestemt række af hændelser.
  • Interaktionsdiagrammer bruges i omvendt såvel som fremad engineering.
  • Interaktionsdiagrammer bruges til at organisere strukturen af ​​interaktive elementer.

Resumé

  • Interaktionerne er simpelthen enheder af en klassifikators adfærd.
  • De kritiske elementer i et interaktionsdiagram er livline og budskaber.
  • Interaktionsdiagrammer fokuserer for det meste på budskabsformidling.
  • Interaktionsdiagrammer fanger ethvert systems dynamiske adfærd.
  • Interaktionsdiagram indeholder sekvensdiagram, timingdiagram, kommunikations-/samarbejdsdiagram.
  • Sekvens UML-diagrammet skal visualisere sekvensen af ​​et meddelelsesflow i systemet.
  • Formålet med et samarbejdsdiagram er at understrege strukturelle aspekter.
  • Timingdiagrammer fokuserer på det tilfælde, hvor en meddelelse sendes fra et objekt til et andet objekt.