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
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
ADM Task Force: Architecture Driven Modernization Roadmap. OMG.adm.omg.org (2007)
Aho, A., Sethi, R., Ullman, J.: Compilers. Principles, Techniques, and Tools. Addison-Wesley, Reading (1985)
Bidoit, M., Mosses, P.: CASL User Manual. LNCS, vol. 2900. Springer, Heidelberg (2004)
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)
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)
CASE TOOLS (2008), http://www.objectbydesign.com/tools
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
Favre, L., Martinez, L.: Formalizing MDA Components. In: Morisio, M. (ed.) ICSR 2006. LNCS, vol. 4039, pp. 326–339. Springer, Heidelberg (2006)
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)
Favre, L.: Foundations for MDA-based Forward Engineering. Journal of Object Technology (JOT) 4(1), 129–153 (2005)
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)
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)
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)
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)
MDA. The Model Driven Architecture (2005), http://www.omg.org/mda
MOF. Meta Object facility (MOF TM) 2.0. OMG Specification formal/2006-01-01 (2006), www.omg.org/mof
Object Constraint Language. Version 2.0. OMG: formal/06-05-01 (2006), http://www.omg.org
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)
Meta Object Facility (MOF) 2.0 Query/View/Transformation. formal/2008-04-03 (2008), http://www.omg.org
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)
Sommerville, I.: Software Engineering, 7th edn. Addison-Wesley, Reading (2004)
Systa, T.: Static and Dynamic Reverse Engineering Techniques for Java Software Systems. Ph.D Thesis, University of Tampere, Report A-2000-4 (2000)
Tonella, P., Potrich, A.: Reverse Enginering of Object Oriented Code. Monographs in Computer Science. Springer, Heidelberg (2005)
Unified Modeling Language: Superstructure. Version 2.1.2. OMG Specification: formal/2007-02-05 (2007), http://www.omg.org
Unified Modeling Language: Infrastructure. Version 2.1.2. OMG Specification formal/07-02-04 (2007)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2009 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Favre, L., Martinez, L., Pereira, C. (2009). MDA-Based Reverse Engineering of Object Oriented Code. In: Halpin, T., et al. Enterprise, Business-Process and Information Systems Modeling. BPMDS EMMSAD 2009 2009. Lecture Notes in Business Information Processing, vol 29. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-01862-6_21
Download citation
DOI: https://doi.org/10.1007/978-3-642-01862-6_21
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-01861-9
Online ISBN: 978-3-642-01862-6
eBook Packages: Computer ScienceComputer Science (R0)