SlideShare a Scribd company logo
Ph.D. Dissertation Forum – ICSM 2005
Ph.D. DissertationPh.D. Dissertation
Reverse EngineeringReverse Engineering
Web ApplicationsWeb Applications
Porfirio TramontanaPorfirio Tramontana
University of Naples “Federico II”University of Naples “Federico II”
Ph.D. Dissertation Forum – ICSM 2005
Web Applications: open problemsWeb Applications: open problems
 In the past years, a great request for Web
Applications takes place, due to the World Wide
Web diffusion making available many services
all over the world
 Web Applications have been developed with
immature design methodologies and
technologies
 Nowadays, there is a number of legacy Web
Applications needing for maintenance and re-
engineering
Ph.D. Dissertation Forum – ICSM 2005
Ph. D. Thesis Goals
• To propose models, methods and tools
supporting Reverse Engineering and
Comprehension of Web Applications
• Reverse Engineering and comprehension are
fundamental tasks needed to efficiently support
maintenance, testing and quality assessment of
Web Applications
Doctoral Thesis Goals
Ph.D. Dissertation Forum – ICSM 2005
Peculiarities of script-based Web Applications
 Page based
 Client-Server Architecture
 Interpreted languages
 Client pages may be generated “on the fly”
 Client pages are executed in a browser (and the
designer doesn’t know what kind of browser will
be used)
 HTML interpreters are fault tolerant
 ... and so on ...
Ph.D. Dissertation Forum – ICSM 2005
A process for theA process for the
Reverse Engineering of Web ApplicationsReverse Engineering of Web Applications
Abstraction
Extraction
WA
Source
Code
Static
Analysis
Dynamic
Analysis
Business Level UML
Diagram Abstractions
WA Execution
Identification of
cloned components
Identification of
Interaction Design
Patterns
Assignment of
Concepts
Functional Clustering
Cloned components
Interaction Design Patterns
Concepts describing Reverse
Engineering artifacts
Groups ofpages realizing Web
Application use cases
Structuraland Business
Level UML diagrams
Maintanability assessment
Abstraction
Extraction
WA
Source
Code
Static
Analysis
Dynamic
Analysis
Business Level UML
Diagram Abstractions
WA Execution
Identification of
cloned components
Identification of
Interaction Design
Patterns
Assignment of
Concepts
Functional Clustering
Cloned components
Interaction Design Patterns
Concepts describing Reverse
Engineering artifacts
Groups ofpages realizing Web
Application use cases
Structuraland Business
Level UML diagrams
Maintanability assessment
G.A. Di Lucca, A.R. Fasolino, P. Tramontana, “Reverse Engineering Web Application: the WARE approach”, Journal of Software Maintenance and Evolution:
Research and Practice, Volume 16, Issue 1-2, Date: January - April 2004, Pages: 71-101
Ph.D. Dissertation Forum – ICSM 2005
Analysis of Web ApplicationsAnalysis of Web Applications
1) Static analysis of the source code
A multi-language parser analysing the source code of Server
pages, Client pages and Script modules has been realized.
During the analysis of server pages, facts related to the client
pages that are built by server pages are also recorded.
Static analysis results are stored in a intermediate form and are
used to fill a relational database
2) Dynamic Analysis
Analysis of Built Client pages in order to add to the database some
facts that have been observed by executing the application
The reference model adopted is an extension of the one proposed by
Conallen for the forward engineering of Web Applications
Ph.D. Dissertation Forum – ICSM 2005
Model of Web ApplicationsModel of Web Applications
Static Page
DB Interface
Java Applet
TextareaSelect Button
Media Flash Object Mail Address
Mail Interface Server File Interface
Other Object
Generic File
Download
Parameter
Other Interface
Hyperlink
Frame
Web Object
Frameset
Anchor
Field
Server Function Server Class
Interface Object
Built Page
Form
Server Script
Session Variable
Server CookieServer Page
Submits
include
HTML Tag
Web Page
source
redirect
Client Page
Client Script
event
Modify Tag
redirect
Client Function
Client Module
Ph.D. Dissertation Forum – ICSM 2005
WARE (Web Application Reverse Engineering)WARE (Web Application Reverse Engineering)
tooltool
Extractor Abstractor
Interface
layer
IRF
DBR
Diagrams
Repository
HTML
Parser
s
Service
Layer
WARE-Tool
WA
Source
Files
WARE
GUI
Graphical Visualizer
Dott
y
VCG RIGI
ASP
VBS
PHP
JS
….
IRF Translator
Query Executor
UML Diagrams
Abstractor /areadocente.html
/check.asp
Redirect
/check.aspBuilds
/autenticazionedocente.html
Submit
/check.asp /check.asp/check.asp
Submit
/areadocente.html
/check.asp
Redirect
/check.aspBuilds
/autenticazionedocente.html
Submit
/check.asp /check.asp/check.asp
Submit
WARE Architecture
Detail Class Diagram abstracted by WARE
G. A. Di Lucca, A.R. Fasolino, U. De Carlini, F. Pace, P. Tramontana, “WARE: a tool for the Reverse Engineering of web Applications”, Proc. of 6th
IEEE European Conference on Software Maintenance and Reengineering, CSMR 2002, IEEE CS Press, Los Alamitos, CA, Pages:241 - 250
Ph.D. Dissertation Forum – ICSM 2005
Functional Clustering of Web PagesFunctional Clustering of Web Pages
• Goal:
To cluster together subsets
of components realizing Web
Application functionalities
• Proposed Technique:
Hierarchical clustering
algorithm, grouping Web
Application pages in
subsets, maximizing the
cohesion and minimizing the
coupling between them
G. A. Di Lucca, A.R. Fasolino, U. De Carlini, F. Pace, P. Tramontana,
“Comprehending Web Applications by a Clustering Based Approach”, Proc. of 10th
IEEE Workshop on Program Comprehension, IWPC 2002, Pages:261 - 270
Ph.D. Dissertation Forum – ICSM 2005
Concept AssignmentConcept Assignment
 Goal:Goal:
 To identify the more relevantTo identify the more relevant
