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

Reusable self-adaptation through bidirectional programming

Published: 14 May 2016 Publication 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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[10]
Sebastian Fischer, ZhenJiang Hu, and Hugo Pacheco. The essence of bidirectional programming. Science China Information Sciences, 58(5):1--21, May 2015.
[11]
Nathan Foster. Bidirectional programming languages. PhD thesis, University of Pennsylvania, Department of Computer and Information Science, 2010.
[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.
[13]
Nathan Foster, Alexandre Pilkiewicz, and Benjamin Pierce. Quotient lenses. In ACM Sigplan Notices, volume 43, pages 383--396. ACM, 2008.
[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.
[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.
[16]
I. B. M. Group. An architectural blueprint for autonomic computing. Technical report, IBM White paper, 2005.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.

Cited By

View all
  • (2019)Bidirectional Transformations for Self-Adaptive SystemsEngineering Adaptive Software Systems10.1007/978-981-13-2185-6_4(95-114)Online publication date: 15-Jan-2019
  • (2018)Run-time monitoring of self-adaptive systems to detect N-way feature interactions and their causesProceedings of the 13th International Conference on Software Engineering for Adaptive and Self-Managing Systems10.1145/3194133.3194141(94-100)Online publication date: 28-May-2018
  • (2017)An axiomatic basis for bidirectional programmingProceedings of the ACM on Programming Languages10.1145/31581292:POPL(1-29)Online publication date: 27-Dec-2017

Recommendations

Comments

Information & Contributors

Information

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
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.

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 14 May 2016

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. bidirectional programming
  2. model abstraction
  3. self-adaptation
  4. synchronization

Qualifiers

  • Research-article

Conference

ICSE '16
Sponsor:

Acceptance Rates

Overall Acceptance Rate 17 of 31 submissions, 55%

Upcoming Conference

ICSE 2025

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)5
  • Downloads (Last 6 weeks)0
Reflects downloads up to 08 Mar 2025

Other Metrics

Citations

Cited By

View all
  • (2019)Bidirectional Transformations for Self-Adaptive SystemsEngineering Adaptive Software Systems10.1007/978-981-13-2185-6_4(95-114)Online publication date: 15-Jan-2019
  • (2018)Run-time monitoring of self-adaptive systems to detect N-way feature interactions and their causesProceedings of the 13th International Conference on Software Engineering for Adaptive and Self-Managing Systems10.1145/3194133.3194141(94-100)Online publication date: 28-May-2018
  • (2017)An axiomatic basis for bidirectional programmingProceedings of the ACM on Programming Languages10.1145/31581292:POPL(1-29)Online publication date: 27-Dec-2017

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media