SlideShare a Scribd company logo
1 of 50
Download to read offline
Introduktion till UML,
OOAD & OOP, del 3
Data- och informationsvetenskap: Objektorienterad programmering och modellering för IA
Johan Holmberg 2019-09-16
Dagens agenda
• Förra föreläsningen
• Aktivitetsdiagram
• Use case-diagram
Tillståndsdiagram
Tillståndsdiagram beskriver beteendet
hos en avgränsad del av ett system.
Diagrammet visar hur tillståndet hos
(del)systemets ingående objekt kan
förändras.
Tillståndsdiagram
State/tillstånd
Transition/övergång
Event/händelse
Start marker
Stop marker
Action/handling
Guard/villkor
/book.borrowed(self)
borrow()
on loan
[last copy]
Exempel: mikrovågsugnen
Full power
Enabled
do: operate
oven
Full
power
Half
power
Half
power
Full
power
Number
Timer
Door
open
Door
closed
Door
closed
Door
open
Start
do: set power
= 600
Half power
do: set power
= 300
Set time
do: get number
exit: set time
Disabled
Operation
Timer
Cancel
Waiting
do: display
time
Waiting
do: display
time
do: display
'Ready'
do: display
'Waiting'
Först: ett kommunikationsdiagram
En äldre version av ett interaktionsdiagram. Det visar
alla ingående objekt och interaktioner. Interaktionerna
är numrerade efter den ordning de sker i.
Sekvensdiagram
En typ av interaktionsdiagram som
visar hur objekt i ett system interagerar
med varandra.
Varje diagram visar hur ett enda
användningsfall ser ut i systemet
Diagrammet visar vilka objekt som
ingår i interaktionen, vilka
meddelanden som utbyts och i vilken
ordning dessa meddelanden utbyts.
Sekvensdiagrammet
• Sekvensdiagram visar objekt, deras livstid och
deras aktivitet under en viss uppgift.
• Meddelanden numreras inte utan ordningen mellan
dessa visas genom var på livstidsaxeln de sker.
Tiden startar högst upp och rör sig nedåt i
diagrammet.
Användningsfall: låna en bok
Use case-diagram
Use Case-diagram
Use Case-diagrammet beskriver
funktionaliteten hos ett system från
användarens perspektiv.
De användningsfall som modelleras i
ett Use Case-diagram förtydligas med
fördel i ett aktivitets-, kommunikations-
eller sekvensdiagram.
Aktörer
Aktören interagerar med ett
subjekt i en roll som
specificeras i text. En aktör
modellerar inte nödvändigtvis
en unik entitet, utan kan
representera flera olika. På
samma sätt kan en unik
entitet modelleras av flera
olika aktörer, baserat på olika
roller.
Aktörer, andra representationer
En aktör behöver inte
symboliseras med en
streckgubbe, utan kan
symboliseras med valfri
ikon.
Aktörer kan även
modelleras som klasser
med actor-stereotyp.
Subjekt
Subjektet är det system
eller delsystem som
aktören interagerar
med. Ett system kan
möjliggöra ett eller flera
användningsfall.
Användningsfall
Användningsfallet
betecknar en inkaplsad bit
funktionalitet. Det namnges i
regel efter den
händelsekedja som ska
modelleras.
Ett användningsfall kan, men
måste inte, ha attribut och
operationer kopplade till sig.
Användningsfall, utbyggnadspunkter
Ett användningsfall kan
definiera utbyggnads-
punkter, vilka används för
utökade användningsfall
(se senare slide). Dessa
punkter berättar vilka
utökningar som är tillåtna
för det aktuella
användningsfallet.
Användningsfall, klassnotation
Användningsfall kan
även modelleras som
klasser i klassdiagram.
Notera symbolen i övre
högra hörnet.
Associering
Aktörer kan vara
associerade med flera
användningsfall och vice
versa. I Use Case-diagram
placeras vanligtvis externa
aktörer till vänster om
användningsfallen och
interna aktörer till höger
om dessa.
Multiplicitet
Aktörer kan även ha
relationer till flera
användningsfall av
samma typ och vice
versa.
Multipliciteter anges på
samma sätt som i
klassdiagram.
Generalisering
Ett användningsfall kan
agera bas åt ett antal andra
användningsfall. Detta är
användbart när ett flertal
externa användningsfall
bidrar med liknande
funktionalitet, men endast
basfunktionaliteten
egentligen är intressant.
Utökade användningsfall
Användningsfall kan utökas
med ytterligare funktionalitet
när detta önskas.
Det användningsfall som
utökas är helt fristående,
medan det utökande
användningsfallet är
beroende av sin “partner”.
Inkludering
Ett användningsfall kan
inkludera ett annat
användningsfall som
definieras på någon
annan plats. Detta gör
att vi kan återanvända
användningsfall.
Ett gemensamt exempel
Vi utgår från förra laborationens Niagara-beskrivning.
– Vilka användningsfall kan vi hitta i den?
– Vilka hittar vi med följande tillägg?
Schemahandläggaren kan boka lokaler i Niagara. Detta görs
tillsammans med lärarna, vilka undervisar i nämnda lokaler.
Lokalvårdarna ansvarar för att lokalerna är rena, medan
vaktmästarna ansvarar för att lokalerna är hela och funktionella.
På taket kan studenterna exempelvis titta på Köpenhamn, äta
lunch eller kasta apelsiner på förbipasserande fotgängare.
Aktivitetsdiagram
Aktivitetsdiagram
En typ av beteendediagram som visar
hur kontrollflödet i ett system eller
delsystem ser ut.
Varje diagram visar hur ett enda
användningsfall ser ut i systemet, men
kan hänvisa till andra användningsfall.
Aktiviteter
En aktivitet (activity) är
ett händelseflöde. Den
identifieras med ett namn,
vilket ofta motsvarar ett
användningsfall i ett
Use Case-diagram eller
en sekvens beskrivet i ett
sekvensdiagram.
Parametrar
Vi kan ange parametrar
till en aktivitet. Dessa
modelleras som rektanglar
på gränsen till aktiviteten.
Parametrar är indata som
behövs för att kunna utföra
en given aktivitet.
Handlingar
Den grundläggande komponenten
i ett aktivitetsdiagram är
handlingen (eller action). En
handling utgör ett atomärt steg i en
aktivitet, vilket innebär att den inte
kan brytas ner i mindre
beståndsdelar.
Handlingar namnges på samma
sätt som användningsfall, men
undvik att återanvända namnen
inom ett givet system.
Handling beskriven i
ett för applikationen
givet handlingsspråk.
Bågar
Vi kopplar samman
handlingar med pilar
kallade bågar (edges).
Bågarna är riktade och
kan vara uppmärkta
med ett namn eller en
vakt ovanför pilhuvudet.
Lokala förutsättningar
Vi kan ge en händelse lokala
förutsättningar som måste vara
uppfyllda för att händelsen ska
genomföras. På samma sätt kan vi
även specificera de förutsättningar
som krävs för att en händelse ska
räknas som slutförd.
Dessa modelleras som
kommentarer med stereotyperna
localPrecondition och
localPostcondition.
Yttre handlingar
Yttre handlingar är
handlingar som strikt taget
inte tillhör det aktuella
diagrammet. De specificeras
ofta, men inte alltid, i ett
annat diagram i
systembeskrivningen.
Yttre handlingar markeras
med stereotypen external.
Generaliseringar
Vi kan generalisera
handlingar genom att
modellera dessa på
samma sätt som arv i
klassdiagram.
Abstrakta handlingar
kan modelleras genom
att kursivera namnet.
Periodiska handlingar
Periodiska handlingar är
handlingar som sker med
jämna mellanrum och
därför inte nödvändigtvis
initialiseras på initiativ av en
användare.
Dessa handlingar
modelleras med ett stiliserat
timglas.
Signaleringar, skicka signal
Signaleringar används för
att koppla samman olika
arbetsflöden. Ett vanligt
synsätt på detta är att vårt
flöde har sidoeffekter som
modelleras på andra håll.
Vi visar att en händelse
skickar en signal med en
spetsig box.
Signaleringar, ta emot signal
På liknande sätt som vi skickar
signaler kan vi även ta emot
signaler i våra modeller. Vi
visar detta med en “avbiten”
rektangel.
Vi kan även modellera hopp in
och ut ur ett diagram genom att
använda en skickad signal och
en mottagen signal bredvid
varandra.
Partitioner
Vi kan förtydliga var
händelser hör hemma
med hjälp av partitioner.
Dessa modelleras som
simbanor (swim lanes),
vilka kan vara både
horisontella och vertikala.
Kontrollnoder
För att kunna modellera
mer komplexa
händelsekedjor än rent
linjära sådana använder
vi kontrollnoder. Dessa
används för att modellera
exempelvis if-satser,
loopar och så vidare.
Start/slut
Startnoden visar, precis som i ett
tillståndsdiagram, var ett flöde startar.
Flödesavslutningsnoden (flow final
node) visar att ett delflöde avslutas. Den
kan användas för att modellera delflöden
i ett större flöde som kräver exempelvis
en signalering eller periodisk händelse
för att kunna slutföras.
Avslutningsnoden (activity final node)
visar, precis som i ett tillståndsdiagram,
var ett flöde avslutas.
Beslutsnoder
Beslutsnoder (decision
nodes) används för att
modellera if-satser och
liknande kontrollstrukturer,
exempelvis select/switch-
satser.
Varje förgrening beskrivs med
en vakt (guard). Beslutsnoder
kan ha två eller flera
förgreningar.
vakt
Beslutsnoder, input
Vi kan modellera input
(tänk villkor) i en
beslutsnod med en
kommentar kopplad till
beslutsnoden med en
streckad linje.
Inputen märks upp med
prototypen decisionInput.
Sammanslagningsnoder
Sammanslagningsnoder
(merge nodes) används för
att modellera att två eller
flera vägar från en
beslutsnod når samma plats
i flödet. Dessa noder kan
även utgöra beslutsnoder för
nästa steg i flödet.
Avgreningar och anslutningar
Avgreningar (forks) visar att
två eller flera delflöden sker
parallellt. Dessa delflöden är
oberoende av varandra och
samlas samman i en
anslutningspunkt (join point).
Precis som med
sammanslagningspunkter kan
en punkt även utgöra en ny
avgrening.
Sammankopplare
Sammankopplaren
(connector) kopplar
samman två delar av
flödet. Den har ingen
annan betydelse än att
du slipper dra streck
över hela diagrammet.
motsvara
r
Objektflöden
Ett objektflöde (object flow) visar
att den data som skickas från en
handling till en annan utgörs av ett
objekt. Dessa modelleras med
namngivna rektanglar som i ett
objektdiagram.
En båge i ett objektflöde kan ha en
vikt, vilket innebär att övergången till
nästa handling sker när villkoret (dvs
antalet mottagna objekt) är uppfyllt.
Interrupts
Interrupts är händelser
som kan inträffa när som
helst i flödet. De
avbryter flödet och tar
prioritet över skeendet.
Pins
En pin visar vilken typ
av objekt som förväntas
eller skapas av en
handling. De kan
användas för att ersätta
objektflöden och göra ett
diagram lite mindre
plottrigt.
Exempel
Diagrammet till höger,
som är lånat från UML
Diagrams.org, visar
flödet för hur ett e-recept
hanteras inom den
brittiska sjukvården.
Exempel
Diagrammet till höger,
som är lånat från UML
Diagrams.org, visar flödet
för Single Sign On hos
Googles olika
applikationer. Det här kan
vara trevligt att känna till
inför vår nästa kurs.
Slutligen
Läsanvisningar
Object-Oriented Systems Analysis and Design Using UML
– 5.2 Modeller och diagram
– 5.3 Aktivitetsdiagram
– 6.6 Use Case-diagram
– Appendix A Notationssammanställningar
UML Diagrams.org
– https://www.uml-diagrams.org/use-case-diagrams.html
– https://www.uml-diagrams.org/activity-diagrams.html

