Embedding Adaptivity in Software Systems using the ECSELR framework

ECSELR is an ecologically-inspired approach to software evolution that enables environmentally driven evolution at runtime in extant software systems without relying on any offline components or management. ECSELR embeds adaptation and evolution inside the target software system enabling the system to transform itself via darwinian evolutionary mechanisms and adapt in a self contained manner. This allows the software system to benefit autonomously from the useful emergent byproducts of evolution like adaptivity and bio-diversity, avoiding the problems involved in engineering and maintaining such properties. ECSELR enables software systems to address changing environments at runtime, ensuring benefits like mitigation of attacks and memory-optimization among others while avoiding time consuming and costly maintenance and downtime. ECSELR differs from existing work in that, 1) adaptation is embedded in the target system, 2) evolution and adaptation happens online(i.e. in-situ at runtime) and 3) ECSELR is able to embed adaptation inside systems that have already been started and are in the midst of execution. We demonstrate the use of ECSELR and present results on using the ECSELR framework to slim a software system.

[1]  Moshe Sipper Ubiquity symposium: Evolutionary computation and the processes of life: Darwinian software engineering: the short term, the middle ground, and the long haul , 2012, UBIQ.

[2]  Michael G. Epitropakis,et al.  Gen-O-Fix: An embeddable framework for Dynamic Adaptive Genetic Improvement Programming , 2014 .

[3]  Miranda Mowbray,et al.  What kind of self-aware systems does the Grid need? , 2005 .

[4]  Claire Le Goues,et al.  GenProg: A Generic Method for Automatic Software Repair , 2012, IEEE Transactions on Software Engineering.

[5]  Westley Weimer,et al.  Automated repair of binary and assembly programs for cooperating embedded devices , 2013, ASPLOS '13.

[6]  Douglas C. Schmidt,et al.  Ultra-Large-Scale Systems: The Software Challenge of the Future , 2006 .

[7]  Sebastian Herold,et al.  Engineering of IT ecosystems: design of ultra-large-scale software-intensive systems , 2008, ULSSIS '08.

[8]  Ladan Tahvildari,et al.  Self-adaptive software: Landscape and research challenges , 2009, TAAS.

[9]  Westley Weimer,et al.  Automated program repair through the evolution of assembly code , 2010, ASE.

[10]  Martin Arlitt,et al.  A workload characterization study of the 1998 World Cup Web site , 2000, IEEE Netw..

[11]  Mark Harman,et al.  Using Genetic Improvement and Code Transplants to Specialise a C++ Program to a Problem Class , 2014, EuroGP.

[12]  Mark Harman,et al.  Ieee Transactions on Evolutionary Computation 1 , 2022 .

[13]  John A. Clark,et al.  Dynamic adaptive Search Based Software Engineering , 2012, Proceedings of the 2012 ACM-IEEE International Symposium on Empirical Software Engineering and Measurement.

[14]  Martin Arlitt,et al.  Workload Characterization of the 1998 World Cup Web Site , 1999 .

[15]  Fan Wu,et al.  Genetic improvement for adaptive software engineering (keynote) , 2014, SEAMS 2014.

[16]  Claudia Raibulet,et al.  Evaluation of dynamic adaptivity through metrics: an achievable target? , 2009, 2009 Joint Working IEEE/IFIP Conference on Software Architecture & European Conference on Software Architecture.