MOSAICO: offline synthesis of adaptation strategy repertoires with flexible trade-offs


Self-adaptation improves the resilience of software-intensive systems, enabling them to adapt their structure and behavior to run-time changes (e.g., in workload and resource availability). Many of these approaches reason about the best way of adapting by synthesizing adaptation plans online via planning or model checking tools. This method enables the exploration of a rich solution space, but optimal solutions and other guarantees (e.g., constraint satisfaction) are computationally costly, resulting in long planning times during which changes may invalidate plans. An alternative to online planning involves selecting at run time the adaptation best suited to the current system and environment conditions from among a predefined repertoire of adaptation strategies that capture repair and optimization tasks. This method does not incur run-time overhead but requires additional effort from engineers, who have to specify strategies and lack support to systematically assess their quality. In this article, we present MOSAICO, an approach for offline synthesis of adaptation strategy repertoires that makes a novel use of discrete abstractions of the state space to flexibly adapt extra-functional behavior in a scalable manner. The approach supports making trade-offs: (i) among multiple extra-functional concerns, and (ii) between computation time and adaptation quality (varying abstraction resolution). Our results show a remarkable improvement on system qualities in contrast to manually-specified repertoires. More interestingly, moderate increments in abstraction resolution can lead to pronounced quality improvements, whereas high resolutions yield only negligible improvement over medium resolutions.

