An architecture for constructing self-evolving software systems
Chrysanthos N. Dellarocas, Mark Klein, Howard E. Shrobe · 1998
This paper proposes an architecture for "closing the feedback loop" over the entire software evolution process and enabling the construction of self-evolving software systems. Self-evolving software systems are capable of automatically detecting when changing external circumstances or internal conditions can be better handled by alternate software modules and able to dynamically swap these modules into place. Our approach integrates results of recent work in software architecture and dynamic reconfiguration. Furthermore, it introduces the novel concept of an evolution engine, which sits alongside a running application, oversees its execution and automatically decides when and how to evolve it. The evolution engine relies on models of the current and alternative system configurations as well as on a generic base of reusable knowledge about software exceptions. 1.1 Keywords Dynamic architectures and reconfiguration, architectural evolution 2. INTRODUCTION Most of the recent work in d...