Interaktions-, Samarbets- & Sekvensdiagram med exempel
Vad รคr interaktionsdiagram?
Interaktionsdiagram anvรคnds i UML fรถr att upprรคtta kommunikation mellan objekt. Den manipulerar inte data som รคr associerade med den specifika kommunikationsvรคgen. Interaktionsdiagram fokuserar mest pรฅ meddelandeรถverfรถring och hur dessa meddelanden utgรถr en funktion i ett system. Interaktionsdiagram รคr utformade fรถr att visa hur objekten kommer att realisera de sรคrskilda kraven fรถr ett system. Den kritiska komponenten i ett interaktionsdiagram รคr livlina och meddelanden.
Olika UML-element รคger vanligtvis interaktionsdiagram. Detaljerna fรถr interaktion kan visas med hjรคlp av flera notationer sรฅsom sekvensdiagram, timingdiagram, kommunikations-/samarbetsdiagram. Interaktionsdiagram fรฅngar det dynamiska beteendet hos vilket system som helst.

Fรถljande รคr de olika typerna av interaktionsdiagram som definieras i UML:
- Sekvensdiagram
- Samarbetsdiagram
- Tidsdiagram
Syftet med ett sekvensdiagram i UML-diagram รคr att visualisera sekvensen av ett meddelandeflรถde i systemet. Sekvensdiagrammet i mjukvaruteknik visar interaktionen mellan tvรฅ livlinor som en tidsordnad hรคndelsefรถrlopp.
Samverkansdiagrammet i UML kallas รคven kommunikationsdiagram. Syftet med ett samverkansdiagram รคr att betona strukturella aspekter av ett system, dvs hur olika livlinor i systemet hรคnger ihop.
Tidsdiagram fokuserar pรฅ den instans dรฅ ett meddelande skickas frรฅn ett objekt till ett annat objekt.
Syftet med ett interaktionsdiagram
Interaktionsdiagram hjรคlper dig att visualisera ett systems interaktiva beteende. Interaktionsdiagram anvรคnds fรถr att representera hur ett eller flera objekt i systemet ansluter och kommunicerar med varandra.
Interaktionsdiagram fokuserar pรฅ ett systems dynamiska beteende. Ett interaktionsdiagram ger oss sammanhanget fรถr en interaktion mellan en eller flera livlinor i systemet.
In UML, anvรคnds interaktionsdiagrammen fรถr fรถljande syften:
- Interaktionsdiagram anvรคnds fรถr att observera ett systems dynamiska beteende.
- Interaktionsdiagram visualiserar kommunikationen och sekvensen av meddelanden som skickas i systemet.
- Interaktionsmodelleringsdiagram representerar de strukturella aspekterna av olika objekt i systemet.
- Interaktionsdiagram representerar den ordnade sekvensen av interaktioner inom ett system.
- Interaktionsdiagram ger mรถjlighet att visualisera realtidsdata via UML.
- UML-interaktionsdiagram kan anvรคndas fรถr att fรถrklara arkitekturen fรถr ett objektorienterat eller distribuerat system.
Viktig terminologi
Ett interaktionsdiagram innehรฅller livlinor, meddelanden, operatรถrer, tillstรฅndsinvarianter och begrรคnsningar.
Livlina
En livlina representerar en enda deltagare i en interaktion. Den beskriver hur en instans av en specifik klassificerare deltar i interaktionen.
En livlina representerar en roll som en instans av klassificeraren kan spela i interaktionen. Fรถljande รคr olika attribut fรถr en livlina,
- Namn
- Den anvรคnds fรถr att hรคnvisa livlinan inom en specifik interaktion.
- Namnet pรฅ en livlina รคr valfritt.
- Typ
- Det รคr namnet pรฅ en klassificerare som livlinan representerar en instans av.
- Selector
- Det รคr ett booleskt villkor som anvรคnds fรถr att vรคlja en viss instans som uppfyller kravet.
- Vรคljarattribut รคr ocksรฅ valfritt.
Notationen fรถr livlina fรถrklaras i notationsavsnittet.
Notiser
Ett meddelande รคr en specifik typ av kommunikation mellan tvรฅ livlinor i en interaktion. Ett meddelande innefattar fรถljande aktiviteter,
- Ett samtalsmeddelande som anvรคnds fรถr att anropa en operation.
- Ett meddelande fรถr att skapa en instans.
- Ett meddelande om att fรถrstรถra en instans.
- Fรถr att skicka en signal.
Nรคr en livlina tar emot ett samtalsmeddelande, fungerar den som en begรคran om att anropa en operation som har en liknande signatur som specificeras i meddelandet. Nรคr en livlina exekverar ett meddelande har den ett fokus pรฅ kontroll. Nรคr interaktionen fortskrider รถver tiden, flyttas fokus fรถr kontroll mellan olika livlinor. Denna rรถrelse kallas ett flรถde av kontroll.
Fรถljande รคr meddelandena som anvรคnds i ett systeminteraktionsdiagram:
| Meddelande namn | Betydelse |
|---|---|
| Synchederligt meddelande | Avsรคndaren av ett meddelande fortsรคtter att vรคnta pรฅ att mottagaren ska รฅterlรคmna kontrollen frรฅn meddelandeexekveringen. |
| Asynkront meddelande | Avsรคndaren vรคntar inte pรฅ en retur frรฅn mottagaren; istรคllet fortsรคtter den exekveringen av nรคsta meddelande. |
| Returnera meddelande | Mottagaren av ett tidigare meddelande รฅterfรถr kontrollen till avsรคndaren. |
| Objekt skapande | Avsรคndaren skapar en instans av en klassificerare. |
| Objekt fรถrstรถrelse | Avsรคndaren fรถrstรถr den skapade instansen. |
| Hittade meddelande | Avsรคndaren av meddelandet รคr utanfรถr ramen fรถr interaktion. |
| Fรถrlorat meddelande | Meddelandet nรฅr aldrig destinationen och det gรฅr fรถrlorat i interaktionen. |
Ange invarianter och begrรคnsningar
Nรคr en instans eller en livlina tar emot ett meddelande kan det fรฅ den att รคndra tillstรฅnd. Ett tillstรฅnd รคr ett tillstรฅnd eller en situation under en livstid fรถr ett objekt dรคr det uppfyller vissa krav, utfรถr vissa operationer och vรคntar pรฅ nรฅgon hรคndelse.
I interaktionsdiagram orsakar inte alla meddelanden att en instans รคndras. Vissa meddelanden har inte vรคrdena fรถr vissa attribut. Det har inga biverkningar pรฅ ett objekts tillstรฅnd.
Operator
En operatรถr specificerar en operation pรฅ hur operanderna ska exekveras. Operatรถrerna i UML stรถdjer operationer pรฅ data i form av fรถrgrening sรฅvรคl som en iteration. Olika operatรถrer kan anvรคndas fรถr att sรคkerstรคlla anvรคndningen av iteration och fรถrgrening i UML-modellen. Operatรถrerna opt och alt anvรคnds fรถr fรถrgreningsoperationer. Slingoperatorn anvรคnds fรถr att sรคkerstรคlla iterationsoperationerna dรคr ett tillstรฅnd exekveras upprepade gรฅnger tills det tillfredsstรคllande resultatet produceras. Brytoperator anvรคnds inuti slingan eller iterationsoperationer. Det sรคkerstรคller att slingan avslutas nรคrhelst en pausoperatรถr pรฅtrรคffas. Om ett avbrottstillstรฅnd inte anges, kรถr loopen ett oรคndligt antal gรฅnger, vilket resulterar i att programmet kraschar.
Fรถljande รคr de operatorer som anvรคnds i ett interaktionsdiagram:
| Operator | Namn | Betydelse |
|---|---|---|
| Vรคlja | Alternativet | En operand exekveras om villkoret รคr sant. t.ex. Om annat |
| andra | Alternativ | Operanden, vars tillstรฅnd รคr sant, exekveras. t.ex. byta |
| loop | loop | Den anvรคnds fรถr att loopa en instruktion under en viss period. |
| Ha sรถnder | Ha sรถnder | Den bryter slingan om ett villkor รคr sant eller falskt, och nรคsta instruktion exekveras. |
| Ref | Hรคnvisning | Det anvรคnds fรถr att referera till en annan interaktion. |
| Frรฅn | Parallell | Alla operander exekveras parallellt. |
iteration
I ett interaktionsdiagram kan vi ocksรฅ visa iteration med hjรคlp av ett iterationsuttryck. Ett iterationsuttryck bestรฅr av en iterationsspecifikator och en valfri iterationssats. Det finns ingen fรถrdefinierad syntax fรถr UML-iteration.
I iteration fรถr att visa att meddelanden skickas parallellt, anvรคnds parallell iterationsspecifikation. En parallell iterationsspecifikator betecknas med *//. Iteration i UML uppnรฅs genom att anvรคnda loopoperatorn.
fรถrgrening
I ett interaktionsdiagram kan vi representera fรถrgrening genom att lรคgga till bevakningsvillkor till meddelandena. Vaktfรถrhรฅllanden anvรคnds fรถr att kontrollera om ett meddelande kan skickas vidare eller inte. Ett meddelande skickas bara vidare nรคr dess bevakningsvillkor รคr sant. Ett meddelande kan ha flera bevakningsvillkor, eller flera meddelanden kan ha samma bevakningsvillkor. Fรถrgrening i UML uppnรฅs med hjรคlp av alt och opt, operatรถrer.
Det hรคr รคr nรฅgra av viktigaste terminologier som anvรคnds i UML-interaktionsdiagram.
Typer av interaktionsdiagram och notationer
Fรถljande รคr de olika typerna av interaktionsdiagram som definieras i UML:
- Sekvensdiagram
- Samarbetsdiagram
- Tidsdiagram
Den grundlรคggande notationen fรถr interaktion รคr en rektangel med en femhรถrning i det รถvre vรคnstra hรถrnet av en rektangulรคr ruta.
Vad รคr ett sekvensdiagram?
A Sekvensdiagram skildrar helt enkelt interaktion mellan objekt i sekventiell ordning. Syftet med ett sekvensdiagram i UML รคr att visualisera sekvensen av ett meddelandeflรถde i systemet. Sekvensdiagrammet visar interaktionen mellan tvรฅ livlinor som ett tidsordnat hรคndelsefรถrlopp.
- Ett sekvensdiagram visar en implementering av ett scenario i systemet. Livlinor i systemet deltar under exekveringen av ett system.
- I ett sekvensdiagram representeras en livlina av en vertikal stapel.
- Ett meddelandeflรถde mellan tvรฅ eller flera objekt representeras med en vertikal streckad linje som strรคcker sig lรคngst ned pรฅ sidan.
- I ett sekvensdiagram anvรคnds olika typer av meddelanden och operatรถrer som beskrivs ovan.
- I ett sekvensdiagram anvรคnds ocksรฅ iteration och fรถrgrening.

