MDA-Based Reverse Engineering of Object Oriented Code

  • Liliana Favre
  • Liliana Martinez
  • Claudia Pereira
Part of the Lecture Notes in Business Information Processing book series (LNBIP, volume 29)

Abstract

The Model Driven Architecture (MDA) is an architectural framework for information integration and tool interoperation that could facilitate system modernization. Reverse engineering techniques are crucial to extract high level views of the subject system. This paper describes a reverse engineering approach that fits with MDA. We propose to integrate different techniques that come from compiler theory, metamodeling and formal specification. We describe a process that combines static and dynamic analysis for generating MDA models. We show how MOF (Meta Object Facility) and QVT (Query, View, Transformation) metamodels can be used to drive model recovery processes. Besides, we show how metamodels and transformations can be integrated with formal specifications in an interoperable way. The reverse engineering of class diagram and state diagram at PSM level from Java code is exemplified.

Keywords

Reverse Engineering Model Driven Architecture(MDA) Metamodeling Meta-Object Facility (MOF) Formal Specification 

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    ADM Task Force: Architecture Driven Modernization Roadmap. OMG.adm.omg.org (2007) Google Scholar
  2. 2.
    Aho, A., Sethi, R., Ullman, J.: Compilers. Principles, Techniques, and Tools. Addison-Wesley, Reading (1985)Google Scholar
  3. 3.
    Bidoit, M., Mosses, P.: CASL User Manual. LNCS, vol. 2900. Springer, Heidelberg (2004)Google Scholar
  4. 4.
    Boronat, A., Carsi, J., Ramos, I.: Automatic reengineering in MDA using rewriting logic as transformation engine. In: Proc. of the Ninth European Conference on Software Maintenance and Reengineering (CSMR 2005), USA, pp. 228–231. IEEE Computer Society, Los Alamitos (2005)CrossRefGoogle Scholar
  5. 5.
    Canfora, G., Di Penta, M.: New Frontiers of Reverse Engineering. In: Future of Software Engineering (FOSE 2007), pp. 326–341. IEEE Press, Los Alamitos (2007)Google Scholar
  6. 6.
  7. 7.
    Deissenboeck, F., Ratiu, D.: A Unified Meta Model for Concept-Based Reverse Engineering. In: Proceedings of 3rd International Workshop on Metamodels, Schemes, Grammars, and Ontologies for Reverse Engineering (2006), www.planetmde.org
  8. 8.
    Favre, L., Martinez, L.: Formalizing MDA Components. In: Morisio, M. (ed.) ICSR 2006. LNCS, vol. 4039, pp. 326–339. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  9. 9.
    Favre, L.: A Rigorous Framework for Model Driven Development. In: Siau, K. (ed.) Advanced Topics in Database Research, ch. I, vol. 5, pp. 1–27. IGP, USA (2006)CrossRefGoogle Scholar
  10. 10.
    Favre, L.: Foundations for MDA-based Forward Engineering. Journal of Object Technology (JOT) 4(1), 129–153 (2005)CrossRefGoogle Scholar
  11. 11.
    Favre, L., Pereira, C.: Formalizing MDA-based Refactorings. In: 19th Australian Software Engineering Conference (ASWEC 2008), pp. 377–386. IEEE Computer Society, Los Alamitos (2008)CrossRefGoogle Scholar
  12. 12.
    Gueheneuc, Y.: A Systematic Study of UML Class Diagram Constituents for their Abstract and Precise Recovery. In: Proc. of 11th Asia-Pacific Software Engineering Conference (APSEC 2004), pp. 265–274. IEEE Computer Society, Los Alamitos (2004)Google Scholar
  13. 13.
    Jones, N., Nielson, F.: Abstract interpretation: A semantic based tool for program analysis. In: Gabbay, D., Abramsky, S., Maibaum, T. (eds.) Handbook of Logic in Computer Science, vol. 4, pp. 527–636. Clarendon Press, Oxford (1995)Google Scholar
  14. 14.
    Mansurov, N., Campara, D.: Managed architecture of existing code as a practical transition towards MDA. In: Jardim Nunes, N., Selic, B., Rodrigues da Silva, A., Toval Alvarez, A. (eds.) UML Satellite Activities 2004. LNCS, vol. 3297, pp. 219–233. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  15. 15.
    MDA. The Model Driven Architecture (2005), http://www.omg.org/mda
  16. 16.
    MOF. Meta Object facility (MOF TM) 2.0. OMG Specification formal/2006-01-01 (2006), www.omg.org/mof
  17. 17.
    Object Constraint Language. Version 2.0. OMG: formal/06-05-01 (2006), http://www.omg.org
  18. 18.
    Qiao, B., Yang, H., Chu, W., Xu, B.: Bridging legacy systems to model driven architecture. In: Proc. 27th Annual International Computer Aided Software and Applications Conference, pp. 304–309. IEEE Press, Los Alamitos (2003)Google Scholar
  19. 19.
    Meta Object Facility (MOF) 2.0 Query/View/Transformation. formal/2008-04-03 (2008), http://www.omg.org
  20. 20.
    Reus, T., Geers, H., van Deursen, A.: Harvesting Software System for MDA-based Reengineering. In: Rensink, A., Warmer, J. (eds.) ECMDA-FA 2006. LNCS, vol. 4066, pp. 220–236. Springer, Heidelberg (2006)Google Scholar
  21. 21.
    Sommerville, I.: Software Engineering, 7th edn. Addison-Wesley, Reading (2004)Google Scholar
  22. 22.
    Systa, T.: Static and Dynamic Reverse Engineering Techniques for Java Software Systems. Ph.D Thesis, University of Tampere, Report A-2000-4 (2000)Google Scholar
  23. 23.
    Tonella, P., Potrich, A.: Reverse Enginering of Object Oriented Code. Monographs in Computer Science. Springer, Heidelberg (2005)Google Scholar
  24. 24.
    Unified Modeling Language: Superstructure. Version 2.1.2. OMG Specification: formal/2007-02-05 (2007), http://www.omg.org
  25. 25.
    Unified Modeling Language: Infrastructure. Version 2.1.2. OMG Specification formal/07-02-04 (2007)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2009

Authors and Affiliations

  • Liliana Favre
    • 1
    • 2
  • Liliana Martinez
    • 1
  • Claudia Pereira
    • 1
  1. 1.Universidad Nacional del Centro de la Provincia de Buenos AiresArgentina
  2. 2.Comisión de Investigaciones Científicas de la Provincia de Buenos Aires TandilArgentina

Personalised recommendations