Abstraktion indebærer at udvælge og beskrive kun de vigtigste egenskaber ved noget for at gøre det lettere at forstå, genbruge eller arbejde med. En abstraktion fjerner uvæsentlige detaljer og præsenterer en forenklet version, der er tilpasset et bestemt formål.
Abstraktion vedrører de måder, hvorpå højere, mindre virkelige begreber udledes af brugen og klassificeringen af bogstavelige ("virkelige" eller "konkrete") data eller andre oplysninger. Ved at gruppere, navngive og fokusere på bestemte egenskaber skaber man begreber, der gør det muligt at tænke og kommunikere mere effektivt uden at skulle forholde sig til alle detaljer hver gang.
Abstraktioner kan dannes ved at reducere informationsindholdet i et begreb eller et fænomen, ofte for kun at bevare de oplysninger, der er nødvendige for et bestemt formål. Hvis man f.eks. abstraherer en læderfodbold til den mere generelle idé om en bold, vil man kun beholde oplysningerne om boldens generelle egenskaber og adfærd og udelade den pågældende bolds karakteristika. Sammenlign med ordet: generalisere. Det modsatte af adjektivet "abstrakt" er almindeligvis ordet "konkret".
Hvorfor bruge abstraktion?
- Forenkling: Mindre kompleksitet gør det lettere at forstå og kommunikere.
- Genbrug: En abstraction kan bruges i mange sammenhænge uden at skulle redefineres.
- Modularitet: Systemer kan opdeles i dele med klart definerede roller.
- Skalerbarhed: Højere niveauer af abstraktion gør det nemmere at arbejde med store og komplekse systemer.
- Fokus: Giver mulighed for at fokusere på de aspekter, der er relevante for en given opgave.
Typer og konkrete eksempler
- Hverdagsliv: Et kort er en abstraktion af et landskab (udvælger veje, afstande og symboler). En opskrift abstraherer madlavning ved at beskrive ingredienser og trin uden at vise alle små variationer.
- Matematik: Tal, funktioner og strukturer (f.eks. en gruppe) er abstraktioner, der skjuler konkrete beregninger og fokuserer på egenskaber og relationer.
- Videnskab og modellering: En model af klima eller en økonomisk model abstraherer virkeligheden for at gøre prognoser eller teste hypoteser.
- Informatik: Her er abstraktion centralt:
- Procedural abstraktion: funktioner/metoder skjuler implementering (du behøver kun kende input/output).
- Databstraktion: datatyper og strukturer (f.eks. lister, tabeller) skjuler lagringsdetaljer.
- Objektorienteret abstraktion: klasser og interfaces definerer roller og adfærd uden at afsløre intern tilstand.
- Kunst: Abstrakt kunst fokuserer på form, farve og komposition frem for genkendelige motiver.
Hvordan skaber man en god abstraktion?
- Definér formålet: Hvad skal abstraktionen bruges til? Det bestemmer hvilke detaljer, der er relevante.
- Udvælg nøgleegenskaber: Bevar kun de egenskaber, der understøtter formålet.
- Skab et klart interface eller en beskrivelse: Gør det tydeligt, hvordan abstraktionen bruges (fx hvilke metoder, parametre eller begreber).
- Test ved anvendelse: Brug abstraktionen i praksis for at sikre, at den dækker de nødvendige situationer uden at være overkompliceret.
- Iterér og forfine: Fjern unødvendige detaljer eller tilføj flere, hvis abstraktionen taber for meget væsentlig information.
Faldgruber og begrænsninger
- Over-abstraktion: Hvis man fjerner for meget, mister man nødvendige detaljer, og abstraktionen bliver ubrugelig.
- Lækende abstraktioner: Nogle abstraktioner "lækker", så lavniveaudetaljer alligevel påvirker brugen — det kan føre til fejl eller forvirring.
- For snæver eller for bred: En for snæver abstraktion genbruges dårligt; en for bred kan være upræcis.
Eksempler til sidst
- En bil beskrives abstrakt som et transportmiddel med hjul, motor og styring — men når du skal reparere en specifik bil, skal du kende konkrete detaljer.
- I programmering kan en funktion sum(a, b) være en abstraktion for enhver måde at lægge to tal sammen — brugeren behøver ikke vide, hvordan additionen er implementeret.
- En telefonbog er en abstraktion af personoplysninger: den viser navn og nummer, men ikke alle detaljer om personens liv.
Abstraktion er et kraftfuldt tankeredskab, der hjælper os med at håndtere kompleksitet i sprog, teknologi, videnskab og hverdag. God abstraktion balancerer mellem at skjule unødvendige detaljer og bevare de oplysninger, der er nødvendige for at nå sit formål.

