Reverse Engineering Techniques: from Web Applications to Rich Internet Applications



Similar documents
Techniques and Tools for Rich Internet Applications Testing

A GUI Crawling-based technique for Android Mobile Application Testing

A Framework of Model-Driven Web Application Testing

Experimenting in the domain of RIA's and Web 2.0

Curriculum Vitae. Ceccato Mariano

A Technology Based Solution to Move Client Server Applications to Java /.NET in Native 3-Tier Web Code Structures

Testing Techniques applied to AJAX Web Applications

WebRatio 5: An Eclipse-based CASE tool for engineering Web applications

Tools for Anomaly and Failure Detection in Web Applications

Google Web Toolkit (GWT) Architectural Impact on Enterprise Web Application

An introduction to creating Web 2.0 applications in Rational Application Developer Version 8.0

Automating Rich Internet Application Development for Enterprise Web 2.0 and SOA

Automatic Conversion of Desktop Applications to Java Web Technology

Efficient Agent Based Testing Framework for Web Applications

A GUI Crawling-based technique for Android Mobile Application Testing

Rational Software White Paper

Automated Test Approach for Web Based Software

Project Management System Services

A Load Balancing Algorithm against DDoS Attacks in Beyond 3G Wireless Networks

How to realize software evolution of existing BOSS via ZTE SEEM

Enabling automatic testing of Modern Web Applications using Testing Plug-ins

A Platform Independent Testing Tool for Automated Testing of Web Applications

SOA REFERENCE ARCHITECTURE: WEB TIER

Web Application Architectures

Web Cloud Architecture

Course Syllabus: RIA Programming for Magic xpa 2.x Developers

Framework as a master tool in modern web development

Modernized and Maintainable Code. Frank Weil, Ph.D. UniqueSoft, LLC

A Path from Windows Desktop to HTML5

Course Syllabus: RIA Programming for unipaas V1.x Developers

Lessons from Building Asterisk GUIs. Presented by Gaston Draque

HexaCorp. White Paper. SOA with.net. Ser vice O rient ed Ar c hit ecture

Ajax Design and Usability

SOA Planning Guide The Value Enablement Group, LLC. All rights reserved.

JSClassFinder: A Tool to Detect Class-like Structures in JavaScript

ORACLE FORMS APPLICATIONS?

Developing SOA solutions using IBM SOA Foundation

Some Issues on Ajax Invocation

Using Library Dependencies for Clustering

Load Testing Ajax Apps using head-less browser tools. NoVaTAIG April 13, 2011 Gopal Addada and Frank Hurley Cigital Inc.

GUI and Web Programming

How To Evaluate Web Applications

Developing ASP.NET MVC 4 Web Applications MOC 20486

Alice. Software as a Service(SaaS) Delivery Platform. innovation is simplicity

White Paper Converting Lotus Notes Applications to the Cloud Using the CIMtrek converter Product

Reflections about Mobile Agents and Software Engineering

Service-Oriented Architecture and Software Engineering

Trends in Embedded Software Development in Europe. Dr. Dirk Muthig

Enterprise Application Development Using UML, Java Technology and XML

ORACLE DATA INTEGRATOR ENTERPRISE EDITION

Web application development landscape: technologies and models

Migrating Web Applications

UPDATE MANAGEMENT SERVICE The advantage of a smooth Software distribution

Addressing the SAP Data Migration Challenges with SAP Netweaver XI

Development of a Learning Content Management Systems

PIE. Internal Structure

LDAP Authentication Configuration Appendix

VALLIAMMAI ENGINEERING COLLEGE SRM NAGAR, KATTANKULATHUR DEPARTMENT OF COMPUTER APPLICATIONS SUBJECT : MC7502 SERVICE ORIENTED ARCHITECTURE

A Traceability Approach to Support Object-oriented Software

WHITE PAPER. TimeScape.NET. Increasing development productivity with TimeScape, Microsoft.NET and web services TIMESCAPE ENTERPRISE SOLUTIONS

Program Understanding in Software Engineering

An Automated Model Based Approach to Test Web Application Using Ontology

ORACLE MOBILE APPLICATION FRAMEWORK DATA SHEET

An Architecture for Web-based DSS

How To Test A Web Based Application Automatically

Curl Building RIA Beyond AJAX

Client Overview. Engagement Situation. Key Requirements

