skip to main content
10.1145/2897053.2897055acmconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
research-article

Reusable self-adaptation through bidirectional programming

Published:14 May 2016Publication History

ABSTRACT

In self-adaptive systems, an adaptation strategy can apply to several implementations of a target system. Reusing this strategy requires models of the target system that are independent of its implementation. In particular, configuration files must be transformed into abstract configurations, but correctly synchronizing these two representations is not trivial. We propose an approach that uses putback-based bidirectional programming to guarantee that this synchronization is correct by construction. We demonstrate the correctness of our approach and how it handles typical features of configuration files, such as implicit default values and context overriding. We also show that our approach can be used to migrate configuration files from one implementation to another.

We illustrate our approach with a case study, where we use the same abstract model to adapt two web server implementations. For each implementation, we provide a bidirectional program that correctly synchronizes the configuration file with an abstract model of the configuration. A first scenario demonstrates that the same changes on the abstract model produce, for each implementation, a new configuration that correctly reflects the changes made to the abstract model, without side effects. A second scenario validates the migration of a configuration file from the format used by one web server implementation to another.

References

  1. Nadeem Abbas. Towards Autonomic Software Product Lines. In Proceedings of the 15th International Software Product Line Conference (SPLC'11), Volume 2, pages 44:1--44:8. ACM, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Nadeem Abbas and Jesper Andersson. Harnessing variability in product-lines of self-adaptive software systems. In Proceedings of the 19th International Conference on Software Product Line (SPLC'15), pages 191--200. ACM, 2015. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Jesper Andersson, Rogerio de Lemos, Sam Malek, and Danny Weyns. Reflecting on self-adaptive software systems. International Workshop on Software Engineering for Adaptive and Self-Managing Systems (SEAMS'09), 0:38--47, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Konstantinos Angelopoulos, Vitor E. Silva Souza, and Joao Pimentel. Requirements and architectural approaches to adaptive software systems: A comparative study. In Proceedings of the 8th International Symposium on Software Engineering for Adaptive and Self-Managing Systems (SEAMS'13), pages 23--32. IEEE Press, 2013. Google ScholarGoogle ScholarCross RefCross Ref
  5. Christopher Bailey, Lionel Montrieux, Rogério de Lemos, Yijun Yu, and Michel Wermelinger. Run-time generation, transformation, and verification of access control models for self-protection. In Proceedings of the 9th International Symposium on Software Engineering for Adaptive and Self-Managing Systems (SEAMS'14), pages 135--144. ACM, 2014. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Cornel Barna, Hamoun Ghanbari, Marin Litoiu, and Mark Shtern. Hogna: A Platform for Self-Adaptive Applications in Cloud Environments. In IEEE/ACM 10th International Symposium on Software Engineering for Adaptive and Self-Managing Systems (SEAMS'15), pages 83--87. IEEE, May 2015. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Aaron Bohannon, J. Nathan Foster, Benjamin C. Pierce, Alexandre Pilkiewicz, and Alan Schmitt. Boomerang: Resourceful Lenses for String Data. In Proceedings of the 35th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL'15), POPL '08, pages 407--419. ACM, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Betty H. C. Cheng, Rogério de Lemos, Holger Giese, Paola Inverardi, Jeff Magee, Jesper Andersson, Basil Becker, Nelly Bencomo, Yuriy Brun, Bojan Cukic, Giovanna Di Marzo Serugendo, Schahram Dustdar, Anthony Finkelstein, Cristina Gacek, Kurt Geihs, Vincenzo Grassi, Gabor Karsai, Holger M. Kienle, Jeff Kramer, Marin Litoiu, Sam Malek, Raffaela Mirandola, Hausi A. Müller, Sooyong Park, Mary Shaw, Matthias Tichy, Massimo Tivoli, Danny Weyns, and Jon Whittle. Software Engineering for Self-Adaptive Systems: A Research Roadmap. In Software Engineering for Self-Adaptive Systems, number 5525 in Lecture Notes in Computer Science, pages 1--26. Springer Berlin Heidelberg, January 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Krzysztof Czarnecki, Nathan Foster, Zhenjiang Hu, Ralf Lämmel, Andy Schürr, and James Terwilliger. Bidirectional Transformations: A Cross-Discipline Perspective. In Theory and Practice of Model Transformations, volume 5563 of Lecture Notes in Computer Science, pages 260--283. Springer Berlin Heidelberg, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Sebastian Fischer, ZhenJiang Hu, and Hugo Pacheco. The essence of bidirectional programming. Science China Information Sciences, 58(5):1--21, May 2015.Google ScholarGoogle ScholarCross RefCross Ref
  11. Nathan Foster. Bidirectional programming languages. PhD thesis, University of Pennsylvania, Department of Computer and Information Science, 2010.Google ScholarGoogle Scholar
  12. Nathan Foster, Benjamin Pierce, and Steve Zdancewic. Updatable Security Views. In Proceedings of the Computer Security Foundations Symposium (CSF'09), pages 60--74. IEEE, July 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Nathan Foster, Alexandre Pilkiewicz, and Benjamin Pierce. Quotient lenses. In ACM Sigplan Notices, volume 43, pages 383--396. ACM, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. David Garlan, Shang-Wen Cheng, An-Cheng Huang, Bradley Schmerl, and Peter Steenkiste. Rainbow: Architecture-based self-adaptation with reusable infrastructure. Computer, 37(10):46--54, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. John Georgas, André van der Hoek, and Richard Taylor. Architectural runtime configuration management in support of dependable self-adaptive software. In ACM SIGSOFT Software Engineering Notes, volume 30, pages 1--6. ACM, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. I. B. M. Group. An architectural blueprint for autonomic computing. Technical report, IBM White paper, 2005.Google ScholarGoogle Scholar
  17. S. Hidaka, Zhenjiang Hu, K. Inaba, H. Kato, and K. Nakano. GRoundTram: An integrated framework for developing well-behaved bidirectional model transformations. In 2011 26th IEEE/ACM International Conference on Automated Software Engineering (ASE'11), pages 480--483, November 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Zhenjiang Hu, Shin-Cheng Mu, and Masato Takeichi. A programmable editor for developing structured documents based on bidirectional transformations (pepm'04). In Proceedings of the 2004 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation, pages 178--189. ACM, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Cristian Klein, Martina Maggio, Karl-Erik Arzén, and Francisco Hernández-Rodriguez. Brownout: building more robust cloud applications. In Proceedings of the 36th International Conference on Software Engineering (ICSE'14), pages 700--711. ACM, 2014. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Hsiang-Shang Ko, Tao Zan, and Zhenjiang Hu. BiGUL: A Formally Verified Core Language for Putback-based Bidirectional Programming. In Proceedings of the 2016 ACM SIGPLAN Workshop on Partial Evaluation and Program Manipulation (PEPM'16), pages 61--72. ACM, 2016. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Andres Ramirez and Betty Cheng. Design patterns for developing dynamically adaptive systems. In Proceedings of the 2010 ICSE Workshop on Software Engineering for Adaptive and Self-Managing Systems (SEAMS'10), pages 49--58. ACM Press, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Hui Song, Gang Huang, Franck Chauvel, Yingfei Xiong, Zhenjiang Hu, Yanchun Sun, and Hong Mei. Supporting runtime software architecture: A bidirectional-transformation-based approach. Journal of Systems and Software, 84(5):711--723, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Jacob Swanson, Myra Cohen, Matthew Dwyer, Brady Garvin, and Justin Firestone. Beyond the rainbow: self-adaptive failure avoidance in configurable systems. In Proceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering (FSE'14), pages 377--388, 2014. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Thomas Vogel and Holger Giese. Adaptation and abstract runtime models. In Proceedings of the 2010 ICSE Workshop on Software Engineering for Adaptive and Self-Managing Systems (SEAMS'10), pages 39--48. ACM, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Thomas Vogel and Holger Giese. Model-Driven Engineering of Self-Adaptive Software with EUREMA. ACM Transactions on Autonomous and Adaptive Systems, 8(4):1--33, January 2014. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Thomas Vogel, Stefan Neumann, Stephan Hildebrandt, Holger Giese, and Basil Becker. Incremental model synchronization for efficient run-time monitoring. In Models in Software Engineering, pages 124--139. Springer, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Yingfei Xiong, Dongxi Liu, Zhenjiang Hu, Haiyan Zhao, Masato Takeichi, and Hong Mei. Towards automatic model synchronization from model transformations. In Proceedings of the twenty-second IEEE/ACM international conference on Automated software engineering (ASE'07), pages 164--173. ACM, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. Yingfei Xiong, Hui Song, Zhenjiang Hu, and Masato Takeichi. Supporting parallel updates with bidirectional model transformations. In Theory and Practice of Model Transformations, pages 213--228. Springer, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. Yijun Yu, Yu Lin, Zhenjiang Hu, Soichiro Hidaka, Hiroyuki Kato, and Lionel Montrieux. Maintaining invariant traceability through bidirectional transformations. In Proceedings of the 34th International Conference on Software Engineering (ICSE'12), pages 540--550. IEEE Press, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Reusable self-adaptation through bidirectional programming

                Recommendations

                Comments

                Login options

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

                Sign in
                • Published in

                  cover image ACM Conferences
                  SEAMS '16: Proceedings of the 11th International Symposium on Software Engineering for Adaptive and Self-Managing Systems
                  May 2016
                  179 pages
                  ISBN:9781450341875
                  DOI:10.1145/2897053

                  Copyright © 2016 ACM

                  Publication rights licensed to ACM. ACM acknowledges that this contribution was authored or co-authored by an employee, contractor or affiliate of a national government. As such, the Government retains a nonexclusive, royalty-free right to publish or reproduce this article, or to allow others to do so, for Government purposes only.

                  Publisher

                  Association for Computing Machinery

                  New York, NY, United States

                  Publication History

                  • Published: 14 May 2016

                  Permissions

                  Request permissions about this article.

                  Request Permissions

                  Check for updates

                  Qualifiers

                  • research-article

                  Acceptance Rates

                  Overall Acceptance Rate17of31submissions,55%

                  Upcoming Conference

                  ICSE 2025

                PDF Format

                View or Download as a PDF file.

                PDF

                eReader

                View online with eReader.

                eReader