Home > Research > Publications & Outputs > Defining emergent software using continuous sel...

Electronic data

  • main

    Rights statement: © ACM, 2017. This is the author's version of the work. It is posted here for your personal use. Not for redistribution. The definitive Version of Record was published in {Source Publication} http://dx.doi.org/10.1145/{number}

    Accepted author manuscript, 2.63 MB, PDF document

    Available under license: CC BY-NC: Creative Commons Attribution-NonCommercial 4.0 International License


Text available via DOI:

View graph of relations

Defining emergent software using continuous self-assembly, perception and learning

Research output: Contribution to Journal/MagazineJournal articlepeer-review

Article number16
<mark>Journal publication date</mark>09/2017
<mark>Journal</mark>ACM Transactions on Autonomous and Adaptive Systems
Issue number3
Number of pages25
Publication StatusPublished
Early online date20/09/17
<mark>Original language</mark>English


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.