Interprocedural slicing using dependence graphs
PLDI '88 Proceedings of the ACM SIGPLAN 1988 conference on Programming Language design and Implementation
Integrating noninterfering versions of programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
PLDI '90 Proceedings of the ACM SIGPLAN 1990 conference on Programming language design and implementation
Slicing object-oriented software
Proceedings of the 18th international conference on Software engineering
ICSE '81 Proceedings of the 5th international conference on Software engineering
Web Application Slicing in Presence of Dynamic Code Generation
Automated Software Engineering
Script InSight: Using Models to Explore JavaScript Code from the Browser View
ICWE '9 Proceedings of the 9th International Conference on Web Engineering
Semi-Automating Pragmatic Reuse Tasks
ASE '08 Proceedings of the 2008 23rd IEEE/ACM International Conference on Automated Software Engineering
FireCrystal: Understanding interactive behaviors in dynamic web pages
VLHCC '09 Proceedings of the 2009 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC)
Automatically Recommending Triage Decisions for Pragmatic Reuse Tasks
ASE '09 Proceedings of the 2009 IEEE/ACM International Conference on Automated Software Engineering
Reusing web application user-interface controls
ICWE'11 Proceedings of the 11th international conference on Web engineering
Generating feature usage scenarios in client-side web applications
ICWE'13 Proceedings of the 13th international conference on Web Engineering
Hi-index | 0.00 |
The web application domain is one of the fastest growing and most wide-spread application domains today. By utilizing fast, modern web browsers and advanced scripting techniques, web developers are developing highly interactive applications that can, in terms of user-experience and responsiveness, compete with standard desktop applications. A web application is composed of two equally important parts: the server-side and the client-side. The client-side acts as a user-interface to the application, and can be viewed as a collection of behaviors. Similar behaviors are often used in a large number of applications, and facilitating their reuse offers considerable benefits. However, due to client-side specifics, such as multi-language implementation and extreme dynamicity, identifying and extracting code responsible for a certain behavior is difficult. In this paper we present a semi-automatic method for extracting client-side web application code implementing a certain behavior. We show how by analyzing the execution of a usage scenario, code responsible for a certain behavior can be identified, how dependencies between different parts of the application can be tracked, and how in the end only the code responsible for a certain behavior can be extracted. Our evaluation shows that the method is capable of extracting stand-alone behaviors, while achieving considerable savings in terms of code size and application performance.