concepts in client pages withconcepts in client pages with
the purpose to suggest athe purpose to suggest a
semantic description of clientsemantic description of client
pages and of functionalpages and of functional
clusters of pagesclusters of pages
 Proposed Technique:Proposed Technique:
 Heuristic Algorithms basedHeuristic Algorithms based
on Information Retrievalon Information Retrieval
 Candidate concepts areCandidate concepts are
searched in textual content ofsearched in textual content of
client pagesclient pages
 Single common words and shortSingle common words and short
word sequences are candidatedword sequences are candidated
to be conceptsto be concepts
Built Client Page
Server Page
0..*
1
0..*
1
<<builds>>
Data Component
StopWord
Word
has synonym
has stem
Web Page
Static Client Page
Attribute
Name
Tag
Name
Weight
nested in
0..*0..*
Control Component
0..*0..*
Client Page
File name
1111
Text
Weight
0..*0..*
0..1
0..1
0..1
0..1
0..*0..1 0..*0..1
Concept1
1
1
1
1
1
1
1
G.A. Di Lucca, A.R.Fasolino, P.Tramontana, U.De Carlini, “Supporting Concept Assignment in the Comprehension of Web Applications”, Proceedings of
the 28th
IEEE Annual International Computer Software and Applications Conference, COMPSAC 2004
Ph.D. Dissertation Forum – ICSM 2005
Interaction Design PatternInteraction Design Patterns Identifications Identification
 Goal:Goal:
 To identify repetitive structures in Web ClientTo identify repetitive structures in Web Client
pagespages
 These structures can be related to knownThese structures can be related to known
Programming PatternsProgramming Patterns
 Proposed Technique:Proposed Technique:
 Statistical methodology based on featuresStatistical methodology based on features
extracted in the source code of client pages.extracted in the source code of client pages.
 Presence, quantity and dimension of forms,Presence, quantity and dimension of forms,
tables, input fields, frames, common keywordstables, input fields, frames, common keywords
and so on.and so on.
G.A. Di Lucca, A.R.Fasolino, P.Tramontana, “Recovering Interaction Design Patterns in Web Applications”, submitted to 9th
IEEE European
Conference on Software Maintenace and Reengineering, CSMR 2005
Ph.D. Dissertation Forum – ICSM 2005
Identification of cloned componentsIdentification of cloned components
 Goals:Goals:
 Re-Engineering of cloned components via codeRe-Engineering of cloned components via code
transformationstransformations
 Classification of Built Client PagesClassification of Built Client Pages
 Identification of reusable Programming PatternsIdentification of reusable Programming Patterns
 Proposed Techniques:Proposed Techniques:
 Extraction of features in the structure of Client pagesExtraction of features in the structure of Client pages
and in the source code of server pagesand in the source code of server pages
 Computation of distance measures between pagesComputation of distance measures between pages
(Euclidean dstance, Levenshtein edit distance)(Euclidean dstance, Levenshtein edit distance)
G.A. Di Lucca, A.R. Fasolino, P. Tramontana, U. De Carlini, “Identifying Reusable Components in Web Applications”, IASTED International
Conference on Software Engineering, SE 2004, pp.526-531
Ph.D. Dissertation Forum – ICSM 2005
Abstraction of Business Level ModelsAbstraction of Business Level Models
 Goals:Goals:
 To abstract object orientedTo abstract object oriented
business level models of Webbusiness level models of Web
ApplicationsApplications
 Proposed Techniques:Proposed Techniques:
 Classes and attributes areClasses and attributes are
identified by analysing theidentified by analysing the
data that are exchangeddata that are exchanged
between user, Web pagesbetween user, Web pages
and databases.and databases.
 Class methods are identifiedClass methods are identified
by analysing the functionsby analysing the functions
implemented by cluster ofimplemented by cluster of
pagespages
 Relationships betweenRelationships between
classes are identifiedclasses are identified
analysing data structures andanalysing data structures and
data flow among pagesdata flow among pages
Tutoring request
Date
Teacher
Name
Surname
E-mail
Phone number
Password
Code
Tutoring
Date
Start time
End time
News
Number
Date
Text
Student
Name
Surname
E-mail
Password
Code
Phone number
Exam
Date
Time
Classroom
Course
Academic year
Code
Name
Exam Reservation
Date
G.A. Di Lucca, A.R.Fasolino, U.De Carlini, P.Tramontana, “Recovering a Business Object Model from Web Applications”, Proceedings of the 27th
IEEE Annual International Computer Software and Applications Conference, COMPSAC 2003, Pages: 348 - 353
Ph.D. Dissertation Forum – ICSM 2005
Maintainability ModelMaintainability Model
 Goals:Goals:
 To propose models and methods for the assessmentTo propose models and methods for the assessment
of the maintainability of Web Applicationsof the maintainability of Web Applications
 Proposed Models and Techniques:Proposed Models and Techniques:
 Adapting to Web Applications the Oman modelAdapting to Web Applications the Oman model
(thought for traditional applications)(thought for traditional applications)
 Selection of a set of product metrics and proposal of aSelection of a set of product metrics and proposal of a
maintainability index that can be calculated withmaintainability index that can be calculated with
negligible effort and timenegligible effort and time
G.A. Di Lucca, A.R.Fasolino, P.Tramontana, C.A.Visaggio, “Towards the definition of a maintainability model for web applications”, Proceedings of
the Eighth IEEE European Conference on Software Maintenance and Reengineering, CSMR 2004, pages:279 - 287
Ph.D. Dissertation Forum – ICSM 2005
Current and future worksCurrent and future works
 Techniques for the dynamicTechniques for the dynamic
analysis of Web Applicationsanalysis of Web Applications
 Accessibility assessment of ClientAccessibility assessment of Client
pagespages
 Migration from Web Applications toMigration from Web Applications to
Web ServicesWeb Services
 Testing of Web ApplicationsTesting of Web Applications
 Mutation Testing techniquesMutation Testing techniques
 Maintainability assessmentMaintainability assessment
 Definition of ageing measures for WebDefinition of ageing measures for Web
ApplicationsApplications
G.A. Di Lucca, M. Di Penta, A.R.
Fasolino, P. Tramontana, “Supporting
Web Application Evolution by Dynamic
Analysis”, IWPSE 2005
G.A. Di Lucca, A.R. Fasolino, P.
Tramontana, “Web Site Accessibility:
Identifying and Fixing of Accessibility
Problems in Client Page Code”, WSE
2005
Ph.D. Dissertation Forum – ICSM 2005

More Related Content

What's hot

Software Cost Estimation in Software Engineering SE23
Software Cost Estimation in Software Engineering SE23Software Cost Estimation in Software Engineering SE23
Software Cost Estimation in Software Engineering SE23koolkampus
 
Maintenance, Re-engineering &Reverse Engineering in Software Engineering
Maintenance,Re-engineering &Reverse Engineering in Software EngineeringMaintenance,Re-engineering &Reverse Engineering in Software Engineering
Maintenance, Re-engineering &Reverse Engineering in Software Engineering
Manish Kumar
 
Software architecture
Software architectureSoftware architecture
Software architecture
Ahmad Raza Aslam
 
Component Based Distributed System Development
Component Based Distributed System DevelopmentComponent Based Distributed System Development
Component Based Distributed System DevelopmentEmmanuel Fuchs
 
Software Re-engineering Forward & Reverse Engineering
Software Re-engineering Forward & Reverse EngineeringSoftware Re-engineering Forward & Reverse Engineering
Software Re-engineering Forward & Reverse Engineering
Ali Raza
 
Component based design
Component based designComponent based design
Component based design
Percival Lucena
 
Software Reuse: Challenges and Business Success
Software Reuse: Challenges and Business SuccessSoftware Reuse: Challenges and Business Success
Software Reuse: Challenges and Business Success
University of Zurich
 
Rakesh sr dwh_bi_consultant resume
Rakesh sr dwh_bi_consultant resumeRakesh sr dwh_bi_consultant resume
Rakesh sr dwh_bi_consultant resume
Rakesh Kumar
 
Visualizing Object-oriented Software for Understanding and Documentation
Visualizing Object-oriented Software for Understanding and Documentation Visualizing Object-oriented Software for Understanding and Documentation
Visualizing Object-oriented Software for Understanding and Documentation
Ra'Fat Al-Msie'deen
 
A novel data type architecture support for programming languages
A novel data type architecture support for programming languagesA novel data type architecture support for programming languages
A novel data type architecture support for programming languages
ijpla
 
Reengineering including reverse & forward Engineering
Reengineering including reverse & forward EngineeringReengineering including reverse & forward Engineering
Reengineering including reverse & forward EngineeringMuhammad Chaudhry
 
ARCHITECTURAL FRAMEWORK FOR DEVELOPING COMPONENT BASED GIS SYSTEM
ARCHITECTURAL FRAMEWORK FOR DEVELOPING COMPONENT BASED GIS SYSTEMARCHITECTURAL FRAMEWORK FOR DEVELOPING COMPONENT BASED GIS SYSTEM
ARCHITECTURAL FRAMEWORK FOR DEVELOPING COMPONENT BASED GIS SYSTEM
ijfcstjournal
 
jeevanreddy-nwplm
jeevanreddy-nwplmjeevanreddy-nwplm
jeevanreddy-nwplmjeevan b
 
