Skip to main content

Module Integration Using Graph Grammars (MIGRATE)

  • Conference paper
  • First Online:
  • 156 Accesses

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 13130))

Abstract

Software, whether desktop, mobile or web, is becoming more and more connected. Software development is also becoming more connected with ecosystems comprised of networks of millions of packages. Engineering software today is writing code that weaves together libraries, services and applications. Such fabrics are under constant changes due to both internal requests, e.g. new features, or external demands, e.g. dependency updates. Avoiding integration bugs in this scenario can be a big challenge regardless of common strategies such as testing and versioning. We propose an approach, called Module Integration using Graph Grammars (MIGRATE), to describe/analyze integration points among software modules. We define module nets, a formalism to capture the essential information regarding module integration, whose semantics is defined in terms of graph transformations. This allows us to use the rich theory of graph transformation, specially critical pair analysis, to analyze the coupling among different modules and create warnings in case of possible integration problems. The approach is organized in three phases: (i) transformation of code into module nets (model extraction), (ii) translation of module nets into graph grammars (semantics of integration) and (iii) verification of module integration. We have built a prototype that implements the MIGRATE approach.

This is a preview of subscription content, log in via an institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   44.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   59.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

References

  1. Aué, J., Aniche, M., Lobbezoo, M., van Deursen, A.: An exploratory study on faults in web API integration in a large-scale payment company. In: Proceedings of the 40th International Conference on Software Engineering Software Engineering in Practice - ICSE-SEIP 2018, pp. 13–22. ACM Press, Gothenburg, Sweden (2018). https://doi.org/10.1145/3183519.3183537

  2. Bogart, C., Kästner, C., Herbsleb, J., Thung, F.: How to break an API: cost negotiation and community values in three software ecosystems. In: Proceedings of the 2016 24th ACM SIGSOFT International Symposium on Foundations of Software Engineering - FSE 2016, pp. 109–120. ACM Press, Seattle, WA, USA (2016). https://doi.org/10.1145/2950290.2950325

  3. Brito, A., Xavier, L., Hora, A., Valente, M.T.: APIDiff: Detecting API breaking changes. In: 2018 IEEE 25th International Conference on Software Analysis, Evolution and Reengineering (SANER). pp. 507–511. IEEE, Campobasso, March 2018. https://doi.org/10.1109/SANER.2018.8330249, http://ieeexplore.ieee.org/document/8330249/

  4. Costa, A., et al.: Verigraph: a system for specification and analysis of graph grammars. In: Ribeiro, L., Lecomte, T. (eds.) Formal Methods: Foundations and Applications, LNCS, pp. 78–94. Springer, Cham (2016). https://doi.org/10.1007/978-3-319-49815-7_5

  5. Cravo, D.R.: Module integration using graph grammars (MIGRATE) (2021). https://lume.ufrgs.br/handle/10183/226284. Accepted 8 2021-28T04:39:53Z

  6. Decan, A., Mens, T., Grosjean, P.: An empirical comparison of dependency network evolution in seven software packaging ecosystems. Empir. Softw. Eng. 24(1), 381–416 (2019). https://doi.org/10.1007/s10664-017-9589-y

  7. Duarte, L.M., Ribeiro, L.: Graph grammar extraction from source code. In: Cavalheiro, S., Fiadeiro, J. (eds.) Formal Methods: Foundations and Applications, LNCS, vol. 10623, pp. 52–69. Springer, Cham (2017). https://doi.org/10.1007/978-3-319-70848-5_5

  8. Ehrig, H. (ed.): Fundamentals of algebraic graph transformation. In: Monographs in Theoretical Computer Science, Springer, Berlin (2006). oCLC: ocm69242087

    Google Scholar 

  9. Foo, D., Chua, H., Yeo, J., Ang, M.Y., Sharma, A.: Efficient static checking of library updates. In: Proceedings of the 2018 26th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering - ESEC/FSE 2018, pp. 791–796. ACM Press, Lake Buena Vista, FL, USA (2018). https://doi.org/10.1145/3236024.3275535

  10. Fowler, M.: Tolerantreader (2011). https://martinfowler.com/bliki/TolerantReader.html

  11. Fowler, M.: Integrationtest (2018). https://martinfowler.com/bliki/IntegrationTest.html

  12. Godefroid, P., Lehmann, D., Polishchuk, M.: Differential regression testing for REST APIs. In: Proceedings of the 29th ACM SIGSOFT International Symposium on Software Testing and Analysis. pp. 312–323. ACM, Virtual Event USA, July 2020. https://doi.org/10.1145/3395363.3397374

  13. Grochau Azzi, G., Corradini, A., Ribeiro, L.: On the essence and initiality of conflicts in M-adhesive transformation systems. J. Log. Algebr. Methods Program. 109, 100482 (2019). https://doi.org/10.1016/j.jlamp.2019.100482, https://www.sciencedirect.com/science/article/pii/S2352220818301639

  14. Hausmann, J.H., Heckel, R., Lohmann, M.: Model-based discovery of web services. In: Proceedings of the IEEE International Conference on Web Services, ICWS 2004, p. 324., IEEE Computer Society, USA, June 2004

    Google Scholar 

  15. Heckel, R., Küster, J.M., Taentzer, G.: Confluence of Typed Attributed Graph Transformation Systems. In: Corradini, A., Ehrig, H., Kreowski, H.J., Rozenberg, G. (eds.) Graph Transformation, LNCS, pp. 161–176. Springer, Berlin (2002). https://doi.org/10.1007/3-540-45832-8_14

  16. Lambers, L., Ehrig, H., Orejas, F.: Efficient conflict detection in graph transformation systems by essential critical pairs. Electr. Notes Theor. Comput. Sci. 211, 17–26 (2008). https://doi.org/10.1016/j.entcs.2008.04.026, https://www.sciencedirect.com/science/articleii/S1571066108002417

  17. Lübke, D., Zimmermann, O., Pautasso, C., Zdun, U., Stocker, M.: Interface evolution patterns: balancing compatibility and extensibility across service life cycles. In: Proceedings of the 24th European Conference on Pattern Languages of Programs - EuroPLop 2019, pp. 1–24. ACM Press, Irsee, Germany (2019). https://doi.org/10.1145/3361149.3361164

  18. Møller, A., Torp, M.T.: Model-based testing of breaking changes in Node.js libraries. In: Proceedings of the 2019 27th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering - ESEC/FSE 2019, pp. 409–419. ACM Press, Tallinn, Estonia (2019). https://doi.org/10.1145/3338906.3338940

  19. Mora, F., Li, Y., Rubin, J., Chechik, M.: Client-specific equivalence checking. In: Proceedings of the 33rd ACM/IEEE International Conference on Automated Software Engineering - ASE 2018, pp. 441–451. ACM Press, Montpellier, France (2018). https://doi.org/10.1145/3238147.3238178

  20. Preston-Werner, T.: Semantic Versioning 2.0.0 (2020). https://semver.org/

  21. Raemaekers, S., van Deursen, A., Visser, J.: Semantic Versioning versus breaking changes: a study of the maven repository. In: 2014 IEEE 14th International Working Conference on Source Code Analysis and Manipulation, pp. 215–224. IEEE, Victoria, BC, Canada, September 2014. https://doi.org/10.1109/SCAM.2014.30, http://ieeexplore.ieee.org/document/6975655/

  22. Runge, O., Ermel, C., Taentzer, G.: AGG 2.0 – New features for specifying and analyzing algebraic graph transformations. In: Schürr, A., Varró, D., Varró, G. (eds.) Applications of Graph Transformations with Industrial Relevance, LNCS, pp. 81–88. Springer, Berlin (2012). https://doi.org/10.1007/978-3-642-34176-2_8

  23. Soldani, J., Tamburri, D.A., Van Den Heuvel, W.J.: The pains and gains of microservices: a systematic grey literature review. J. Syst. Softw. 146, 215–232 (2018). https://doi.org/10.1016/j.jss.2018.09.082, https://linkinghub.elsevier.com/retrieve/pii/S0164121218302139

  24. Taentzer, G., Toffetti Carughi, G.: A graph-based approach to transform XML documents. In: Baresi, L., Heckel, R. (eds.) Fundamental Approaches to Software Engineering, LNCS, pp. 48–62. Springer, Berlin (2006). https://doi.org/10.1007/11693017_6

  25. Xavier, L., Brito, A., Hora, A., Valente, M.T.: Historical and impact analysis of API breaking changes: A large-scale study. In: 2017 IEEE 24th International Conference on Software Analysis, Evolution and Reengineering (SANER), pp. 138–147. IEEE, Klagenfurt, Austria, February 2017. https://doi.org/10.1109/SANER.2017.7884616, http://ieeexplore.ieee.org/document/7884616/

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Diogo Raphael Cravo .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2021 Springer Nature Switzerland AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

Cite this paper

Cravo, D.R., Ribeiro, L. (2021). Module Integration Using Graph Grammars (MIGRATE). In: Campos, S., Minea, M. (eds) Formal Methods: Foundations and Applications. SBMF 2021. Lecture Notes in Computer Science(), vol 13130. Springer, Cham. https://doi.org/10.1007/978-3-030-92137-8_6

Download citation

  • DOI: https://doi.org/10.1007/978-3-030-92137-8_6

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-030-92136-1

  • Online ISBN: 978-3-030-92137-8

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics