brary and an open-source community case study trad-
ing system. We were able to show that, in all three
case studies, the modified code provides the same func-
tionality as the original code, and metamodel-based
tooling can successfully be applied. The results demon-
strate the feasibility of our approach, and are a reliable
indicator for its general applicability. We will, how-
ever, conduct further case studies to confirm that the
approach can be transferred to other domains and to
other modelling frameworks. Additionally, we plan
to measure the usability of the approach, e.g., in a
controlled user study.
Our approach eases the shift from a code-centric
to a model-driven development process. Model-driven
technologies can be introduced without breaking the
compatibility to existing and dependent software and
tools. Automated extraction of domain metamodels
supports developers in this transition.
REFERENCES
Aßmann, U. (2003). “Automatic Roundtrip Engineering”.
Electronic Notes in Theoretical Computer Science,
82(5), 33–41. SC 2003, Workshop on Software Com-
position (Satellite Event for ETAPS 2003).
Bettini, L. (2016). Implementing domain-specific languages
with Xtext and Xtend. Packt Publishing Ltd.
Brunelière, H., Cabot, J., Dupé, G., & Madiot, F. (2014).
“MoDisco: A model driven reverse engineering frame-
work”. Information and Software Technology, 56(8),
1012–1032.
Brunelière, H., Cabot, J., Jouault, F., & Madiot, F. (2010).
MoDisco: A Generic And Extensible Framework For
Model Driven Reverse Engineering. In Proceedings
of the ieee/acm international conference on auto-
mated software engineering (pp. 173–174). ASE ’10.
Canfora, G., Di Penta, M., & Cerulo, L. (2011). “Achieve-
ments and Challenges in Software Reverse Engineer-
ing”. Commun. ACM, 54(4), 142–151.
Efftinge, S., Eysholdt, M., Köhnlein, J., Zarnekow, S., von
Massow, R., Hasselbring, W., & Hanus, M. (2012).
Xbase: Implementing Domain-specific Languages for
Java. In Proceedings of the 11th international con-
ference on generative programming and component
engineering (pp. 112–121). GPCE ’12.
Favre, L. (2008). Formalizing MDA-Based Reverse Engi-
neering Processes. In 2008 sixth international confer-
ence on software engineering research, management
and applications (pp. 153–160).
Favre, L., Martinez, L., & Pereira, C. (2009). MDA-Based
Reverse Engineering of Object Oriented Code. In
Enterprise, business-process and information systems
modeling (pp. 251–263). Springer Berlin Heidelberg.
Fowler, M., & Parsons, R. (2010). Domain specific lan-
guages (1st). Addison-Wesley, Reading, MA, USA.
Garzón, M. A., Aljamaan, H., & Lethbridge, T. C. (2015).
Umple: A Framework for Model Driven Development
of Object-Oriented Systems. In 2015 ieee 22nd inter-
national conference on software analysis, evolution,
and reengineering (saner) (pp. 494–498).
Garzón, M. A., Lethbridge, T. C., Aljamaan, H., & Badred-
din, O. (2014). Reverse Engineering of Object-
oriented Code into Umple Using an Incremental and
Rule-based Approach. In Proceedings of 24th annual
international conference on computer science and
software engineering (pp. 91–105). CASCON ’14.
IBM Corp.
Heinrich, R., Rostami, K., & Reussner, R. (2016). The
CoCoME platform for collaborative empirical re-
search on information system evolution (tech. rep.
No. 2016,2; Karlsruhe Reports in Informatics). Karl-
sruhe Institute of Technology.
Herold, S., Klus, H., Welsch, Y., Deiters, C., Rausch, A.,
Reussner, R., . . . Pfaller, C. (2008). “CoCoME - The
Common Component Modeling Example”. In The
common component modeling example (Vol. 5153,
pp. 16–53). LNCS.
Hinkel, G. (2018). NMF: A multi-platform Modeling Frame-
work. In Theory and practice of model transforma-
tions: 11th international conference, icmt 2018, held
as part of staf 2018, toulouse, france, june 25-29,
2018. proceedings, Springer International Publishing.
ISO/IEC 19508:2014(E). (2014). Information technology –
object management group meta object facility (mof)
core. International Organization for Standardization,
Geneva, Switzerland.
Klare, H., Burger, E., Kramer, M. E., Langhammer, M.,
Saglam, T., & Reussner, R. (2017). Ecoreifica-
tion: Making Arbitrary Java Code Accessible to
Metamodel-Based Tools. In Acm/ieee 20th interna-
tional conference on model driven engineering lan-
guages and systems (models 2017).
Kollmann, R., Selonen, P., Stroulia, E., Systa, T., & Zun-
dorf, A. (2002). A Study on the Current State of the
Art in Tool-Supported UML-Based Static Reverse
Engineering. In Ninth working conference on reverse
engineering, 2002. proceedings. (pp. 22–32).
Lethbridge, T. C., Forward, A., & Badreddin, O. (2010).
Umplification: Refactoring to Incrementally Add Ab-
straction to a Program. In 2010 17th working confer-
ence on reverse engineering (pp. 220–224).
Object Management Group (OMG). (2006). Model Driven
Architecture - Specifications. OMG.
Meyerovich, L. A., & Rabkin, A. S. (2013). Empirical Analy-
sis of Programming Language Adoption. In Proceed-
ings of the 2013 acm sigplan international conference
on object oriented programming systems languages
& applications (pp. 1–18). ACM.
Raibulet, C., Fontana, F. A., & Zanoni, M. (2017). “Model-
driven reverse engineering approaches: A systematic
literature review”. IEEE Access, 5, 14516–14542.
Steinberg, D., Budinsky, F., Paternostro, M., & Merks, E.
(2008). Emf: Eclipse modeling framework (second
revised). Eclipse series. Addison-Wesley Longman,
Amsterdam.
Tonella, P. (2005). Reverse Engineering of Object Oriented
Code.
Vlissides, J. (1998). Pattern hatching: Design patterns ap-
plied. Addison-Wesley Longman Ltd.
MODELSWARD 2019 - 7th International Conference on Model-Driven Engineering and Software Development
228