Skip to main content
Log in

Understanding MDE projects: megamodels to the rescue for architecture recovery

  • Special Section Paper
  • Published:
Software and Systems Modeling Aims and scope Submit manuscript

Abstract

Conventional wisdom on Model-Driven Engineering (MDE) suggests that this software discipline is the key to achieve superior automation, whether it be refactoring, simulation, or code generation. However, the diversity of employed languages and technologies blurs the picture making it difficult to analyze existing MDE-based projects in order to retrieve architectural information to foster a better understanding about the rationale behind them. Thus, the ability of carefully analyzing projects to identify their components and their interrelationships is key to obtain representations at a higher level of abstraction that can support reuse processes. In this paper, a megamodel-based approach to the reverse engineering of model-driven projects is proposed in order to leverage the representation of the involved technologies and assets. An automated recovery technique implemented by the MDEprofiler infrastructure is presented and illustrated by analyzing community projects in terms of basic MDE artifacts (such as models and metamodels) and the usage of common technologies such as model transformations and code generators.

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

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10
Fig. 11
Fig. 12

Similar content being viewed by others

Notes

  1. https://www.eclipse.org/atl/atlTransformations/.

  2. https://pubs.opengroup.org/onlinepubs/9699919799/utilities/file.html.

  3. https://developer.github.com/v3/.

  4. Project imported from https://github.com/kiyo07/UMLStateMachine2NuSMV.

  5. Km3 to Ecore injector project: https://github.com/atlanmod/EMFTVM-D/tree/master/deprecated/org.atl.eclipse.km3/src/org/atl/eclipse/km3 .

  6. EMFCompare:https://www.eclipse.org/emf/compare/.

  7. Our project developed to support the methodology: https://github.com/MDEGroup/MDEProfiler.

  8. https://www.eclipse.org/acceleo/.

  9. http://visjs.org.

  10. A replication package consisting of the MDEprofiler tool, the analyzed projects, and of the obtained results is available for download at https://github.com/MDEGroup/MDEProfiler.

