Systemering är den första fasen i en systemutveckling.

I systemeringsfasen översätts och bearbetas krav till funktioner och informationsmodeller som sedan blir programenheter och databaser, användargränssnitt och gränssnitt mellan program.

Kravspecifikationen kan antingen redan finnas, eller så är det första steget i systemeringen att ta fram en sådan och stämma av den med beställaren.

Programutvecklingsmetodik är en vald metod för att genomföra programutveckling inom IT. Den klassiska metoden kallas för vattenfallsmodellen, vilken innebär att varje programutvecklingsfas ska vara klar innan nästa påbörjas och att omfattande specifikationsarbete sker innan den faktiska programutvecklingen påbörjas.

Specifikationen sker traditionellt top-down och utvecklingen baseras på strukturerad programmering. Det betyder att ett slutmål för projektet formuleras först och programmet bryts sedan successivt ned i mindre funktionella delar.

Nyare metoder är agila, det vill säga lättrörliga, iterativa och testbaserade. De bygger på att man successivt utvecklar många delleveranser (inkrement) av programmet (systemet) och möjliggör att de olika utvecklingsfaserna kan bedrivas cykliskt eller parallellt. Beställare och användare får inflytande under hela utvecklingsprocessen.

Prototyputveckling och test påbörjas så tidigt som möjligt, innan alla detaljer i kravspecifikationen är klara. Beslut om kravspecifikation av leveransversioner tas så sent som möjligt, när användarna har testat och förstått vad de egentligen vill ha och god kunskap finns om behov, tekniska möjligheter och svårigheter.

Man växlar mellan top-down-metoden (att utgå från syfte och mål) och bottom-up-metoden (att utgå från vad man redan har och kan återanvända, och att börja med enkla specialfall men successivt göra programmet allt mer generellt).

Exempel på agila metoder är:

  • Extrem programmering
  • Scrum
  • RUP