Architecting Self-Aware Software Systems

Contemporary software systems are becoming increasingly large, heterogeneous, and decentralised. They operate in dynamic environments and their architectures exhibit complex trade-offs across dimensions of goals, time, and interaction, which emerges internally from the systems and externally from their environment. This gives rise to the vision of self-aware architecture, where design decisions and execution strategies for these concerns are dynamically analysed and seamlessly managed at run-time. Drawing on the concept of self-awareness from psychology, this paper extends the foundation of software architecture styles for self-adaptive systems to arrive at a new principled approach for architecting self-aware systems. We demonstrate the added value and applicability of the approach in the context of service provisioning to cloud-reliant service-based applications.

[1]  S RosenblumDavid,et al.  An Architecture-Based Approach to Self-Adaptive Software , 1999 .

[2]  Rami Bahsoon,et al.  EPiCS: Engineering Proprioception in Computing Systems , 2012, 2012 IEEE 15th International Conference on Computational Science and Engineering.

[3]  Rami Bahsoon,et al.  A Survey of Self-Awareness and Its Application in Computing Systems , 2011, 2011 Fifth IEEE Conference on Self-Adaptive and Self-Organizing Systems Workshops.

[4]  Rami Bahsoon,et al.  Economics-Driven Software Architecting for Cloud , 2013, Economics-Driven Software Architecture.

[5]  Mary Shaw,et al.  Software Engineering for Self-Adaptive Systems: A Research Road Map (Draft Version) ⁄ , 2008 .

[6]  Rogério de Lemos,et al.  Software Engineering for Self-Adaptive Systems [outcome of a Dagstuhl Seminar] , 2009, Software Engineering for Self-Adaptive Systems.

[7]  Sam Malek,et al.  FUSION: a framework for engineering self-tuning self-adaptive software systems , 2010, FSE '10.

[8]  Peyman Oreizy,et al.  An architecture-based approach to self-adaptive software , 1999, IEEE Intell. Syst..

[9]  Henry Hoffmann,et al.  SEEC: A Framework for Self-aware Computing , 2010 .

[10]  U. Neisser The Roots of Self‐Knowledge: Perceiving Self, It, and Thou a , 1997, Annals of the New York Academy of Sciences.

[11]  Xin Yao,et al.  Markets and Clouds: Adaptive and Resilient Computational Resource Allocation Inspired by Economics , 2014, Adaptive, Dynamic, and Resilient Systems.

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

[13]  Alexander L. Wolf,et al.  Acm Sigsoft Software Engineering Notes Vol 17 No 4 Foundations for the Study of Software Architecture , 2022 .

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