Model-driven reverse engineering of legacy graphical user interfaces

Abstract

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.

This is a preview of subscription content, access via your institution.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Algorithm 1
Fig. 9
Fig. 10
Fig. 11
Fig. 12
Fig. 13
Fig. 14
Fig. 15
Algorithm 2
Algorithm 3
Fig. 16
Fig. 17
Fig. 18
Fig. 19
Fig. 20
Fig. 21

Notes

  1. 1.

    A case study GUI taken from a real application that illustrates the reverse engineering process in detail can be found at www.modelum.es/guizmo.

References

  1. Andrade, L.F., Gouveia, J., Antunes, M., El-Ramly, M., Koutsoukos, G.: Forms2net—migrating oracle forms to microsoft.net. 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)

    Google 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)

  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)

    Article  Google Scholar 

  7. Clark, T., Evans, A., Sammut, P., Willans, J.: Applied Metamodelling—A Foundation for Language Driven Development, 2nd edn. (2004)

  8. Cuadrado, J.S., Molina, J.G.: Building domain-specific languages for model-driven development. IEEE Softw. 24(5), 48–55 (2007)

    Article  Google Scholar 

  9. Cuadrado, J.S., Molina, J.G.: Modularization of model transformations through a phasing mechanism. Softw. Syst. Model. 8(3), 325–345 (2009)

    Article  Google 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). http://www.eclipse.org/modeling/emf/

  13. Gerdes, J., Jr.: User interface migration of microsoft windows applications. J. Softw. Maint. Evol. 21(3), 171–187 (2009)

    Article  Google 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)

    Article  Google Scholar 

  16. Li, W., Kurata, H.: A grid layout algorithm for automatic drawing of biochemical networks. Bioinformatics 21(9), 2036–2042 (2005)

    Article  Google 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). http://adm.omg.org/ (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)

    Google Scholar 

  25. Rake: Rake website. http://www.rake.org/ (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)

    Google 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)

    Article  Google Scholar 

  29. Tilley, S.R., Smith, D.B.: Perspectives on legacy system reengineering. Tech. rep., Software Engineering Institute, Carnegie Mellon University (1995)

  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)

    Google Scholar 

Download references

Author information

Affiliations

Authors

Corresponding author

Correspondence to Jesús Sánchez Cuadrado.

Rights and permissions

Reprints and Permissions

About this article

Cite this article

Sánchez Ramón, Ó., Sánchez Cuadrado, J. & García Molina, J. Model-driven reverse engineering of legacy graphical user interfaces. Autom Softw Eng 21, 147–186 (2014). https://doi.org/10.1007/s10515-013-0130-2

Download citation

Keywords

  • Graphical User Interfaces
  • Layout
  • Modernisation
  • Model driven engineering
  • Reverse engineering
  • Reengineering