SlideShare uma empresa Scribd logo
1 de 32
1
WSE 2002, Montreal, Canada
Towards a Better Comprehensibility
of Web Applications:
Lessons Learned from Reverse
Engineering Experiments
P. Tramontana
G. A. Di Lucca, A.R. Fasolino
Dipartimento di Informatica e Sistemistica
University of Naples Federico II, Italy
2
WSE 2002, Montreal, Canada
Web Applications (WA):
problems and open issues
• The development of Web sites and applications is
increasing dramatically to satisfy the market
requests. The software industry is facing the new
demand under the pressure of a very short time-to-
market and an extremely high competition.
⇒Web sites and applications are usually developed
without a disciplined process: poor documentation is
produced to support the subsequent maintenance
and evolution activities, thus compromising the
quality of the applications
3
WSE 2002, Montreal, Canada
Managing existing Web Applications
⇒Due to the large number of employed technologies,
understanding, maintaining and evolving a dynamic
application is a complex task …
• Reverse Engineering methods and techniques have
been proposed for…
– Analyzing the functional behavior of an existing WA
– Reconstructing the architecture of the WA
– Capturing and reusing the design of the application
– Modeling static and dynamic views by UML diagrams (use
cases, sequence and class diagrams)
– …
4
WSE 2002, Montreal, Canada
Problems in analysis
- Presence in a WA of several heterogeneous software
components, developed with different technologies
and coding languages
- Absence of effective mechanisms for implementing
the well-known software engineering principles of
modularity, encapsulation, and separation of
concerns, may significantly make harder the
comprehension of an existing WA
5
WSE 2002, Montreal, Canada
Reverse Engineering Web Applications
Five main steps:
1) Static Analysis of the WA
2) Dynamic Analysis of the WA
3) Automatic Clustering of the WA
4) Validation of the clustering
5) Abstraction of UML diagrams
6
WSE 2002, Montreal, Canada
The conceptual model of a WA
Client Page
with Frame
Client Module
Web Object
Web Page
0..n
0..n
0..n redirect
0..n
0..n
0..n
0..n
0..n
Load in Frame
Client Page
0..n0..n include
0..n0..n
0..n
0..n
0..n
0..n
link
Server Page
0..10..1 0..10..1 build
0..n0..n 0..n0..n
submit
0..n
0..n
0..n
include
0..n
• Components: Client pages, server pages, client page with frames,
client modules, web objects.
• Relationships: Link, submit, redirect, build, load_in_frame, include.
7
WSE 2002, Montreal, Canada
1) Static Analysis of the WA
– This kind of analysis can be carried out with the
support of a multi-language code parser, such as
WARE, a tool that statically analyzes HTML code,
server script code (Vbscript, JScript, PHP), client
script code (Vbscript, Jscript, Javascript).
– pt, ASP and PHP source code
8
WSE 2002, Montreal, Canada
2) Dynamic Analysis of the WA
- Recover of additional information about its
components and inter-relationships.
<%
page1=“a.html”
page2=“b.html”
param=Request.Form(“parameter”)
x=Month(Now)
If x>0 then
response.write(“<a href=“+ page1+”?
par=”+param+”>Go to page A </A>”)
else
response.write(“<a href=“+ page2+”?
par=”+param+”>Go to page B</A>”)
end if
%>
Example:
links between this
page and a.html and
b.html
9
WSE 2002, Montreal, Canada
2) Dynamic Analysis of the WA
- After static and dynamic analysis, we have the Web
Application Graph (WAG), where every component is
a node (the shape and the color of the node depend
on the type) and every edge is a relationship (the
color depend on the type)
10
WSE 2002, Montreal, Canada
3) Automatic Clustering of the WA
• The algorithm groups components of a WA into
meaningful (highly cohesive) and independent
(loosely coupled) clusters
• It evaluate the degree of coupling between
interconnected components depending on both the
typology and the typology of the connections, and
propose a clustering configuration that includes
clusters with high intra-connectivity and low inter-
connectivity
11
WSE 2002, Montreal, Canada
4) Validation of the clustering
• Proposed clustering is submitted to a Concept
Assignment Process (CAP) in order to validate them
• We distinguish between:
- Valid clusters
- Invalid clusters
- Incomplete clusters
- Divisible clusters
- Spurious clusters
12
WSE 2002, Montreal, Canada
5) Abstraction of the UML diagrams
– Every functionality retrieved after Concept
Assignment Process is used to reconstruct a use
case diagram
13
WSE 2002, Montreal, Canada
Experimenting the
reverse engineering approach
• The proposed RE approach has been experimented
with 6 real WAs with different characteristics, and
implemented using ASP, Javascript, PHP, and HTML
technologies.
• According to Huang and Tilley’s classification three
of them were class 3 applications, two were class 2
applications and the last were a class 1 application.
14
WSE 2002, Montreal, Canada
1) Static Analysis of the WA
Summary data about the analyzed Was
Component type WA1 WA2 WA3 WA4 WA5 WA6
Server page 75 105 21 0 0 0
Client Static page 23 38 19 80 45 257
Client Built page 74 98 20 0 0 0
External web page 0 0 5 2 34 8
Client script block 132 225 113 261 4 3
Function in Client script block 48 32 60 68 1 4
Form 49 100 5 0 25 5
Server script block 562 2358 40 0 0 0
Function in Server scripts 0 11 0 0 0 0
Redirect operation in server blocks 7 0 0 0 0 0
Redirect operation in client blocks 0 0 41 0 0 0
Anchor to Hypertextual link 45 266 121 162 448 1508
15
WSE 2002, Montreal, Canada
2) Dynamic Analysis of the WA
Problems :
•Connections with a dinamically istantiated value
•Connections dinamically istantiated
•Connections realized in extra-script object (e.g.: java
applets, flash objects)
16
WSE 2002, Montreal, Canada
2) Dynamic Analysis of the WA
Dynamically retrieved information
Component
type
WA1 WA2 WA3 WA4 WA5 WA6
Redirect
operation in
server blocks
7 0 0 0 0 0
Anchor to
Hypertextual
Link
0 1 9 0 27 0
Submit Form 0 32 0 0 0 0
Redirect
operation in
client blocks
0 0 27 0 0 0
17
WSE 2002, Montreal, Canada
2) Dynamic Analysis of the WA
WAG: Web Application Graph
18
WSE 2002, Montreal, Canada
3) Automatic Clustering of the WA
• WARE tool automatically selects the optimal
clustering of the WA, according to a quality metric
based on the evaluation of the degree of the intra-
connectivity of the clusters and of the degree of inter-
connectivity.
Component
type
WA1 WA2 WA3 WA4 WA5 WA6
Number of
Clusters
48 101 31 58 31 122
Average #
Pages per
Clusters
3,58 2,41 2,03 1,55 1,45 2,17
19
WSE 2002, Montreal, Canada
3) Automatic Clustering of the WA
The clustered
graph of the WA
20
WSE 2002, Montreal, Canada
3) Automatic Clustering of the WA
Problems:
• Presence of many navigation links, such as
back links and cross links. These links are not
representative of semantic relationships
among the pages (e.g.: links associated with
navigation bars)
21
WSE 2002, Montreal, Canada
4) Validation of the clustering
WA1 WA2 WA3 WA4 WA5 WA6
Number of initial clusters 49 101 27 49 31 115
Number of spurious clusters 0 0 1 1 0 0
Number of split clusters 0 0 2 0 5 12
Number of incomplete clusters 8 15 3 0 0 0
Number of accepted clusters 41 86 21 48 26 103
Number of new clusters obtained
from the spurious ones
0 0 1 2 0 0
Number of new clusters obtained
from the subdivided ones
0 0 5 0 13 31
Number of new clusters obtained
by merging incomplete clusters
3 7 1 0 0 0
Number of final clusters 44 93 28 50 39 134
22
WSE 2002, Montreal, Canada
5) Abstraction of the UML diagrams
WA1 WA2 WA3 WA4 WA5 WA6
Clusters that
realise a use case
31 55 19 20 23 121
Clusters
implementing
coordinator/
home / menu
page
12 13 2 11 12 16
Isolated
Clusters
0 9 7 19 4 0
Clusters
implementing
Utility Modules
1 16 0 0 0 0
Result of the Concept Assignment Process
23
WSE 2002, Montreal, Canada
5) Abstraction of the UML diagrams
An excerpt of
the recovered
use case model
24
WSE 2002, Montreal, Canada
Discussion and lessons learned
• Dynamic analisys is time-consuming and expensive,
since it cannot be completely automated.
In order to reduce the effort devoted to
static/dynamic analysis, programmers should try to
introduce explicit (static) links in the code each time
it is possible
25
WSE 2002, Montreal, Canada
Discussion and lessons learned
.
√ Links between this page and a.html and b.html
are retrieved with static analysis.
×The value of the parameter can be retrieved only
with a multi-page dynamic analysis
<%
param=Request.Form(“parameter”)
x=Month(Now)
If x>0 then %>
<A href=a.html?par=<%=param%> >Go to page A
</A>
<% else %>
<A href=b.html?par=<%=param%> > Go to page B
</A>
<% end if %>
………..
(a)
26
WSE 2002, Montreal, Canada
<%
page1=“a.html”
page2=“b.html”
param=Request.Form(“parameter”)
x=Month(Now)
If x>0 then
response.write(“<a href=“+ page1+”?par=”+param+”>Go to page A </A>”)
else
response.write(“<a href=“+ page2+”?par=”+param+”>Go to page B</A>”)
end if
%>
Discussion and lessons learned
.
×Links aren’t retrieved with static analysis.
×Their value can be retrieved with a (simple) data flow
analysis
27
WSE 2002, Montreal, Canada
Discussion and lessons learned
.
……….
<%
‘Read from a database the value to assign to page1 (i.e. a.html)’
‘Read from a database the value to assign to page2 (i.e. b.html)’
…………
param=Request.Form(“parameter”)
x=Month(Now)
If x>6 then
response.write(“<a href=“+page1+”?par=”+param+”>Go to page A </A>”)
else
response.write(“<a href=“+page2+”?par=”+param+”> Go to page B</A>”)
end if
%>
(c)×Links aren’t retrieved with static analysis.
×The value of the link can be retrieved only with a data flow
analysis, comprehending to database
28
WSE 2002, Montreal, Canada
Discussion and lessons learned
.
•Some WA have a lot of navigation links, such as back
links and cross links, and they have no semantic mean
•Use of frames reduces the number of
navigation links
•Semantic of the link can be described with the
‘name’ attribute
<title> Argument B </title>
…
<a name=crossA href=“argumentA.html> Argument A </a>
<a href=“argumentB1.html> Argument B.1 </a>
<a href=“argumentB2.html> Argument B.2 </a>
<a name=crossC href=“argumentC.html> Argument C </a>
<a name=backHome href=“index.html> Home Page </a>
29
WSE 2002, Montreal, Canada
Discussion and lessons learned
.
•The validation of the cluster represent a more expensive
step of the RE process: we have to examine all the page of
the cluster and their execution. So, this phase can be quite
expensive if the clusterization has a low affidability
•Mirror the conceptual structure of the
application into the directory structure of the file
system, by locating groups of functionally related
files into the same directory
30
WSE 2002, Montreal, Canada
Discussion and lessons learned
.
•Employ an internal documentation standard in
order to annotate each main component of the
WA
<%@ Language=VBScript %>
<HTML>
<HEAD>
<TITLE> check </TITLE>
<META NAME="Purpose" CONTENT="This page checks Login and Password of a Teacher,
then it redirects to Teacher Home Page">
<META NAME = "Incoming Links from Pages:" CONTENT = "/autenticazionedocente.html">
<META NAME = "Outgoing Links to Pages:" CONTENT = "/autenticazionedocente.html,
/areadocente.html">
<META NAME="Input Parameters" CONTENT="login,password">
<META NAME="Output Parameters" CONTENT="">
<META NAME = "Session Variables" CONTENT = "loginOK, matricola">
<META NAME="Included Modules" CONTENT="login,password">
<META NAME="Database" CONTENT="../basedatisito.mdb">
<META NAME="Images" CONTENT="bgmain.gif">
</HEAD>
...
31
WSE 2002, Montreal, Canada
Conclusions
• This paper presented an approach for Reverse
Engineering Web Applications, and illustrated the
results of an experiment carried out to assess which
characteristics of a WA mostly affect its
comprehensibility
• Lessons learned: the programmers did not abuse the
mechanisms offered for obtaining dynamic behavior.
32
WSE 2002, Montreal, Canada
Future work
• More rules to improve quality of WA
• More powerful tools to automate dynamic analysis
and concept assignment process
• Experimenting the reverse engineering approach to
other case studies in order to validate and improve
the methodology

