The Handbook of Engineering Self-Aware and Self-Expressive Systems

When faced with the task of designing and implementing a new self-aware and self-expressive computing system, researchers and practitioners need a set of guidelines on how to use the concepts and foundations developed in the Engineering Proprioception in Computing Systems (EPiCS) project. This report provides such guidelines on how to design self-aware and self-expressive computing systems in a principled way. We have documented different categories of self-awareness and self-expression level using architectural patterns. We have also documented common architectural primitives, their possible candidate techniques and attributes for architecting self-aware and self-expressive systems. Drawing on the knowledge obtained from the previous investigations, we proposed a pattern driven methodology for engineering self-aware and self-expressive systems to assist in utilising the patterns and primitives during design. The methodology contains detailed guidance to make decisions with respect to the possible design alternatives, providing a systematic way to build self-aware and self-expressive systems. Then, we qualitatively and quantitatively evaluated the methodology using two case studies. The results reveal that our pattern driven methodology covers the main aspects of engineering self-aware and self-expressive systems, and that the resulted systems perform significantly better than the non-self-aware systems.

[1]  Rami Bahsoon,et al.  Symbiotic and sensitivity-aware architecture for globally-optimal benefit in self-adaptive cloud , 2014, SEAMS 2014.

[2]  Nenad Medvidovic,et al.  Composing architectural styles from architectural primitives , 2003, ESEC/FSE-11.

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

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

[5]  Bradley R. Schmerl,et al.  Software Engineering for Self-Adaptive Systems: A Second Research Roadmap , 2010, Software Engineering for Self-Adaptive Systems.

[6]  Xin Yao,et al.  Online QoS Modeling in the Cloud: A Hybrid and Adaptive Multi-learners Approach , 2014, 2014 IEEE/ACM 7th International Conference on Utility and Cloud Computing.

[7]  Sam Malek,et al.  Qos architectural patterns for self-architecting software systems , 2010, ICAC '10.

[8]  Rami Bahsoon,et al.  Self-adaptive and sensitivity-aware QoS modeling for the cloud , 2013, 2013 8th International Symposium on Software Engineering for Adaptive and Self-Managing Systems (SEAMS).

[9]  Samuel Kounev,et al.  Elasticity in Cloud Computing: What It Is, and What It Is Not , 2013, ICAC.

[10]  Zhiwei Xu,et al.  GridIS: an incentive-based grid scheduling , 2005, 19th IEEE International Parallel and Distributed Processing Symposium.

[11]  Marco Platzner,et al.  On-The-Fly Computing: A novel paradigm for individualized IT services , 2013, 16th IEEE International Symposium on Object/component/service-oriented Real-time distributed Computing (ISORC 2013).

[12]  Xin Yao,et al.  Socio-economic vision graph generation and handover in distributed smart camera networks , 2014, TOSN.

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

[14]  I. Gorton,et al.  A quality-driven systematic approach for architecting distributed software applications , 2005, Proceedings. 27th International Conference on Software Engineering, 2005. ICSE 2005..

[15]  Douglas C. Schmidt,et al.  Pattern Oriented Software Architecture: On Patterns and Pattern Languages (Wiley Software Patterns Series) , 2007 .

[16]  Rick Kazman,et al.  Evaluating Software Architectures: Methods and Case Studies , 2001 .

[17]  Stephan Neuhaus,et al.  Hardware support for dynamic protocol stacks , 2012, 2012 ACM/IEEE Symposium on Architectures for Networking and Communications Systems (ANCS).

[18]  Wayne Luk,et al.  Dynamic Constant Reconfiguration for Explicit Finite Difference Option Pricing , 2011, 2011 International Conference on Reconfigurable Computing and FPGAs.

[19]  Xin Yao,et al.  CamSim: A Distributed Smart Camera Network Simulator , 2013, 2013 IEEE 7th International Conference on Self-Adaptation and Self-Organizing Systems Workshops.

[20]  Alexander Refsum Jensenius,et al.  Enabling Participants to Play Rhythmic Solos Within a Group via Auctions , 2012 .

[21]  Bradley R. Schmerl,et al.  On Patterns for Decentralized Control in Self-Adaptive Systems , 2010, Software Engineering for Self-Adaptive Systems.