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.

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,
- Navn
- Det bruges til at henvise livline inden for en specifik interaktion.
- Et navn på en livline er valgfrit.
- Type
- Det er navnet på en klassifikator, som livslinjen repræsenterer en instans af.
- Selector
- Det er en boolsk betingelse, som bruges til at vælge en bestemt instans, der opfylder kravet.
- 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,
- En opkaldsmeddelelse, som bruges til at kalde en operation.
- En besked om at oprette en instans.
- En besked om at ødelægge en instans.
- 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.
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:
Den ordnede rækkefølge af hændelser i et givet sekvensdiagram er som følger:
- Bestille.
- Betal penge til kassedisken.
- Ordrebekræftelse.
- Ordreforberedelse.
- 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.
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:
Ovenstående samarbejdsdiagram repræsenterer et elevinformationsstyringssystem. Kommunikationsstrømmen i ovenstående diagram er givet ved,
- En elev anmoder om et login gennem login-systemet.
- En godkendelsesmekanisme af software kontrollerer anmodningen.
- 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.
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:
- Det samlede antal livliner, der skal være en del af en interaktion
- er en sekvens af meddelelsesflow inden for forskellige objekter i et system.
- Forskellige operatører for at lette funktionaliteten af et interaktionsdiagram.
- Forskellige typer beskeder for at vise interaktionen mere tydeligt og præcist.
- Den ordnede rækkefølge af beskeder.
- Organisation og en struktur af et objekt.
- 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.