Abstract
Thanks to the fast and growing diffusion of Rich Internet Applications (RIAs), the user experience in the Web 2.0 is becoming more and more appealing and user friendly. RIAs are indeed a new generation of Web applications that exploit a combination of technologies and new development patterns for providing a more interactive, responsive and dynamic user experience. Unfortunately, some characteristics of RIAs, such as the heterogeneity of the implementation technologies, as well as the possibility of dynamically generating the code of the application, cause a general worsening of their analyzability and understandability. Consequently, specific analysis techniques and tools are needed for supporting their comprehension effectively. This paper presents an approach for the comprehension of RIAs implemented in Ajax that is based on a tool for dynamic analysis called DynaRIA. The tool provides an integrated environment for tracing application executions and analyzing them from several perspectives. Moreover, the tool is able to abstract several views on the structure and run-time behavior of the application that can be used in various comprehension activities. To show the actual support provided by DynaRIA in different comprehension contexts, four case studies involving two real Ajax applications will be illustrated in the paper. The experimental results showed the usefulness and effectiveness of the tool in comprehension, debugging, testing and quality assessment scenarios.











Similar content being viewed by others
Explore related subjects
Discover the latest articles, news and stories from top researchers in related subjects.Notes
The complete version of this diagram and of other ones described in the case studies is available at http://wpage.unina.it/ptramont/DynaRIAfigures.htm.
References
Adobe Flex (2011) http://www.adobe.com/products/flex/. Accessed 28th June 2011
Ajax Frameworks (2011) http://ajaxpatterns.org/Ajax_Frameworks. Accessed 28th June 2011
Amalfitano D, Fasolino AR, Tramontana P (2008) Reverse engineering finite state machines from Rich Internet applications. In: Proceedings of working conference on reverse engineering (WCRE 2008), IEEE CS Press, New York, pp 69–73
Amalfitano D, Fasolino AR, Tramontana P (2009) Experimenting a reverse engineering technique for modelling the behavior of Rich Internet applications. In: Proceedings of international conference on software maintenance (ICSM 2009), IEEE CS Press, New York, pp 571–574
Amalfitano D, Fasolino AR, Tramontana P (2010) Rich Internet application testing using execution trace data. In: Proceedings of second international workshop on TESTing techniques and experimentation benchmarks for event-driven software (TESTBEDS 2010), IEEE CS Press, New York, pp 274–283
Amalfitano D, Fasolino AR, Polcaro A, and Tramontana P (2010) Comprehending Ajax Web applications by the DynaRIA tool. In: Proceedings of the 7th international conference on the quality of information and communications technology (QUATIC), IEEE CS Press, New York, pp 122–131
Ajax Toolkit Framework Project (2011) http://www.eclipse.org/atf/. Accessed 28th June 2011
Barton JJ, Odvarko J (2010) Dynamic and graphical Web page breakpoints. In: Proceedings of the 19th international world wide Web conference, WWW2010. http://getfirebug.com/doc/breakpoints/paper/breakpoints.pdf. Accessed 28th June 2011
Canfora G, Di Penta M, Cerulo L (2011) Achievements and challenges in software reverse engineering. Commun. ACM 54(4): 142–151
Cornelissen B, Zaidman A, Van Deursen A (2009) Trace visualization for program comprehension: a controlled experiment. In: Proceedings of international conference on program comprehension (ICPC ‘09). IEEE CS Press, New York, pp 100–109
Cornelissen B, Zaidman A, Van Deursen A, Moonen L, Koschke R (2009) A systematic survey of program comprehension through dynamic analysis. IEEE Trans Softw Eng 35(5):684–702
DOM Inspector (2011) https://developer.mozilla.org/En/DOM_Inspector. Accessed 28th June 2011
Di Penta M, Stirewalt REK, Kraemer E (2007) Designing your next empirical study on program comprehension. In: Proceedings of international conference on programa compre (ICPC 2007), IEEE CS Press, New York, pp 281–285
W3C (2011) Document object model. http://www.w3.org/DOM/. Accessed 28th June 2011
DynaTrace Ajax Edition (2011) http://ajax.dynatrace.com/pages/. Accessed 28th June 2011
Duda C, Frey G, Kossmann D, Matter R, Zhou C (2009) AJAX Crawl: making AJAX applications searchable. In: Proceedings of IEEE international conference on data engineering. IEEE CS Press, New York, pp 78–89
Ajax Film DB (2011) http://ajaxfilmdb.sourceforge.net/. Accessed 28th June 2011
Firebug (2011) http://getfirebug.com/. Accessed 28th June 2011
Garrett J (2005) AJAX: a new approach to Web applications. Adaptive path http://www.adaptivepath.com/ideas/ajax-new-approach-web-applications. Accessed 28th June 2011
JavaXPCom (2011) https://developer.mozilla.org/en/JavaXPCOM. Accessed 28th June 2011
Marchetto A, Tonella P, Ricca F (2008) State-based testing of Ajax Web applications. In: Proceedings of international conference on software testing, verification and validation. IEEE CS Press, New York, pp 121–130
Marchetto A, Tonella P (2009) Search-based testing of Ajax Web applications. In: Proceedings of 1st international symposium on search based software engineering. IEEE CS Press, New York, pp 3–12
Matthijssen N, Zaidman A, Storey MA, Bull I, van Deursen A (2010) Connecting traces: understanding client–server interactions in Ajax applications. In: Proceedings of IEEE international conference on program comprehension (ICPC 2010). IEEE CS Press, New York, pp 216–225
Matthijssen N, Zaidman A (2011) FireDetective: understanding ajax client/server interactions. In: Proceeding of the 33rd international conference on software engineering (ICSE ’11). ACM, pp 998–1000
Mesbah A, Bozdag E, van Deursen A (2009) Crawling AJAX by inferring user interface state changes. In: Proceedings of eight international conference on Web engineering (ICWE 2009). IEEE CS Press, New York, pp 122–134
Mesbah A, van Deursen A (2009) Invariant-based automatic testing of AJAX user interfaces. In: Proceedings of international conference on software engineering (ICSE 2009). IEEE CS Press, New York, pp 210–220
Pacione MJ, Roper M, Wood M (2004) A novel software visualisation model to support program comprehension. In: Proceedings of 11th working conference on reverse engineering (WCRE ’04). IEEE CS Press, New York, pp 70–79
Selenium (2011) http://seleniumhq.org/. Accessed 28th June 2011
Microsoft Silverlight (2011) http://silverlight.net/. Accessed 28th June 2011
Storey MA (2006) Theories, tools and research methods in program comprehension: past, present, future. Softw Qual J 14:187–208
SWT: the standard widget toolkit (2011) http://www.eclipse.org/swt/. Accessed 28th June 2011
Tilley SR, Smith DB, Paul S (1996) Towards a framework for program understanding. In: Proceedings of the 4th international workshop on program comprehension. IEEE CS Press, New York, pp 19–28
Tudu Lists (2011) http://sourceforge.net/projects/tudu/. Accessed 28th June 2011
Venkman JavaScript Debugger Project (2011) http://www.mozilla.org/projects/venkman/ Accessed June 28th, 2011
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Amalfitano, D., Fasolino, A.R., Polcaro, A. et al. The DynaRIA tool for the comprehension of Ajax web applications by dynamic analysis. Innovations Syst Softw Eng 10, 41–57 (2014). https://doi.org/10.1007/s11334-013-0207-x
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s11334-013-0207-x