Advertisement

The DynaRIA tool for the comprehension of Ajax web applications by dynamic analysis

  • Domenico Amalfitano
  • Anna Rita Fasolino
  • Armando Polcaro
  • Porfirio TramontanaEmail author
SI: QUATIC 2010

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.

Keywords

Dynamic analysis Program comprehension Rich Internet application Ajax reverse engineering 

References

  1. 1.
    Adobe Flex (2011) http://www.adobe.com/products/flex/. Accessed 28th June 2011
  2. 2.
    Ajax Frameworks (2011) http://ajaxpatterns.org/Ajax_Frameworks. Accessed 28th June 2011
  3. 3.
    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–73Google Scholar
  4. 4.
    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–574Google Scholar
  5. 5.
    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–283Google Scholar
  6. 6.
    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–131Google Scholar
  7. 7.
    Ajax Toolkit Framework Project (2011) http://www.eclipse.org/atf/. Accessed 28th June 2011
  8. 8.
    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
  9. 9.
    Canfora G, Di Penta M, Cerulo L (2011) Achievements and challenges in software reverse engineering. Commun. ACM 54(4): 142–151Google Scholar
  10. 10.
    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–109Google Scholar
  11. 11.
    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–702CrossRefGoogle Scholar
  12. 12.
    DOM Inspector (2011) https://developer.mozilla.org/En/DOM_Inspector. Accessed 28th June 2011
  13. 13.
    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–285Google Scholar
  14. 14.
    W3C (2011) Document object model. http://www.w3.org/DOM/. Accessed 28th June 2011
  15. 15.
    DynaTrace Ajax Edition (2011) http://ajax.dynatrace.com/pages/. Accessed 28th June 2011
  16. 16.
    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–89Google Scholar
  17. 17.
    Ajax Film DB (2011) http://ajaxfilmdb.sourceforge.net/. Accessed 28th June 2011
  18. 18.
    Firebug (2011) http://getfirebug.com/. Accessed 28th June 2011
  19. 19.
    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
  20. 20.
    JavaXPCom (2011) https://developer.mozilla.org/en/JavaXPCOM. Accessed 28th June 2011
  21. 21.
    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–130Google Scholar
  22. 22.
    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–12Google Scholar
  23. 23.
    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–225Google Scholar
  24. 24.
    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–1000Google Scholar
  25. 25.
    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–134Google Scholar
  26. 26.
    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–220Google Scholar
  27. 27.
    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–79Google Scholar
  28. 28.
    Selenium (2011) http://seleniumhq.org/. Accessed 28th June 2011
  29. 29.
    Microsoft Silverlight (2011) http://silverlight.net/. Accessed 28th June 2011
  30. 30.
    Storey MA (2006) Theories, tools and research methods in program comprehension: past, present, future. Softw Qual J 14:187–208Google Scholar
  31. 31.
    SWT: the standard widget toolkit (2011) http://www.eclipse.org/swt/. Accessed 28th June 2011
  32. 32.
    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–28Google Scholar
  33. 33.
    Tudu Lists (2011) http://sourceforge.net/projects/tudu/. Accessed 28th June 2011
  34. 34.
    Venkman JavaScript Debugger Project (2011) http://www.mozilla.org/projects/venkman/ Accessed June 28th, 2011

Copyright information

© Springer-Verlag London 2013

Authors and Affiliations

  • Domenico Amalfitano
    • 1
  • Anna Rita Fasolino
    • 1
  • Armando Polcaro
    • 1
  • Porfirio Tramontana
    • 1
    Email author
  1. 1.Department of Electrical Engineering and Information TechnologyUniversity of Naples Federico IINaplesItaly

Personalised recommendations