Systemutveckling är i strikt mening en formalisering av användarnas önskemål i form av exekverbara datorprogram. För att effektivisera, systematisera och till slut automatisera denna formaliseringsprocess maximalt har en mängd formella metoder föreslagits under de två senaste decennierna. I kapitlet diskuteras följande frågor: Vilka är dessa formella metoder och vilka för- och nackdelar har de jämfört med traditionella, informella metoder? Fungerar formella metoder bara i teorin men inte i praktiken? Som illustration presenteras en studie om hur UML för objekt-orienterad systemutveckling kan formaliseras med hjälp av en formell teknik kallad FUML