INTEGRATING ESB / BPM / SOA / AJAX TECHNOLOGIES

Developing ASP.NET MVC 4 Web Applications

Decomposition into Parts. Software Engineering, Lecture 4. Data and Function Cohesion. Allocation of Functions and Data. Component Interfaces

AN ONTOLOGICAL APPROACH TO WEB APPLICATION DESIGN USING W2000 METHODOLOGY

How To Develop A Web Development Software For A Business

Design Metrics for Web Application Maintainability Measurement

ImageLab Group: Digital Library research directions

midpoint Overview Radovan Semančík December 2015

Transcription:

Reverse Engineering Techniques: from Web Applications to Rich Internet Applications Porfirio Tramontana Domenico Amalfitano Anna Rita Fasolino Dipartimento di Ingegneria Elettrica e Tecnologie dell Informazione University of Naples Federico II, Italy

WSE & Reverse Engineering Reverse Engineering has been one of the most discussed topics in WSE events Common topics of WSE: Modeling Reverse Engineering, reengineering, refactoring Migration from legacy systems, to Web Applications, to Rich Internet Applications Test case Generation Documentation Generation Porfirio Tramontana - WSE 203 - Eindhoven - 09/28/203 2

WSE & Reverse Engineering Web Systems Modeling, 3 papers in 999-200 (and a paper in 2006) Reverse Engineering, Comprehension, Maintenance, Documentation of: Web Sites, 7 papers in 2000-2008 Web Applications, 6 papers in 2000-2009 Rich Internet Applications, 3 papers in 200-20 Porfirio Tramontana - WSE 203 - Eindhoven - 09/28/203 3

WSE Timeline 999 2000 200 2002 2003 2006 2008 2009 200 20 203 Web Site Nature And Modeling 6 2 3 Reverse Engineering, Comprehension, Maintenance, Documentation Web Sites Web Applications 5 6 22 7 2 7 9 20 23 24 8 25 27 Rich Internet Applications 34 36 37 Porfirio Tramontana - WSE 203 - Eindhoven - 09/28/203 4

Timeline : Web Site Nature and Modeling In the first WSE editions, there was discussions about the nature of the Web Sites and the models needed for their design 999: G. Antoniol, G. Canfora, A. Cimitile, and A. De Lucia, WEB Sites: Files, Programs or databases?, 200: H. M. Kienle and H. A. Muller, Leveraging program analysis for Web site reverse engineering The first models for Web Site design were adaptations of data models (RMM, WebML) 2000: G. Antoniol, G. Canfora, G. Casazza, and A. De Lucia, Web Site Reengineering Using RMM The evolution of Web Sites to Web Applications caused a corresponding evolution of models towards UML based ones 2006: F. Ricca, M. Di Penta, M. Torchiano, P. Tonella, and M. Ceccato, An empirical study on the usefulness of Conallen s stereotypes inweb application comprehension, Porfirio Tramontana - WSE 203 - Eindhoven - 09/28/203 5

Timeline : Web Site Nature and Modeling Reverse Engineering suitable models describe Web Applications at a higher level of details 2002: P. Tonella and F. Ricca, Dynamic model extraction and statistical analysis of Web applications, 2002: G. A. Di Lucca, A. R. Fasolino, and P. Tramontana, Towards a better comprehensibility of web applications: lessons learned from reverse engineering experiments, Models supporting Web 2.0 applications extended the ones suitable for Web applications 2006: R. Djemaa, I. Amous, and A. Hamadou, WA-UML: Towards a UML extension for modelling Adaptive Web Applications Porfirio Tramontana - WSE 203 - Eindhoven - 09/28/203 6

2000: RMM Model G. Antoniol, G. Canfora, G. Casazza, and A. De Lucia, Web Site Reengineering Using RMM, Porfirio Tramontana - WSE 203 - Eindhoven - 09/28/203 7

2002: Dynamic Model P. Tonella and F. Ricca, Dynamic model extraction and statistical analysis of Web applications, Porfirio Tramontana - WSE 203 - Eindhoven - 09/28/203 8

2002: Web Application Model G. A. Di Lucca, A. R. Fasolino, F. Pace, P. Tramontana, and U. De Carlini, WARE: a tool for the reverse engineering of Web applications, Porfirio Tramontana - WSE 203 - Eindhoven - 09/28/203 9

