KERIS: evolving software with extensible modules


  • Matthias Zenger

    Corresponding author
    1. Programming Methods Laboratory, Swiss Federal Institute of Technology Lausanne (EPFL), INR Ecublens, 1015 Lausanne, Switzerland
    • Programming Methods Laboratory, School of Computer and Communication Sciences, Swiss Federal Institute of Technology (EPFL), 1015 Lausanne, Switzerland
    Search for more papers by this author


We present 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, explicitly revealing 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 inferred. The module assembly and refinement mechanism of KERIS is not restricted to the unanticipated extensibility of atomic modules. It also allows extensions of already 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. Copyright © 2005 John Wiley & Sons, Ltd.