Abstract
Self-adaptive systems enable the run-time modification, or dynamic adaptation, of a software system in order to offer the most appropriate behavior of the system according to its context of execution and the situations of its surrounding environment. Depending on the situations currently at hand, multiple and varied adaptations may affect the original behavior of a software system simultaneously. This may lead to accidental behavioral inconsistencies if not all possible interactions with other adaptations were anticipated. The behavioral inconsistencies problem becomes even more acute if adaptations are unknown beforehand, for example, when new adaptations are incorporated to the system on the fly. Self-adaptive systems must therefore provide a means to arbitrate interactions between adaptions at run time, to ensure that there will be no inconsistencies in the system’s behavior as adaptations are dynamically composed into or withdrawn from the system. This chapter presents existing approaches that allow the development of self-adaptive systems and management of the behavioral inconsistencies that may appear due to the interaction of adaptations at run time. The approaches are classified into four categories: formal, architectural modeling, rule-based, and transition system approaches. Each of these approaches is evaluated with respect to the assurances they provide for the run-time consistency of the system, in the light of dynamic behavior adaptations.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
Notes
- 1.
Graph transformation models, like AGG, can also be used as engines for rule-based approaches.
References
Alvares De Oliveira Jr., F., Rutten, É., Seinturier, L.: Behavioural model-based control for autonomic software components. In: 12th IEEE International Conference on Autonomic Computing, ICAC 2015. IEEE, Grenoble, July 2015
Amer, M., Karmouch, A., Gray, T., Mankovskii, S.: Policies for feature interaction resolution. In: de Souza, J.N., Boutaba, R. (eds.) Managing QoS in Multimedia Networks and Services, MMNS2000. IFIP AICT, vol. 54, pp. 207–223. Springer, Boston (2000). https://doi.org/10.1007/978-0-387-35532-0_15
An, X., Delaval, G., Diguet, J.-P., Gamatié, A., Gueye, S., Marchand, H., de Palma, N., Rutten, E.: Discrete control-based design of adaptive and autonomic computing systems. In: Natarajan, R., Barua, G., Patra, M.R. (eds.) ICDCIT 2015. LNCS, vol. 8956, pp. 93–113. Springer, Cham (2015). https://doi.org/10.1007/978-3-319-14977-6_6
Bainomugisha, E., Vallejos, J., De Roover, C., Lombide Carreton, A., De Meuter, W.: Interruptible context-dependent executions: a fresh look at programming context-aware applications. In: Proceedings of the ACM International Symposium on New Ideas and Reflections on Software, OnWard 2012, pp. 67–84. ACM, New York (2012)
Berthier, N., Rutten, É., De Palma, N., Gueye, S.M.K.: Designing autonomic management systems by using reactive control techniques. IEEE Trans. Software Eng., 18, December 2015
Bianculli, D., Filieri, A., Ghezzi, C., Mandrioli, D.: Incremental syntactic-semantic reliability analysis of evolving structured workflows. In: Margaria, T., Steffen, B. (eds.) ISoLA 2014. LNCS, vol. 8802, pp. 41–55. Springer, Heidelberg (2014). https://doi.org/10.1007/978-3-662-45234-9_4
Bicocchi, N., Vassev, E., Zambonelli, F., Hinchey, M.: Reasoning on data streams: an approach to adaptation in pervasive systems. In: Vinh, P.C., Vassev, E., Hinchey, M. (eds.) ICTCC 2014. LNICST, vol. 144, pp. 23–32. Springer, Cham (2015). https://doi.org/10.1007/978-3-319-15392-6_3
Blalckburn, P., de Rijke, M., Venema, Y.: Modal Logic. Cambridge University Press, Cambridge (2001)
Börger, E., Stärk, R.: Abstract State Machines. Springer, Heidelberg (2003), https://doi.org/10.1007/978-3-642-18216-7
Brailsford, S.C., Potts, C.N., Smith, B.M.: Constraint satisfaction problems: algorithms and applications. Eur. J. Oper. Res. 119(3), 557–581 (1999)
Calder, M., Kolberg, M., Magill, E.H., Reiff-Marganiec, S.: Feature interaction: a critical review and considered forecast. Comput. Netw. 41, 115–141 (2003)
Calinescu, R., Ghezzi, C., Kwiatkowska, M., Mirandola, R.: Self-adaptive software needs quantitative verification at runtime. Commun. ACM 55(9), 69–77 (2012)
Capilla, R., Hinchey, M., Díaz, F.J.: Collaborative context features for critical systems. In: Proceedings of the Ninth International Workshop on Variability Modelling of Software-Intensive Systems, VaMoS 2015, pp. 43:43–43:50. ACM, New York (2015)
Cardozo, N.: Identification and Management of Inconsistencies in Dynamicaly Adaptive Software Systems. Ph.D. thesis, Université catholique de Louvain - Vrije Universiteit Brussel, Louvain-la-Neuve, Belgium, September 2013
Cardozo, N., Clarke, S.: Context slices: Lightweight discovery of behavioral adaptations. In: Proceedings of the Context-Oriented Programming Workshop, COP 2015, pp. 2:1–2:6. ACM, July 2015
Cardozo, N., González, S., Mens, K., Van Der Straeten, R., D’Hondt, T.: Modeling and analyzing self-adaptive systems with context petri nets. In: Proceedings of the Symposium on Theoretical Aspects of Software Engineering, TASE 2013, pp. 191–198. IEEE Computer Society, July 2013
Cardozo, N., González, S., Van Der Straeten, R., Mens, K., Vallejos, J., D’Hondt, T.: Semantics for consistent activation in context-oriented systems. J. Inf. Softw. Technol. 58, 71–94 (2015)
Cardozo, N., Vallejos, J., González, S., Mens, K., D’Hondt, T.: Context petri nets: enabling consistent composition of context-dependent behavior. In: International Workshop on Petri Nets and Software Engineering, PNSE 2012, 25–26 June 2012. Springer (2012). Co-located with the International Conference on Application and Theory of Petri Nets and Concurrency
Castro, S., De Roover, C., Kellens, A., Lozano, A., Mens, K., D’Hondt, T.: Diagnosing and correcting design inconsistencies in source code with logical abduction. Sci. Comput. Program. Special Issue Softw. Evol. Adapt. Variability 76(12), 1113–1129 (2010)
Cetina, C., Giner, P., Fons, J., Pelechano, V.: Autonomic computing through reuse of variability models at runtime: the case of smart homes. Computer 42(10), 37–43 (2009)
Chang, X., Cheung, S.C., Chan, W.K., Ye, C.: Partial constraint checking for context consistency in pervasive computing. ACM Trans. Software Eng. Methodol. 19(3), 1–61 (2010)
Chen, N., Clarke, S.: A dynamic service composition model for adaptive systems in mobile computing environments. In: Franch, X., Ghose, A.K., Lewis, G.A., Bhiri, S. (eds.) ICSOC 2014. LNCS, vol. 8831, pp. 93–107. Springer, Heidelberg (2014). https://doi.org/10.1007/978-3-662-45391-9_7
Degrandsart, S., Demeyer, S., den Bergh, J.V., Mens, T.: A transformation-based approach to context-aware modelling. Softw. Syst. Model 13, 1–18 (2012)
Devillers, R., Klaudel, H., Koutny, M.: Context-based process algebras for mobility. In: Proceedings of the 4th International Conference on Application of Concurrency to System Design, ACSD 2004. IEEE Computer Society (2004)
Dimitrovici, C., Hummert, U., Petrucci, L.: Semantics, composition and net properties of algebraic high-level nets. In: Rozenberg, G. (ed.) ICATPN 1990. LNCS, vol. 524, pp. 93–117. Springer, Heidelberg (1991). https://doi.org/10.1007/BFb0019971
Filieri, A., Ghezzi, C., Tamburrelli, G.: A formal approach to adaptive software: continuous assurance of non-functional requirements. Formal Aspects Comput. 24(2), 163–186 (2011)
Forejt, V., Kwiatkowska, M., Parker, D., Qu, H., Ujma, M.: Incremental runtime verification of probabilistic systems. In: Qadeer, S., Tasiran, S. (eds.) RV 2012. LNCS, vol. 7687, pp. 314–319. Springer, Heidelberg (2013). https://doi.org/10.1007/978-3-642-35632-2_30
Forgy, C.L.: On the efficient implementation of production systems. Ph.D. thesis, Carnegie Mellon University, Pittsburgh, PA, USA (1979)
Geihs, K., Reichle, R., Wagner, M., Khan, M.U.: Modeling of context-aware self-adaptive applications in ubiquitous and service-oriented environments. In: Cheng, B.H.C., de Lemos, R., Giese, H., Inverardi, P., Magee, J. (eds.) Software Engineering for Self-Adaptive Systems. LNCS, vol. 5525, pp. 146–163. Springer, Heidelberg (2009). https://doi.org/10.1007/978-3-642-02161-9_8
González, S., Cardozo, N., Mens, K., Cádiz, A., Libbrecht, J.-C., Goffaux, J.: Subjective-C: Bringing context to mobile platform programming. In: Malloy, B., Staab, S., van den Brand, M. (eds.) SLE 2010. LNCS, vol. 6563, pp. 246–265. Springer, Heidelberg (2011). https://doi.org/10.1007/978-3-642-19440-5_15
Harel, D.: Statecharts: a visual formalism for complex systems. Sci. Comput. Program. 8, 231–274 (1987)
Harvey, N., Morris, J.: Nl: a parallel programming visual language. Aust. Comput. 28(1), 2–12 (1996)
Helleboogh, A., Weyns, D., Schmid, K., Holvoet, T., Schelfthout, K., Van Betsbrugge, W.: Adding variants on-the-fly: modeling meta-variability in dynamic software product lines. In: Proceedings of the International Workshop on Dynamic Software Product Lines, DSPL 2009, pp. 18–27. Carnegie Mellon University, August 2009
Hennessy, M.: Algebraic Theory of Processes. The MIT Press, Cambridge (1988)
Hopcroft, J.E., Ullman, J.: Introduction to Automata Theory, Languages, and Computation. Addison-Wesley, Reading (1979)
Hubaux, A., Boucher, Q., Hartmann, H., Michel, R., Heymans, P.: Evaluating a textual feature modelling language: four industrial case studies. In: Malloy, B., Staab, S., van den Brand, M. (eds.) SLE 2010. LNCS, vol. 6563, pp. 337–356. Springer, Heidelberg (2011). https://doi.org/10.1007/978-3-642-19440-5_23
Iftikhar, M.U., Weyns, D.: Activforms: active formal models for self-adaptation. In: Proceedings of the International Symposium on Software Engineering for Adaptive and Self-Managing Systems, SEAMS 2014, pp. 125–134. ACM, New York (2014)
Jacobs, B.: Exercises in coalgebraic specification. In: Backhouse, R., Crole, R., Gibbons, J. (eds.) Algebraic and Coalgebraic Methods in the Mathematics of Program Construction. LNCS, vol. 2297, pp. 237–281. Springer, Heidelberg (2002). https://doi.org/10.1007/3-540-47797-7_7
Johnson, K., Calinescu, R., Kikuchi, S.: An incremental verification framework for component-based software systems. In: Proceedings of the 16th International ACM Sigsoft Symposium on Component-Based Software Engineering, CBSE 2013, pp. 33–42. ACM, New York (2013)
Johnston, W.M., Hanna, J.R.P., Millar, R.J.: Advances in dataflow programming languages. ACM Comput. Surv. 36(1), 1–34 (2004)
Jouault, F., Allilaire, F., Bézivin, J., Kurtev, I.: Atl: A model transformation tool. Sci. Comput. Program. 72(12), 31–39 (2008), http://www.sciencedirect.com/science/article/pii/S0167642308000439. Special Issue on Second Issue of Experimental Software and Toolkits (EST)
Kang, K.C., Cohen, S.G., Hess, J.A., Novak, W.E., Peterson, A.S.: Feature-oriented domain analysis (foda) feasibility study. Technical Report CMU/SEI-90-TR-21, Carnegie-Mellon University Software Engineering Institute, November 1990
Laddaga, R.: Self adaptive software problems and projects. In: Proceedings of the Second International IEEE Workshop on Software Evolvability, SOFTWARE-EVOLVABILITY 2006, pp. 3–10. IEEE Computer Society, Washington, DC (2006)
Latella, D., Majzik, I., Massink, M.: Towards a formal operational semantics of UML statechart diagrams. In: International Conference on Formal Methods for Open Object-Based Distributed Systems, FMOODS 1999, pp. 465–482. Kluwer, B.V., Deventer (1999)
Lee, T., Leok, M., McClamroch, N.H.: Discrete control systems. In: Mathematics Complexity and Dynamical Systems, pp. 143–159 (2011)
Liu, Y., Meier, R.: Resource-aware contracts for addressing feature interaction in dynamic adaptive systems. In: International Conference on Autonomic and Autonomous Systems, pp. 346–350 (2009)
Lombide Carreton, A.: Ambient-Oriented Dataflow Programming for Mobile RFID-Enabled Applications. Ph.D. thesis, Vrije Universiteit Brussel, Pleinlaan 2, Brussels, Belgium, October 2011
Milner, R., Parrow, J., Walker, D.: A calculus of mobile processes (parts i and ii). Inf. Comput. 100(1), 1–77 (1992)
Morin, B., Barais, O., Jezequel, J.M., Fleurey, F., Solberg, A.: Models@ run.time to support dynamic adaptation. IEEE Comput. 42(10), 44–51 (2009). https://doi.org/10.1109/MC.2009.327
Mostinckx, S., Scholliers, C., Philips, E., Herzeel, C., De Meuter, W.: Fact spaces: coordination in the face of disconnection. In: Murphy, A.L., Vitek, J. (eds.) COORDINATION 2007. LNCS, vol. 4467, pp. 268–285. Springer, Heidelberg (2007). https://doi.org/10.1007/978-3-540-72794-1_15
Murata, T.: Petri nets: properties, analysis and applications. Proc. IEEE 77(4), 541–580 (1989)
Pinna Puissant, J., Van Der Straeten, R., Mens, T.: Badger: a regression planner to resolve design model inconsistencies. In: Vallecillo, A., Tolvanen, J.-P., Kindler, E., Störrle, H., Kolovos, D. (eds.) ECMFA 2012. LNCS, vol. 7349, pp. 146–161. Springer, Heidelberg (2012). https://doi.org/10.1007/978-3-642-31491-9_13
Prasad, M.R., Biere, A., Gupta, A.: A survey of recent advances in sat based formal verification. J. Softw. Tools Technol. Transfer 7(2), 156–173 (2005)
Prehofer, C.: Feature-oriented programming: a new way of object composition. Concurrency Comput. Pract. Experience 13(5), 465–501 (2001)
Reiff, S.: Identifying resolution choices for an online feature manager. In: Proceedings of the International Workshop on Feature Interactions in Telecommunications and Software Systems, pp. 113–128. IOS Press, Amsterdam (2000)
Schippers, H., Molderez, T., Janssens, D.: A graph-based operational semantics for context-oriented programming. In: Proceedings of the Context-Oriented Workshop, COP 2010, vol. 6, pp. 1–6. ACM, New York (2010)
Schmieders, E., Metzger, A.: Preventing performance violations of service compositions using assumption-based run-time verification. In: Abramowicz, W., Llorente, I.M., Surridge, M., Zisman, A., Vayssière, J. (eds.) ServiceWave 2011. LNCS, vol. 6994, pp. 194–205. Springer, Heidelberg (2011). https://doi.org/10.1007/978-3-642-24755-2_19
Sistla, P.: Hybrid and incremental modelchecking techniques. ACM Comput. Surv. 28(4es), December 1996
Song, H., Barrett, S., Clarke, A., Clarke, S.: Self-adaptation with end-user preferences: using run-time models and constraint solving. In: Moreira, A., Schätz, B., Gray, J., Vallecillo, A., Clarke, P. (eds.) MODELS 2013. LNCS, vol. 8107, pp. 555–571. Springer, Heidelberg (2013). https://doi.org/10.1007/978-3-642-41533-3_34
Straeten, R.V.D.: Inconsistency Management in Model-Driven Engineering. Ph.D. thesis, Vrije Universiteit Brussel, Pleinlaan 2, Brussels, Belgium, September 2005
Streett, R.S., Emerson, E.A.: An automata theoretic decision procedure for the propositional mu-calculus. Inf. Comput. 81(3), 249–264 (1989)
Sykes, D., Magee, J., Kramer, J.: Flashmob: distributed adaptive self-assembly. In: Proceedings of the 6th International Symposium on Software Engineering for Adaptive and Self-Managing Systems, SEAMS 2011, pp. 100–109. ACM, New York (2011)
Taentzer, G.: AGG: a graph transformation environment for modeling and validation of software. In: Pfaltz, J.L., Nagl, M., Böhlen, B. (eds.) AGTIVE 2003. LNCS, vol. 3062, pp. 446–453. Springer, Heidelberg (2004). https://doi.org/10.1007/978-3-540-25959-6_35
Tan, L.: Model-based self-adaptive embedded programs with temporal logic specifications. In: Quality Software International Conference, QSIC 2006, pp. 151–158, October 2006
Tesei, L., Merelli, E., Paoletti, N.: Multiple levels in self-adaptive complex systems: a state-based approach. In: Gilbert, T., Kirkilionis, M., Nicolis, G. (eds.) Proceedings of the European Conference on Complex Systems, ECCS 2012. Springer Proceedings in Complexity, pp. 1033–1050. Springer, Cham (2012), https://doi.org/10.1007/978-3-319-00395-5_124
Ukey, N., Niyogi, R., Milani, A., Singh, K.: A bidirectional heuristic search technique for web service composition. In: Taniar, D., Gervasi, O., Murgante, B., Pardede, E., Apduhan, B.O. (eds.) ICCSA 2010. LNCS, vol. 6019, pp. 309–320. Springer, Heidelberg (2010). https://doi.org/10.1007/978-3-642-12189-0_27
Van Der Straeten, R., Jonckers, V., Mens, T.: A formal approach to model refactoring and model refinement. Softw. Syst. Model. 6(2), 139–162 (2006)
Zhang, J., Cheng, B.H.: Using temporal logic to specify adaptive program semantics. J. Syst. Softw. 79(10), 1361–1369 (2006)
Acknowledgements
This work was supported, in part, by Science Foundation Ireland grant 10/CE/I1855 to Lero - the Irish Software Engineering Research Center (www.lero.ie). We thank the anonymous reviewers for their comments on earlier versions of this paper.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2017 Springer International Publishing AG
About this paper
Cite this paper
Cardozo, N., Mens, K., Clarke, S. (2017). Models for the Consistent Interaction of Adaptations in Self-Adaptive Systems. In: de Lemos, R., Garlan, D., Ghezzi, C., Giese, H. (eds) Software Engineering for Self-Adaptive Systems III. Assurances. Lecture Notes in Computer Science(), vol 9640. Springer, Cham. https://doi.org/10.1007/978-3-319-74183-3_11
Download citation
DOI: https://doi.org/10.1007/978-3-319-74183-3_11
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-74182-6
Online ISBN: 978-3-319-74183-3
eBook Packages: Computer ScienceComputer Science (R0)