De afgelopen drie jaar won het modelleren van software flink aan populariteit. Software biedt steeds meer functionaliteit en dit heeft zijn weerslag in toenemende complexiteit. Vergelijkbaar met de bouw, waar architecten constructietekeningen maken voordat bouwvakkers hun gereedschap oppakken, is het maken van een applicatiemodel voordat programmeurs code produceren een goede manier om met complexiteit om te gaan. We moeten een abstractieniveau omhoog. Martijn Iseger geeft uitleg over modelleren met domeinspecifieke talen, DSM.
In het proces van requirements naar daadwerkelijke applicaties doen ontwikkelaars veel dubbel. De eerste trede in elk ontwikkelingsproces bestaat uit een oplossing op applicatieniveau. Ontwikkelaars omschrijven de oplossing eerst in termen die te maken hebben met het probleemdomein van de applicatie. In een tweede stap maken ze een gedetailleerd model in de Unified Modelling Language (UML). Derde stap in de abstractieladder is het omzetten van het model naar code in een programmeertaal. Ontwikkelaars moeten hetzelfde probleem dus eigenlijk drie maal oplossen.
Het is opmerkelijk dat ontwikkelaars met alle technische vooruitgang de eerste stap nog steeds zonder toolondersteuning moeten zetten. En dat, terwijl fouten gedurende deze fase van de ontwikkeling het kostbaarste zijn om op te lossen. Het vinden van een oplossing op het niveau van het applicatiedomein is juist steeds complexer.