Automated Software Engineering

, Volume 21, Issue 2, pp 147–186 | Cite as

Model-driven reverse engineering of legacy graphical user interfaces

  • Óscar Sánchez Ramón
  • Jesús Sánchez Cuadrado
  • Jesús García Molina


Businesses are increasingly beginning to modernise those of their legacy systems that were originally developed with Rapid Application Development (RAD) or Fourth Generation Language (4GL) environments, in order to benefit from new platforms and technologies. In these systems, the Graphical User Interface (GUI) layout is implicitly provided by the position of the GUI elements (i.e. coordinates). However, taking advantage of current features of GUI technologies often requires an explicit, high-level layout model. We propose a Model-Driven Engineering process with which to perform the automatic reverse engineering of RAD-built GUIs, which is focused on discovering the implicit layout, and produces a GUI model in which the layout is explicit. As an example of the approach, we apply an automatic reengineering process to this model in order to generate a Java Swing user interface.


Graphical User Interfaces Layout Modernisation Model driven engineering Reverse engineering Reengineering 


  1. Andrade, L.F., Gouveia, J., Antunes, M., El-Ramly, M., Koutsoukos, G.: Forms2net—migrating oracle forms to In: GTTSE, pp. 261–277 (2006) Google Scholar
  2. Bandelloni, R., Mori, G., Paternò, F.: Dynamic generation of web migratory interfaces. In: Proceedings of the 7th International Conference on Human Computer Interaction with Mobile Devices & Services (MobileHCI ’05), pp. 83–90. ACM, New York (2005) CrossRefGoogle Scholar
  3. Bézivin, J., Kurtev, I.: Model-based technology integration with the technical space concept. In: Proceedings of the Metainformatics Symposium. Springer, Berlin (2005) Google Scholar
  4. Cai, D., Yu, S., Wen, J.R., Ma, W.Y.: Vips: a vision-based page segmentation algorithm. Tech. report, Microsoft Research (2003) Google Scholar
  5. Chen, Y., Ma, W.Y., Zhang, H.: Detecting web page structure for adaptive viewing on small form factor devices. In: WWW, pp. 225–233 (2003) Google Scholar
  6. Chikofsky, E.J., Cross, J.H.: Reverse engineering and design recovery: a taxonomy. IEEE Softw. 7(1), 13–17 (1990) CrossRefGoogle Scholar
  7. Clark, T., Evans, A., Sammut, P., Willans, J.: Applied Metamodelling—A Foundation for Language Driven Development, 2nd edn. (2004) Google Scholar
  8. Cuadrado, J.S., Molina, J.G.: Building domain-specific languages for model-driven development. IEEE Softw. 24(5), 48–55 (2007) CrossRefGoogle Scholar
  9. Cuadrado, J.S., Molina, J.G.: Modularization of model transformations through a phasing mechanism. Softw. Syst. Model. 8(3), 325–345 (2009) CrossRefGoogle Scholar
  10. Cuadrado, J.S., Molina, J.G., Menárguez, M.: RubyTL: a practical, extensible transformation language. In: 2nd European Conference on Model-Driven Architecture. LNCS, vol. 4066, pp. 158–172. Springer, Berlin (2006) Google Scholar
  11. Dixon, M., Leventhal, D., Fogarty, J.: Content and hierarchy in pixel-based methods for reverse engineering interface structure. In: Proceedings of the SIGCHI Conference on Human Factors in Computing Systems (CHI ’11), pp. 969–978. ACM, New York (2011) Google Scholar
  12. Eclipse (2003) Eclipse Modelling Framework Project (EMF).
  13. Gerdes, J., Jr.: User interface migration of microsoft windows applications. J. Softw. Maint. Evol. 21(3), 171–187 (2009) CrossRefGoogle Scholar
  14. Harrison, J.V., Lim, W.M.: Automated reverse engineering of legacy 4GL information system applications using the ITOC workbench. In: Proc. of the 10th Conference on Advanced Information Systems Engineering (CAiSE’98), pp. 8–12 (1998) Google Scholar
  15. Jacobs, C., Li, W., Schrier, E., Bargeron, D., Salesin, D.: Adaptive grid-based document layout. ACM Trans. Graph. 22(3), 838–847 (2003) CrossRefGoogle Scholar
  16. Li, W., Kurata, H.: A grid layout algorithm for automatic drawing of biochemical networks. Bioinformatics 21(9), 2036–2042 (2005) CrossRefGoogle Scholar
  17. Limbourg, Q., Vanderdonckt, J.: Usixml: a user interface description language supporting multiple levels of independence. In: ICWE Workshops, pp. 325–338 (2004) Google Scholar
  18. Lutteroth, C.: Automated reverse engineering of hard-coded GUI layouts. In: Ninth Australasian User Interface Conference (AUIC 2008), vol. 76, pp. 65–73. ACS, Darlinghurst (2008) Google Scholar
  19. Maras, J., Štula, M., Carlson, J.: Reusing web application user-interface controls. In: Proceedings of the 11th International Conference on Web Engineering (ICWE’11), pp. 228–242. Springer, Berlin (2011) Google Scholar
  20. Martin, J.: Rapid Application Development. Macmillan Co., London (1991) Google Scholar
  21. Meliá, S., Gómez, J., Pérez, S., Díaz, O.: A model-driven development for gwt-based rich Internet applications with ooh4ria. In: ICWE, pp. 13–23. IEEE, New York (2008) Google Scholar
  22. Memon, A., Banerjee, I., Nagarajan, A.: GUI ripping: reverse engineering of graphical user interfaces for testing. In: Proceedings of the 10th Working Conference on Reverse Engineering (WCRE ’03), p. 260. IEEE Comput. Soc., Los Alamitos (2003) Google Scholar
  23. OMG: Architecture-Driven Modernization (ADM). (2007)
  24. Puerta, A., Eisenstein, J.: Ximl: a common representation for interaction data. In: Proceedings of the 7th International Conference on Intelligent User Interfaces (IUI ’02), pp. 214–215. ACM, New York (2002) CrossRefGoogle Scholar
  25. Rake: Rake website. (2012)
  26. Sánchez Ramón, O., Sánchez Cuadrado, J., García Molina, J.: Model-driven reverse engineering of legacy graphical user interfaces. In: Proceedings of the IEEE/ACM International Conference on Automated Software engineering (ASE ’10), pp. 147–150. ACM, New York (2010) CrossRefGoogle Scholar
  27. Staiger, S.: Static analysis of programs with graphical user interface. In: Proceedings of the 11th European Conference on Software Maintenance and Reengineering (CSMR’07), pp. 252–264. IEEE Comput. Soc., Los Alamitos (2007) Google Scholar
  28. Stroulia, E., El-Ramly, M., Iglinski, P., Sorenson, P.: User interface reverse engineering in support of interface migration to the web. Autom. Softw. Eng. 10(2), 271–301 (2003) CrossRefGoogle Scholar
  29. Tilley, S.R., Smith, D.B.: Perspectives on legacy system reengineering. Tech. rep., Software Engineering Institute, Carnegie Mellon University (1995) Google Scholar
  30. Vanderdonckt, J., Bouillon, L., Souchon, N.: Flexible reverse engineering of web pages with VAQUISTA. In: Proceedings of the Eighth Working Conference on Reverse Engineering (WCRE 01), p. 241. IEEE Comput. Soc., Los Alamitos (2001) CrossRefGoogle Scholar

Copyright information

© Springer Science+Business Media New York 2013

Authors and Affiliations

  • Óscar Sánchez Ramón
    • 1
  • Jesús Sánchez Cuadrado
    • 2
  • Jesús García Molina
    • 1
  1. 1.Facultad de InformáticaUniversidad de MurciaMurciaSpain
  2. 2.Escuela Politécnica SuperiorUniversidad Autónoma de MadridMadridSpain

Personalised recommendations