Ovanstรฅende sekvensdiagram innehรฅller livslinjenotationer och notation av olika meddelanden som anvรคnds i ett sekvensdiagram, sรฅsom skapa, svara, asynkront meddelande, etc.
Exempel pรฅ sekvensdiagram
Fรถljande exempel pรฅ sekvensdiagram representerar McDonalds bestรคllningssystem:

Den ordnade hรคndelsefรถrloppet i ett givet sekvensdiagram รคr som fรถljer:
- Bestรคlla.
- Betala pengar till kassadisken.
- Orderbekrรคftelse.
- Bestรคllningsfรถrberedelse.
- Bestรคll servering.
Om man รคndrar ordningen pรฅ operationerna kan det resultera i att programmet kraschar. Det kan ocksรฅ leda till att felaktiga eller buggiga resultat genereras. Varje sekvens i det ovan givna sekvensdiagrammet betecknas med en annan typ av meddelande. Man kan inte anvรคnda samma typ av meddelande fรถr att beteckna alla interaktioner i diagrammet eftersom det skapar komplikationer i systemet.
Du mรฅste vara fรถrsiktig nรคr du vรคljer notationen fรถr ett meddelande fรถr en viss interaktion. Notationen mรฅste matcha den specifika sekvensen i diagrammet.
Fรถrdelar med ett sekvensdiagram
- Sekvensdiagram anvรคnds fรถr att utforska alla verkliga applikationer eller ett system.
- Sekvensdiagram anvรคnds fรถr att representera meddelandeflรถdet frรฅn ett objekt till ett annat objekt.
- Sekvensdiagram รคr lรคttare att underhรฅlla.
- Sekvensdiagram รคr lรคttare att generera.
- Sekvensdiagram kan enkelt uppdateras enligt fรถrรคndringarna inom ett system.
- Sekvensdiagram tillรฅter bรฅde back- och framรฅtteknik.
Nackdelar med ett sekvensdiagram
- Sekvensdiagram kan bli komplexa nรคr fรถr mรฅnga livlinor รคr inblandade i systemet.
- Om ordningen pรฅ meddelandesekvensen รคndras, produceras felaktiga resultat.
- Varje sekvens mรฅste representeras med olika meddelandenotation, vilket kan vara lite komplicerat.
- Typen av meddelande bestรคmmer typen av sekvens i diagrammet.
Vad รคr samarbetsdiagrammet?
Samarbetsdiagram skildrar relationer och interaktioner mellan programvaruobjekt. De anvรคnds fรถr att fรถrstรฅ objektarkitekturen i ett system snarare รคn flรถdet av ett meddelande som i ett sekvensdiagram. De รคr ocksรฅ kรคnda som "kommunikationsdiagram."
Enligt objektorienterad programmering (OOP) har en objektenhet olika attribut associerade med sig. Vanligtvis finns det flera objekt i ett objektorienterat system dรคr varje objekt kan associeras med vilket annat objekt som helst i systemet. Samarbetsdiagram anvรคnds fรถr att utforska arkitekturen fรถr objekt inuti systemet. Meddelandeflรถdet mellan objekten kan representeras med hjรคlp av ett samarbetsdiagram.
Fรถrdelar med samarbetsdiagram
- Det kallas ocksรฅ som ett kommunikationsdiagram.
- Den betonar de strukturella aspekterna av ett interaktionsdiagram โ hur livlinan ansluter.
- Dess syntax liknar den fรถr sekvensdiagram fรถrutom att livlinan inte har svansar.
- Meddelanden som passeras รถver sekvensering indikeras genom att varje meddelande numreras hierarkiskt.
- Jรคmfรถrt med sekvensdiagrammet รคr kommunikationsdiagrammet semantiskt svagt.
- Objektdiagram รคr specialfall av kommunikationsdiagram.
- Det lรฅter dig fokusera pรฅ elementen istรคllet fรถr att fokusera pรฅ meddelandeflรถdet som beskrivs i sekvensdiagrammet.
- Sekvensdiagram kan enkelt omvandlas till ett samarbetsdiagram eftersom samarbetsdiagram inte รคr sรคrskilt uttrycksfulla.
- Medan samarbetsdiagram modelleras med sekvensdiagram kan viss information gรฅ fรถrlorad.

