An architecture for constructing self-evolving software systems

1. ABSTRACT 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

[1]  Paola Inverardi,et al.  Formal Specification and Analysis of Software Architectures Using the Chemical Abstract Machine Model , 1995, IEEE Trans. Software Eng..

[2]  Kevin Crowston,et al.  Using a Process Handbook to Design Organizational Processes , 1994 .

[3]  David Garlan,et al.  A formal basis for architectural connection , 1997, TSEM.

[4]  Peyman Oreizy,et al.  Architecture-based runtime software evolution , 1998, Proceedings of the 20th International Conference on Software Engineering.

[5]  William J. Clancey,et al.  Heuristic Classification , 1986, Artif. Intell..

[6]  Jeff Magee,et al.  The Evolving Philosophers Problem: Dynamic Change Management , 1990, IEEE Trans. Software Eng..

[7]  Walter Mann,et al.  Correction to "Specification and Analysis of System Architecture Using Rapide" , 1995, IEEE Trans. Software Eng..

[8]  Stephen Fickas,et al.  Goal-Directed Requirements Acquisition , 1993, Sci. Comput. Program..

[9]  Jeff Kramer,et al.  Maintaining node consistency in the face of dynamic change , 1996, Proceedings of International Conference on Configurable Distributed Systems.

[10]  J. William Murdock Modeling Computation: A Comparative Synthesis of TMK and ZD , 1998 .

[11]  Richard N. Taylor,et al.  A framework for classifying and comparing architecture description languages , 1997, ESEC '97/FSE-5.