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».
include vs. extend include = alltid obligatorisk. extend = valgfri utvidelse. Huskeregel: «include» er som et funksjonskall – det skjer alltid. «extend» er som en valgfri plugin.

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
Ikke bare klasser De vertikale linjene trenger ikke representere klasser – de kan representere lag, nivåer, aktører eller andre systemkomponenter.

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-diagramDomenemodell
Dynamisk – hvem gjør hvaStatisk – hva systemet vet om
Funksjonelle kravStrukturelle konsepter
Aktør + brukscenarioKlasse + attributter + relasjoner
«Hva kan brukeren gjøre?»«Hvilke data håndterer systemet?»

Til sammen gir de dynamikk + struktur – et fullstendig bilde av systemet.

Test UML-kunnskapen din

Øv på spørsmål om modellering og UML-diagrammer.

Gå til quiz →