Ovanstรฅende samarbetsdiagramnotation innehรฅller livlinor tillsammans med kopplingar, sjรคlvslingor, framรฅt- och bakรฅtmeddelanden som anvรคnds i ett samarbetsdiagram.
Nackdelar med ett samarbetsdiagram
- Samarbetsdiagram kan bli komplexa nรคr fรถr mรฅnga objekt finns i systemet.
- Det รคr svรฅrt att utforska varje objekt i systemet.
- Samarbetsdiagram รคr tidskrรคvande.
- Objektet fรถrstรถrs efter att ett program avslutats.
- Ett objekts tillstรฅnd รคndras momentant, vilket gรถr det svรฅrt att hรฅlla reda pรฅ varje enskild fรถrรคndring som sker inom ett objekt i ett system.
Samarbetsdiagram Exempel
Fรถljande diagram representerar sekvenseringen รถver studenthanteringssystemet:
Ovanstรฅende samarbetsdiagram representerar ett studentinformationshanteringssystem. Kommunikationsflรถdet i diagrammet ovan ges av,
- En elev begรคr inloggning via inloggningssystemet.
- En autentiseringsmekanism fรถr programvaran kontrollerar begรคran.
- Om en studentpost finns i databasen, รคr รฅtkomsten tillรฅten; annars returneras ett fel.
Vad รคr tidsdiagram?
Tidsdiagram รคr en vรฅgform eller en graf som anvรคnds fรถr att beskriva tillstรฅndet fรถr en livlina nรคr som helst. Det anvรคnds fรถr att beteckna omvandlingen av ett objekt frรฅn en form till en annan form. Tidsdiagrammet innehรฅller inte noteringar som krรคvs i sekvens- och samverkansdiagrammet. Flรถdet mellan mjukvaran vid olika tillfรคllen representeras med hjรคlp av en vรฅgform.
- Det รคr en korrekt representation av interaktioner som fokuserar pรฅ de specifika tidpunkterna fรถr meddelanden som skickas mellan olika objekt.
- Tidsdiagram anvรคnds fรถr att fรถrklara den detaljerade tidsbearbetningen av ett visst objekt.
- Tidsdiagram anvรคnds fรถr att fรถrklara hur ett objekt fรถrรคndras under dess livstid.
- Tidsdiagram anvรคnds oftast med distribuerade och inbyggda system.
- I UML lรคses tidsdiagram frรฅn vรคnster till hรถger enligt namnet pรฅ en livlina som anges i vรคnsterkanten.
- Tidsdiagram anvรคnds fรถr att representera olika fรถrรคndringar som intrรคffar inom en livlina frรฅn tid till annan.
- Tidsdiagram anvรคnds fรถr att visa en grafisk representation av olika tillstรฅnd av en livlina per tidsenhet.
- UML tillhandahรฅller olika notationer fรถr att fรถrenkla รถvergรฅngstillstรฅndet mellan tvรฅ livlinor per tidsenhet.
Timing diagram Exempel
Tidsdiagrammet nedan representerar nรฅgra faser av en mjukvaruutvecklingens livscykel.
I diagrammet ovan gรฅr mjukvaran fรถrst igenom kravfasen, sedan designen och senare utvecklingsfasen. Utsignalen frรฅn den fรถregรฅende fasen vid den givna tiden ges till den andra fasen som en ingรฅng. Sรฅledes kan tidsdiagrammet anvรคndas fรถr att beskriva SDLC (Software Development Life Cycle) i UML.
Fรถrdelar med ett tidsdiagram
- Tidsdiagram anvรคnds fรถr att representera ett objekts tillstรฅnd vid en viss tidpunkt.
- Timingdiagram tillรฅter bรฅde back- och framรฅtteknik.
- Tidsdiagram kan anvรคndas fรถr att hรฅlla reda pรฅ varje fรถrรคndring i systemet.
Nackdelar med ett tidsdiagram
- Tidsdiagram รคr svรฅra att fรถrstรฅ.
- Tidsdiagram รคr svรฅra att underhรฅlla.
Hur ritar man ett interaktionsdiagram?
Interaktionsdiagram anvรคnds fรถr att representera ett systems interaktiva beteende. Interaktionsdiagram fokuserar pรฅ ett systems dynamiska beteende. Ett interaktionsdiagram ger oss sammanhanget fรถr en interaktion mellan en eller flera livlinor i systemet.
Fรถr att rita ett interaktionsdiagram mรฅste du fรถrst bestรคmma scenariot fรถr vilket du mรฅste rita ett interaktionsdiagram. Efter att ha bestรคmt situationen, identifiera olika livlinor som kommer att vara involverade i interaktionen. Kategorisera alla livlinans element och utforska dem fรถr att identifiera mรถjliga kopplingar och hur livlinorna รคr relaterade till varandra. Fรถr att rita ett interaktionsdiagram krรคvs fรถljande:
- Det totala antalet livlinor som kommer att ingรฅ i en interaktion
- รคr en sekvens av meddelandeflรถden inom olika objekt i ett system.
- Olika operatรถrer fรถr att underlรคtta funktionaliteten av ett interaktionsdiagram.
- Olika typer av meddelanden fรถr att visa interaktionen tydligare och mer exakt.
- Den ordnade sekvensen av meddelanden.
- Organisation och en struktur hos ett objekt.
- Olika tidskonstruktioner av ett objekt.
Anvรคndning av ett interaktionsdiagram
Interaktionsdiagram bestรฅr av ett sekvensdiagram, samarbetsdiagram och tidsdiagram. Fรถljande รคr det specifika syftet med ett interaktionsdiagram:
- Sekvensdiagram anvรคnds fรถr att utforska alla verkliga applikationer eller ett system.
- Interaktionsdiagram anvรคnds fรถr att utforska och jรคmfรถra anvรคndningen av sekvens-, samarbeten och tidsdiagram.
- Interaktionsdiagram anvรคnds fรถr att fรฅnga ett systems beteende. Den visar den dynamiska strukturen i ett system.
- Sekvensdiagram anvรคnds fรถr att representera meddelandeflรถdet frรฅn ett objekt till ett annat objekt.
- Samarbetsdiagram anvรคnds fรถr att fรถrstรฅ objektarkitekturen i ett system snarare รคn meddelandeflรถde.
- Interaktionsdiagram anvรคnds fรถr att modellera ett system som en tidsordnad hรคndelsefรถrlopp.
- Interaktionsdiagram anvรคnds i bรฅde back- och forward engineering.
- Interaktionsdiagram anvรคnds fรถr att organisera strukturen av interaktiva element.
Sammanfattning
- Interaktionerna รคr helt enkelt enheter av en klassificerares beteende.
- De kritiska delarna i ett interaktionsdiagram รคr livlina och budskap.
- Interaktionsdiagram fokuserar mest pรฅ meddelandefรถrmedling.
- Interaktionsdiagram fรฅngar det dynamiska beteendet hos vilket system som helst.
- Interaktionsdiagram innehรฅller sekvensdiagram, tidsdiagram, kommunikations-/samarbetsdiagram.
- Sekvens-UML-diagrammet รคr till fรถr att visualisera sekvensen av ett meddelandeflรถde i systemet.
- Syftet med ett samverkansdiagram รคr att betona strukturella aspekter.
- Tidsdiagram fokuserar pรฅ den instans dรฅ ett meddelande skickas frรฅn ett objekt till ett annat objekt.
