Chapter 2

Architecting Software Systems for Runtime Self-Adaptation

Concepts, Models, and Challenges

N.M. Villegas*; G. Tamura*; H.A. Müller    * Universidad Icesi, Cali, Colombia University of Victoria, Victoria, BC, Canada


Architecture design is one of the most critical tasks in the software engineering process, particularly for software systems that must operate correctly and guarantee desired quality attributes, while coping with uncertainty and unexpected changes in execution conditions and requirements. Architecting such software systems presents additional challenges to those faced when architecting solutions from a traditional software engineering perspective, where uncertainty is not considered as a main concern in system ...

Get Managing Trade-offs in Adaptable Software Architectures now with the O’Reilly learning platform.

O’Reilly members experience live online training, plus books, videos, and digital content from nearly 200 publishers.