Een centraal thema voor Software Engineering is het beheersen van de complexiteit.
Software en/of systemen kunnen zo complex zijn dat het onmogelijk is om in je eentje in te zien hoe alles in elkaar zit.
Hoe zou dit probleem kunnen worden aangepakt?
Software is aan verandering onderhevig.
Dat komt omdat software vaak een stukje van de werkelijkheid modelleert.
Bijvoorbeeld de dienstregeling van de NS.
Die werkelijkheid verandert.
Software zal dus ook mee moeten veranderen.
Wat gebeurt er als software niet mee verandert?
Wat zou bedoeld worden met “Software wordt ontwikkeld voor anderen en dus niet voor jezelf”?