This is a preview of subscription content, log in to check access.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6


  1. 1.

    Other instantiations of scenarios based on Znn consider fidelity/service level as a primary objective. However, we assume that fidelity is dominated by performance and user annoyance in overall user experience. Hence, fidelity adjustment is considered only as a mechanism to affect performance in our scenario. A more detailed rationale for the extra-functional requirements of this scenario can be found in Schmerl et al. (2014).

  2. 2.

    This specification is semi-automated. Specifically, the most repetitive and error-prone parts of the specification of the formal model, like the encoding of the utility profile and tactic impact models are automated.

  3. 3.

    The sources and process required to obtain the information needed to generate the artifacts required by a Stitch adaptation model are discussed in Cheng (2008).

  4. 4.

    We consider fixed impacts for illustration purposes, although Stitch also supports the specification probabilistic/context-sensitive impact models (Cámara et al. 2014). Note that, to obtain the impact on the different quality dimensions of tactics in practice, the approach relies on expert knowledge, although nothing prevents the use of machine learning techniques to obtain that information [c.f. Didona and Romano (2015)].

  5. 5.

    By default, probabilities are divided equally among the branches, although they can be progressively adjusted according to information collected from system executions. Alternatively, probabilities can also be bootstrapped based on knowledge obtained from experts or existing similar systems, when available.

  6. 6.

    Policies are also commonly referred to as strategies or adversaries. In this article, we employ the term policy consistently to avoid confusion with the term adaptation strategy.

  7. 7.

    We illustrate our approach to modeling the parametric model using the syntax of the PRISM language (Kwiatkowska et al. 2011) for Markov Decision Processes (MDPs), which are encoded as commands:

    $$\begin{aligned} {[}action] guard -> p_1:u_1+ \dots + p_n:u_n \end{aligned}$$

    Where guard is a predicate over the model variables. Each update \(u_i\) describes a transition that the process can make (by executing action) if the guard is true. An update is specified by giving the new values of the variables, and has an assigned probability \(p_i \in [0,1]\). Multiple commands with overlapping guards (and probably, including a single update of unspecified probability) introduce local nondeterminism.

  8. 8.

    Thresholds are defined based on expert knowledge, and are analogous to the ones found in existing Stitch models for Znn Cheng and Garlan (2012).

  9. 9.

    Function \(extract\_strategy\) abstracts the extraction of a sequence of actions from a policy, which is trivial (see Definition 2).


  1. Andova, S., Hermanns, H., Katoen, J.: Discrete-time rewards model-checked. In: Larsen, K.G., Niebert, P. (eds.) Formal Modeling and Analysis of Timed Systems: First International Workshop, FORMATS 2003, Marseille, France, 6–7 September 2003. Revised Papers, Volume 2791 of Lecture Notes in Computer Science, pp. 88–104. Springer, Berlin (2003)

  2. Beheshti, S.M.R.S., Liatsis, P.: Captcha usability and performance, how to measure the usability level of human interactive applications quantitatively and qualitatively? In: 2015 International Conference on Developments of E-Systems Engineering (DeSE), pp. 131–136 (2015)

  3. Bulletin Board Benchmark.

  4. Calinescu, R., Kwiatkowska, M.Z.: Using quantitative analysis to implement autonomic IT systems. In: Atlee, J.M., Inverardi, P. (eds.) Proceedings of the 31st International Conference on Software Engineering, ICSE 2009, 16–24 May 2009, Vancouver, Canada, pp. 100–110. IEEE (2009)

  5. Calinescu, R., et al.: Dynamic QoS management and optimization in service-based systems. IEEE Trans. Softw. Eng. 37(3), 387–409 (2011)

    Article  Google Scholar 

  6. Cámara, J., Correia, P., de Lemos, R., Garlan, D., Gomes, P., Schmerl, B. R., Ventura, R.: Evolving an adaptive industrial software system to use architecture-based self-adaptation. In: Litoiu and Mylopoulos (2013), pp. 13–22 (2013)

  7. Cámara, J., Lopes, A., Garlan, D., Schmerl, B.R.: Impact models for architecture-based self-adaptive systems. In: Lanese, I., Madelaine, E. (eds.) Formal Aspects of Component Software—11th International Symposium, FACS 2014, Bertinoro, Italy, 10–12 September 2014, Revised Selected Papers, Volume 8997 of Lecture Notes in Computer Science, pp. 89–107. Springer, Berlin (2014)

  8. Cámara, J., Garlan, D., Schmerl, B.R., Pandey, A.: Optimal planning for architecture-based self-adaptation via model checking of stochastic games. In: Wainwright, R.L., Corchado, J.M., Bechini, A., Hong, J. (eds.) Proceedings of the 30th Annual ACM Symposium on Applied Computing, pp. 428–435. ACM (2015)

  9. Cámara, J., Correia, P., de Lemos, R., Garlan, D., Gomes, P., Schmerl, B.R., Ventura, R.: Incorporating architecture-based self-adaptation into an adaptive industrial software system. J. Syst. Softw. 122, 507–523 (2016)

    Article  Google Scholar 

  10. Carzaniga, A., Gorla, A., Mattavelli, A., Perino, N., Pezzè, M.: Automatic recovery from runtime failures. In: Notkin, D., Cheng, B.H.C., Pohl, K. (eds.) 35th International Conference on Software Engineering, ICSE ’13, San Francisco, CA, USA, 18–26 May 2013, pp. 782–791. IEEE/ACM (2013)

  11. Cheng, S.-W.: Rainbow: Cost-Effective Software Architecture-Based Self-Adaptation. PhD thesis, CMU (2008)

  12. Cheng, S.-W., Garlan, D.: Stitch: a language for architecture-based self-adaptation. J. Syst. Softw. 85(12), 2860–2875 (2012)

    Article  Google Scholar 

  13. Cheng, B.H.C. et al.: Software engineering for self-adaptive systems: a research roadmap. In: Cheng, B.H.C., de Lemos, R., Giese, H., Inverardi, P., Magee, J. (eds.) Software Engineering for Self-Adaptive Systems, Volume 5525 of Lecture Notes in Computer Science, pp. 1–26. Springer, Berlin (2009)

  14. Cheng, S., Garlan, D., Schmerl, B.R.: Evaluating the effectiveness of the rainbow self-adaptive system. In: 2009 ICSE Workshop on Software Engineering for Adaptive and Self-Managing Systems, SEAMS 2009, Vancouver, BC, Canada, 18–19 May 2009, pp. 132–141. IEEE Computer Society (2009)

  15. C-MART.

  16. da Silva, C.E., de Lemos, R.: Dynamic plans for integration testing of self-adaptive software systems. In: Giese, H., Cheng, B.H.C. (eds.) 2011 ICSE Symposium on Software Engineering for Adaptive and Self-Managing Systems, SEAMS 2011, Waikiki, Honolulu , HI, USA, 23–24 May 2011, pp. 148–157. ACM (2011)

  17. Didona, D., Romano, P.: Using analytical models to bootstrap machine learning performance predictors. In: 2015 IEEE 21st International Conference on Parallel and Distributed Systems (ICPADS), pp. 405–413 (2015)

  18. D’Ippolito, N., Braberman, V. A., Kramer, J., Magee, J., Sykes, D., Uchitel, S.: Hope for the best, prepare for the worst: multi-tier control for adaptive systems. In: Jalote et al. (2014), pp. 688–699 (2014)

  19. Epifani, I., Ghezzi, C., Mirandola, R., Tamburrelli, G.: Model evolution by run-time parameter adaptation. In: Atlee, J.M., Inverardi, P. (eds.) Proceedings of the 31st International Conference on Software Engineering, ICSE 2009, 16–24 May 2009, Vancouver, Canada, pp. 111–121. IEEE (2009)

  20. Filieri, A., Hoffmann, H., Maggio, M.: Automated design of self-adaptive software with control-theoretical formal guarantees. In: Jalote et al. (2014), pp. 299–310

  21. Filieri, A., Hoffmann, H., Maggio, M.: Automated multi-objective control for self-adaptive software design. In: Nitto et al. (2015), pp. 13–24

  22. Forejt, V., Kwiatkowska, M.Z., Parker, D.: Pareto curves for probabilistic model checking. In: Chakraborty, S., Mukund, M. (eds.) Automated Technology for Verification and Analysis—Proceedings of the 10th International Symposium, ATVA 2012, Thiruvananthapuram, India, 3–6 October 2012, Volume 7561 of Lecture Notes in Computer Science, pp. 317–332. Springer, Berlin (2012)

  23. Garlan, D., Cheng, S.-W., Huang, A., Schmerl, B., Steenkiste, P.: Rainbow: architecture-based self-adaptation with reusable infrastructure. IEEE Comput. 37(10), 46–54 (2004)

    Article  Google Scholar 

  24. Giunchiglia, F. et al.: Planning as model checking. In: ECP, Volume 1809 of LNAI. Springer, Berlin (1999)

  25. Huber, N., van Hoorn, A., Koziolek, A., Brosig, F., Kounev, S.: Modeling run-time adaptation at the system architecture level in dynamic service-oriented environments. Serv. Oriented Comput. Appl. 8(1), 73–89 (2014)

    Article  Google Scholar 

  26. Huebscher, M.C., McCann, J.A.: A survey of autonomic computing—degrees, models, and applications. ACM Comput. Surv. 40(3), 7 (2008)

    Article  Google Scholar 

  27. Kephart, J.O., Chess, D.M.: The vision of autonomic computing. IEEE Comput. 36(1), 41–50 (2003)

    Article  Google Scholar 

  28. Klein, C., Maggio, M., Årzén, K., Hernández-Rodriguez, F.: Brownout: building more robust cloud applications. In: Jalote et al. (2014), pp. 700–711 (2014)

  29. Kramer, J., Magee, J.: Self-managed systems: an architectural challenge. In: Briand, L.C., Wolf, A.L. (eds.) International Conference on Software Engineering, ISCE 2007, Workshop on the Future of Software Engineering, FOSE 2007, 23–25 May 2007, Minneapolis, MN, USA, pp. 259–268 (2007)

  30. Kwiatkowska, M.Z., Parker, D.: Automated verification and strategy synthesis for probabilistic systems. In: Hung, D.V., Ogawa, M. (eds.) Automated Technology for Verification and Analysis—Proceedings of the 11th International Symposium, ATVA 2013, Hanoi, Vietnam, 15–18 October 2013, Volume 8172 of Lecture Notes in Computer Science, pp. 5–22. Springer, Berlin (2013)

  31. Kwiatkowska, M.Z., Norman, G., Parker, D.: Stochastic model checking. In: Bernardo, M., Hillston, J. (eds.) Formal Methods for Performance Evaluation, 7th International School on Formal Methods for the Design of Computer, Communication, and Software Systems, SFM 2007, Bertinoro, Italy, May 28–June 2 2007, Advanced Lectures, Volume 4486 of Lecture Notes in Computer Science, pp. 220–270. Springer, Berlin (2007)

  32. Kwiatkowska, M.Z., Norman, G., Parker, D.: PRISM 4.0: Verification of probabilistic real-time systems. In: Gopalakrishnan, G., Qadeer, S. (eds.) Computer Aided Verification—Proceedings of the 23rd International Conference, CAV 2011, Snowbird, UT, USA, 14–20 July 2011, Volume 6806 of Lecture Notes in Computer Science, pp. 585–591. Springer, Berlin (2011)

  33. Laprie, J.-C.: From Dependability to Resilience. In: DSN Fast Abstracts. IEEE CS (2008)

  34. Li, W., Sadigh, D., Sastry, S., Seshia, S.: Synthesis for human-in-the-loop control systems. In: Abraham, E., Havelund, K. (eds.) Tools and Algorithms for the Construction and Analysis of Systems, Volume 8413 of Lecture Notes in Computer Science, pp. 470–484. Springer, Berlin (2014)

  35. Marco, A.D., Inverardi, P., Spalazzese, R.: Synthesizing self-adaptive connectors meeting functional and performance concerns. In: Litoiu and Mylopoulos (2013), pp. 133–142 (2013)

  36. Moreno, G.A., Cámara, J., Garlan, D., Schmerl, B.R.: Proactive self-adaptation under uncertainty: a probabilistic model checking approach. In: Nitto et al. (2015), pp. 1–12 (2015)

  37. Moreno, G.A., Cámara, J., Garlan, D., Schmerl, B.R.: Efficient decision-making under uncertainty for proactive self-adaptation. In: Kounev, S., Giese, H., Liu, J. (eds.) 2016 IEEE International Conference on Autonomic Computing, ICAC 2016, Wuerzburg, Germany, 17–22 July 2016, pp. 147–156. IEEE Computer Society (2016)

  38. Mukhija, A., Dingwall-Smith, A., Rosenblum, D.S.: Qos-aware service composition in dino. In: Fifth IEEE European Conference on Web Services (ECOWS 2007), 26–28 November 2007, Halle (Saale), Germany, pp. 3–12. IEEE Computer Society (2007)

  39. Nou, R., Kounev, S., Julià, F., Torres, J.: Autonomic Qos control in enterprise grid environments using online simulation. J. Syst. Softw. 82(3), 486–502 (2009)

    Article  Google Scholar 

  40. Piterman, N., Pnueli, A., Sa’ar, Y.: Synthesis of reactive(1) designs. In: Emerson, E.A., Namjoshi, K.S. (eds.) Verification, Model Checking, and Abstract Interpretation, Proceedings of the 7th International Conference, VMCAI 2006, Charleston, SC, USA, 8–10 January 2006, Volume 3855 of Lecture Notes in Computer Science, pp. 364–380. Springer, Berlin (2006)

  41. Pressman, R.S.: Software Engineering: A Practitioner’s Approach, 5th edn. McGraw-Hill Higher Education, New York City (2001)

    Google Scholar 

  42. Ramadge, P.J.G., Wonham, W.M.: Supervisory control of a class of discrete event processes. SIAM J. Control Optim. 25(1), 206–230 (1987)

    MathSciNet  Article  MATH  Google Scholar 

  43. Rice University Bidding System.

  44. Schmerl, B.R., Cámara, J., Gennari, J., Garlan, D., Casanova, P., Moreno, G.A., Glazier, T.J., Barnes, J.M.: Architecture-based self-protection: composing and reasoning about denial-of-service mitigations. In: Williams, L.A., Nicol, D.M., Singh, M.P. (eds.) Proceedings of the 2014 Symposium and Bootcamp on the Science of Security, HotSoS 2014, Raleigh, NC, USA, 08–09 April 2014, p. 2. ACM (2014)

  45. Schoppers, M.: Universal plans for reactive robots in unpredictable environments. In: McDermott, J.P. (ed.) Proceedings of the 10th International Joint Conference on Artificial Intelligence. Milan, Italy, August 1987, pp. 1039–1046. Morgan Kaufmann (1987)

  46. Sykes, D., Heaven, W., Magee, J., Kramer, J.: Exploiting non-functional preferences in architectural adaptation for self-managed systems. In: Shin, S.Y., Ossowski, S., Schumacher, M., Palakal, M.J., Hung, C. (eds.) Proceedings of the 2010 ACM Symposium on Applied Computing (SAC), Sierre, Switzerland, 22–26 March 2010, pp. 431–438. ACM (2010)

  47. Tajalli, H., Garcia, J., Edwards, G., Medvidovic, N.: PLASMA: a plan-based layered architecture for software model-driven adaptation. In: Pecheur, C., Andrews, J., Nitto, E.D. (eds.) ASE 2010, 25th IEEE/ACM International Conference on Automated Software Engineering, Antwerp, Belgium, 20–24 September 2010, pp. 467–476. ACM (2010)

  48. Turner, A., Fox, A., Payne, J.I., Kim, H.S.: C-MART: benchmarking the cloud. IEEE Trans. Parallel Distrib. Syst. 24(6), 1256–1266 (2013)

    Article  Google Scholar 

  49. Whittle, J., Sawyer, P., Bencomo, N., Cheng, B.H.C., Bruel, J.: RELAX: a language to address uncertainty in self-adaptive systems requirement. Requir. Eng. 15(2), 177–196 (2010)

    Article  Google Scholar 

  50. Wikipedia. Slashdot Effect.

Download references


This material is based upon work funded and supported by the Department of Defense under Contract No. FA8721-05-C-0003 with Carnegie Mellon University for the operation of the Software Engineering Institute, a federally funded research and development center. [Distribution Statement A] This material has been approved for public release and unlimited distribution. Please see Copyright notice for non-US Government use and distribution (DM-0004612).

Author information



Corresponding author

Correspondence to Javier Cámara.

Rights and permissions

Reprints and Permissions

About this article

Verify currency and authenticity via CrossMark

Cite this article

Cámara, J., Schmerl, B., Moreno, G.A. et al. MOSAICO: offline synthesis of adaptation strategy repertoires with flexible trade-offs. Autom Softw Eng 25, 595–626 (2018).

Download citation


  • Self-Adaptation
  • Resilience
  • Synthesis
  • Model checking