Evolving Software with Extensible Modules

We present the design of the programming language Keris, an extension of Java with explicit support for software evolution. Keris introduces extensible modules as the basic building blocks for software. Modules are composed hierarchically revealing explicitly the architecture of systems. A distinct feature of the module design is that modules do not get linked manually. Instead, the wiring of modules gets infered. The module assembly and refinement mechanism of Keris is not restricted to the unanticipated extensibility of atomic modules. It also allows to extend fully linked systems by replacing selected submodules with compatible versions without needing to re-link the full system. Extensibility is type-safe and non-invasive; i.e. the extension of a module preserves the original version and does not require access to source code.

Published in:
Proceedings of the International Workshop on Unanticipated Software Evolution
Presented at:
International Workshop on Unanticipated Software Evolution, Málaga, Spain, June 2002

 Record created 2006-01-24, last modified 2019-03-16

Download fulltext

Rate this document:

Rate this document:
(Not yet reviewed)