An Analysis of Component-based Software Development -Maximize the reuse of ex...
An Analysis of Component-based Software Development -Maximize the reuse of ex...An Analysis of Component-based Software Development -Maximize the reuse of ex...
An Analysis of Component-based Software Development -Maximize the reuse of ex...
Mohammad Salah uddin
 
Software Re-Engineering in Software Engineering SE28
Software Re-Engineering in Software Engineering SE28Software Re-Engineering in Software Engineering SE28
Software Re-Engineering in Software Engineering SE28koolkampus
 
Software Reengineering
Software ReengineeringSoftware Reengineering
Software Reengineering
Deniz Kılınç
 
Software reengineering
Software reengineeringSoftware reengineering
Software reengineeringArudra Vishen
 

What's hot (20)

Software Cost Estimation in Software Engineering SE23
Software Cost Estimation in Software Engineering SE23Software Cost Estimation in Software Engineering SE23
Software Cost Estimation in Software Engineering SE23
 
Maintenance, Re-engineering &Reverse Engineering in Software Engineering
Maintenance,Re-engineering &Reverse Engineering in Software EngineeringMaintenance,Re-engineering &Reverse Engineering in Software Engineering
Maintenance, Re-engineering &Reverse Engineering in Software Engineering
 
Software architecture
Software architectureSoftware architecture
Software architecture
 
Component Based Distributed System Development
Component Based Distributed System DevelopmentComponent Based Distributed System Development
Component Based Distributed System Development
 
Software Re-engineering Forward & Reverse Engineering
Software Re-engineering Forward & Reverse EngineeringSoftware Re-engineering Forward & Reverse Engineering
Software Re-engineering Forward & Reverse Engineering
 
Component based design
Component based designComponent based design
Component based design
 
Software Reuse: Challenges and Business Success
Software Reuse: Challenges and Business SuccessSoftware Reuse: Challenges and Business Success
Software Reuse: Challenges and Business Success
 
Rakesh sr dwh_bi_consultant resume
Rakesh sr dwh_bi_consultant resumeRakesh sr dwh_bi_consultant resume
Rakesh sr dwh_bi_consultant resume
 
Visualizing Object-oriented Software for Understanding and Documentation
Visualizing Object-oriented Software for Understanding and Documentation Visualizing Object-oriented Software for Understanding and Documentation
Visualizing Object-oriented Software for Understanding and Documentation
 
A novel data type architecture support for programming languages
A novel data type architecture support for programming languagesA novel data type architecture support for programming languages
A novel data type architecture support for programming languages
 
Reengineering including reverse & forward Engineering
Reengineering including reverse & forward EngineeringReengineering including reverse & forward Engineering
Reengineering including reverse & forward Engineering
 
ARCHITECTURAL FRAMEWORK FOR DEVELOPING COMPONENT BASED GIS SYSTEM
ARCHITECTURAL FRAMEWORK FOR DEVELOPING COMPONENT BASED GIS SYSTEMARCHITECTURAL FRAMEWORK FOR DEVELOPING COMPONENT BASED GIS SYSTEM
ARCHITECTURAL FRAMEWORK FOR DEVELOPING COMPONENT BASED GIS SYSTEM
 
jeevanreddy-nwplm
jeevanreddy-nwplmjeevanreddy-nwplm
jeevanreddy-nwplm
 
An Analysis of Component-based Software Development -Maximize the reuse of ex...
An Analysis of Component-based Software Development -Maximize the reuse of ex...An Analysis of Component-based Software Development -Maximize the reuse of ex...
An Analysis of Component-based Software Development -Maximize the reuse of ex...
 
Software Re-Engineering in Software Engineering SE28
Software Re-Engineering in Software Engineering SE28Software Re-Engineering in Software Engineering SE28
Software Re-Engineering in Software Engineering SE28
 
CustomerCopy
CustomerCopyCustomerCopy
CustomerCopy
 
Sathiyasainathan Fulltime JD
Sathiyasainathan Fulltime JDSathiyasainathan Fulltime JD
Sathiyasainathan Fulltime JD
 
Software Reengineering
Software ReengineeringSoftware Reengineering
Software Reengineering
 
Ramesh Selenium
Ramesh SeleniumRamesh Selenium
Ramesh Selenium
 
Software reengineering
Software reengineeringSoftware reengineering
Software reengineering
 

Viewers also liked

Reverse Engineering - Protecting and Breaking the Software
Reverse Engineering - Protecting and Breaking the SoftwareReverse Engineering - Protecting and Breaking the Software
Reverse Engineering - Protecting and Breaking the Software
Satria Ady Pradana
 
Reverse Engineering for Documenting Software Architectures, a Literature Review
Reverse Engineering for Documenting Software Architectures, a Literature ReviewReverse Engineering for Documenting Software Architectures, a Literature Review
Reverse Engineering for Documenting Software Architectures, a Literature Review
Editor IJCATR
 
Reverse Engineering of Software Architecture
Reverse Engineering of Software ArchitectureReverse Engineering of Software Architecture
Reverse Engineering of Software ArchitectureDharmalingam Ganesan
 
Reversing and Patching Machine Code
Reversing and Patching Machine CodeReversing and Patching Machine Code
Reversing and Patching Machine Code
Teodoro Cipresso
 
