MapIt: A Model Based Pattern Recovery Tool

  • Rui Couto
  • António Nestor Ribeiro
  • José Creissac Campos
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 7706)


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.


Design Patterns MDA Mobile Reverse Engineering Ubiquitous 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    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)CrossRefGoogle Scholar
  2. 2.
    Alexander, C., Silverstein, S.I.M.: A Pattern Language: Towns, Buildings, Construction. Oxford University Press (1977)Google Scholar
  3. 3.
    Buschmann, F., Meunier, R., Rohnert, H., Sommerlad, P.: Pattern-Oriented Software Architecture. John Wiley & Sons (1996)Google Scholar
  4. 4.
    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)Google Scholar
  5. 5.
    Favre, L.: Model Driven Architecture for Reverse Engineering Technologies: Strategic Directions and System Evolution. IGI Global (2010)Google Scholar
  6. 6.
    Fowler, M.: Patterns of Enterprise Application Architecture. Addison-Wesley (2002)Google Scholar
  7. 7.
    Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns - Elements of Reusable Object-Oriented Software. Addison-Wesley (1995)Google Scholar
  8. 8.
    Guéhéneuc, Y.-G.: Un cadre pour la tra caabilité des motifs de conception. PhD thesis, Université de Nantes (2003)Google Scholar
  9. 9.
    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)CrossRefGoogle Scholar
  10. 10.
    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)Google Scholar
  11. 11.
    Kleppe, A., Warmer, J., Bast, W.: MDA Explained - The Model Driven Architecture: Practice and Promise. Addison-Wesley (2003)Google Scholar
  12. 12.
    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)Google Scholar
  13. 13.
    Mellor, S., Balcer, M.: Executable UML: A Foundation for Model-Driven Architecture. Addison-Wesley (2002)Google Scholar
  14. 14.
    Miller, J., Mukerji, J.: MDA Guide Version 1.0.1. Object Management Group (2003)Google Scholar
  15. 15.
    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)Google Scholar
  16. 16.
    Pastor, O., Molina, J.C.: Model-Driven Architecture in Practice. Springer (2007)Google Scholar
  17. 17.
    Systä, T.: Static and Dynamic Reverse Engineering Techniques for Java Software Systems. University of Tampere (2000)Google Scholar
  18. 18.
    Truyen, F.: The Fast Guide to Model Driven Architecture - The Basics of Model Driven Architecture. Object Management Group (2006)Google Scholar
  19. 19.
    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)Google Scholar
  20. 20.
    Wuyts, R.: Declarative reasoning about the structure of object-oriented systems. In: Proceedings of the TOOLS USA 1998 Conference, pp. 112–124. IEEE (1998)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2013

Authors and Affiliations

  • Rui Couto
    • 1
    • 2
  • António Nestor Ribeiro
    • 1
    • 2
  • José Creissac Campos
    • 1
    • 2
  1. 1.Departamento de InformáticaUniversidade do MinhoBragaPortugal
  2. 2.HASLab/INESC TECUniversidade do MinhoPortugal

Personalised recommendations