More Related Content

Featured

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by HubspotMarius Sescu
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTExpeed Software
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsPixeldarts
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthThinkNow
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfmarketingartwork
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 

Featured (20)

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 

Introduktion till UML, OOAD & OOP, del 3

  • 1. Introduktion till UML, OOAD & OOP, del 3 Data- och informationsvetenskap: Objektorienterad programmering och modellering för IA Johan Holmberg 2019-09-16
  • 2. Dagens agenda • Förra föreläsningen • Aktivitetsdiagram • Use case-diagram
  • 3. Tillståndsdiagram Tillståndsdiagram beskriver beteendet hos en avgränsad del av ett system. Diagrammet visar hur tillståndet hos (del)systemets ingående objekt kan förändras.
  • 5. Exempel: mikrovågsugnen Full power Enabled do: operate oven Full power Half power Half power Full power Number Timer Door open Door closed Door closed Door open Start do: set power = 600 Half power do: set power = 300 Set time do: get number exit: set time Disabled Operation Timer Cancel Waiting do: display time Waiting do: display time do: display 'Ready' do: display 'Waiting'
  • 6. Först: ett kommunikationsdiagram En äldre version av ett interaktionsdiagram. Det visar alla ingående objekt och interaktioner. Interaktionerna är numrerade efter den ordning de sker i.
  • 7. Sekvensdiagram En typ av interaktionsdiagram som visar hur objekt i ett system interagerar med varandra. Varje diagram visar hur ett enda användningsfall ser ut i systemet Diagrammet visar vilka objekt som ingår i interaktionen, vilka meddelanden som utbyts och i vilken ordning dessa meddelanden utbyts.
  • 8. Sekvensdiagrammet • Sekvensdiagram visar objekt, deras livstid och deras aktivitet under en viss uppgift. • Meddelanden numreras inte utan ordningen mellan dessa visas genom var på livstidsaxeln de sker. Tiden startar högst upp och rör sig nedåt i diagrammet.
  • 11. Use Case-diagram Use Case-diagrammet beskriver funktionaliteten hos ett system från användarens perspektiv. De användningsfall som modelleras i ett Use Case-diagram förtydligas med fördel i ett aktivitets-, kommunikations- eller sekvensdiagram.
  • 12. Aktörer Aktören interagerar med ett subjekt i en roll som specificeras i text. En aktör modellerar inte nödvändigtvis en unik entitet, utan kan representera flera olika. På samma sätt kan en unik entitet modelleras av flera olika aktörer, baserat på olika roller.
  • 13. Aktörer, andra representationer En aktör behöver inte symboliseras med en streckgubbe, utan kan symboliseras med valfri ikon. Aktörer kan även modelleras som klasser med actor-stereotyp.
  • 14. Subjekt Subjektet är det system eller delsystem som aktören interagerar med. Ett system kan möjliggöra ett eller flera användningsfall.
  • 15. Användningsfall Användningsfallet betecknar en inkaplsad bit funktionalitet. Det namnges i regel efter den händelsekedja som ska modelleras. Ett användningsfall kan, men måste inte, ha attribut och operationer kopplade till sig.
  • 16. Användningsfall, utbyggnadspunkter Ett användningsfall kan definiera utbyggnads- punkter, vilka används för utökade användningsfall (se senare slide). Dessa punkter berättar vilka utökningar som är tillåtna för det aktuella användningsfallet.
  • 17. Användningsfall, klassnotation Användningsfall kan även modelleras som klasser i klassdiagram. Notera symbolen i övre högra hörnet.
  • 18. Associering Aktörer kan vara associerade med flera användningsfall och vice versa. I Use Case-diagram placeras vanligtvis externa aktörer till vänster om användningsfallen och interna aktörer till höger om dessa.
  • 19. Multiplicitet Aktörer kan även ha relationer till flera användningsfall av samma typ och vice versa. Multipliciteter anges på samma sätt som i klassdiagram.
  • 20. Generalisering Ett användningsfall kan agera bas åt ett antal andra användningsfall. Detta är användbart när ett flertal externa användningsfall bidrar med liknande funktionalitet, men endast basfunktionaliteten egentligen är intressant.
  • 21. Utökade användningsfall Användningsfall kan utökas med ytterligare funktionalitet när detta önskas. Det användningsfall som utökas är helt fristående, medan det utökande användningsfallet är beroende av sin “partner”.
  • 22. Inkludering Ett användningsfall kan inkludera ett annat användningsfall som definieras på någon annan plats. Detta gör att vi kan återanvända användningsfall.
  • 23. Ett gemensamt exempel Vi utgår från förra laborationens Niagara-beskrivning. – Vilka användningsfall kan vi hitta i den? – Vilka hittar vi med följande tillägg? Schemahandläggaren kan boka lokaler i Niagara. Detta görs tillsammans med lärarna, vilka undervisar i nämnda lokaler. Lokalvårdarna ansvarar för att lokalerna är rena, medan vaktmästarna ansvarar för att lokalerna är hela och funktionella. På taket kan studenterna exempelvis titta på Köpenhamn, äta lunch eller kasta apelsiner på förbipasserande fotgängare.
  • 25. Aktivitetsdiagram En typ av beteendediagram som visar hur kontrollflödet i ett system eller delsystem ser ut. Varje diagram visar hur ett enda användningsfall ser ut i systemet, men kan hänvisa till andra användningsfall.
  • 26. Aktiviteter En aktivitet (activity) är ett händelseflöde. Den identifieras med ett namn, vilket ofta motsvarar ett användningsfall i ett Use Case-diagram eller en sekvens beskrivet i ett sekvensdiagram.
  • 27. Parametrar Vi kan ange parametrar till en aktivitet. Dessa modelleras som rektanglar på gränsen till aktiviteten. Parametrar är indata som behövs för att kunna utföra en given aktivitet.
  • 28. Handlingar Den grundläggande komponenten i ett aktivitetsdiagram är handlingen (eller action). En handling utgör ett atomärt steg i en aktivitet, vilket innebär att den inte kan brytas ner i mindre beståndsdelar. Handlingar namnges på samma sätt som användningsfall, men undvik att återanvända namnen inom ett givet system. Handling beskriven i ett för applikationen givet handlingsspråk.
  • 29. Bågar Vi kopplar samman handlingar med pilar kallade bågar (edges). Bågarna är riktade och kan vara uppmärkta med ett namn eller en vakt ovanför pilhuvudet.
  • 30. Lokala förutsättningar Vi kan ge en händelse lokala förutsättningar som måste vara uppfyllda för att händelsen ska genomföras. På samma sätt kan vi även specificera de förutsättningar som krävs för att en händelse ska räknas som slutförd. Dessa modelleras som kommentarer med stereotyperna localPrecondition och localPostcondition.
  • 31. Yttre handlingar Yttre handlingar är handlingar som strikt taget inte tillhör det aktuella diagrammet. De specificeras ofta, men inte alltid, i ett annat diagram i systembeskrivningen. Yttre handlingar markeras med stereotypen external.
  • 32. Generaliseringar Vi kan generalisera handlingar genom att modellera dessa på samma sätt som arv i klassdiagram. Abstrakta handlingar kan modelleras genom att kursivera namnet.
  • 33. Periodiska handlingar Periodiska handlingar är handlingar som sker med jämna mellanrum och därför inte nödvändigtvis initialiseras på initiativ av en användare. Dessa handlingar modelleras med ett stiliserat timglas.
  • 34. Signaleringar, skicka signal Signaleringar används för att koppla samman olika arbetsflöden. Ett vanligt synsätt på detta är att vårt flöde har sidoeffekter som modelleras på andra håll. Vi visar att en händelse skickar en signal med en spetsig box.
  • 35. Signaleringar, ta emot signal På liknande sätt som vi skickar signaler kan vi även ta emot signaler i våra modeller. Vi visar detta med en “avbiten” rektangel. Vi kan även modellera hopp in och ut ur ett diagram genom att använda en skickad signal och en mottagen signal bredvid varandra.
  • 36. Partitioner Vi kan förtydliga var händelser hör hemma med hjälp av partitioner. Dessa modelleras som simbanor (swim lanes), vilka kan vara både horisontella och vertikala.
  • 37. Kontrollnoder För att kunna modellera mer komplexa händelsekedjor än rent linjära sådana använder vi kontrollnoder. Dessa används för att modellera exempelvis if-satser, loopar och så vidare.
  • 38. Start/slut Startnoden visar, precis som i ett tillståndsdiagram, var ett flöde startar. Flödesavslutningsnoden (flow final node) visar att ett delflöde avslutas. Den kan användas för att modellera delflöden i ett större flöde som kräver exempelvis en signalering eller periodisk händelse för att kunna slutföras. Avslutningsnoden (activity final node) visar, precis som i ett tillståndsdiagram, var ett flöde avslutas.
  • 39. Beslutsnoder Beslutsnoder (decision nodes) används för att modellera if-satser och liknande kontrollstrukturer, exempelvis select/switch- satser. Varje förgrening beskrivs med en vakt (guard). Beslutsnoder kan ha två eller flera förgreningar. vakt
  • 40. Beslutsnoder, input Vi kan modellera input (tänk villkor) i en beslutsnod med en kommentar kopplad till beslutsnoden med en streckad linje. Inputen märks upp med prototypen decisionInput.
  • 41. Sammanslagningsnoder Sammanslagningsnoder (merge nodes) används för att modellera att två eller flera vägar från en beslutsnod når samma plats i flödet. Dessa noder kan även utgöra beslutsnoder för nästa steg i flödet.
  • 42. Avgreningar och anslutningar Avgreningar (forks) visar att två eller flera delflöden sker parallellt. Dessa delflöden är oberoende av varandra och samlas samman i en anslutningspunkt (join point). Precis som med sammanslagningspunkter kan en punkt även utgöra en ny avgrening.
  • 43. Sammankopplare Sammankopplaren (connector) kopplar samman två delar av flödet. Den har ingen annan betydelse än att du slipper dra streck över hela diagrammet. motsvara r
  • 44. Objektflöden Ett objektflöde (object flow) visar att den data som skickas från en handling till en annan utgörs av ett objekt. Dessa modelleras med namngivna rektanglar som i ett objektdiagram. En båge i ett objektflöde kan ha en vikt, vilket innebär att övergången till nästa handling sker när villkoret (dvs antalet mottagna objekt) är uppfyllt.
  • 45. Interrupts Interrupts är händelser som kan inträffa när som helst i flödet. De avbryter flödet och tar prioritet över skeendet.
  • 46. Pins En pin visar vilken typ av objekt som förväntas eller skapas av en handling. De kan användas för att ersätta objektflöden och göra ett diagram lite mindre plottrigt.
  • 47. Exempel Diagrammet till höger, som är lånat från UML Diagrams.org, visar flödet för hur ett e-recept hanteras inom den brittiska sjukvården.
  • 48. Exempel Diagrammet till höger, som är lånat från UML Diagrams.org, visar flödet för Single Sign On hos Googles olika applikationer. Det här kan vara trevligt att känna till inför vår nästa kurs.
  • 50. Läsanvisningar Object-Oriented Systems Analysis and Design Using UML – 5.2 Modeller och diagram – 5.3 Aktivitetsdiagram – 6.6 Use Case-diagram – Appendix A Notationssammanställningar UML Diagrams.org – https://www.uml-diagrams.org/use-case-diagrams.html – https://www.uml-diagrams.org/activity-diagrams.html