Introduction to Software Reverse Engineering
Introduction to Software Reverse EngineeringIntroduction to Software Reverse Engineering
Introduction to Software Reverse Engineering
Teodoro Cipresso
 
Software reverse engineering
Software reverse engineeringSoftware reverse engineering
Software reverse engineering
Parminder Singh
 

Viewers also liked (6)

Reverse Engineering - Protecting and Breaking the Software
Reverse Engineering - Protecting and Breaking the SoftwareReverse Engineering - Protecting and Breaking the Software
Reverse Engineering - Protecting and Breaking the Software
 
Reverse Engineering for Documenting Software Architectures, a Literature Review
Reverse Engineering for Documenting Software Architectures, a Literature ReviewReverse Engineering for Documenting Software Architectures, a Literature Review
Reverse Engineering for Documenting Software Architectures, a Literature Review
 
Reverse Engineering of Software Architecture
Reverse Engineering of Software ArchitectureReverse Engineering of Software Architecture
Reverse Engineering of Software Architecture
 
Reversing and Patching Machine Code
Reversing and Patching Machine CodeReversing and Patching Machine Code
Reversing and Patching Machine Code
 
Introduction to Software Reverse Engineering
Introduction to Software Reverse EngineeringIntroduction to Software Reverse Engineering
Introduction to Software Reverse Engineering
 
Software reverse engineering
Software reverse engineeringSoftware reverse engineering
Software reverse engineering
 

Similar to Reverse Engineering Web Applications

Iaetsd a survey of various design patterns for improving quality and
Iaetsd a survey of various design patterns for improving quality andIaetsd a survey of various design patterns for improving quality and
Iaetsd a survey of various design patterns for improving quality and
Iaetsd Iaetsd
 
Dominating Application Advancement and Content Composition
Dominating Application Advancement and Content CompositionDominating Application Advancement and Content Composition
Dominating Application Advancement and Content Composition
lubnasohail516
 
Three Dimensional Database: Artificial Intelligence to eCommerce Web service ...
Three Dimensional Database: Artificial Intelligence to eCommerce Web service ...Three Dimensional Database: Artificial Intelligence to eCommerce Web service ...
Three Dimensional Database: Artificial Intelligence to eCommerce Web service ...
CSCJournals
 
Prov4J: A Semantic Web Framework for Generic Provenance Management
Prov4J: A Semantic Web Framework for Generic Provenance Management Prov4J: A Semantic Web Framework for Generic Provenance Management
Prov4J: A Semantic Web Framework for Generic Provenance Management
Andre Freitas
 
Paper summary
Paper summaryPaper summary
Paper summary
Adam Feldscher
 
Model-Driven Design of Audiovisual Indexing Processes for Search Apps.
Model-Driven Design of Audiovisual Indexing Processes for Search Apps.Model-Driven Design of Audiovisual Indexing Processes for Search Apps.
Model-Driven Design of Audiovisual Indexing Processes for Search Apps.
Marco Brambilla
 
IRJET- Cross-Platform Supported E-Learning Mobile Application
IRJET- Cross-Platform Supported E-Learning Mobile ApplicationIRJET- Cross-Platform Supported E-Learning Mobile Application
IRJET- Cross-Platform Supported E-Learning Mobile Application
IRJET Journal
 
Semantic Wiki
Semantic WikiSemantic Wiki
Semantic Wiki
aesplana
 
Review Materi ASP.NET
Review Materi ASP.NETReview Materi ASP.NET
Review Materi ASP.NET
Dudy Ali
 
Web engineering notes unit 2
Web engineering notes unit 2Web engineering notes unit 2
Web engineering notes unit 2
inshu1890
 

Similar to Reverse Engineering Web Applications (20)

Iaetsd a survey of various design patterns for improving quality and
Iaetsd a survey of various design patterns for improving quality andIaetsd a survey of various design patterns for improving quality and
Iaetsd a survey of various design patterns for improving quality and
 
Dominating Application Advancement and Content Composition
Dominating Application Advancement and Content CompositionDominating Application Advancement and Content Composition
Dominating Application Advancement and Content Composition
 
Three Dimensional Database: Artificial Intelligence to eCommerce Web service ...
Three Dimensional Database: Artificial Intelligence to eCommerce Web service ...Three Dimensional Database: Artificial Intelligence to eCommerce Web service ...
Three Dimensional Database: Artificial Intelligence to eCommerce Web service ...
 
Prov4J: A Semantic Web Framework for Generic Provenance Management
Prov4J: A Semantic Web Framework for Generic Provenance Management Prov4J: A Semantic Web Framework for Generic Provenance Management
Prov4J: A Semantic Web Framework for Generic Provenance Management
 
Paper summary
Paper summaryPaper summary
Paper summary
 
ChandanResume
ChandanResumeChandanResume
ChandanResume
 
Model-Driven Design of Audiovisual Indexing Processes for Search Apps.
Model-Driven Design of Audiovisual Indexing Processes for Search Apps.Model-Driven Design of Audiovisual Indexing Processes for Search Apps.
Model-Driven Design of Audiovisual Indexing Processes for Search Apps.
 
resume2-5
resume2-5resume2-5
resume2-5
 
