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

Innovations in Systems and Software Engineering - Tập 10 - Trang 41-57 - 2013
Domenico Amalfitano1, Anna Rita Fasolino1, Armando Polcaro1, Porfirio Tramontana1
1Department of Electrical Engineering and Information Technology, University of Naples Federico II, Naples, Italy

Tóm tắt

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.

Tài liệu tham khảo

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