Independently Extensible Systems
Software Engineering Potential and Challenge

Clemens Szyperski
School of Computing Science, Queensland University of Technology, Brisbane 4001, Australia.


Component-based software, open systems, and document-based user interfaces are about to revolutionise most areas traditionally addressed by the software engineer. We claim that many traditional software engineering methods, from life-cycle models to programming languages to system architectures are at least insufficient when facing the new trends. In this paper we present the main points of criticism and state a few unavoidable facts of life<\i>: extensible systems are in principle modular, have no final form or final integration phase, cannot be subjected to final total analysis, cannot be exhaustively tested, and have to allow for mutual independence of extension providers. We also hint at possible solutions for part of the problem set. In particular, we investigate the problem of dependence on global analysis, the effects of Cartesian Products in the design space, and the resulting design constraints on programming languages as the exemplary and most important tool of the software engineer. The relevance of the observations will be underlined by several examples drawn from contemporary programming languages and methods that got it wrong.

Conference Home Page