Web engineering lecture 1
Web engineering lecture 1Web engineering lecture 1
Web engineering lecture 1
 
IRJET- Cross-Platform Supported E-Learning Mobile Application
IRJET- Cross-Platform Supported E-Learning Mobile ApplicationIRJET- Cross-Platform Supported E-Learning Mobile Application
IRJET- Cross-Platform Supported E-Learning Mobile Application
 
Semantic Wiki
Semantic WikiSemantic Wiki
Semantic Wiki
 
Siva_DotNet
Siva_DotNetSiva_DotNet
Siva_DotNet
 
DSB resume
DSB resumeDSB resume
DSB resume
 
Darron_Haworth_2016
Darron_Haworth_2016Darron_Haworth_2016
Darron_Haworth_2016
 
soa1.ppt
soa1.pptsoa1.ppt
soa1.ppt
 
Review Materi ASP.NET
Review Materi ASP.NETReview Materi ASP.NET
Review Materi ASP.NET
 
Net Resume Ke
Net Resume KeNet Resume Ke
Net Resume Ke
 
Web engineering notes unit 2
Web engineering notes unit 2Web engineering notes unit 2
Web engineering notes unit 2
 
Resume
ResumeResume
Resume
 
Emmert_Resume
Emmert_ResumeEmmert_Resume
Emmert_Resume
 

More from 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.pdf
Porfirio 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 Automation
Porfirio 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 applications
Porfirio 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 WSE
Porfirio Tramontana
 
Towards a Better Comprehensibility of Web Applications: Lessons Learned from ...
Towards a Better Comprehensibility of Web Applications: Lessons Learned from ...Towards a Better Comprehensibility of Web Applications: Lessons Learned from ...
Towards a Better Comprehensibility of Web Applications: Lessons Learned from ...
Porfirio Tramontana
 
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
 
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 Blind
Porfirio 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 Testing
Porfirio 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 Tool
Porfirio 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 Testing
Porfirio 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 Apps
Porfirio 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 Applications
Porfirio 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 Comprehension
Porfirio 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
 

More from 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
 
Towards a Better Comprehensibility of Web Applications: Lessons Learned from ...
Towards a Better Comprehensibility of Web Applications: Lessons Learned from ...Towards a Better Comprehensibility of Web Applications: Lessons Learned from ...
Towards a Better Comprehensibility of Web Applications: Lessons Learned from ...
 
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
 
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
 

Recently uploaded

Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Tobias Schneck
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
Paul Groth
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Ramesh Iyer
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
Product School
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Product School
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
Sri Ambati
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
Cheryl Hung
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
DianaGray10
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Inflectra
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
RTTS
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
Product School
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
Elena Simperl
 
Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
g2nightmarescribd
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Jeffrey Haguewood
 

Recently uploaded (20)

Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 

