The Eclipse Java Metamodel - Scaffolding Software Engineering Research on Java Projects with MDE Techniques

Pedro Janeiro Coimbra, Fernando Brito e Abreu

Abstract

Java on the Eclipse IDE is a frequent choice for software development nowadays. Software Engineering researchers have built program analysis tools in that environment for several purposes. However, that requires a deep understanding of Eclipse internals, such as the Java AST. This paper discusses the feasibility of a metamodel-driven approach to scaffold the construction of such tools. Its core is the Eclipse Java Metamodel (EJMM), obtained through reverse engineering. The latter is instantiated with meta-objects representing the constructs of a given Java program. We then use OCL to traverse programs very easily. To validate the feasibility of our metamodel-driven approach to program analysis, we developed an Eclipse plug-in based on it, to support the metamodel-driven measurement (M2DM) approach.

References

  1. Antoniol, G., Di Penta, M., and Merlo, E. (2003). Yaab (yet another ast browser): using ocl to navigate asts. In Intern. Workshop on Program Comprehension, pages 13-22. IEEE.
  2. Baroni, A. L. (2002). Formal Definition of Object-Oriented Design Metrics. Msc thesis, Vrije Universiteit Brussel (VUB), Brussels, Belgium.
  3. Brito e Abreu, F. (2001). Using ocl to formalize object oriented metrics definitions. Technical Report ES007/2001, INESC.
  4. Brito e Abreu, F. and Carapuca, R. (1994). Object-oriented software engineering: Measuring and controlling the development process. In 4th International Conference on Software Quality, McLean, Virginia, USA. American Society for Quality.
  5. Bruneliere, H., Cabot, J., Jouault, F., and Madiot, F. (2010). Modisco: a generic and extensible framework for model driven reverse engineering. In ASE'10, ASE'10, pages 173-174, New York, NY, USA. ACM.
  6. Cahill, J., Hogan, J. M., and Thomas, R. (2002). The java metrics reporter - an extensible tool for oo software analysis. In 9th Asia-Pacific Software Engineering Conference, pages 507-516.
  7. Chidamber, S. R. and Kemerer, C. F. (1994). A Metrics Suite for Object Oriented Design. IEEE Transactions on Software Engineering, 20(6):476-493.
  8. Coimbra, P. J. (2013). An Eclipse Plug-in for Metamodel Driven Measurement. Msc thesis, ISCTE-IUL, Lisbon, Portugal.
  9. Database Systems Group, University of Bremen (2013). Sourceforge.net: The uml-based specification environment. http:// sourceforge.net/apps/mediawiki/useocl/. Accessed: 2013- 05-30.
  10. El Wakil, M., El Bastawissi, A., Boshra, M., and Fahmy, A. (2005). A novel approach to formalize and collect object-oriented design-metrics. In 9th Intern. Conf. on Empirical Assessment in Software Engineering.
  11. Engelhardt, M., Hein, C., Ritter, T., and Wagner, M. (2009). Generation of formal model metrics for mof based domain specific languages. Electronic Communications of the EASST, 24.
  12. Gamma, E. and Eggenschwiler, T. (2013). Jhotdraw start page. Accessed: 13-08-2013.
  13. Gogolla, M., Bttner, F., and Richters, M. (2007). Use: A uml-based specification environment for validating uml and ocl. Science of Computer Programming, 69(13):27-34.
  14. Hein, C., Engelhardt, M., Ritter, T., and Wagner, M. (2013). Metrino. http://www. modelbus.org/modelbus/index.php/metrino. Accessed: 2013-05-30.
  15. Klint, P., van der Storm, T., and Vinju, J. (2010). On the impact of dsl tools on the maintainability of language implementations. In 10th Workshop on Language Descriptions, Tools and Applications, LDTA 7810, pages 10:1-10:9, New York, NY, USA. ACM.
  16. Kuhn, T. and Thomann, O. (2006). Eclipse corner article: Abstract syntax tree. http:// www.eclipse.org/articles/article.php?file=ArticleJavaCodeManipulation AST/index.html. Accessed: 2013-05-30.
  17. McCabe, T. J. (1976). A complexity measure. IEEE Transactions on Software Engineering, SE-2(4):308-320.
  18. McQuillan, J. A. (2011). Using Model Driven Engineering to Reliably Automate the Measurement of ObjectOriented Software. Phd thesis, National University of Ireland, Maynooth.
  19. Puybaret, E. (2013). Sweet home 3d - draw floor plans and arrange furniture freely:. Accessed: 15-09-2013.
  20. QUASAR (2013a). Java facade and code generator for use (uml-based specification environment). http:// code.google.com/p/j-use/. Accessed: 2013-05-30.
  21. QUASAR (2013b). Metamodel driven measurement (m2dm) tool. https://code.google.com/p/m2dm/. Accessed: 2013-09-06.
  22. Sauer, F. (2013). Metrics 1.3.6. http:// metrics.sourceforge.net/. Accessed: 2013-05-30.
  23. The Eclipse Foundation (2013). Eclipse java development tools (jdt) overview. http://www.eclipse.org/jdt/overview.php. Accessed: 2013-05-30.
  24. Wilkie, F. G. and Harmer, T. J. (2002). Tool support for measuring complexity in heterogeneous objectoriented software. In ICSM'2002, pages 152-161.
Download


Paper Citation


in Harvard Style

Janeiro Coimbra P. and Brito e Abreu F. (2014). The Eclipse Java Metamodel - Scaffolding Software Engineering Research on Java Projects with MDE Techniques . In Proceedings of the 2nd International Conference on Model-Driven Engineering and Software Development - Volume 1: MODELSWARD, ISBN 978-989-758-007-9, pages 392-399. DOI: 10.5220/0004715303920399


in Bibtex Style

@conference{modelsward14,
author={Pedro Janeiro Coimbra and Fernando Brito e Abreu},
title={The Eclipse Java Metamodel - Scaffolding Software Engineering Research on Java Projects with MDE Techniques},
booktitle={Proceedings of the 2nd International Conference on Model-Driven Engineering and Software Development - Volume 1: MODELSWARD,},
year={2014},
pages={392-399},
publisher={SciTePress},
organization={INSTICC},
doi={10.5220/0004715303920399},
isbn={978-989-758-007-9},
}


in EndNote Style

TY - CONF
JO - Proceedings of the 2nd International Conference on Model-Driven Engineering and Software Development - Volume 1: MODELSWARD,
TI - The Eclipse Java Metamodel - Scaffolding Software Engineering Research on Java Projects with MDE Techniques
SN - 978-989-758-007-9
AU - Janeiro Coimbra P.
AU - Brito e Abreu F.
PY - 2014
SP - 392
EP - 399
DO - 10.5220/0004715303920399