References

  1. Alshara, Z., Seriai, A., Tibermacine, C., Bouziane, H., Dony, C., Shatnawi, A.: Materializing architecture recovered from object-oriented source code in component-based languages. In: Proceedings of the ECSA, Volume 9839 of LNCS, pp. 309–325. Springer (2016)

  2. Antoniol, G., Canfora, G., Casazza, G., Lucia, A.D.: Information retrieval models for recovering traceability links between code and documentation. In: ICSM, pp. 40–49. IEEE (2000)

  3. Asuncion, H.U., Asuncion, A.U., Taylor, R.N.: Software traceability with topic modeling. In: ICSE (1), pp. 95–104. ACM (2010)

  4. Babur, Ö., Cleophas, L., van den Brand, M.: Model analytics for feature models: case studies for S.P.L.O.T. repository. In Proceedings of MODELS 2018 Workshops: ModComp, MRT, OCL, FlexMDE, EXE, COMMitMDE, MDETools, GEMOC, MORSE, MDE4IoT, MDEbug, MoDeVVa, ME, MULTI, HuFaMo, AMMoRe, PAINS co-located with ACM/IEEE 21st International Conference on Model Driven Engineering Languages and Systems (MODELS 2018), Copenhagen, Denmark, October, 14, 2018., pp. 787–792 (2018)

  5. Basciani, F., Di Rocco, J., Di Ruscio, D., Di Salle, A., Iovino, L., Pierantonio, A.: Mdeforge: an extensible web-based modeling platform. In: CloudMDE@MoDELS, pp. 66–75 (2014)

  6. Basciani, F., Di Rocco, J., Di Ruscio, D., Iovino, L., Pierantonio, A.: Automated clustering of metamodel repositories, pp. 342–358. Springer (2016)

  7. Basciani, F., Di Rocco, J., Di Ruscio, D., Iovino, L., Pierantonio, A.: A customizable approach for the automated quality assessment of modelling artifacts. In: 2016 10th International Conference on the Quality of Information and Communications Technology (QUATIC), pp. 88–93. IEEE (2016)

  8. Basciani, F., Di Rocco, J., Di Ruscio, D., Iovino, L., Pierantonio, A.: Model Repositories: Will They Become Reality? In: Proceedings of the CloudMDE@MoDELS 2015, volume 1563 of CEUR Workshop Procs, pp. 37–42 (2016)

  9. Basciani, F., Di Ruscio, D., Iovino, L., Pierantonio, A.: Automated chaining of model transformations with incompatible metamodels. In: MODELS, pp. 602–618 (2014)

  10. Basciani, F., Rocco, J.D., Ruscio, D.D., Iovino, L., Pierantonio, A.: Exploring model repositories by means of megamodel-aware search operators. In: Proceedings of MODELS 2018 Workshops: ModComp, MRT, OCL, FlexMDE, EXE, COMMitMDE, MDETools, GEMOC, MORSE, MDE4IoT, MDEbug, MoDeVVa, ME, MULTI, HuFaMo, AMMoRe, PAINS Co-located with ACM/IEEE 21st International Conference on Model Driven Engineering Languages and Systems (MODELS 2018), Copenhagen, Denmark, October, 14, 2018., pp. 793–798 (2018)

  11. Basso, F.P.: A proposal for a common representation language for MDE artifacts and settings. In: STAF Doctoral Symposium (2015)

  12. Bézivin, J., Jouault, F., Rosenthal, P., Valduriez, P.: Modeling in the large and modeling in the small. In: European MDA Workshops MDAFA 2003 and MDAFA 2004, Revised Selected Papers, Volume 3599 of LNCS, pp. 33–46. Springer (2005)

  13. Bézivin, J., Jouault, F., Valduriez, P.: On the need for Megamodels. In: Proceedings of the OOPSLA/GPCE: Best Practices for Model-Driven Software Development Workshop (2004)

  14. Bird, C., Rigby, P.C., Barr, E.T., Hamilton, D.J., Germán, D.M., Devanbu, P.T.: The promises and perils of mining GIT. In: MSR, pp. 1–10. IEEE Computer Society (2009)

  15. Bowman, I.T., Holt, R.C.: Software architecture recovery using Conway’s law. In: Proceedings of the CASCON, p. 6. IBM (1998)

  16. Capraro, M., Dorner, M., Riehle, D.: The patch-flow method for measuring inner source collaboration. In: MSR, pp. 515–525. ACM (2018)

  17. Chardigny, S., Seriai, A.: Software architecture recovery process based on object-oriented source code and documentation. In: Proceedings of the ECSA, Volume 6285 of LNCS, pp. 409–416. Springer (2010)

  18. Constantinou, E., Kakarontzas, G., Stamelos, I.: An automated approach for noise identification to assist software architecture recovery techniques. JSS J. 107, 142–157 (2015)

    Google Scholar 

  19. de Lara, J., Di Rocco, J., Di Ruscio, D., Guerra, E., Iovino, L., Pierantonio, A., Cuadrado, J.S.: Reusing model transformations through typing requirements models. In: Proceedings of the FASE, Volume 10202 of LNCS, pp. 264–282. Springer (2017)

  20. Di Rocco, J., Di Ruscio, D., Härtel, J., Iovino, L., Lämmel, R., Pierantonio, A.: Systematic recovery of mde technology usage. In: Rensink, A., Sánchez Cuadrado, J. (eds.) Theory and Practice of Model Transformation, pp. 110–126. Springer, Cham (2018)

    Chapter  Google Scholar 

  21. Di Rocco, J., Di Ruscio, D., Iovino, L., Pierantonio, A.: Collaborative repositories in model-driven engineering. IEEE Softw. 32(3), 28–34 (2015)

    Article  Google Scholar 

  22. Dyer, R., Nguyen, H.A., Rajan, H., Nguyen, T.N.: Boa: a language and infrastructure for analyzing ultra-large-scale software repositories. In: ICSE, pp. 422–431. IEEE Computer Society (2013)

  23. Dyer, R., Nguyen, H.A., Rajan, H., Nguyen, T.N.: Boa: ultra-large-scale software repository and source-code mining. ACM Trans. Softw. Eng. Methodol. 25(1), 7:1–7:34 (2015)

    Article  Google Scholar 

  24. Dyer, R., Rajan, H., Nguyen, H.A., Nguyen, T.N.: Mining billions of AST nodes to study actual and potential usage of Java language features. In: ICSE, pp. 779–790. ACM (2014)

  25. Favre, J., Lämmel, R., Leinberger, M., Schmorleiz, T., Varanovich, A.: Linking documentation and source code in a software chrestomathy. In: Proceedings of the WCRE, pp. 335–344. IEEE (2012)

  26. Favre, J., Lämmel, R., Varanovich, A.: Modeling the linguistic architecture of software products. In: Proceedings of the MODELS, Volume 7590 of LNCS, pp. 151–167. Springer (2012)

  27. Ferenc, R., Siket, I., Gyimóthy, T.: Extracting facts from open source software. In: Proceedings of the ICSM, pp. 60–69. IEEE (2004)

  28. France, R., Bieman, J., Cheng, B.H.C.: Repository for model driven development (remodd). In: Kühne, T. (ed.) Models in Software Engineering, pp. 311–317. Springer, Berlin (2007)

    Chapter  Google Scholar 

  29. Giraldo, F.D., España, S., Giraldo, W.J., Pastor, O.: Evaluating the quality of a set of modelling languages used in combination: a method and a tool. Inf. Syst. 77, 48–70 (2018)

    Article  Google Scholar 

  30. Gîrba, T., Kuhn, A., Seeberger, M., Ducasse, S.: How developers drive software evolution. In: IWPSE, pp. 113–122. IEEE Computer Society (2005)

  31. Härtel, J., Härtel, L., Lämmel, R., Varanovich, A.: Interconnected linguistic architecture. Program. J. 1(1), 3 (2017)

  32. Härtel, J., Heinz, M., Lämmel, R.: EMF patterns of usage on GitHub. In: Proceedings of the ECMFA, LNCS. Springer (2018) (To appear)

    Chapter  Google Scholar 

  33. Hassan, A.E., Holt, R.C.: Architecture recovery of web applications. In: Proceedings of the ICSE, pp. 349–359. ACM (2002)

  34. Heinz, M., Lämmel, R., Varanovich, A.: Axioms of linguistic architecture. In: Proceedings of the MODELSWARD, pp. 478–486. SCITEPRESS (2017)

  35. Janes, A., Piatov, D., Sillitti, A., Succi, G.: How to calculate software metrics for multiple languages using open source parsers. In: OSS, Volume 404 of IFIP Advances in Information and Communication Technology, pp. 264–270. Springer (2013)

  36. Jouault, F., Bézivin, J.: Km3: a dsl for metamodel specification. In: Gorrieri, R., Wehrheim, H. (eds.) Formal methods for open object-based distributed systems, pp. 171–185. Springer, Berlin (2006)

    Chapter  Google Scholar 

  37. Jouault, F., Bézivin, J., Kurtev, I.: TCS: a DSL for the specification of textual concrete syntaxes in model engineering. In: Proceedings of the GPCE, pp. 249–254. ACM (2006)

  38. Kagdi, H.H., Maletic, J.I., Sharif, B.: Mining software repositories for traceability links. In: ICPC, pp. 145–154. IEEE (2007)

  39. Kalliamvakou, E., Gousios, G., Blincoe, K., Singer, L., Germán, D.M., Damian, D.E.: The promises and perils of mining GitHub. In: MSR, pp. 92–101. ACM (2014)

  40. Kalliamvakou, E., Gousios, G., Blincoe, K., Singer, L., Germán, D.M., Damian, D.E.: An in-depth study of the promises and perils of mining github. Empir. Softw. Eng. 21(5), 2035–2071 (2016)

    Article  Google Scholar 

  41. Karus, S., Gall, H.C.: A study of language usage evolution in open source software. In: Proceedings of the MSR, pp. 13–22. ACM (2011)

  42. Keenan, E., Czauderna, A., Leach, G., Cleland-Huang, J., Shin, Y., Moritz, E., Gethers, M., Poshyvanyk, D., Maletic, J.I., Hayes, J.H., Dekhtyar, A., Manukian, D., Hossein, S., Hearn, D.: TraceLab: an experimental workbench for equipping researchers to innovate, synthesize, and comparatively evaluate traceability solutions. In: Proceedings of the ICSE, pp. 1375–1378. IEEE (2012)

  43. Kling, W., Jouault, F., Wagelaar, D., Brambilla, M., Cabot, J.: MoScript: A DSL for querying and manipulating model repositories. In: Proceedings of the SLE 2011, Volume 6940 of LNCS, pp. 180–200. Springer (2012)

  44. Kolovos, D.S., Matragkas, N.D., Korkontzelos, I., Ananiadou, S., Paige, R.F.: Assessing the use of eclipse MDE technologies in open-source software projects. In: Proceedings of the OSS4MDEMODELS, Volume 1541 of CEUR workshop Procs, pp. 20–29 (2015)

  45. König, H., Diskin, Z.: Efficient consistency checking of interrelated models. In: ECMFA, pp. 161–178 (2017)

  46. Krikhaar, R.L.: Reverse architecting approach for complex systems. In: Proceedings of the ICSM, pp. 4–11. IEEE (1997)

  47. Kuhn, A., Ducasse, S., Gîrba, T.: Enriching reverse engineering with semantic clustering. In: WCRE, pp. 133–142. IEEE Computer Society (2005)

  48. Kuhn, A., Ducasse, S., Gîrba, T.: Semantic clustering: identifying topics in source code. Inf. Softw. Technol. 49(3), 230–243 (2007)

    Article  Google Scholar 

  49. Lämmel, R.: Relationship maintenance in software language repositories. Program. J. 1, 4 (2017). https://doi.org/10.22152/programming-journal.org/2017/1/4

  50. Lämmel, R., Linke, R., Pek, E., Varanovich, A.: A framework profile of .NET. In: Proceedings of the WCRE, pp. 141–150. IEEE (2011)

  51. Lämmel, R., Pek, E., Starek, J.: Large-scale, AST-based API-usage analysis of open-source Java projects. In: SAC, pp. 1317–1324. ACM (2011)

  52. Lämmel, R., Varanovich, A.: Interpretation of linguistic architecture. In: Proceedings of the ECMFA, Volume 8569 of LNCS, pp. 67–82. Springer (2014)

  53. Lämmel, R., Zaytsev, V.: Language support for megamodel renarration. In: XM@MoDELS, Volume 1089 of CEUR Workshop Proceedings, pp. 36–45. CEUR-WS.org (2013)

  54. Lara, J., Di Rocco, J., Di Ruscio, D., Guerra, E., Iovino, L., Pierantonio, A., Cuadrado, J.S.: Reusing model transformations through typing requirements models. In: Proceedings of the 20th International Conference on Fundamental Approaches to Software Engineering—Volume 10202, pp. 264–282, Springer-Verlag New York, Inc., New York, NY, USA (2017)

  55. Lungu, M., Lanza, M., Gîrba, T.: Package patterns for visual architecture recovery. In: Proceedings of the CSMR, pp. 185–196. IEEE (2006)

  56. Lungu, M., Lanza, M., Nierstrasz, O.: Evolutionary and collaborative software architecture recovery with Softwarenaut. Sci. Comput. Program. 79, 204–223 (2014)

    Article  Google Scholar 

  57. Maqbool, O., Babri, H.A.: Hierarchical clustering for software architecture recovery. IEEE Trans. Softw. Eng. 33(11), 759–780 (2007)

    Article  Google Scholar 

  58. Murphy, G.C., Notkin, D.: Lightweight lexical source model extraction. ACM Trans. Softw. Eng. Methodol. 5(3), 262–292 (1996)

    Article  Google Scholar 

  59. Rocco, J.D., Ruscio, D.D., Iovino, L., Pierantonio, A.: Collaborative repositories in model-driven engineering [software technology]. IEEE Softw. 32(3), 28–34 (2015)

    Article  Google Scholar 

  60. Roover, C.D., Lämmel, R., Pek, E.: Multi-dimensional exploration of API usage. In: Proceedings of the ICPC, pp. 152–161. IEEE (2013)

  61. Ruiz, F.J.B., Molina, J.G., García, O.D.: On the application of model-driven engineering in data reengineering. Inf. Syst. 72, 136–160 (2017)

    Article  Google Scholar 

  62. Sandro, A.D., Salay, R., Famelis, M., Kokaly, S., Chechik, M.: MMINT: a graphical tool for interactive model management. In: Proceedings of the MoDELS 2015 Demo and Poster Session, Volume 1554 of CEUR Workshop Procs, pp. 16–19 (2016)

  63. Sartipi, K., Kontogiannis, K.: On modeling software architecture recovery as graph matching. In: Proceedings of the ICSM, pp. 224–234. IEEE (2003)

  64. Schmidt, D.C.: Model-driven engineering. Comput. IEEE Comput. Soc. 39(2), 25 (2006)

    Article  Google Scholar 

  65. Seibel, A., Hebig, R., Giese, H.: Traceability in model-driven engineering: efficient and scalable traceability maintenance. In: Cleland-Huang, J., Gotel, O., Zisman, A. (eds.) Software and Systems Traceability, pp. 215–240. Springer, Berlin (2012)

    Chapter  Google Scholar 

  66. Stevens, P.: Towards sound, optimal, and flexible building from megamodels. In: Proceedings of the 21th ACM/IEEE International Conference on Model Driven Engineering Languages and Systems, MODELS 2018, Copenhagen, Denmark, October 14–19, 2018, pp. 301–311 (2018)

  67. Stringfellow, C., Amory, C.D., Potnuri, D., Andrews, A.A., Georg, M.: Comparison of software architecture reverse engineering methods. Inf. Softw. Technol. 48(7), 484–497 (2006)

    Article  Google Scholar 

  68. Tomassetti, F., Torchiano, M., Tiso, A., Ricca, F., Reggio, G.: Maturity of software modelling and model driven engineering: a survey in the Italian industry. In: Proceedings of the EASE, pp. 91–100 (2012)

  69. Wille, D., Babur, Önder, Cleophas, L., Seidl, C., van den Brand, M., Schaefer, I.: Improving custom-tailored variability mining using outlier and cluster detection. Sci. Comput. Program. 163, 62–84 (2018)

    Article  Google Scholar 

  70. Zimmermann, T., Weißgerber, P., Diehl, S., Zeller, A.: Mining version histories to guide software changes. In: ICSE, pp. 563–572. IEEE Computer Society (2004)

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Ludovico Iovino.

Additional information

Communicated by Jesús Sánchez Cuadrado and Arend Rensink.

Publisher's Note

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Di Rocco, J., Di Ruscio, D., Härtel, J. et al. Understanding MDE projects: megamodels to the rescue for architecture recovery. Softw Syst Model 19, 401–423 (2020). https://doi.org/10.1007/s10270-019-00748-7

Download citation

  • Received:

  • Revised:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10270-019-00748-7

Keywords

Navigation