Visualiser systemet med UML

Komplekse softwaresystemer er svære at analysere og beskrive. Derfor er Unified Modeling Language (UML) blevet udviklet specielt til at beskrive og visualisere objektorienterede og komponentbaserede systemer.

UML

Det er utroligt vigtigt at analysere et kompleks softwaresystem, før man begynder at konstruere eller renovere det. Der findes over 50 teknikker til objekt-orienteret analyse og design, som alle bruger forskellige modeller til at visualisere og beskrive et kompleks objekt-orienteret softwaresystem. Modellerne bruges blandt andet til at kommunikere ud fra samt til at sikre en god arkitektur. Det er her UML kommer ind i billedet.

UML (Unified Modeling Language) bygger på tre af de mest brugte teknikker til objekt-orienteret analyse og design, nemlig Booch's teknik, OOSE (Object-Oriented Software Engineering) og OMT (Object Modeling Technique). UML er blevet udviklet af Rational Software i samarbejde med andre firmaer. UML blev senere til en standard, og den er åben for alle. Mange firmaer bruger UML i forbindelse med store softwareprojekter.

UML er et sprog, notation eller syntaks, der bruges til at beskrive en visuel og logisk model af et system. Systemet kan være et hvilket som helst system, der kan indeholde både information og funktioner, men UML bruges normalt til at beskrive designet af et objekt-orienteret softwaresystem.

Ved brug af UML kan man beskrive et system i mange detaljer på flere abstraktionsniveauer. I sig selv beskriver UML ikke processen for, hvordan modellen skabes, eller hvilken arkitektur der skal bruges til implementering. Ved brug af UML får man notationen til at definere et system med en specifik arkitektur, og dette bliver gjort på en objektorienteret måde.

UML kan altså både bruges til at specificere, visualisere, konstruere og dokumentere et softwaresystem, men UML er ikke et programmeringssprog, ikke en model og ikke et værktøj.

Til at visualisere de mange detaljer og abstraktionsnivauer, der findes i et softwaresystem, benyttes der diagrammer til præsentation eller modellering af både analyse og design. Til alle diagrammer er der tilknyttet en specifik notation, modelelementer og retningslinier. Notation er de vigtigste koncepter og semantik, modelelementer er en visuel gengivelse af elementerne i modellen og retningslinier er kort sagt regler for brug af notation og modelelementer.

Eksempel på et use case diagram, som beskrives nærmere i næste afsnit.

Hvis vi for eksempel kigger på begrebet use case, som er en handling eller en bestemt opførsel en bruger gør i forbindelse med brug af softwaresystemet, så repræsenteres en sådan use case af en oval cirkel, hvortil der er knyttet en beskrivelse for eksempel "Tegne en forsikring". En bruger repræsenteres som en tændstikmand med en beskrivelse, eksempelvis "Forsikringsagent". En use case kan relateres til andre use cases, og dette repræsenteres af en pil.

Analyse

En objekt-orienteret analyse består af tre trin:

1. Use Case modellering.
2. Klassemodellering (Class Modeling).
3. Dynamisk modellering (Dynamic Modeling).

Disse tre trin kan normalt ikke udføres i den ovenstående rækkefølge, da ændringer i en model eller diagram vil medføre ændringer i de to andre diagrammer. Derfor bliver trinene udført parallelt.

1. Use Case Modeling
Bestem hvordan de forskellige resultater beregnes af systemet, dog uden at tænke på, hvilken rækkefølge dette gøres. Præsenter denne information i et use case diagram og tilhørende scenarier (en instans af en use case). Et use case diagram visualiserer brugernes forhold til hinanden, hvordan brugerne vil benytte systemet. Et use case diagram er altså en definition af kravene for et system, som både kan forstås af brugere og udviklere.

2. Klasse modellering
Bestem klasserne og deres attributter, og bestem herefter de indbyrdes forhold imellem klasserne. Præsenter dette i et klassediagram (class diagram). Klassediagrammet beskriver typer af objekter og deres indbyrdes forhold.

I samme gruppe (Static Structure) som klassediagrammer findes også objektdiagrammer, der illustrerer aktuelle objekter og deres indbyrdes forhold. Men at beskrive alle objekter i et system kan være omfattende, især da mange objekter ligner hinanden. Derfor bruges klassediagrammer mere end objekt diagrammer. Objekter er først rigtig vigtige, når de har forbindelse til et andet objekt, og til at beskrive dette bruges vekselvirkningsdiagrammer, som beskrives i næste afsnit.

3. Dynamisk modellering
Bestem hvilke handlinger der udføres på eller af hver klasse eller subklasse. Præsenter denne information i statusdiagram (state diagram). Et state diagram viser, hvilke operationer som afhænger af hvilke klasser, og hvordan et objekt fungerer i forskellige stadier. Alle de mulige scenarier reflekteres af diagrammet.

Design

Objekt-orienteret design består af fire trin:

1. Konstruer vekselvirkningsdiagrammer (interaction diagram) for hvert scenarie.
2. Konstruer detaljerede klassediagrammer.
3. Design systemet med vægt på forholdet mellem objekter og klienter.
4. Gå videre med det detaljerede design.

1. Vekselvirkningsdiagrammer
UML understøtter to vekselvirkningsdiagrammer, sekvens (sequence) og samarbejdsdiagrammer (collaboration). Begge diagrammer viser de samme ting - objekter og de meddelelser som sendes imellem objekterne. Men de to diagrammer lægger, som navnene antyder, vægt på noget forskelligt. Sekvensdiagrammer lægger vægt på den kronologiske rækkefølge af meddelelser, og disse diagrammer bruges derfor, hvor rækkefølgen af handlinger er vigtig. Samarbejdsdiagrammer lægger vægt på forholdet mellem objekter, og de er derfor gode til at illustrere strukturen af et softwaresystem.

2. Detaljerede klassediagrammer
Klassediagrammet, som blev fremstillet i analysefasen, viser klasser og deres attributter, men ikke deres funktioner og metoder. Metoder og funktioner indsættes nu i et mere detaljeret klassediagram.

3. Forholdet mellem objekter og klienter
Et objekts klient defineres som en programdel, der sender en meddelelse til det pågældende objekt. For eksempel hvis objektet C sender en meddelelse til objektet O, så er C en klient af O. Der skal derfor fremstilles et diagram, som illustrerer forholdene mellem objekter og klienter.

4. Detaljeret design
Det detaljerede design kan vises ved hjælp af forskellige metoder, deriblandt pseudokode eller ved brug af tabeller, der beskriver hver komponent.

Udover de beskrevne diagrammer findes der et aktivitetsdiagram (activity diagram), som kan bruges alle steder i en model til at vise et flow af aktiviteter. Aktivitetsdiagrammet kan bruges som et supplement til vekselvirkningsdiagrammer, da disse kun illustrerer de objekter, som afleverer meddelelser, mens et aktivitetsdiagram illustrerer de operationer som sendes imellem objekterne. Men de fleste bruger aktivitetsdiagrammet til at definere et flow af handlinger på forretningsniveau.

Computerworld Events

Vi samler hvert år mere end 6.000 deltagere på mere end 70 events for it-professionelle.

Ekspertindsigt – Lyt til førende specialister og virksomheder, der deler viden om den nyeste teknologi og de bedste løsninger.
Netværk – Mød beslutningstagere, kolleger og samarbejdspartnere på tværs af brancher.
Praktisk viden – Få konkrete cases, værktøjer og inspiration, som du kan tage direkte med hjem i organisationen.
Aktuelle tendenser – Bliv opdateret på de vigtigste dagsordener inden for cloud, sikkerhed, data, AI og digital forretning.

It-løsninger | Nordhavn

SAP Excellence Day 2026

Få konkrete erfaringer med S/4HANA, automatisering og AI i praksis. Hør hvordan danske virksomheder realiserer gevinster og etablerer effektive SAP-løsninger. Vælg fysisk deltagelse hos SAP eller deltag digitalt.

Infrastruktur | København

Datacenterstrategi 2026

Denne konference bidrager med viden om, hvordan du balancerer cloud, on-premise og hybrid infrastruktur med fokus på kontrol, compliance og forretning.

Sikkerhed | Aarhus C

Identity Festival 2026 - Aarhus

Er du klar til en dag, der udfordrer din forståelse af, hvad Identity & Access Management kan gøre for din organisation? En dag fyldt med indsigt, inspiration og løsninger, der sætter kursen for, hvordan vi arbejder med IAM i de kommende år.

Se alle vores events inden for it

Navnenyt fra it-Danmark

Idura har pr. 1. januar 2026 ansat Lars Mørch, 54 år,  som VP of Sales. Han skal især beskæftige sig med Iduras salgsorganisation, implementere en ny go-to-market-model og sikre udviklingen af virksomhedens identitetsplatform. Han kommer fra en stilling som Regional Vice President hos Avallone. Han er uddannet på CBS og har en BA i Organization & Innovation. Han har tidligere beskæftiget sig med internationalt SaaS-salg og forretningsudvikling fra både scale-ups og globale teknologivirksomheder. Nyt job

Lars Mørch

Idura

Adeno K/S har pr. 2. februar 2026 ansat Kia Harding Martinussen som ServiceNow Expert. Hun kommer fra en stilling som Principal Consultant hos Devoteam A/S. Nyt job