Abstract
Design patterns provide a means to reuse proven solutions during development, but also to identify good practices during analysis. These are particularly relevant in complex and critical software, such as is the case of ubiquitous and pervasive systems. Model Driven Engineering (MDE) presents a solution for this problem, with the usage of high level models. As part of an effort to develop approaches to the migration of applications to mobile contexts, this paper reports on a tool that identifies design patterns in source code. Code is transformed into both platform specific and independent models, and from these design patterns are inferred. MapIt, the tool which implements these functionalities is described.
This work is funded by ERDF - European Regional Development Fund through the COMPETE Programme (operational programme for competitiveness) and by National Funds through the FCT Fundação para a Ciência e a Tecnologia (Portuguese Foundation for Science and Technology) within project FCOMP-01-0124-FEDER-015095.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Abadi, M., Feldman, Y.A.: Automatic recovery of statecharts from procedural code. In: Proceedings of the 27th IEEE/ACM International Conference on Automated Software Engineering, ASE 2012, pp. 238–241. ACM, New York (2012)
Alexander, C., Silverstein, S.I.M.: A Pattern Language: Towns, Buildings, Construction. Oxford University Press (1977)
Buschmann, F., Meunier, R., Rohnert, H., Sommerlad, P.: Pattern-Oriented Software Architecture. John Wiley & Sons (1996)
Corbett, J., Dwyer, M., Hatcliff, J., Laubach, S., Pasareanu, C., Robby, Zheng, H.: Bandera: extracting finite-state models from Java source code. In: Proceedings of the 22nd International Conference on Software Engineering, pp. 439–448. ACM (2000)
Favre, L.: Model Driven Architecture for Reverse Engineering Technologies: Strategic Directions and System Evolution. IGI Global (2010)
Fowler, M.: Patterns of Enterprise Application Architecture. Addison-Wesley (2002)
Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns - Elements of Reusable Object-Oriented Software. Addison-Wesley (1995)
Guéhéneuc, Y.-G.: Un cadre pour la tra caabilité des motifs de conception. PhD thesis, Université de Nantes (2003)
Guéhéneuc, Y.-G., Albin-Amiot, H.: Recovering binary class relationships: putting icing on the UML cake. In: Proceedings of the 19th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA 2004, pp. 301–314. ACM, New York (2004)
Jinto, K., Limpiyakorn, Y.: Java code reviewer for verifying object-oriented design in class diagrams. In: 2010 The 2nd IEEE International Conference on Information Management and Engineering (ICIME), pp. 471–475. IEEE (2010)
Kleppe, A., Warmer, J., Bast, W.: MDA Explained - The Model Driven Architecture: Practice and Promise. Addison-Wesley (2003)
Kollman, R., Selonen, P., Stroulia, E., Systä, T., Zundorf, A.: A Study on the Current State of the Art in Tool-Supported UML-Based Static Reverse Engineering. In: Proceedings of the Ninth Working Conference on Reverse Engineering (WCRE 2002), pp. 22–32. IEEE (2002)
Mellor, S., Balcer, M.: Executable UML: A Foundation for Model-Driven Architecture. Addison-Wesley (2002)
Miller, J., Mukerji, J.: MDA Guide Version 1.0.1. Object Management Group (2003)
Moha, N., Guéhéneuc, Y.-G.: Ptidej and décor: identification of design patterns and design defects. In: Companion to the 22nd ACM SIGPLAN Conference on Object-Oriented Programming Systems and Applications Companion, OOPSLA 2007, pp. 868–869. ACM, New York (2007)
Pastor, O., Molina, J.C.: Model-Driven Architecture in Practice. Springer (2007)
Systä, T.: Static and Dynamic Reverse Engineering Techniques for Java Software Systems. University of Tampere (2000)
Truyen, F.: The Fast Guide to Model Driven Architecture - The Basics of Model Driven Architecture. Object Management Group (2006)
von Detten, M., Meyer, M., Travkin, D.: Reverse engineering with the reclipse tool suite. In: Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering, pp. 299–300. ACM (2010)
Wuyts, R.: Declarative reasoning about the structure of object-oriented systems. In: Proceedings of the TOOLS USA 1998 Conference, pp. 112–124. IEEE (1998)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2013 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Couto, R., Nestor Ribeiro, A., Creissac Campos, J. (2013). MapIt: A Model Based Pattern Recovery Tool. In: Machado, R.J., Maciel, R.S.P., Rubin, J., Botterweck, G. (eds) Model-Based Methodologies for Pervasive and Embedded Software. MOMPES 2012. Lecture Notes in Computer Science, vol 7706. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-38209-3_2
Download citation
DOI: https://doi.org/10.1007/978-3-642-38209-3_2
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-38208-6
Online ISBN: 978-3-642-38209-3
eBook Packages: Computer ScienceComputer Science (R0)