skip to main content
research-article

Model-Driven Engineering of Self-Adaptive Software with EUREMA

Published:01 January 2014Publication History
Skip Abstract Section

Abstract

The development of self-adaptive software requires the engineering of an adaptation engine that controls the underlying adaptable software by feedback loops. The engine often describes the adaptation by runtime models representing the adaptable software and by activities such as analysis and planning that use these models. To systematically address the interplay between runtime models and adaptation activities, runtime megamodels have been proposed. A runtime megamodel is a specific model capturing runtime models and adaptation activities. In this article, we go one step further and present an executable modeling language for ExecUtable RuntimE MegAmodels (EUREMA) that eases the development of adaptation engines by following a model-driven engineering approach. We provide a domain-specific modeling language and a runtime interpreter for adaptation engines, in particular feedback loops. Megamodels are kept alive at runtime and by interpreting them, they are directly executed to run feedback loops. Additionally, they can be dynamically adjusted to adapt feedback loops. Thus, EUREMA supports development by making feedback loops explicit at a higher level of abstraction and it enables solutions where multiple feedback loops interact or operate on top of each other and self-adaptation co-exists with offline adaptation for evolution.

References

  1. Amoui, M., Derakhshanmanesh, M., Ebert, J., and Tahvildari, L. 2012. Achieving dynamic adaptation via management and interpretation of runtime models. J. Syst. Softw. 85, 12, 2720--2737. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Andersson, J., de Lemos, R., Malek, S., and Weyns, D. 2009. Reflecting on self-adaptive software systems. In Proceedings of the Workshop on Software Engineering for Adaptive and Self-Managing Systems. IEEE, 38--47. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Andersson, J., Baresi, L., Bencomo, N., de Lemos, R., Gorla, A., Inverardi, P., and Vogel, T. 2013. Software engineering processes for self-adaptive systems. In Software Engineering for Self-Adaptive Systems II. Lecture Notes in Computer Science, vol. 7475, Springer, 51--75.Google ScholarGoogle ScholarCross RefCross Ref
  4. Barbero, M., Fabro, M. D., and Bézivin, J. 2007. Traceability and provenance issues in global model management. In Proceedings of the 3rd Workshop on Traceability. 47--55.Google ScholarGoogle Scholar
  5. Bencomo, N. and Blair, G. 2009. Using architecture models to support the generation and operation of component-based adaptive systems. In Software Engineering for Self-Adaptive Systems. Lecture Notes in Computer Science, vol. 5525, Springer, 183--200. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Bézivin, J., Gerard, S., Muller, P.-A., and Rioux, L. 2003. MDA components: Challenges and opportunities. In Proceedings of the 1st International Workshop on Metamodelling for MDA. 23--41.Google ScholarGoogle Scholar
  7. Bézivin, J., Jouault, F., and Valduriez, P. 2004. On the need for megamodels. In Proceedings of the Workshop on Best Practices for Model-Driven Software Development.Google ScholarGoogle Scholar
  8. Blair, G., Bencomo, N., and France, R. B. 2009. [email protected]. Computer 42, 10, 22--27. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Brun, Y., Serugendo, G. D. M., Gacek, C., Giese, H., Kienle, H., Litoiu, M., Müller, H. A., Pezzè, M., and Shaw, M. 2009. Engineering self-adaptive systems through feedback loops. In Software Engineering for Self-Adaptive Systems. Lecture Notes in Computer Science, vol. 5525, Springer, 48--70. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Cheng, B. H., de Lemos, R., Giese, H., Inverardi, P., Magee, J., Andersson, J., Becker, B., Bencomo, N., Brun, Y., Cukic, B., Serugendo, G. D. M., Dustdar, S., Finkelstein, A., Gacek, C., Geihs, K., Grassi, V., Karsai, G., Kienle, H. M., Kramer, J., Litoiu, M., Malek, S., Mirandola, R., Müller, H. A., Park, S., Shaw, M., Tichy, M., Tivoli, M., Weyns, D., and Whittle, J. 2009. Software engineering for self-adaptive systems: A research roadmap. In Software Engineering for Self-Adaptive Systems. Lecture Notes in Computer Science, vol. 5525, Springer, 1--26. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Cheng, S.-W., Huang, A.-C., Garlan, D., Schmerl, B., and Steenkiste, P. 2004. An architecture for coordinating multiple self-management systems. In Proceedings of the 4th Working Conference on Software Architecture. IEEE, 243--252. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Cheng, S.-W., Garlan, D., and Schmerl, B. 2006. Architecture-based self-adaptation in the presence of multiple objectives. In Proceedings of the Workshop on Software Engineering for Adaptive and Self-Managing Systems. ACM, 2--8. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Coulouris, G., Dollimore, J., Kindberg, T., and Blair, G. 2011. Distributed Systems: Concepts and Design 5th Ed. Addison-Wesley. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. de Lemos, R., Giese, H., Müller, H. A., Shaw, M., Andersson, J., Litoiu, M., Schmerl, B., Tamura, G., Villegas, N. M., Vogel, T., Weyns, D., Baresi, L., Becker, B., Bencomo, N., Brun, Y., Cukic, B., Desmarais, R., Dustdar, S., Engels, G., Geihs, K., Goeschka, K., Gorla, A., Grassi, V., Inverardi, P., Karsai, G., Kramer, J., Lopes, A., Magee, J., Malek, S., Mankovskii, S., Mirandola, R., Mylopoulos, J., Nierstrasz, O., Pezzè, M., Prehofer, C., Schäfer, W., Schlichting, R., Smith, D. B., Sousa, J. P., Tahvildari, L., Wong, K., and Wuttke, J. 2013. Software engineering for self-adaptive systems: A second research roadmap. In Software Engineering for Self-Adaptive Systems II. Lecture Notes in Computer Science, vol. 7475, Springer, 1--32.Google ScholarGoogle ScholarCross RefCross Ref
  15. de Oliveira, F. A., Sharrock, R., and Ledoux, T. 2012. Synchronization of multiple autonomic control loops: Application to cloud computing. In COORDINATION. Lecture Notes in Computer Science, vol. 7274, Springer, 29--43. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Favre, J.-M. 2005. Foundations of model (driven) (reverse) engineering: Models -- episode I: Stories of the fidus papyrus and of the Solarus. In Language Engineering for Model-Driven Software Development, Number 04101, Dagstuhl Seminar Proceedings. IBFI.Google ScholarGoogle Scholar
  17. Findeisen, W., Bailey, F., Brdys, M., Malinowski, K., Tatjewski, P., and Wozniak, A. 1980. Control and Coordination in Hierarchical Systems. J. Wiley.Google ScholarGoogle Scholar
  18. Floch, J., Hallsteinsen, S., Stav, E., Eliassen, F., Lund, K., and Gjorven, E. 2006. Using architecture models for runtime adaptability. IEEE Softw. 23, 2, 62--70. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. France, R. and Rumpe, B. 2007. Model-driven development of complex software: A research roadmap. In Proceedings of the Workshop on the Future of Software Engineering. IEEE, 37--54. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Gacek, C., Giese, H., and Hadar, E. 2008. Friends or Foes? -- A conceptual analysis of self-adaptation and it change management. In Proceedings of the Workshop on Software Engineering for Adaptive and Self-Managing Systems. ACM, 121--128. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Garlan, D., Cheng, S.-W., Huang, A.-C., Schmerl, B., and Steenkiste, P. 2004. Rainbow: Architecture-based self-adaptation with reusable infrastructure. Computer 37, 10, 46--54. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Gat, E. 1997. On Three-Layer Architectures. MIT/AAAI Press.Google ScholarGoogle Scholar
  23. Gueye, S. M. K., De Palma, N., and Rutten, E. 2012. Coordinating energy-aware administration loops using discrete control. In Proceedings of the 8th International Conference on Autonomic and Autonomous Systems. IARIA, 99--106.Google ScholarGoogle Scholar
  24. Hanysz, M. 2013. Integrating offline and online adaptations of self-adaptive software systems. M.S. thesis, Hasso Plattner Institute, University of Potsdam, Germany.Google ScholarGoogle Scholar
  25. Heaven, W., Sykes, D., Magee, J., and Kramer, J. 2009. A case study in goal-driven architectural adaptation. In Software Engineering for Self-Adaptive Systems. Lecture Notes in Computer Science, vol. 5525, Springer, 109--127. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Hebig, R., Giese, H., and Becker, B. 2010. Making control loops explicit when architecting self-adaptive systems. In Proceedings of the 2nd International Workshop on Self-Organizing Architectures. ACM, 21--28. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Hellerstein, J. L., Diao, Y., Parekh, S., and Tilbury, D. M. 2004. Feedback Control of Computing Systems. John Wiley & Sons. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. Hestermeyer, T., Oberschelp, O., and Giese, H. 2004. Structured information processing for self-optimizing mechatronic systems. In Proceedings of the 1st International Conference on Informatics in Control, Automation and Robotics. INSTICC Press, 230--237.Google ScholarGoogle Scholar
  29. Isermann, R., Lachmann, K.-H., and Matko, D. 1992. Adaptive Control Systems. Prentice Hall International Series in Systems and Control Engineering, Prentice Hall, New York. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. Kephart, J. O., Chan, H., Das, R., Levine, D. W., Tesauro, G., Rawson, F., and Lefurgy, C. 2007. Coordinating multiple autonomic managers to achieve specified power-performance tradeoffs. In Proceedings of the 4th International Conference on Autonomic Computing. IEEE, 24--33. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. Kephart, J. O. and Chess, D. 2003. The vision of autonomic computing. Computer 36, 1, 41--50. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. Kokar, M. M., Baclawski, K., and Eracar, Y. A. 1999. Control theory-based foundations of self-controlling software. Intell. Syst. Appl. 14, 3, 37--45. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. Kramer, J. and Magee, J. 2007. Self-managed systems: An architectural challenge. In Proceedings of the Workshop on the Future of Software Engineering. IEEE, 259--268. Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. Maes, P. 1987. Concepts and experiments in computational reflection. In Proceedings of the Conference on Object-Oriented Programming Systems, Languages and Applications. ACM, 147--155. Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. McKinley, P., Sadjadi, S. M., Kasten, E. P., and Cheng, B. H. 2004. Composing adaptive software. IEEE Computer 37, 7, 56--64. Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. Morin, B., Barais, O., Jézéquel, J.-M., Fleurey, F., and Solberg, A. 2009a. Models@ Run.time to support dynamic adaptation. Computer 42, 10, 44--51. Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. Morin, B., Barais, O., Nain, G., and Jézéquel, J.-M. 2009b. Taming dynamically adaptive systems using models and aspects. In Proceedings of the 31st International Conference on Software Engineering. IEEE, 122--132. Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. Morin, B., Ledoux, T., Hassine, M. B., Chauvel, F., Barais, O., and Jézéquel, J.-M. 2009c. Unifying runtime adaptation and design evolution. In Proceedings of the 9th International Conference on Computer and Information Technology. IEEE, 104--109. Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. Müller, H. A., Pezzè, M., and Shaw, M. 2008. Visibility of control in adaptive systems. In Proceedings of the 2nd International Workshop on Ultra-Large-Scale Software-Intensive Systems. ACM, 23--26. Google ScholarGoogle ScholarDigital LibraryDigital Library
  40. Object Management Group. 2011. OMG Unified Modeling Language (OMG UML), Superstructure, Version 2.4.1.Google ScholarGoogle Scholar
  41. Rouvoy, R., Barone, P., Ding, Y., Eliassen, F., Hallsteinsen, S., Lorenzo, J., Mamelli, A., and Scholz, U. 2009. MUSIC: Middleware support for self-adaptation in ubiquitous and service-oriented environments. In Software Engineering for Self-Adaptive Systems. Lecture Notes in Computer Science, vol. 5525, Springer, 164--182. Google ScholarGoogle ScholarDigital LibraryDigital Library
  42. Salehie, M. and Tahvildari, L. 2009. Self-adaptive software: Landscape and research challenges. ACM Trans. Auton. Adapt. Syst. 4, 2, 1--42. Google ScholarGoogle ScholarDigital LibraryDigital Library
  43. Schmidt, D., White, J., and Gokhale, A. 2008. Simplifying autonomic enterprise Java Bean applications via model-driven engineering and simulation. Softw. Syst. Model. 7, 1, 3--23.Google ScholarGoogle Scholar
  44. Shaw, M. 1995. Beyond objects: A software design paradigm based on process control. ACM SIGSOFT Softw. Engin. Notes 20, 1, 27--38. Google ScholarGoogle ScholarDigital LibraryDigital Library
  45. Tajalli, H., Garcia, J., Edwards, G., and Medvidovic, N. 2010. PLASMA: A plan-based layered architecture for software model-driven adaptation. In Proceedings of the International Conference on Automated Software Engineering. ACM, 467--476. Google ScholarGoogle ScholarDigital LibraryDigital Library
  46. Vogel, T. 2013. Modular Rice University Bidding System (mRUBiS). http://www.mdelab.de (Last accessed 12/13).Google ScholarGoogle Scholar
  47. Vogel, T. and Giese, H. 2010. Adaptation and abstract runtime models. In Proceedings of the Workshop on Software Engineering for Adaptive and Self-Managing Systems. ACM, 39--48. Google ScholarGoogle ScholarDigital LibraryDigital Library
  48. Vogel, T. and Giese, H. 2012a. A language for feedback loops in self-adaptive systems: Executable runtime megamodels. In Proceedings of the 7th International Symposium on Software Engineering for Adaptive and Self-Managing Systems. IEEE, 129--138.Google ScholarGoogle Scholar
  49. Vogel, T. and Giese, H. 2012b. Requirements and assessment of languages and frameworks for adaptation models. In Models in Software Engineering. Lecture Notes in Computer Science, vol. 7167, Springer, 167--182. Google ScholarGoogle ScholarDigital LibraryDigital Library
  50. Vogel, T. and Giese, H. 2013. Model-driven engineering of adaptation engines for self-adaptive software: Executable runtime megamodels. Tech. rep. 66, Hasso Plattner Institute at the University of Potsdam, Germany.Google ScholarGoogle Scholar
  51. Vogel, T., Neumann, S., Hildebrandt, S., Giese, H., and Becker, B. 2010. Incremental model synchronization for efficient run-time monitoring. In Models in Software Engineering. Lecture Notes in Computer Science, vol. 6002, Springer, 124--139. Google ScholarGoogle ScholarDigital LibraryDigital Library
  52. Vogel, T., Seibel, A., and Giese, H. 2011. The role of models and megamodels at runtime. In Models in Software Engineering. Lecture Notes in Computer Science, vol. 6627, Springer, 224--238. Google ScholarGoogle ScholarDigital LibraryDigital Library
  53. Vromant, P., Weyns, D., Malek, S., and Andersson, J. 2011. On interacting control loops in self-adaptive systems. In Proceedings of the 6th International Symposium on Software Engineering for Adaptive and Self-Managing Systems. ACM, 202--207. Google ScholarGoogle ScholarDigital LibraryDigital Library
  54. Weyns, D., Malek, S., and Andersson, J. 2012. FORMS: Unifying reference model for formal specification of distributed self-adaptive systems. ACM Trans. Auton. Adapt. Syst. 7, 1, 8:1--8:61. Google ScholarGoogle ScholarDigital LibraryDigital Library
  55. Weyns, D., Schmerl, B., Grassi, V., Malek, S., Mirandola, R., Prehofer, C., Wuttke, J., Andersson, J., Giese, H., and Goeschka, K. 2013. On patterns for decentralized control in self-adaptive systems. In Software Engineering for Self-Adaptive Systems II. Lecture Notes in Computer Science, vol. 7475, Springer, 76--107.Google ScholarGoogle ScholarCross RefCross Ref

