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.
Similar content being viewed by others
Explore related subjects
Discover the latest articles, news and stories from top researchers in related subjects.Notes
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
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)
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)
Bézivin, J., Kurtev, I.: Model-based technology integration with the technical space concept. In: Proceedings of the Metainformatics Symposium. Springer, Berlin (2005)
Cai, D., Yu, S., Wen, J.R., Ma, W.Y.: Vips: a vision-based page segmentation algorithm. Tech. report, Microsoft Research (2003)
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)
Chikofsky, E.J., Cross, J.H.: Reverse engineering and design recovery: a taxonomy. IEEE Softw. 7(1), 13–17 (1990)
Clark, T., Evans, A., Sammut, P., Willans, J.: Applied Metamodelling—A Foundation for Language Driven Development, 2nd edn. (2004)
Cuadrado, J.S., Molina, J.G.: Building domain-specific languages for model-driven development. IEEE Softw. 24(5), 48–55 (2007)
Cuadrado, J.S., Molina, J.G.: Modularization of model transformations through a phasing mechanism. Softw. Syst. Model. 8(3), 325–345 (2009)
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)
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)
Eclipse (2003) Eclipse Modelling Framework Project (EMF). http://www.eclipse.org/modeling/emf/
Gerdes, J., Jr.: User interface migration of microsoft windows applications. J. Softw. Maint. Evol. 21(3), 171–187 (2009)
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)
Jacobs, C., Li, W., Schrier, E., Bargeron, D., Salesin, D.: Adaptive grid-based document layout. ACM Trans. Graph. 22(3), 838–847 (2003)
Li, W., Kurata, H.: A grid layout algorithm for automatic drawing of biochemical networks. Bioinformatics 21(9), 2036–2042 (2005)
Limbourg, Q., Vanderdonckt, J.: Usixml: a user interface description language supporting multiple levels of independence. In: ICWE Workshops, pp. 325–338 (2004)
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)
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)
Martin, J.: Rapid Application Development. Macmillan Co., London (1991)
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)
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)
OMG: Architecture-Driven Modernization (ADM). http://adm.omg.org/ (2007)
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)
Rake: Rake website. http://www.rake.org/ (2012)
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)
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)
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)
Tilley, S.R., Smith, D.B.: Perspectives on legacy system reengineering. Tech. rep., Software Engineering Institute, Carnegie Mellon University (1995)
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)
Author information
Authors and Affiliations
Corresponding author
Rights 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
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10515-013-0130-2