Mais conteúdo relacionado

Semelhante a Towards a Better Comprehensibility of Web Applications: Lessons Learned from Reverse Engineering Experiments

NTC 409 RANK Education Your Life / ntc409rank.com
NTC 409 RANK Education Your Life / ntc409rank.comNTC 409 RANK Education Your Life / ntc409rank.com
NTC 409 RANK Education Your Life / ntc409rank.comkopiko16
 
Comprehending Web Applications by a Clustering Based Approach
Comprehending Web Applications by a Clustering Based Approach Comprehending Web Applications by a Clustering Based Approach
Comprehending Web Applications by a Clustering Based Approach Porfirio Tramontana
 
C Post Resume
C Post ResumeC Post Resume
C Post Resumecpost
 
NTC 409 RANK Lessons in Excellence-- ntc409rank.com
NTC 409 RANK Lessons in Excellence-- ntc409rank.comNTC 409 RANK Lessons in Excellence-- ntc409rank.com
NTC 409 RANK Lessons in Excellence-- ntc409rank.comRoelofMerwe127
 
NTC 409 RANK Inspiring Innovation--ntc409rank.com
NTC 409 RANK Inspiring Innovation--ntc409rank.comNTC 409 RANK Inspiring Innovation--ntc409rank.com
NTC 409 RANK Inspiring Innovation--ntc409rank.comagathachristie61
 