Index Terms

  1. Model-Driven Engineering of Self-Adaptive Software with EUREMA

          Recommendations

          Reviews

          Massimiliano Masi

          Self-adaptive software is a very active field of research. Many projects (also sponsored by the European Commission (EC)) have been funded with the goal of providing techniques and tools for self-adaptive (and autonomous) programs. This paper is about tools for the development and maintenance of self-adaptive software. It specifically addresses tools using adaptation engines, partially described using the feedback loops approach. The paper exhaustively presents the details of the executable runtime megamodels (EUREMA) tool. EUREMA is a “model driven engineering approach ... that enables the specification and execution of adaptation engines for self-adaptive software with multiple feedback loops.” An interesting feature of EUREMA is a language that can be used to specify the aforementioned feedback loops. It is used to define how the models and the software relate to each other at runtime, and when the context changes and the software needs adaptation. Of course, adaptation cannot be solely provisioned at runtime. If the context changes heavily, or if the context alters itself to an unexpected or unplanned situation in the loop, developers must intervene and provide maintenance support. This kind of offline adaptation is also covered by the EUREMA tool, which enables its users to use the same model for both offline and online adaptation. The overall toolset seems to be extremely promising in the field of self-adaptation and offline adaptation. The syntax is intuitive as it is highly inspired by the unified modeling language (UML). EUREMA has been implemented using the Eclipse modeling framework (EMF) in Java, and it is available as an Eclipse plugin from an Eclipse update site. The toolchain is under active development. The authors also carried out a set of performance evaluation tests, with good results. They prove that the overhead introduced by the EUREMA tool during self-adaptation is low. Online Computing Reviews Service

          Access critical reviews of Computing literature here

          Become a reviewer for Computing Reviews.

          Comments

          Login options

          Check if you have access through your login credentials or your institution to get full access on this article.

          Sign in

          Full Access

          • Published in

            cover image ACM Transactions on Autonomous and Adaptive Systems
            ACM Transactions on Autonomous and Adaptive Systems  Volume 8, Issue 4
            Special Section on Best Papers from SEAMS 2012
            January 2014
            130 pages
            ISSN:1556-4665
            EISSN:1556-4703
            DOI:10.1145/2578044
            Issue’s Table of Contents

            Copyright © 2014 ACM

            Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

            Publisher

            Association for Computing Machinery

            New York, NY, United States

            Publication History

            • Published: 1 January 2014
            • Revised: 1 November 2013
            • Accepted: 1 November 2013
            • Received: 1 November 2012
            Published in taas Volume 8, Issue 4

            Permissions

            Request permissions about this article.

            Request Permissions

            Check for updates

            Qualifiers

            • research-article
            • Research
            • Refereed

          PDF Format

          View or Download as a PDF file.

          PDF

          eReader

          View online with eReader.

          eReader