Hva er UML?
UML er et visuelt modell-språk for å beskrive, spesifisere og dokumentere programvaresystemer. Det finnes mange typer UML-diagrammer – i IDATx1005 fokuserer vi på fire:
- Use case-diagram – hvem gjør hva med systemet
- Domenemodell – statisk struktur av konsepter og relasjoner
- Sekvensdiagram – dynamisk flyt mellom klasser/aktører
- Aktivitetsdiagram – arbeidsflyt og beslutningspunkter
Use case-diagram
Use case-diagrammer brukes for å illustrere hvem som gjør hva med et system. Viser relasjonene mellom aktører og bruksscenarioer.
Elementer
- Aktør
- En person eller ekstern entitet som bruker systemet. Tegnes som en strekfigur. Kan være bruker, admin, eksternt system.
- Use case
- En funksjon eller tjeneste systemet tilbyr. Tegnes som en oval. Navngis med verb + substantiv (f.eks. «Logg inn», «Send ordre»).
- «include»
- En use case inkluderer alltid en annen. Obligatorisk avhengighet. F.eks. «Betale» inkluderer alltid «Autentisere».
- «extend»
- En use case kan (men trenger ikke) utvideles av en annen. Valgfri avhengighet. F.eks. «Laste opp dokument» kan utvide med «Administrere mapper».
Domenemodell
En domenemodell beskriver data og funksjonalitet innenfor et domene. Enkelt forklart: man definerer en rekke konsepter innenfor et domene, og relasjonene mellom dem.
Elementer
- Klasser – konsepter/entiteter (f.eks. «Skole», «Student», «Instruktør»)
- Attributter – egenskaper til klassen (f.eks. «navn», «studentId»)
- Assosiasjoner – relasjoner mellom klasser (f.eks. «Student enrolledAt Skole»)
- Multiplisitet – antall (f.eks. «1..*» = én eller flere)
- Arv – subklasse arver fra superklasse (f.eks. «Universitet» er en «Skole»)
Domenemodellen er statisk – den viser strukturen, ikke hva som skjer over tid.
Sekvensdiagram
Et sekvensdiagram viser hvordan klasser/aktører samhandler over tid. Klasser vises som vertikale linjer, og meldinger (kall) vises som horisontale piler mellom dem.
Elementer
- Livslinje – vertikal stiplet linje for hver deltaker
- Aktiveringsblokk – rektangel på livslinjen når aktøren er aktiv
- Synkront kall – solid pil (venter på svar)
- Returmelding – stiplet pil tilbake
- loop – repetisjonsboks for gjentatte meldinger
Aktivitetsdiagram
Et aktivitetsdiagram gir et grafisk bilde av en arbeidsflyt. Det beskriver aktiviteter, beslutningspunkter og parallelle flyter.
Elementer
- Startnode – fyllt sirkel (●) – startpunkt
- Aktivitet – avrundet rektangel med handlingsnavn
- Beslutningsnode – diamant med [ja]/[nei]-grener
- Fork/Join – tykk horisontalt linje for parallelle aktiviteter
- Sluttnode – sirkel med prikk inni (◎) – sluttpunkt
Nyttig for å studere rutiner og arbeidsmetoder, samt se hvilke aktiviteter som kan utføres parallelt.
Use case vs. domenemodell
Disse to diagramtypene utfyller hverandre:
| Use case-diagram | Domenemodell |
|---|---|
| Dynamisk – hvem gjør hva | Statisk – hva systemet vet om |
| Funksjonelle krav | Strukturelle konsepter |
| Aktør + brukscenario | Klasse + attributter + relasjoner |
| «Hva kan brukeren gjøre?» | «Hvilke data håndterer systemet?» |
Til sammen gir de dynamikk + struktur – et fullstendig bilde av systemet.