Getting Started with Spring Framework
Getting Started with Spring FrameworkGetting Started with Spring Framework
Getting Started with Spring FrameworkEdureka!
 
Building product suggestions for a BIM model based on rule sets and a semant...
Building product suggestions for a BIM model based on rule sets and a  semant...Building product suggestions for a BIM model based on rule sets and a  semant...
Building product suggestions for a BIM model based on rule sets and a semant...Gonçal Costa Jutglar
 
8+ years of experience in Java/J2EE technologies
8+ years of experience in Java/J2EE technologies8+ years of experience in Java/J2EE technologies
8+ years of experience in Java/J2EE technologiessukanyanarra
 
Nissim Levy Resume
Nissim Levy ResumeNissim Levy Resume
Nissim Levy ResumeNissim Levy
 
Khushali Patel-resume-
Khushali Patel-resume-Khushali Patel-resume-
Khushali Patel-resume-Khushali11
 
Component based User Interface Rendering with State Caching Between Routes
Component based User Interface Rendering with State Caching Between RoutesComponent based User Interface Rendering with State Caching Between Routes
Component based User Interface Rendering with State Caching Between RoutesIRJET Journal
 
COMP1609(2022-23)Network and Internet Technologyand DesignFaculty Head.docx
COMP1609(2022-23)Network and Internet Technologyand DesignFaculty Head.docxCOMP1609(2022-23)Network and Internet Technologyand DesignFaculty Head.docx
COMP1609(2022-23)Network and Internet Technologyand DesignFaculty Head.docxnoel23456789
 
Continuous Integration and Continuous Delivery to Facilitate Web Service Testing
Continuous Integration and Continuous Delivery to Facilitate Web Service TestingContinuous Integration and Continuous Delivery to Facilitate Web Service Testing
Continuous Integration and Continuous Delivery to Facilitate Web Service TestingCognizant
 
Web usage Mining Based on Request Dependency Graph
Web usage Mining Based on Request Dependency GraphWeb usage Mining Based on Request Dependency Graph
Web usage Mining Based on Request Dependency GraphIRJET Journal
 
