Inleiding

Al in de vorige eeuw hielden informatici zich bezig met de vraag hoe je betrouwbare software moet maken. In 1968 werd er zelfs een grote conferentie aan gewijd. De conferentie kreeg de titel “Software Engineering”. Een tot die tijd weinig gebruikte term. Deelnemers van de conferentie maakten zich vooral zorgen over wat destijds ook wel de software crisis werd genoemd. De kwaliteit van de ontwikkelde software was veelal onder de maat en projecten kostten vaak meer geld en tijd dan van tevoren was gepland. Na de conferentie werd er een rapport gepubliceerd met richtlijnen voor het ontwikkelen van software.

“The major cause [of the software crisis] is that the machines have become several orders of magnitude more powerful! To put it quite bluntly: as long as there were no machines, programming was no problem at all; when we had a few weak computers, programming became a mild problem, and now we have gigantic computers, programming has become an equally gigantic problem. In this sense the electronic industry has not solved a single problem, it has only created them, it has created the problem of using its products.” - Edsger Dijkstra


Er is inmiddels veel veranderd. Software Engineering heeft zich tot een heel eigen vakgebied ontwikkeld. Het is een deelgebied van informatica dat zich bezighoudt met alle aspecten van het bouwen van complexe maar betrouwbare software tot informatiesystemen.

Op Software Engineering zijn een aantal kenmerken van toepassing:

  1. Het gaat altijd over grote programma’s. Dit zijn programma’s die zo groot of complex zijn dat je deze met meerdere personen moet ontwikkelen.
  2. Centraal staat het beheersen van de complexiteit van de software of het informatiesysteem.
  3. Voor de ontwikkeling van software is het noodzakelijk om samen te werken.
  4. Er moet rekening mee gehouden worden dat software verandert.
  5. Software moet efficiënt ontwikkeld worden. Tijd is immers geld.
  6. Software wordt ontwikkeld voor anderen en dus niet voor jezelf. Je hebt te maken met een opdrachtgever, maar ook met een potentieel grote groep gebruikers.