To promote engineering self-aware and self-adaptive software systems in a reusable manner, architectural patterns and the related methodology provide an unified solution to handle the recurring problems in the engineering process. However, in existing patterns and methods, domain knowledge and engineers' expertise that is built over time are not explicitly linked to the self-aware processes. This link is important, as knowledge is a valuable asset for the related problems and its absence would cause unnecessary overhead, possibly misleading results, and unwise waste of the tremendous benefits that could have been brought by the domain expertise. This article highlights the importance of synergizing domain expertise and the self-awareness to enable better self-adaptation in software systems, relying on well-defined expertise representation, algorithms, and techniques. In particular, we present a holistic framework of notions, enriched patterns and methodology, dubbed DBASES, that offers a principled guideline for the engineers to perform difficulty and benefit analysis on possible synergies, in an attempt to keep 'engineers-in-the-loop.' Through three tutorial case studies, we demonstrate how DBASES can be applied in different domains, within which a carefully selected set of candidates with different synergies can be used for quantitative investigation, providing more informed decisions of the design choices. © 1963-2012 IEEE.
Bibliographical noteThis work was supported in part by the Guangdong Provincial Key Laboratory of Brain-Inspired Intelligent Computation, in part by the Program for Guangdong Introducing Innovative and Enterpreneurial Teams under Grant 2017ZT07 × 386, in part by the Shenzhen Science and Technology Program under Grant KQTD2016112514355531,and in part by the Program for University Key Laboratory of Guangdong Province under Grant 2017KSYS008.
- Architectural patterns
- self-adaptive software systems
- self-aware software systems