Architectural Aspects of Self-Aware and Self-Expressive Systems: From Psychology to Engineering

Original version available at https://www.computer.org/csdl/mags/co/2015/08/mco2015080062-abs.html

Self-awareness concepts from psychology are inspiring new approaches for engineering computing systems which operate in complex dynamic environments. There has been a broad and long-standing interest in self-awareness for computing, but only recently has a systematic understanding of self-awareness and how it can be used and evaluated been developed. In this article, we take inspiration from human self-awareness to develop new notions of computational self-awareness and self-expression, which provide the ability to adaptively manage complex dynamic trade-offs at run time. We translate concepts from psychology to engineering, presenting a reference architectural framework and derived architectural patterns for self-aware and self-expressive systems. A cloud computing-based case study highlights their use and benefits.