this paper differs in the targeted environment and the
used process of extracting information. ReGUI uses
dynamic reverse engineering with try-and-error inter-
actions to obtain a graph of the different windows of a
user interface. Columbus tries to create a view model
of JavaScript components and their templates through
static reverse engineering. This work is extended with
the use of Machine Learning tools in (Morgado et al.,
2012), which is a relevant aspect to consider in further
research on using Columbus.
An interesting framework is proposed by Carlos
Eduardo Silva in his Ph.D. thesis (e Marques da Silva,
2015), which is capable of analyzing existing Web
Applications and generate the structure and behavior
models from them. This approach differs from the
approach used in Columbus because the inspections
are realized on the running applications instead to the
source code of the application.
7 CONCLUSIONS
In this paper, we present a tool for discovering UI
models in the source code of Component-based Web
Applications, which could be used to support the re-
verse engineering process. Subsequently, we evalu-
ated its capabilities of User Interface model extrac-
tions using open-source project TodoMVC. The eval-
uation process shows the main limitations of the tools
for creating an abstract UI model from the modern
JavaScript frameworks (i.e. technology independent
model) in Web Applications.
We plan to extend in the Columbus tool: first,
adding new rules to support other web technologies
to evaluate the complexity of the integration of dif-
ferent presentation techniques. Additionally, we con-
tinue researching on the model-based UI formalisms
to facilitate the integration of the UI components and
evaluate the possible combinations of the current pro-
cess with Machine Learning techniques.
REFERENCES
Abrams, M., Phanouriou, C., Batongbacal, A. L., Williams,
S. M., and Shuster, J. E. (1999). Uiml: an appliance-
independent xml user interface language. Computer
Networks, 31(11):1695–1708.
Bouillon, L. (2006). Reverse Engineering of Declarative
User Interfaces. PhD thesis, Universit
´
e de Valenci-
ennes et du Hainaut-Cambr
´
esis.
Ceri, S., Fraternali, P., and Bongio, A. (2000). Web mod-
eling language (webml): a modeling language for de-
signing web sites. Computer Networks, 33(1):137–
157.
Chikofsky, E. J. and Cross, J. H. (1990). Reverse engineer-
ing and design recovery: a taxonomy. IEEE Software,
7(1):13–17.
Di Lucca, G. A., Fasolino, A. R., Pace, F., Tramontana, P.,
and De Carlini, U. (2002). Ware: a tool for the reverse
engineering of web applications. In Software Main-
tenance and Reengineering, 2002. Proceedings. Sixth
European Conference on, pages 241–250. IEEE.
e Marques da Silva, C. E. B. (2015). Reverse engineer-
ing of web applications. PhD thesis, Universidade do
Minho.
Hevner, A. R. (2007). A three cycle view of design sci-
ence research. Scandinavian journal of information
systems, 19(2):4.
Limbourg, Q., Vanderdonckt, J., Michotte, B., Bouillon,
L., Florins, M., and Trevisan, D. (2004). Usixml:
A user interface description language for context-
sensitive user interfaces. In In Proceedings of the
ACM AVI’2004 Workshop ”Developing User Inter-
faces with XML: Advances on User Interface Descrip-
tion Languages”, pages 55–62. Press.
Morgado, I. C., Paiva, A., and Faria, J. P. (2011). Re-
verse engineering of graphical user interfaces. In The
Sixth International Conference on Software Engineer-
ing Advances, ICSEA, pages 293–298.
Morgado, I. C., Paiva, A. C. R., Faria, J. P., and Cama-
cho, R. (2012). GUI reverse engineering with machine
learning. In 2012 First International Workshop on Re-
alizing AI Synergies in Software Engineering (RAISE),
pages 27–31, Zurich, Switzerland. IEEE.
OASIS (2008). User Interface Markup Language (UIML)
Version 4.0. Committee draft.
Columbus: A Tool for Discovering User Interface Models in Component-basedWeb Applications
331