WARE: a tool for the Reverse Engineering of Web Applications
WARE: a tool for the Reverse Engineering of Web Applications WARE: a tool for the Reverse Engineering of Web Applications
WARE: a tool for the Reverse Engineering of Web Applications Porfirio Tramontana
 

Semelhante a Towards a Better Comprehensibility of Web Applications: Lessons Learned from Reverse Engineering Experiments (20)

NTC 409 RANK Education Your Life / ntc409rank.com
NTC 409 RANK Education Your Life / ntc409rank.comNTC 409 RANK Education Your Life / ntc409rank.com
NTC 409 RANK Education Your Life / ntc409rank.com
 
Comprehending Web Applications by a Clustering Based Approach
Comprehending Web Applications by a Clustering Based Approach Comprehending Web Applications by a Clustering Based Approach
Comprehending Web Applications by a Clustering Based Approach
 
C Post Resume
C Post ResumeC Post Resume
C Post Resume
 
Vimala_Gadegi
Vimala_GadegiVimala_Gadegi
Vimala_Gadegi
 
Siva_DotNet
Siva_DotNetSiva_DotNet
Siva_DotNet
 
NTC 409 RANK Lessons in Excellence-- ntc409rank.com
NTC 409 RANK Lessons in Excellence-- ntc409rank.comNTC 409 RANK Lessons in Excellence-- ntc409rank.com
NTC 409 RANK Lessons in Excellence-- ntc409rank.com
 
NTC 409 RANK Inspiring Innovation--ntc409rank.com
NTC 409 RANK Inspiring Innovation--ntc409rank.comNTC 409 RANK Inspiring Innovation--ntc409rank.com
NTC 409 RANK Inspiring Innovation--ntc409rank.com
 
Metaworks4 intro
Metaworks4 introMetaworks4 intro
Metaworks4 intro
 
Getting Started with Spring Framework
Getting Started with Spring FrameworkGetting Started with Spring Framework
Getting Started with Spring Framework
 
Building product suggestions for a BIM model based on rule sets and a semant...
Building product suggestions for a BIM model based on rule sets and a  semant...Building product suggestions for a BIM model based on rule sets and a  semant...
Building product suggestions for a BIM model based on rule sets and a semant...
 
8+ years of experience in Java/J2EE technologies
8+ years of experience in Java/J2EE technologies8+ years of experience in Java/J2EE technologies
8+ years of experience in Java/J2EE technologies
 
Nissim Levy Resume
Nissim Levy ResumeNissim Levy Resume
Nissim Levy Resume
 
Khushali Patel-resume-
Khushali Patel-resume-Khushali Patel-resume-
Khushali Patel-resume-
 
Component based User Interface Rendering with State Caching Between Routes
Component based User Interface Rendering with State Caching Between RoutesComponent based User Interface Rendering with State Caching Between Routes
Component based User Interface Rendering with State Caching Between Routes
 
Darron_Haworth_2016
Darron_Haworth_2016Darron_Haworth_2016
Darron_Haworth_2016
 
COMP1609(2022-23)Network and Internet Technologyand DesignFaculty Head.docx
COMP1609(2022-23)Network and Internet Technologyand DesignFaculty Head.docxCOMP1609(2022-23)Network and Internet Technologyand DesignFaculty Head.docx
COMP1609(2022-23)Network and Internet Technologyand DesignFaculty Head.docx
 
Continuous Integration and Continuous Delivery to Facilitate Web Service Testing
Continuous Integration and Continuous Delivery to Facilitate Web Service TestingContinuous Integration and Continuous Delivery to Facilitate Web Service Testing
Continuous Integration and Continuous Delivery to Facilitate Web Service Testing
 
Web usage Mining Based on Request Dependency Graph
Web usage Mining Based on Request Dependency GraphWeb usage Mining Based on Request Dependency Graph
Web usage Mining Based on Request Dependency Graph
 
BikramSamaddar
BikramSamaddarBikramSamaddar
BikramSamaddar
 
WARE: a tool for the Reverse Engineering of Web Applications
WARE: a tool for the Reverse Engineering of Web Applications WARE: a tool for the Reverse Engineering of Web Applications
WARE: a tool for the Reverse Engineering of Web Applications
 

Mais de Porfirio Tramontana

An Approach for Model Based Testing of Augmented Reality Applications.pdf
An Approach for Model Based Testing of Augmented Reality Applications.pdfAn Approach for Model Based Testing of Augmented Reality Applications.pdf
An Approach for Model Based Testing of Augmented Reality Applications.pdfPorfirio Tramontana
 
Towards the Generation of Robust E2E Test Cases in Template-based Web Applica...
Towards the Generation of Robust E2E Test Cases in Template-based Web Applica...Towards the Generation of Robust E2E Test Cases in Template-based Web Applica...
Towards the Generation of Robust E2E Test Cases in Template-based Web Applica...Porfirio Tramontana
 
Techniques and Tools for Mobile Testing Automation
Techniques and Tools for Mobile Testing AutomationTechniques and Tools for Mobile Testing Automation
Techniques and Tools for Mobile Testing AutomationPorfirio Tramontana
 
A technique for parallel gui testing of android applications
A technique for parallel gui testing of android applicationsA technique for parallel gui testing of android applications
A technique for parallel gui testing of android applicationsPorfirio Tramontana
 
Reverse Engineering of Data Models from Legacy Spreadsheets-Based Systems: An...
Reverse Engineering of Data Models from Legacy Spreadsheets-Based Systems: An...Reverse Engineering of Data Models from Legacy Spreadsheets-Based Systems: An...
Reverse Engineering of Data Models from Legacy Spreadsheets-Based Systems: An...Porfirio Tramontana
 
