Abstract
Architectural self-organisation, in which different configurations of software modules are dynamically assembled based on the current context, has been shown to be an effective way for software to self-optimise over time. Current approaches to this rely heavily on human-led definitions: models, policies, and processes to control how self-organisation works. We present the case for a paradigm shift to fully emergent computer software that places the burden of understanding entirely into the hands of software itself. These systems are autonomously assembled at runtime from discovered constituent parts and their internal health and external deployment environment continually monitored. An online, unsupervised learning system then uses runtime adaptation to continuously explore alternative system assemblies and locate optimal solutions. Based on our experience over the past 3 years, we define the problem space of emergent software and present a working case study of an emergent web server as a concrete example of the paradigm. Our results demonstrate two main aspects of the problem space for this case study: that different assemblies of behaviour are optimal in different deployment environment conditions and that these assemblies can be autonomously learned from generalised perception data while the system is online.
- Nelly Bencomo and Amel Belaggoun. 2014. A world full of surprises: Bayesian theory of surprise to quantify degrees of uncertainty. In Proceedings of the 36th International Conference on Software Engineering (ICSE Companion’14). ACM, New York, NY, 460--463 Google Scholar
Digital Library
- Nelly Bencomo, Amel Belaggoun, and Valerie Issarny. 2013. Dynamic decision networks for decision-making in self-adaptive systems: A case study. In Proceedings of the 2013 ICSE Workshop on Software Engineering for Adaptive and Self-Managing Systems (SEAMS’13). 113--122. Google Scholar
Digital Library
- Emre Cakar, Sven Tomforde, and Christian Müller-Schloer. 2011. A role-based imitation algorithm for the optimisation in dynamic fitness landscapes. In Proceedings of the IEEE Symposium on Swarm Intelligence (SIS’11). 1--8.Google Scholar
Cross Ref
- Bihuan Chen, Xin Peng, Yijun Yu, Bashar Nuseibeh, and Wenyun Zhao. 2014. Self-adaptation through incremental generative model transformations at runtime. In Proceedings of the 36th International Conference on Software Engineering (ICSE’14). ACM, New York, NY, 676--687. Google Scholar
Digital Library
- Ahmed Elkhodary, Naeem Esfahani, and Sam Malek. 2010. FUSION: A framework for engineering self-tuning self-adaptive software systems. In Proceedings of the 18th ACM SIGSOFT International Symposium on Foundations of Software Engineering. ACM, New York, NY, 7--16. Google Scholar
Digital Library
- John M. Ewing and Daniel A. Menascé. 2014. A meta-controller method for improving run-time self-architecting in SOA systems. In Proceedings of the 5th ACM/SPEC International Conference on Performance Engineering (ICPE’14). ACM, New York, NY, 173--184. Google Scholar
Digital Library
- Funmilade Faniyi, Peter R. Lewis, Rami Bahsoon, and Xin Yao. 2014. Architecting self-aware software systems. In Proceedings of the IEEE/IFIP Conference on Software Architecture (WICSA’14). 91--94. Google Scholar
Digital Library
- Jacques Ferber. 1999. Multi-agent Systems: An Introduction to Distributed Artificial Intelligence. Vol. 1. Addison-Wesley, Reading, MA. Google Scholar
Digital Library
- Roberto Rodrigues Filho. 2017. Source code from this article with instructions. Retrieved from http://research.projectdana.com/taas2017rodrigues.Google Scholar
- Dominik Fisch, Martin Janicke, Bernhard Sick, and Christian Muller-Schloer. 2010. Quantitative emergence—A refined approach based on divergence measures. In Proceedings of the 4th IEEE International Conference on Self-Adaptive and Self-Organizing Systems. 94--103. Google Scholar
Digital Library
- Jean-Pierre Georgé and Marie-Pierre Gleizes. 2005. Experiments in Emergent Programming Using Self-organizing Multi-agent Systems. Springer, Berlin, 450--459. Google Scholar
Digital Library
- Karen Glocer, Damian Eads, and James Theiler. 2005. Online feature selection for pixel classification. In Proceedings of the 22nd International Conference on Machine Learning (ICML’05). ACM, New York, NY, 249--256. Google Scholar
Digital Library
- Paul Grace, Danny Hughes, Barry Porter, Gordon Blair, Geoff Coulson, and Francois Taiani. 2008. Experiences with open overlays: A middleware approach to network heterogeneity. In Proceedings of the 3rd ACM SIGOPS/EuroSys European Conference on Computer Systems 2008. 123--136. Google Scholar
Digital Library
- Sara Hassan, Nelly Bencomo, and Rami Bahsoon. 2015. Minimizing nasty surprises with better informed decision-making in self-adaptive systems. In IEEE/ACM 10th International Symposium on Software Engineering for Adaptive and Self-Managing Systems. 134--145. Google Scholar
Digital Library
- Mike Hinchey, Sooyong Park, and Klaus Schmid. 2012. Building dynamic software product lines. IEEE Comput. 45, 10 (Oct 2012), 22--26. Google Scholar
Digital Library
- Olga Kouchnarenko and Jean-Francois Weber. 2014. Adapting component-based systems at runtime via policies with temporal patterns. In Formal Aspects of Component Software. Springer, 234--253.Google Scholar
- D. Menasce, H. Gomaa, S. Malek, and J. P. Sousa. 2011. SASSY: A framework for self-architecting service-oriented systems. IEEE Softw. 28, 6 (Nov 2011), 78--85. Google Scholar
Digital Library
- NASA. 1995. NASA web server trace. Retrieved from http://ita.ee.lbl.gov/html/contrib/NASA-HTTP.html.Google Scholar
- Barry Porter. 2014. Runtime modularity in complex structures: A component model for fine grained runtime adaptation. In Component-Based Software Engineering. ACM, 26--32. Google Scholar
Digital Library
- Barry Porter, Matthew Grieves, Roberto Rodrigues Filho, and David Leslie. 2016. REX: A development platform and online learning approach for runtime emergent software systems. In Symposium on Operating Systems Design and Implementation. USENIX, 333--348. Google Scholar
Digital Library
- Barry Porter and Roberto Rodrigues Filho. 2016. Losing control: The case for emergent software systems using autonomous assembly, perception and learning. In International Conference on Self-Adaptive and Self-Organizing Systems. IEEE, 40--49.Google Scholar
Cross Ref
- Mazeiar Salehie and Ladan Tahvildari. 2009. Self-adaptive software: Landscape and research challenges. ACM Trans. Auton. Adapt. Syst. 4, 2 (2009), 14. Google Scholar
Digital Library
- Richard S. Sutton and Andrew G. Barto. 1998. Reinforcement Learning: An Introduction. Bradford Book. Google Scholar
Digital Library
- Sven Tomforde, Jörg Hähner, and Christian Müller-Schloer. 2013. Incremental design of organic computing systems—moving system design from design-time to runtime. In Proceedings of the 10th International Conference on Informatics in Control, Automation and Robotics. 185--192.Google Scholar
- Yiqiao Wang and John Mylopoulos. 2009. Self-repair through reconfiguration: A requirements engineering approach. In Proceedings of the 2009 IEEE/ACM International Conference on Automated Software Engineering. IEEE Computer Society, 257--268. Google Scholar
Digital Library
- Wei Zheng, Ricardo Bianchini, and Thu D. Nguyen. 2011. MassConf: Automatic configuration tuning by leveraging user community information. In ACM SIGSOFT Software Engineering Notes, Vol. 36. ACM, 283--288. Google Scholar
Digital Library
Index Terms
Defining Emergent Software Using Continuous Self-Assembly, Perception, and Learning
Recommendations
Machine Learning and Software Engineering
ICTAI '02: Proceedings of the 14th IEEE International Conference on Tools with Artificial IntelligenceMachine learning deals with the issue of how to build programs that improve their performance at some task through experience. Machine learning algorithms have proven to be of great practical value in a variety of application domains. Not surprisingly, ...
Exploring Software Evolution Using Spectrographs
WCRE '04: Proceedings of the 11th Working Conference on Reverse EngineeringSoftware systems become progressively more complex and difficult to maintain. To facilitate maintenance tasks, project managers and developers often turn to the evolution history of the system to recover various kinds of useful information, such as ...
Machine-Learning-Guided Typestate Analysis for Static Use-After-Free Detection
ACSAC '17: Proceedings of the 33rd Annual Computer Security Applications ConferenceTypestate analysis relies on pointer analysis for detecting temporal memory safety errors, such as use-after-free (UAF). For large programs, scalable pointer analysis is usually imprecise in analyzing their hard "corner cases", such as infeasible paths, ...






Comments