Lifelong Computing

Computing systems form the backbone of many aspects of our life, hence they are becoming as vital as water, electricity, and road infrastructures for our society. Yet, engineering long running computing systems that achieve their goals in ever-changing environments pose significant challenges. Currently, we can build computing systems that adjust or learn over time to match changes that were anticipated. However, dealing with unanticipated changes, such as anomalies, novelties, new goals or constraints, requires system evolution, which remains in essence a human-driven activity. Given the growing complexity of computing systems and the vast amount of highly complex data to process, this approach will eventually become unmanageable. To break through the status quo, we put forward a new paradigm for the design and operation of computing systems that we coin lifelong computing. The paradigm starts from computing-learning systems that integrate computing/service modules and learning modules. Computing warehouses offer such computing elements together with data sheets and usage guides. When detecting anomalies, novelties, new goals or constraints, a lifelong computing system activates an evolutionary self-learning engine that runs online experiments to determine how the computing-learning system needs to evolve to deal with the changes, thereby changing its architecture and integrating new computing elements from computing warehouses as needed. Depending on the domain at hand, some activities of lifelong computing systems can be supported by humans. We motivate the need for lifelong computing with a future fish farming scenario, outline a blueprint architecture for lifelong computing systems, and highlight key research challenges to realise the vision of lifelong computing.

[1]  Spyros G. Tzafestas Advances in Intelligent Autonomous Systems , 1999 .

[2]  Alok Mishra,et al.  DevOps and software quality: A systematic mapping , 2020, Comput. Sci. Rev..

[3]  Mary Shaw,et al.  Software Engineering for Self-Adaptive Systems: A Research Roadmap , 2009, Software Engineering for Self-Adaptive Systems.

[4]  Peng Liang,et al.  A systematic mapping study on technical debt and its management , 2015, J. Syst. Softw..

[5]  Bradley R. Schmerl,et al.  Proactive self-adaptation under uncertainty: a probabilistic model checking approach , 2015, ESEC/SIGSOFT FSE.

[6]  Tommi Mikkonen,et al.  From Agile Software Development to Mercury Business , 2014, ICSOB.

[7]  Claire Le Goues,et al.  A systematic study of automated program repair: Fixing 55 out of 105 bugs for $8 each , 2012, 2012 34th International Conference on Software Engineering (ICSE).

[8]  Michael Wooldridge,et al.  An introduction to multiagent systems Wiley , 2002 .

[9]  Ali Ouni Search based software engineering: challenges, opportunities and recent applications , 2020, GECCO Companion.

[10]  T. Tamai Key Software Engineering Paradigms and Modeling Methods , 2019, Handbook of Software Engineering.

[11]  Yuanyuan Zhang,et al.  Achievements, Open Problems and Challenges for Search Based Software Testing , 2015, 2015 IEEE 8th International Conference on Software Testing, Verification and Validation (ICST).

[12]  Barbara Messing,et al.  An Introduction to MultiAgent Systems , 2002, Künstliche Intell..

[13]  Michael E. Hasselmo,et al.  Avoiding Catastrophic Forgetting , 2017, Trends in Cognitive Sciences.

[14]  Torgeir Dingsøyr,et al.  A decade of agile methodologies: Towards explaining agile software development , 2012, J. Syst. Softw..

[15]  Sebastián Ventura,et al.  Interactive multi-objective evolutionary optimization of software architectures , 2018, Inf. Sci..

[16]  Bradley R. Schmerl,et al.  Rainbow: architecture-based self-adaptation with reusable infrastructure , 2004, International Conference on Autonomic Computing, 2004. Proceedings..

[17]  F. E. Grubbs Procedures for Detecting Outlying Observations in Samples , 1969 .

[18]  J. Lin,et al.  Resilient autonomous systems: Challenges and solutions , 2016, 2016 Resilience Week (RWS).

[19]  Danny Weyns,et al.  Engineering Trustworthy Self-Adaptive Software with Dynamic Assurance Cases , 2017, IEEE Transactions on Software Engineering.

[20]  Mathias Meyer,et al.  Continuous Integration and Its Tools , 2014, IEEE Software.

[21]  Stefan Wermter,et al.  Continual Lifelong Learning with Neural Networks: A Review , 2019, Neural Networks.

[22]  Thomas Bäck An Overview of Parameter Control Methods by Self-Adaption in Evolutionary Algorithms , 1998, Fundam. Informaticae.

[23]  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.

[24]  Gordon S. Blair,et al.  Models@ run.time , 2009, Computer.

[25]  Hans-Georg Beyer,et al.  Self-Adaptation in Evolutionary Algorithms , 2007, Parameter Setting in Evolutionary Algorithms.

[26]  Bing Liu,et al.  Lifelong machine learning: a paradigm for continuous learning , 2017, Frontiers of Computer Science.

[27]  Pasi Kuvaja,et al.  Continuous deployment of software intensive products and services: A systematic mapping study , 2017, J. Syst. Softw..

[28]  Fan Wu,et al.  The Value of Exact Analysis in Requirements Selection , 2017, IEEE Transactions on Software Engineering.

[29]  Danny Weyns,et al.  An Introduction to Self‐Adaptive Systems , 2021 .

[30]  Günther Ruhe,et al.  Search Based Software Engineering , 2013, Lecture Notes in Computer Science.

[31]  Sebastian Thrun,et al.  Lifelong robot learning , 1993, Robotics Auton. Syst..

[32]  Jeffrey O. Kephart,et al.  The Vision of Autonomic Computing , 2003, Computer.

[33]  Sandra Hirche,et al.  Classification of human-robot team interaction paradigms , 2016 .