Reverse Engineering Web Applications

  • 1. Ph.D. Dissertation Forum – ICSM 2005 Ph.D. DissertationPh.D. Dissertation Reverse EngineeringReverse Engineering Web ApplicationsWeb Applications Porfirio TramontanaPorfirio Tramontana University of Naples “Federico II”University of Naples “Federico II”
  • 2. Ph.D. Dissertation Forum – ICSM 2005 Web Applications: open problemsWeb Applications: open problems  In the past years, a great request for Web Applications takes place, due to the World Wide Web diffusion making available many services all over the world  Web Applications have been developed with immature design methodologies and technologies  Nowadays, there is a number of legacy Web Applications needing for maintenance and re- engineering
  • 3. Ph.D. Dissertation Forum – ICSM 2005 Ph. D. Thesis Goals • To propose models, methods and tools supporting Reverse Engineering and Comprehension of Web Applications • Reverse Engineering and comprehension are fundamental tasks needed to efficiently support maintenance, testing and quality assessment of Web Applications Doctoral Thesis Goals
  • 4. Ph.D. Dissertation Forum – ICSM 2005 Peculiarities of script-based Web Applications  Page based  Client-Server Architecture  Interpreted languages  Client pages may be generated “on the fly”  Client pages are executed in a browser (and the designer doesn’t know what kind of browser will be used)  HTML interpreters are fault tolerant  ... and so on ...
  • 5. Ph.D. Dissertation Forum – ICSM 2005 A process for theA process for the Reverse Engineering of Web ApplicationsReverse Engineering of Web Applications Abstraction Extraction WA Source Code Static Analysis Dynamic Analysis Business Level UML Diagram Abstractions WA Execution Identification of cloned components Identification of Interaction Design Patterns Assignment of Concepts Functional Clustering Cloned components Interaction Design Patterns Concepts describing Reverse Engineering artifacts Groups ofpages realizing Web Application use cases Structuraland Business Level UML diagrams Maintanability assessment Abstraction Extraction WA Source Code Static Analysis Dynamic Analysis Business Level UML Diagram Abstractions WA Execution Identification of cloned components Identification of Interaction Design Patterns Assignment of Concepts Functional Clustering Cloned components Interaction Design Patterns Concepts describing Reverse Engineering artifacts Groups ofpages realizing Web Application use cases Structuraland Business Level UML diagrams Maintanability assessment G.A. Di Lucca, A.R. Fasolino, P. Tramontana, “Reverse Engineering Web Application: the WARE approach”, Journal of Software Maintenance and Evolution: Research and Practice, Volume 16, Issue 1-2, Date: January - April 2004, Pages: 71-101
  • 6. Ph.D. Dissertation Forum – ICSM 2005 Analysis of Web ApplicationsAnalysis of Web Applications 1) Static analysis of the source code A multi-language parser analysing the source code of Server pages, Client pages and Script modules has been realized. During the analysis of server pages, facts related to the client pages that are built by server pages are also recorded. Static analysis results are stored in a intermediate form and are used to fill a relational database 2) Dynamic Analysis Analysis of Built Client pages in order to add to the database some facts that have been observed by executing the application The reference model adopted is an extension of the one proposed by Conallen for the forward engineering of Web Applications
  • 7. Ph.D. Dissertation Forum – ICSM 2005 Model of Web ApplicationsModel of Web Applications Static Page DB Interface Java Applet TextareaSelect Button Media Flash Object Mail Address Mail Interface Server File Interface Other Object Generic File Download Parameter Other Interface Hyperlink Frame Web Object Frameset Anchor Field Server Function Server Class Interface Object Built Page Form Server Script Session Variable Server CookieServer Page Submits include HTML Tag Web Page source redirect Client Page Client Script event Modify Tag redirect Client Function Client Module
  • 8. Ph.D. Dissertation Forum – ICSM 2005 WARE (Web Application Reverse Engineering)WARE (Web Application Reverse Engineering) tooltool Extractor Abstractor Interface layer IRF DBR Diagrams Repository HTML Parser s Service Layer WARE-Tool WA Source Files WARE GUI Graphical Visualizer Dott y VCG RIGI ASP VBS PHP JS …. IRF Translator Query Executor UML Diagrams Abstractor /areadocente.html /check.asp Redirect /check.aspBuilds /autenticazionedocente.html Submit /check.asp /check.asp/check.asp Submit /areadocente.html /check.asp Redirect /check.aspBuilds /autenticazionedocente.html Submit /check.asp /check.asp/check.asp Submit WARE Architecture Detail Class Diagram abstracted by WARE G. A. Di Lucca, A.R. Fasolino, U. De Carlini, F. Pace, P. Tramontana, “WARE: a tool for the Reverse Engineering of web Applications”, Proc. of 6th IEEE European Conference on Software Maintenance and Reengineering, CSMR 2002, IEEE CS Press, Los Alamitos, CA, Pages:241 - 250
  • 9. Ph.D. Dissertation Forum – ICSM 2005 Functional Clustering of Web PagesFunctional Clustering of Web Pages • Goal: To cluster together subsets of components realizing Web Application functionalities • Proposed Technique: Hierarchical clustering algorithm, grouping Web Application pages in subsets, maximizing the cohesion and minimizing the coupling between them G. A. Di Lucca, A.R. Fasolino, U. De Carlini, F. Pace, P. Tramontana, “Comprehending Web Applications by a Clustering Based Approach”, Proc. of 10th IEEE Workshop on Program Comprehension, IWPC 2002, Pages:261 - 270
  • 10. Ph.D. Dissertation Forum – ICSM 2005 Concept AssignmentConcept Assignment  Goal:Goal:  To identify the more relevantTo identify the more relevant concepts in client pages withconcepts in client pages with the purpose to suggest athe purpose to suggest a semantic description of clientsemantic description of client pages and of functionalpages and of functional clusters of pagesclusters of pages  Proposed Technique:Proposed Technique:  Heuristic Algorithms basedHeuristic Algorithms based on Information Retrievalon Information Retrieval  Candidate concepts areCandidate concepts are searched in textual content ofsearched in textual content of client pagesclient pages  Single common words and shortSingle common words and short word sequences are candidatedword sequences are candidated to be conceptsto be concepts Built Client Page Server Page 0..* 1 0..* 1 <<builds>> Data Component StopWord Word has synonym has stem Web Page Static Client Page Attribute Name Tag Name Weight nested in 0..*0..* Control Component 0..*0..* Client Page File name 1111 Text Weight 0..*0..* 0..1 0..1 0..1 0..1 0..*0..1 0..*0..1 Concept1 1 1 1 1 1 1 1 G.A. Di Lucca, A.R.Fasolino, P.Tramontana, U.De Carlini, “Supporting Concept Assignment in the Comprehension of Web Applications”, Proceedings of the 28th IEEE Annual International Computer Software and Applications Conference, COMPSAC 2004
  • 11. Ph.D. Dissertation Forum – ICSM 2005 Interaction Design PatternInteraction Design Patterns Identifications Identification  Goal:Goal:  To identify repetitive structures in Web ClientTo identify repetitive structures in Web Client pagespages  These structures can be related to knownThese structures can be related to known Programming PatternsProgramming Patterns  Proposed Technique:Proposed Technique:  Statistical methodology based on featuresStatistical methodology based on features extracted in the source code of client pages.extracted in the source code of client pages.  Presence, quantity and dimension of forms,Presence, quantity and dimension of forms, tables, input fields, frames, common keywordstables, input fields, frames, common keywords and so on.and so on. G.A. Di Lucca, A.R.Fasolino, P.Tramontana, “Recovering Interaction Design Patterns in Web Applications”, submitted to 9th IEEE European Conference on Software Maintenace and Reengineering, CSMR 2005
  • 12. Ph.D. Dissertation Forum – ICSM 2005 Identification of cloned componentsIdentification of cloned components  Goals:Goals:  Re-Engineering of cloned components via codeRe-Engineering of cloned components via code transformationstransformations  Classification of Built Client PagesClassification of Built Client Pages  Identification of reusable Programming PatternsIdentification of reusable Programming Patterns  Proposed Techniques:Proposed Techniques:  Extraction of features in the structure of Client pagesExtraction of features in the structure of Client pages and in the source code of server pagesand in the source code of server pages  Computation of distance measures between pagesComputation of distance measures between pages (Euclidean dstance, Levenshtein edit distance)(Euclidean dstance, Levenshtein edit distance) G.A. Di Lucca, A.R. Fasolino, P. Tramontana, U. De Carlini, “Identifying Reusable Components in Web Applications”, IASTED International Conference on Software Engineering, SE 2004, pp.526-531
  • 13. Ph.D. Dissertation Forum – ICSM 2005 Abstraction of Business Level ModelsAbstraction of Business Level Models  Goals:Goals:  To abstract object orientedTo abstract object oriented business level models of Webbusiness level models of Web ApplicationsApplications  Proposed Techniques:Proposed Techniques:  Classes and attributes areClasses and attributes are identified by analysing theidentified by analysing the data that are exchangeddata that are exchanged between user, Web pagesbetween user, Web pages and databases.and databases.  Class methods are identifiedClass methods are identified by analysing the functionsby analysing the functions implemented by cluster ofimplemented by cluster of pagespages  Relationships betweenRelationships between classes are identifiedclasses are identified analysing data structures andanalysing data structures and data flow among pagesdata flow among pages Tutoring request Date Teacher Name Surname E-mail Phone number Password Code Tutoring Date Start time End time News Number Date Text Student Name Surname E-mail Password Code Phone number Exam Date Time Classroom Course Academic year Code Name Exam Reservation Date G.A. Di Lucca, A.R.Fasolino, U.De Carlini, P.Tramontana, “Recovering a Business Object Model from Web Applications”, Proceedings of the 27th IEEE Annual International Computer Software and Applications Conference, COMPSAC 2003, Pages: 348 - 353
  • 14. Ph.D. Dissertation Forum – ICSM 2005 Maintainability ModelMaintainability Model  Goals:Goals:  To propose models and methods for the assessmentTo propose models and methods for the assessment of the maintainability of Web Applicationsof the maintainability of Web Applications  Proposed Models and Techniques:Proposed Models and Techniques:  Adapting to Web Applications the Oman modelAdapting to Web Applications the Oman model (thought for traditional applications)(thought for traditional applications)  Selection of a set of product metrics and proposal of aSelection of a set of product metrics and proposal of a maintainability index that can be calculated withmaintainability index that can be calculated with negligible effort and timenegligible effort and time G.A. Di Lucca, A.R.Fasolino, P.Tramontana, C.A.Visaggio, “Towards the definition of a maintainability model for web applications”, Proceedings of the Eighth IEEE European Conference on Software Maintenance and Reengineering, CSMR 2004, pages:279 - 287
  • 15. Ph.D. Dissertation Forum – ICSM 2005 Current and future worksCurrent and future works  Techniques for the dynamicTechniques for the dynamic analysis of Web Applicationsanalysis of Web Applications  Accessibility assessment of ClientAccessibility assessment of Client pagespages  Migration from Web Applications toMigration from Web Applications to Web ServicesWeb Services  Testing of Web ApplicationsTesting of Web Applications  Mutation Testing techniquesMutation Testing techniques  Maintainability assessmentMaintainability assessment  Definition of ageing measures for WebDefinition of ageing measures for Web ApplicationsApplications G.A. Di Lucca, M. Di Penta, A.R. Fasolino, P. Tramontana, “Supporting Web Application Evolution by Dynamic Analysis”, IWPSE 2005 G.A. Di Lucca, A.R. Fasolino, P. Tramontana, “Web Site Accessibility: Identifying and Fixing of Accessibility Problems in Client Page Code”, WSE 2005
  • 16. Ph.D. Dissertation Forum – ICSM 2005

Editor's Notes

  1. RE + C  Riduzione impatto manutenzione RE  Automatizzazione creazione e esecuzione test RE  Calcolo metriche dimensionamento per l’assessment
  2. Non necessaria:basta una descrizione in due parole tipo: Web Applications based on scripting languages such as ASP, PHP and Javascript on the client side, have been studied because they were the most common technologies to produce Web Applications
  3. Cenni ai lavori presenti sull’analisi delle tracce
  4. Cenni ai lavori presenti sull’analisi delle tracce
  5. This model is an extension of the one proposed by Jim Conallen
  6. WARE in realtà si integra con molti altri tool realizzati IRF: Intermediate Representation Form
  7. 3) Clustering Raggruppamento di componenti che collaborano alla realizzazione delle funzionalità dell’applicazione 4) Astrazione di diagrammi UML Produzione di diagrammi di dettaglio sulla base delle informazioni estratte