Reverse Engineering Techniques: from Web Applications to Rich Internet Applic...
Reverse Engineering Techniques: from Web Applications to Rich Internet Applic...Reverse Engineering Techniques: from Web Applications to Rich Internet Applic...
Reverse Engineering Techniques: from Web Applications to Rich Internet Applic...Porfirio Tramontana
 
Web Application Testing in Fifteen Years of WSE
Web Application Testing in Fifteen Years of WSEWeb Application Testing in Fifteen Years of WSE
Web Application Testing in Fifteen Years of WSEPorfirio Tramontana
 
Reverse Engineering Web Applications
Reverse Engineering Web ApplicationsReverse Engineering Web Applications
Reverse Engineering Web ApplicationsPorfirio Tramontana
 
Recovering Interaction Design Patterns in Web Applications
Recovering Interaction Design Patterns in Web Applications Recovering Interaction Design Patterns in Web Applications
Recovering Interaction Design Patterns in Web Applications Porfirio Tramontana
 
Improving Usability of Web Pages for Blind
Improving Usability of Web Pages for BlindImproving Usability of Web Pages for Blind
Improving Usability of Web Pages for BlindPorfirio Tramontana
 
Techniques and Tools for Rich Internet Applications Testing
Techniques and Tools for Rich Internet Applications TestingTechniques and Tools for Rich Internet Applications Testing
Techniques and Tools for Rich Internet Applications TestingPorfirio Tramontana
 
Comprehending Ajax Web Applications by the DynaRIA Tool
Comprehending Ajax Web Applications by the DynaRIA ToolComprehending Ajax Web Applications by the DynaRIA Tool
Comprehending Ajax Web Applications by the DynaRIA ToolPorfirio Tramontana
 
A GUI Crawling-based Technique for Android Mobile Application Testing
A GUI Crawling-based Technique for Android Mobile Application TestingA GUI Crawling-based Technique for Android Mobile Application Testing
A GUI Crawling-based Technique for Android Mobile Application TestingPorfirio Tramontana
 
Using Dynamic Analysis for Generating End User Documentation for Web 2.0 Appl...
Using Dynamic Analysis for Generating End User Documentation for Web 2.0 Appl...Using Dynamic Analysis for Generating End User Documentation for Web 2.0 Appl...
Using Dynamic Analysis for Generating End User Documentation for Web 2.0 Appl...Porfirio Tramontana
 
Considering Context Events in Event-Based Testing of Mobile Applications
Considering Context Events in Event-Based Testing of Mobile Applications Considering Context Events in Event-Based Testing of Mobile Applications
Considering Context Events in Event-Based Testing of Mobile Applications Porfirio Tramontana
 
Using GUI Ripping for Automated Testing of Android Apps
Using GUI Ripping for Automated Testing of Android AppsUsing GUI Ripping for Automated Testing of Android Apps
Using GUI Ripping for Automated Testing of Android AppsPorfirio Tramontana
 
A Toolset for GUI Testing of Android Applications
A Toolset for GUI Testing of Android ApplicationsA Toolset for GUI Testing of Android Applications
A Toolset for GUI Testing of Android ApplicationsPorfirio Tramontana
 
DynaRIA: a Tool for Ajax Web Application Comprehension
DynaRIA: a Tool for Ajax Web Application ComprehensionDynaRIA: a Tool for Ajax Web Application Comprehension
DynaRIA: a Tool for Ajax Web Application ComprehensionPorfirio Tramontana
 
Rich Internet Application Testing Using Execution Trace Data
Rich Internet Application Testing  Using Execution Trace Data Rich Internet Application Testing  Using Execution Trace Data
Rich Internet Application Testing Using Execution Trace Data Porfirio Tramontana
 
An AHP-based Framework for Quality and Security Evaluation
An AHP-based Framework for Quality and Security EvaluationAn AHP-based Framework for Quality and Security Evaluation
An AHP-based Framework for Quality and Security EvaluationPorfirio Tramontana
 

Mais de Porfirio Tramontana (20)

An Approach for Model Based Testing of Augmented Reality Applications.pdf
An Approach for Model Based Testing of Augmented Reality Applications.pdfAn Approach for Model Based Testing of Augmented Reality Applications.pdf
An Approach for Model Based Testing of Augmented Reality Applications.pdf
 
Towards the Generation of Robust E2E Test Cases in Template-based Web Applica...
Towards the Generation of Robust E2E Test Cases in Template-based Web Applica...Towards the Generation of Robust E2E Test Cases in Template-based Web Applica...
Towards the Generation of Robust E2E Test Cases in Template-based Web Applica...
 
Techniques and Tools for Mobile Testing Automation
Techniques and Tools for Mobile Testing AutomationTechniques and Tools for Mobile Testing Automation
Techniques and Tools for Mobile Testing Automation
 
A technique for parallel gui testing of android applications
A technique for parallel gui testing of android applicationsA technique for parallel gui testing of android applications
A technique for parallel gui testing of android applications
 
Reverse Engineering of Data Models from Legacy Spreadsheets-Based Systems: An...
Reverse Engineering of Data Models from Legacy Spreadsheets-Based Systems: An...Reverse Engineering of Data Models from Legacy Spreadsheets-Based Systems: An...
Reverse Engineering of Data Models from Legacy Spreadsheets-Based Systems: An...
 
Reverse Engineering Techniques: from Web Applications to Rich Internet Applic...
Reverse Engineering Techniques: from Web Applications to Rich Internet Applic...Reverse Engineering Techniques: from Web Applications to Rich Internet Applic...
Reverse Engineering Techniques: from Web Applications to Rich Internet Applic...
 
Web Application Testing in Fifteen Years of WSE
Web Application Testing in Fifteen Years of WSEWeb Application Testing in Fifteen Years of WSE
Web Application Testing in Fifteen Years of WSE
 
Reverse Engineering Web Applications
Reverse Engineering Web ApplicationsReverse Engineering Web Applications
Reverse Engineering Web Applications
 
Recovering Interaction Design Patterns in Web Applications
Recovering Interaction Design Patterns in Web Applications Recovering Interaction Design Patterns in Web Applications
Recovering Interaction Design Patterns in Web Applications
 
Improving Usability of Web Pages for Blind
Improving Usability of Web Pages for BlindImproving Usability of Web Pages for Blind
Improving Usability of Web Pages for Blind
 
Techniques and Tools for Rich Internet Applications Testing
Techniques and Tools for Rich Internet Applications TestingTechniques and Tools for Rich Internet Applications Testing
Techniques and Tools for Rich Internet Applications Testing
 
Comprehending Ajax Web Applications by the DynaRIA Tool
Comprehending Ajax Web Applications by the DynaRIA ToolComprehending Ajax Web Applications by the DynaRIA Tool
Comprehending Ajax Web Applications by the DynaRIA Tool
 
A GUI Crawling-based Technique for Android Mobile Application Testing
A GUI Crawling-based Technique for Android Mobile Application TestingA GUI Crawling-based Technique for Android Mobile Application Testing
A GUI Crawling-based Technique for Android Mobile Application Testing
 
Using Dynamic Analysis for Generating End User Documentation for Web 2.0 Appl...
Using Dynamic Analysis for Generating End User Documentation for Web 2.0 Appl...Using Dynamic Analysis for Generating End User Documentation for Web 2.0 Appl...
Using Dynamic Analysis for Generating End User Documentation for Web 2.0 Appl...
 
Considering Context Events in Event-Based Testing of Mobile Applications
Considering Context Events in Event-Based Testing of Mobile Applications Considering Context Events in Event-Based Testing of Mobile Applications
Considering Context Events in Event-Based Testing of Mobile Applications
 
Using GUI Ripping for Automated Testing of Android Apps
Using GUI Ripping for Automated Testing of Android AppsUsing GUI Ripping for Automated Testing of Android Apps
Using GUI Ripping for Automated Testing of Android Apps
 
A Toolset for GUI Testing of Android Applications
A Toolset for GUI Testing of Android ApplicationsA Toolset for GUI Testing of Android Applications
A Toolset for GUI Testing of Android Applications
 
DynaRIA: a Tool for Ajax Web Application Comprehension
DynaRIA: a Tool for Ajax Web Application ComprehensionDynaRIA: a Tool for Ajax Web Application Comprehension
DynaRIA: a Tool for Ajax Web Application Comprehension
 
Rich Internet Application Testing Using Execution Trace Data
Rich Internet Application Testing  Using Execution Trace Data Rich Internet Application Testing  Using Execution Trace Data
Rich Internet Application Testing Using Execution Trace Data
 
An AHP-based Framework for Quality and Security Evaluation
An AHP-based Framework for Quality and Security EvaluationAn AHP-based Framework for Quality and Security Evaluation
An AHP-based Framework for Quality and Security Evaluation
 

Último

04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 

Último (20)

04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 

Towards a Better Comprehensibility of Web Applications: Lessons Learned from Reverse Engineering Experiments

  • 1. 1 WSE 2002, Montreal, Canada Towards a Better Comprehensibility of Web Applications: Lessons Learned from Reverse Engineering Experiments P. Tramontana G. A. Di Lucca, A.R. Fasolino Dipartimento di Informatica e Sistemistica University of Naples Federico II, Italy
  • 2. 2 WSE 2002, Montreal, Canada Web Applications (WA): problems and open issues • The development of Web sites and applications is increasing dramatically to satisfy the market requests. The software industry is facing the new demand under the pressure of a very short time-to- market and an extremely high competition. ⇒Web sites and applications are usually developed without a disciplined process: poor documentation is produced to support the subsequent maintenance and evolution activities, thus compromising the quality of the applications
  • 3. 3 WSE 2002, Montreal, Canada Managing existing Web Applications ⇒Due to the large number of employed technologies, understanding, maintaining and evolving a dynamic application is a complex task … • Reverse Engineering methods and techniques have been proposed for… – Analyzing the functional behavior of an existing WA – Reconstructing the architecture of the WA – Capturing and reusing the design of the application – Modeling static and dynamic views by UML diagrams (use cases, sequence and class diagrams) – …
  • 4. 4 WSE 2002, Montreal, Canada Problems in analysis - Presence in a WA of several heterogeneous software components, developed with different technologies and coding languages - Absence of effective mechanisms for implementing the well-known software engineering principles of modularity, encapsulation, and separation of concerns, may significantly make harder the comprehension of an existing WA
  • 5. 5 WSE 2002, Montreal, Canada Reverse Engineering Web Applications Five main steps: 1) Static Analysis of the WA 2) Dynamic Analysis of the WA 3) Automatic Clustering of the WA 4) Validation of the clustering 5) Abstraction of UML diagrams
  • 6. 6 WSE 2002, Montreal, Canada The conceptual model of a WA Client Page with Frame Client Module Web Object Web Page 0..n 0..n 0..n redirect 0..n 0..n 0..n 0..n 0..n Load in Frame Client Page 0..n0..n include 0..n0..n 0..n 0..n 0..n 0..n link Server Page 0..10..1 0..10..1 build 0..n0..n 0..n0..n submit 0..n 0..n 0..n include 0..n • Components: Client pages, server pages, client page with frames, client modules, web objects. • Relationships: Link, submit, redirect, build, load_in_frame, include.
  • 7. 7 WSE 2002, Montreal, Canada 1) Static Analysis of the WA – This kind of analysis can be carried out with the support of a multi-language code parser, such as WARE, a tool that statically analyzes HTML code, server script code (Vbscript, JScript, PHP), client script code (Vbscript, Jscript, Javascript). – pt, ASP and PHP source code
  • 8. 8 WSE 2002, Montreal, Canada 2) Dynamic Analysis of the WA - Recover of additional information about its components and inter-relationships. <% page1=“a.html” page2=“b.html” param=Request.Form(“parameter”) x=Month(Now) If x>0 then response.write(“<a href=“+ page1+”? par=”+param+”>Go to page A </A>”) else response.write(“<a href=“+ page2+”? par=”+param+”>Go to page B</A>”) end if %> Example: links between this page and a.html and b.html
  • 9. 9 WSE 2002, Montreal, Canada 2) Dynamic Analysis of the WA - After static and dynamic analysis, we have the Web Application Graph (WAG), where every component is a node (the shape and the color of the node depend on the type) and every edge is a relationship (the color depend on the type)
  • 10. 10 WSE 2002, Montreal, Canada 3) Automatic Clustering of the WA • The algorithm groups components of a WA into meaningful (highly cohesive) and independent (loosely coupled) clusters • It evaluate the degree of coupling between interconnected components depending on both the typology and the typology of the connections, and propose a clustering configuration that includes clusters with high intra-connectivity and low inter- connectivity
  • 11. 11 WSE 2002, Montreal, Canada 4) Validation of the clustering • Proposed clustering is submitted to a Concept Assignment Process (CAP) in order to validate them • We distinguish between: - Valid clusters - Invalid clusters - Incomplete clusters - Divisible clusters - Spurious clusters
  • 12. 12 WSE 2002, Montreal, Canada 5) Abstraction of the UML diagrams – Every functionality retrieved after Concept Assignment Process is used to reconstruct a use case diagram
  • 13. 13 WSE 2002, Montreal, Canada Experimenting the reverse engineering approach • The proposed RE approach has been experimented with 6 real WAs with different characteristics, and implemented using ASP, Javascript, PHP, and HTML technologies. • According to Huang and Tilley’s classification three of them were class 3 applications, two were class 2 applications and the last were a class 1 application.
  • 14. 14 WSE 2002, Montreal, Canada 1) Static Analysis of the WA Summary data about the analyzed Was Component type WA1 WA2 WA3 WA4 WA5 WA6 Server page 75 105 21 0 0 0 Client Static page 23 38 19 80 45 257 Client Built page 74 98 20 0 0 0 External web page 0 0 5 2 34 8 Client script block 132 225 113 261 4 3 Function in Client script block 48 32 60 68 1 4 Form 49 100 5 0 25 5 Server script block 562 2358 40 0 0 0 Function in Server scripts 0 11 0 0 0 0 Redirect operation in server blocks 7 0 0 0 0 0 Redirect operation in client blocks 0 0 41 0 0 0 Anchor to Hypertextual link 45 266 121 162 448 1508
  • 15. 15 WSE 2002, Montreal, Canada 2) Dynamic Analysis of the WA Problems : •Connections with a dinamically istantiated value •Connections dinamically istantiated •Connections realized in extra-script object (e.g.: java applets, flash objects)
  • 16. 16 WSE 2002, Montreal, Canada 2) Dynamic Analysis of the WA Dynamically retrieved information Component type WA1 WA2 WA3 WA4 WA5 WA6 Redirect operation in server blocks 7 0 0 0 0 0 Anchor to Hypertextual Link 0 1 9 0 27 0 Submit Form 0 32 0 0 0 0 Redirect operation in client blocks 0 0 27 0 0 0
  • 17. 17 WSE 2002, Montreal, Canada 2) Dynamic Analysis of the WA WAG: Web Application Graph
  • 18. 18 WSE 2002, Montreal, Canada 3) Automatic Clustering of the WA • WARE tool automatically selects the optimal clustering of the WA, according to a quality metric based on the evaluation of the degree of the intra- connectivity of the clusters and of the degree of inter- connectivity. Component type WA1 WA2 WA3 WA4 WA5 WA6 Number of Clusters 48 101 31 58 31 122 Average # Pages per Clusters 3,58 2,41 2,03 1,55 1,45 2,17
  • 19. 19 WSE 2002, Montreal, Canada 3) Automatic Clustering of the WA The clustered graph of the WA
  • 20. 20 WSE 2002, Montreal, Canada 3) Automatic Clustering of the WA Problems: • Presence of many navigation links, such as back links and cross links. These links are not representative of semantic relationships among the pages (e.g.: links associated with navigation bars)
  • 21. 21 WSE 2002, Montreal, Canada 4) Validation of the clustering WA1 WA2 WA3 WA4 WA5 WA6 Number of initial clusters 49 101 27 49 31 115 Number of spurious clusters 0 0 1 1 0 0 Number of split clusters 0 0 2 0 5 12 Number of incomplete clusters 8 15 3 0 0 0 Number of accepted clusters 41 86 21 48 26 103 Number of new clusters obtained from the spurious ones 0 0 1 2 0 0 Number of new clusters obtained from the subdivided ones 0 0 5 0 13 31 Number of new clusters obtained by merging incomplete clusters 3 7 1 0 0 0 Number of final clusters 44 93 28 50 39 134
  • 22. 22 WSE 2002, Montreal, Canada 5) Abstraction of the UML diagrams WA1 WA2 WA3 WA4 WA5 WA6 Clusters that realise a use case 31 55 19 20 23 121 Clusters implementing coordinator/ home / menu page 12 13 2 11 12 16 Isolated Clusters 0 9 7 19 4 0 Clusters implementing Utility Modules 1 16 0 0 0 0 Result of the Concept Assignment Process
  • 23. 23 WSE 2002, Montreal, Canada 5) Abstraction of the UML diagrams An excerpt of the recovered use case model
  • 24. 24 WSE 2002, Montreal, Canada Discussion and lessons learned • Dynamic analisys is time-consuming and expensive, since it cannot be completely automated. In order to reduce the effort devoted to static/dynamic analysis, programmers should try to introduce explicit (static) links in the code each time it is possible
  • 25. 25 WSE 2002, Montreal, Canada Discussion and lessons learned . √ Links between this page and a.html and b.html are retrieved with static analysis. ×The value of the parameter can be retrieved only with a multi-page dynamic analysis <% param=Request.Form(“parameter”) x=Month(Now) If x>0 then %> <A href=a.html?par=<%=param%> >Go to page A </A> <% else %> <A href=b.html?par=<%=param%> > Go to page B </A> <% end if %> ……….. (a)
  • 26. 26 WSE 2002, Montreal, Canada <% page1=“a.html” page2=“b.html” param=Request.Form(“parameter”) x=Month(Now) If x>0 then response.write(“<a href=“+ page1+”?par=”+param+”>Go to page A </A>”) else response.write(“<a href=“+ page2+”?par=”+param+”>Go to page B</A>”) end if %> Discussion and lessons learned . ×Links aren’t retrieved with static analysis. ×Their value can be retrieved with a (simple) data flow analysis
  • 27. 27 WSE 2002, Montreal, Canada Discussion and lessons learned . ………. <% ‘Read from a database the value to assign to page1 (i.e. a.html)’ ‘Read from a database the value to assign to page2 (i.e. b.html)’ ………… param=Request.Form(“parameter”) x=Month(Now) If x>6 then response.write(“<a href=“+page1+”?par=”+param+”>Go to page A </A>”) else response.write(“<a href=“+page2+”?par=”+param+”> Go to page B</A>”) end if %> (c)×Links aren’t retrieved with static analysis. ×The value of the link can be retrieved only with a data flow analysis, comprehending to database
  • 28. 28 WSE 2002, Montreal, Canada Discussion and lessons learned . •Some WA have a lot of navigation links, such as back links and cross links, and they have no semantic mean •Use of frames reduces the number of navigation links •Semantic of the link can be described with the ‘name’ attribute <title> Argument B </title> … <a name=crossA href=“argumentA.html> Argument A </a> <a href=“argumentB1.html> Argument B.1 </a> <a href=“argumentB2.html> Argument B.2 </a> <a name=crossC href=“argumentC.html> Argument C </a> <a name=backHome href=“index.html> Home Page </a>
  • 29. 29 WSE 2002, Montreal, Canada Discussion and lessons learned . •The validation of the cluster represent a more expensive step of the RE process: we have to examine all the page of the cluster and their execution. So, this phase can be quite expensive if the clusterization has a low affidability •Mirror the conceptual structure of the application into the directory structure of the file system, by locating groups of functionally related files into the same directory
  • 30. 30 WSE 2002, Montreal, Canada Discussion and lessons learned . •Employ an internal documentation standard in order to annotate each main component of the WA <%@ Language=VBScript %> <HTML> <HEAD> <TITLE> check </TITLE> <META NAME="Purpose" CONTENT="This page checks Login and Password of a Teacher, then it redirects to Teacher Home Page"> <META NAME = "Incoming Links from Pages:" CONTENT = "/autenticazionedocente.html"> <META NAME = "Outgoing Links to Pages:" CONTENT = "/autenticazionedocente.html, /areadocente.html"> <META NAME="Input Parameters" CONTENT="login,password"> <META NAME="Output Parameters" CONTENT=""> <META NAME = "Session Variables" CONTENT = "loginOK, matricola"> <META NAME="Included Modules" CONTENT="login,password"> <META NAME="Database" CONTENT="../basedatisito.mdb"> <META NAME="Images" CONTENT="bgmain.gif"> </HEAD> ...
  • 31. 31 WSE 2002, Montreal, Canada Conclusions • This paper presented an approach for Reverse Engineering Web Applications, and illustrated the results of an experiment carried out to assess which characteristics of a WA mostly affect its comprehensibility • Lessons learned: the programmers did not abuse the mechanisms offered for obtaining dynamic behavior.
  • 32. 32 WSE 2002, Montreal, Canada Future work • More rules to improve quality of WA • More powerful tools to automate dynamic analysis and concept assignment process • Experimenting the reverse engineering approach to other case studies in order to validate and improve the methodology