Supporting Web Application Evolution by Dynamic Analysis
Giuseppe Antonio Di Lucca*, Massimiliano Di Penta*,
Anna Rita Fasolino°, Porfirio Tramontana°
{dilucca, dipenta}@unisannio.it, {fasolino, ptramont}@unina.it
*RCOST - Research Centre on Software Technology, University of Sannio
Palazzo ex Poste, via Traiano, 82100 Benevento, Italy
° Dipartimento di Informatica e Sistemistica, Università di Napoli Federico II
Via Claudio, 21, 80125 Napoli, Italy
Abstract
The evolution of Web Applications needs to be supported
by the availability of proper analysis and design
documents. UML use case diagrams are certainly useful
to identify features to evolve, as well as to study the Web
Application evolution in terms of features added/removed
or changed. Unfortunately, very often the only source of
documentation available is constituted by the Web
Application source code.
This paper proposes an approach to abstract use case
diagrams from execution traces of a Web Application.
The approach is mainly based on the analysis of a graph
modelling the transitions between the pages navigated
along user sessions and the clustering of the navigated
pages. A case study carried out to validate the proposed
approach and showing its feasibility is reported in the
paper.
Keywords: web application reverse engineering,
dynamic analysis, UML diagram abstraction
1. Introduction
The rapid diffusion of Web Application (WAs), and the
growth of their complexity, have raised the need for
supporting their evolution with a disciplined life cycle
and proper methodologies. Due to the market pressure,
Web applications are characterized by a fast development
and by a high rate of maintenance and evolution
operations, to continuously adapt the application to the
new needs.
When performing maintenance/evolution activities, it
is necessary to have the WA analysis and design
documentation available to effectively and correctly
perform the required intervention. To this aim,
appropriate notations (see, for example, the Conallen’s
UML extension [4]) have been proposed.
However, in most cases the only source of
documentation available is just the source code of the
WA itself. This because the fast required development,
often, does not permit the production of adequate
development documentation, useful to reduce the effort of
maintenance/evolution operations. The only possibility is,
in this case, to recover the needed missing information by
reverse engineering the WA [8].
In this paper we will focus on the reverse engineering
of WA use case diagrams. These diagrams can support
the WA evolution in different possible ways, such as:
- identifying the features to be evolved, mapping
the modification requests to use cases;
- identifying the features impacted by a
modification;
- analyzing how the WA evolves in terms of
features added, removed or changed: this can be
made analyzing use case diagram snapshots
taken at different releases; or
- supporting the regression testing of the evolved
WA.
Many WA reverse engineering tasks, included the one
described in this paper, are quite difficult to be performed
relying only on static analysis of the code. This is already
well-known for traditional software: tasks such as the
recovery of design patterns [10], scenarios and sequence
diagrams [16, 3] are just some examples.
WAs tend to be more and more highly interactive and
dynamic than traditional applications: HTML pages can
be dynamically built by server pages, thus, according to
the user inputs or requests, the WA user interface may
1
Proceedings of the 2005 Eighth International Workshop on Principles of Software Evolution (IWPSE’05)
1550-4077/05 $20.00 © 2005 IEEE