Ph. D. thesis


On the design & preservation of software systems

Jilles van Gurp

Supervisor: prof. dr. Jan Bosch

I defended my thesis on 14 February 2003, 16:00 in the academy building of the University of Groningen. The day before the promotion a workshop was held on Software Variability Management.

A pdf of the thesis can be found here (3 MB, pdf). .


In a relatively short period of about 60 years, the increasing application of computers and software has changed our society beyond recognition. Because of the exponential growth of hardware capacity, more and more software is needed. In addition, this software is becoming increasingly more complex. On top of that, hardware, and the accompanying software, is finding its way into more and more devices. Consequently, software engineers are under a constant pressure to increase their productivity in order to meet the exponentially growing demand for software.

Increasingly, these software engineers have to work in very large teams for several years to deliver a piece of software. Such large scale software systems represent an enormous economic value to the companies that have them built. The decision to radically change or even replace such systems is not taken lightly. Consequently, it is increasingly common that software systems have a life cycle that spans multiple years or, in some cases, even decades. Throughout a software system's life cycle, maintenance activities take place to fix errors, add functionality, optimize quality attributes such as performance, etc. This stepwise evolution does not follow a plan. Instead, each refinement is made in the context of all the previous refinements, the expectations about the future of the system at that moment and the technology that is available at that moment. Consequently, designing a system in such a way that future changes can be accommodated is very difficult because the future has so many unknown factors.

Inevitably, during the evolution of a software system, mistakes are made or compromises with respect to quality are made. These less than optimal refinements have a tendency to accumulate and influence further refinements. Ultimately this may lead to a situation where necessary changes can no longer be implemented cost effectively. The research presented in this thesis identifies this issue and addresses research questions about the prevention or delay of this process.


It is inevitable that errors slip through the editing process. I have listed the more serious ones here:

  • p1, Axis AB should be Axis Communications AB.
  • p77, Despite careful editing, the image on this page was misprinted. The incomplete baloon at the top left is labeled "multiple_inheritance". The one below should be "documentation". The baloon on the right should be "scalability".
  • p196, The correct reference for "Pree 1994" is: Wolfgang Pree. Design Patterns for Object-Oriented Software Development. Addison-Wesley, Reading Mass. 1995.

Promotion Commission

The promotion commission that approved my thesis consisted of the following persons:

  • Kai Koskimies, Tampere University, Finland
  • Serge Demeyer, Antwerp University, Belgium
  • Hans van Vliet , Vrije Universiteit, Amsterdam

Stellingen (in dutch)

  1. Het gebruik van role-oriented programming verbetert de samenhangendheid (cohesiveness) van classes en verminderd het aantal afhankelijkheden (coupling) tussen classes.
  2. Het gebruik van AI technieken, zoals SAABNet, vormt een nuttige aanvulling op de beperkte hoeveelheid methoden en technieken die beschikbaar zijn voor architecture assessment.
  3. Variatie management is een noodzakelijk onderdeel in het ontwikkelproces van software product lines.
  4. Door software requirements te organiseren in feature diagrammen kunnen variatiepunten geidentificeerd worden.
  5. Hoe meer variatiepunten een software system heeft, hoe makkelijker het is het software systeem te hergebruiken.
  6. Design erosie is in principe niet te voorkomen.
  7. Het gebruik van technieken als role-oriented programming en variatie management kunnen er toe bijdragen dat design erosion wordt uitgesteld.
  8. Gegeven het vier jarige promotie traject dat door de Nederlandse overheid wordt opgelegd, is een artikel gebaseerd proefschrift de enige realistische mogelijkheid om binnen deze periode te blijven en doormiddel van publicaties het voor een promotie noodzakelijke wetenschappelijke niveau te bereiken.
  9. De procedure voor het aanvragen van een promotie aan de RUG is nodeloos ingewikkeld en bureaucratisch.

This page was updated last on: