Affordable Access

Vertical, horizontal, and behavioural extensibility of software systems

Universität Ulm. Fakultät für Informatik
Publication Date
  • Software Development
  • Computer Science


By distinguishing three different dimensions of extensibility - vertical (extensions of the type hierarchy), horizontal (extensions of the spectrum of operations available on types), and behavioural (extensions or even modifications of the original behaviour of operations) - it is shown that typical object-oriented programming languages support only the first dimension in a direct and modular way. On the other hand, a new and surprisingly simple concept called dynamic routines, that is introduced in this paper, simultaneously supports all three dimensions in a natural and flexible way. The concept has been implemented as precompiler-based language extensions for C++, Oberon-2, and Java.

There are no comments yet on this publication. Be the first to share your thoughts.