Programmering
  1. Studieområdet
  2. Metoder i Programmering
  • Eksamen
  • Projektarbejde
  • Synopsis
  • Cheatsheets
    • Python cheatsheet
    • Rust cheatsheet
    • Kodningsplatforme
  • Opsætning
    • Git
    • Python
    • Rust
    • VScode
  • Teori
    • Arbejdsproces
      • Abstraktion
      • Fejlfinding
      • Generalisering
      • Git
      • Kommentarer
      • Moduler
      • Pakker
    • Data
      • Datastrukturer
      • Datatyper
      • Ejerskab og referencer
      • Enum
      • Hukommelse og pointers
      • Indkapsling
      • Polymorfi
      • Struct
    • Diagrammer
      • Brugerhistorier
      • Klassediagrammer
      • Rutediagrammer
      • Tegneprogrammer
    • Logik
      • Anonyme Funktioner
      • Fejlhåndtering
      • Grådig algoritme
      • Metaprogrammering
      • Samtidig programmering
  • Studieområdet
    • Forslag til emner
    • Empiri
    • Metoder i Programmering

På denne side

  • Trinvis Forbedring
    • Faser
    • Aktiviteter
    • Undermetoder og eksempler
  1. Studieområdet
  2. Metoder i Programmering

Metoder i Programmering

Udgivet

30. marts 2026

Trinvis Forbedring

Faser

Den overordnede arbejdsmetode i programmering er trinvis forbedring [1], hvor man iterativt planlægger, udarbejder og evaluerer sit program som i den arbejdsproces der beskrives til informatikfaget [2], se Figur 1.

Figur 1: Trinvis forbedring

Aktiviteter

Trinvis forbedring kan opdeles i de tre aktiviteter: forfinelse, udvidelse og omstrukturering [1]. Man starter måske med to iterationer hvor programmet udvides, hvorefter der laves en iteration med omstrukturering osv. Hver iteration svarer til en cyklus i ovenstående figur hvor alle tre faser gennemgås.

Undermetoder og eksempler

Trinvis forbedring kan yderligere opdeles i undermetoder, der benyttes i en eller flere faser. Nogle konkrete eksempler på disse metoder gennemgås nedenfor opdelt i de faser hvor de ofte benyttes. Bemærk dog at mange af undermetoderne kan bruges på flere forskellige måder og derfor kan være relevant i flere faser.

Planlægning

  • Funktionsstubbe: Strukturen af et program kan påbegyndes og udvides ved at skrive funktionsstubbe og beskrive funktionaliteten vha. kommentarer.

  • Skitsering vha. diagrammer: Programmets opbygning (data, logisk og/eller brugerflade) kan designes ved at skitsere rutediagrammer, brugerhistorier, diagrammer over funktionskald, klassediagrammer eller andet.

  • Abstraktion: Man kan designe sit program i forskellige abstraktionsniveauer og fx indkapsle elementer der har logisk sammenhæng.

  • Generalisering: Funktioner eller klasser kan generaliseres.

Udarbejdelse

  • Programmeringsparadigme: Man kan arbejde ud fra principper i forskellige programmeringsparadigmer fx objektorienteret kodning, procedural programmering eller andet.

  • Mañana-princippet: Under kodning udelades et større problem eller et specialtilfælde og man laver en funktionsstub og vender tilbage til implementeringen ved en senere iteration.

  • Polymorfi: Samme grænseflade kan anvendes til forskellige datatyper fx vha. overlæsning eller nedarvning.

  • Fejlfinding: Både under implementation og på baggrund af tidligere evaluering kan det være nødvendigt at fejlfinde fx vha. debugger eller systematisk gennemgang af kildekoden.

Evaluering

  • Brugertest: Programmet evalueres på baggrund af test udført af bruger, andet gruppemedlem eller evt. en selv.

  • Funktionelle test: Dele af programmet evalueres på baggrund af test der kontrollerer input og output. Unit-test kontrollerer enkelte dele af programmet og integrationstest kontrollerer flere dele i sammenhæng. Dette kan automatiseres vha. “assertions” (antagelser) eller biblioteker/frameworks til at udføre tests.

Tilbage til toppen

Referencer

[1]
J. Buch, “5.2 Trinvis forbedring”, i Programmering, Systime. Tilgængelig hos: https://programmering.systime.dk/?id=147
[2]
M. Damhus, J. Buch, og E. Husum, “1. Fra idé til færdigt it-system”, i Informatik, Systime. Tilgængelig hos: https://informatik.systime.dk/?id=1046

ZBC Slagelse HTX

Senest redigeret d. 30. marts 2026

JACS