200: RIA Dynamic Model Fired > Dom Object +XPath 0..* Attribute +Name +Value User Session..* 0..* +Previous 0.. User event +Type +Next 0.. Call > 0..* Dom Change +Type 0..* 0..* Raise> Exception +Message 0.. +Event Handler 0..* JS Function Execution +Function name +File name +handled by 0.. 0..*..* +made by Executed LOC +Text Server Response +Status 0.. 0.. 0..* Server Call +Asynchronous +HTTP Request D. Amalfitano, A. R. Fasolino, A. Polcaro, and P. Tramontana, Comprehending Ajax Web Applications by the DynaRIA Tool, Porfirio Tramontana - WSE 203 - Eindhoven - 09/28/203 0

Timeline 2: Reverse Engineering of Web Sites Reverse Engineering for migrating from HTML to XML Kirda et al., 200; from Web Sites to Web Applications By abstracting a data model, Estievenart et al, 2003 Reverse Engineering for reuse of clones, Aversano et al., 200 Reverse Engineering for reengineering based on dynamic analysis and statistic data, Tonella and Ricca, 2002 and 2008 to improve the navigability, Scanniello et al., 2008 Porfirio Tramontana - WSE 203 - Eindhoven - 09/28/203

Timeline 3: Reverse Engineering of Web Applications Part of the source code is generated at run-time Static analysis is not able to recover anything Dynamic analysis is not able to cover anything Business logic, GUI and data management are often interleaved Di Lucca et al., 200, 2002, 2003, statically analyzed the source code, abstracted detail level diagrams, reconstructed modular architecture and and abstracted business level UML diagrams Hassan and Holt, 200 extracted architectural diagrams from a combination of static and dynamic analysis Ricca et al., 2002, extracted Conallen s diagram from dynamic analysis information Bernardi et al., 2008, et Alalfi et al. 2009, focused on more specific reverse engineering tasks Porfirio Tramontana - WSE 203 - Eindhoven - 09/28/203 3

Timeline 3: References 200: A. E. Hassan and R. C. Holt, Towards a better understanding of Web applications, 2002: G. A. Di Lucca, A. R. Fasolino, and P. Tramontana, Towards a better comprehensibility of web applications: lessons learned from reverse engineering experiments, 2003: G. A. Di Lucca, A. R. Fasolino, P. Tramontana, and U. De Carlini, Abstracting business level UML diagrams from Web applications, 2003: P. Tonella, F. Ricca, E. Pianta, and C. Girardi, Evaluation methods for Web application clustering, 2006: F. Ricca, M. Di Penta, M. Torchiano, P. Tonella, and M. Ceccato, An empirical study on the usefulness of Conallen s stereotypes inweb application comprehension, 2008: M. L. Bernardi, G. A. Di Lucca, and D. Distante, Reverse engineering of Web Applications to abstract user-centered conceptual models, 2009: M. H. Alalfi, J. R. Cordy, and T. R. Dean, WAFA: Fine-grained dynamic analysis of web applications, Porfirio Tramontana - WSE 203 - Eindhoven - 09/28/203 4

Timeline 4: Reverse Engineering of Rich Internet Applications RIAs introduced further levels of dynamicity into Web Applications and increasing the difficulties of tasks such as architecture reconstruction and crawling. Asynchronous calls Client side code run-time self-modification Pure dynamic analysis approaches have been proposed for test case generation, by Amalfitano et al., 200 for redocumentation, Amalfitano et al., 20 for comprehension, McIntosh et al., 20 Porfirio Tramontana - WSE 203 - Eindhoven - 09/28/203 5

Future Perspectives Reverse Engineering of Web Applications loses interest because: Web Applications are not more realized from the scratch but their coding is heavily supported by visual tools for code generation and frameworks libraries With Wordpress, CMS,..., Web applications are essentially configured instead of developed from scratch Web applications are not more so different from other typologies of applications Development models, paradigms and patterns can be the same of traditional applications E.g. a Web Application can represent only a possible user interface for a remote user Porfirio Tramontana - WSE 203 - Eindhoven - 09/28/203 7

Future Perspectives But Many of the static and dynamic analysis techniques initially proposed for Web applications have recently proven their usefulness in the context of mobile applications. E.g.: Android applications are quite similar to RIAs: They are both based on event-based GUIs They are both based on client-server synchronous and asynchronous interactions. Porfirio Tramontana - WSE 203 - Eindhoven - 09/28/203 8