Research Article
KERIS: evolving software with extensible modules
Article first published online: 26 SEP 2005
DOI: 10.1002/smr.320
Copyright © 2005 John Wiley & Sons, Ltd.
Issue
1532-0618/asset/cover.gif?v=1&s=97e2c52482367f3a475b538c85d65ede9624e71b)
Journal of Software Maintenance and Evolution: Research and Practice
Special Issue: Unanticipated Software Evolution
Volume 17, Issue 5, pages 333–362, September/October 2005
Additional Information
How to Cite
Zenger, M. (2005), KERIS: evolving software with extensible modules. Journal of Software Maintenance and Evolution: Research and Practice, 17: 333–362. doi: 10.1002/smr.320
Publication History
- Issue published online: 26 SEP 2005
- Article first published online: 26 SEP 2005
- Manuscript Accepted:
- Manuscript Revised:
- Manuscript Received:
- Abstract
- References
- Cited By
Keywords:
- module systems;
- component-oriented programming;
- software reuse;
- extensibility;
- unanticipated software evolution;
- module refinement;
- module specialization
Abstract
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.

2047-7481/asset/olbannerleft.gif?v=1&s=2c078a14d07e3138a7bcb7198f058f6d3f3e7dc2)