Professional Documents
Culture Documents
New Frontiers of Reverse Engineering
New Frontiers of Reverse Engineering
net/publication/4250839
CITATIONS READS
165 2,318
2 authors:
All content following this page was uploaded by Massimiliano Di Penta on 03 June 2014.
tions, they were able to recover detailed information such ter results than the two individual techniques [93].
as conditions, messages exchanged and data flow. Finally, the large diffusion of the Web during the last ten
Object-oriented development was accompanied by the years has triggered the need for reverse engineering tech-
diffusion of design patterns. From a reverse engineering niques tied to Web Applications (WAs). Apart from re-
perspective, identifying design patterns into the source code verse engineering-related conferences, research in this area
aims at promoting reuse and assessing code quality. Also in has been disseminated in the International Symposium on
this case, both static techniques [2, 53, 68, 108] and dy- Web Site Evolution (WSE). WAs present peculiarities that
namic techniques [58] have been used. All the techniques require the need to develop new reverse engineering tech-
are based on cliché matching either on a portion of class di- niques, or to adapt the existing ones. The interaction with
agrams (static approaches) or on execution traces (dynamic WAs happens through pages visualized in a browser and by
approaches). sending data from the browser to the Web server. As an
additional level of complexity, these pages — including the
Feature identification and location represent widely and
scripting code to be executed by the browser — are dynam-
successfully addressed research problems for reverse engi-
ically generated.
neering. Feature location is a technique aimed at identifying
Tilley and Huang [105] compared the reverse engi-
subsets of a program source code activated when exercising
neering capabilities of commercial WA development tools.
a piece of functionality. Bearing this in mind, techniques
Clearly these capabilities did not suffice for reverse engi-
using static analysis, dynamic analysis, and their combi-
neering needs, and more had to be done. A significant
nation, were proposed. Dynamic analysis techniques were
contribution to WAs reverse engineering was provided by
proposed for example by Wilde and Scully [113]. A static
Ricca and Tonella, who developed the ReWeb tool to per-
technique based on Abstract System Dependencies Graph
form analyses on web sites [95], extending to WAs tradi-
(ASDG) was proposed by Chen and Rajlich [25]. Eisen-
tional static flow analyses. Di Lucca et al. proposed an
barth et al. [41] combined the use of both static and dy-
approach and a tool (WARE) to recover Conallens UML
namic data to identify features. After performing static
documentation from WAs [37]. Architecture recovery of
analysis, they used FCA to relate features. Antoniol and
WAs was addressed by Hassan and Holt [56]. The dynam-
Guéhéneuc [4] also combined static and dynamic analy-
icity of WAs was handled by Antoniol et al., who proposed
sis. In their approach, the trace profiling was followed by
WANDA [3], a tool for dynamic analysis of WAs.
a knowledge-based filtering and by a probabilistic ranking
aimed at identifying events relevant to a particular feature.
Marcus and Poshyvanyk [78] used a completely different 3.3 Visualization
technique, based on the application of LSI on the source
code. Their technique was then combined with the tech- Software visualization is a crucial step for reverse engi-
nique proposed by Antoniol and Guéhéneuc, producing bet- neering. The way information is presented to the developer
6 Favoring the Adoption of Reverse Engi- 3. Increasing tool maturity and interoperability: it might
neering and its Tools be argued this may or may not be the role of re-
searchers, however the availability of mature reverse
Despite the maturity of reverse engineering research, and engineering tools and their interoperability, by means
the fact that many pieces of reverse engineering work seem of sharing data format and common fact schema [39,
to timely solve crucial problems and to answer relevant in- 115] or by the ability to be composed as services (as
dustry needs, its adoption in industry is still limited. In our discussed in Section 5.2) will favor their usage and,
opinion, there are a few directions in which it is important consequently, their adoption. Finally, what discussed
to push forward: above regarding the empirical assessment of reverse
engineering techniques need to account that, in many
1. Reverse engineering education: most software en- cases, results strongly depend on the maturity, robust-
gineering and computer science curricula comprise ness and usability of tools.