International Journal of Information Engineering and Electronic Business(IJIEEB)

ISSN: 2074-9023 (Print), ISSN: 2074-9031 (Online)

Published By: MECS Press

IJIEEB Vol.7, No.2, Mar. 2015

A Dependency Graph Generation Process for Client-side Web Applications

Full Text (PDF, 906KB), PP.38-50

Views:151   Downloads:10


Tajkia R. Toma, Mohayeminul Islam, Mohammad Shoyaib, Shariful Islam

Index Terms

Web Application;Software Maintenance;Client-side;Dynamic Analysis;Test case;Call Graph;Dependency Graph


The prolific growth of the Internet density has replaced native applications with web based applications. Current trend of web applications is moving towards fat client architecture, which results in a large codebase of the client side of web applications. Manual management of this huge code is tedious and time consuming for de-velopers. We present a technique to construct a depend-ency graph to provide an overview of the code showing the inter-dependency of the code elements. We conduct a dynamic analysis to make the JavaScript call graph to address the dynamic nature of JavaScript. We further integrate HTML and CSS with the JavaScript call graph to make a dependency graph. Because we can accurately identify the HTML and CSS relations, the result of the dependency graph depends on the JavaScript call graph. Our evaluation of the JavaScript call graph on six web applications demonstrates that the precision is high for the large applications and relatively low for small applications. The recall is low for large applications and relatively higher for small applications.

Cite This Paper

Tajkia R. Toma, Mohayeminul Islam, Mohammad Shoyaib, Shariful Islam,"A Dependency Graph Generation Process for Client-side Web Applications", IJIEEB, vol.7, no.2, pp.38-50, 2015. DOI: 10.5815/ijieeb.2015.02.06


[1]W3Techs, "Usage of Client-side Programming Languages for Websites." side lan-guage/all, 2014. [Online; accessed 28-February-2014]. 

[2]V. Rajlich and N. Wilde, "The Role of Concepts in Pro-gram Comprehension," in Program Comprehension, 2002. Proceedings. 10th International Workshop on, pp. 271–278, 2002. 

[3]V. Rajlich and P. Gosavi, "Incremental Change in Object-Oriented Programming," Software, IEEE, vol. 21, pp. 62–69, July 2004. 

[4]T. R. Toma and M. S. Islam, "An Efficient Mechanism of Generating Call Graph for JavaScript Using Dynamic Analysis in Web Application," in 3rd International Con-ference on Electronics, Informatics & Vision, 2014. 

[5]W3C, "How Does the Internet Work." How does the Internet work#Static vs. Dynamic Web Sites [Online; accessed 21-April-2014]. 

[6]"jQuery." [Online; accessed 21-April-2014]. 

[7]"Modernizr." [Online; accessed 21-April-2014]. 

[8]"MooTools." [Online; accessed 21-April-2014]. 

[9]"prototype.js." [Online; accessed 21-April-2014]. 

[10]"ASP.NET Ajax." [Online; ac-cessed 21-April-2014]. 

[11]W3Techs, "Usage of JavaScript Libraries for Web-sites."http:// library/all [Online; accessed 21-April-2014].

[12]Mozilla Developer Network, "AJAX; Getting Started." https:// Started. [Online; accessed 21-April-2014].

[13]"IEEE Standard for Software and System Test Documen-tation," IEEE Std 829-2008, July 18, 2008.

[14]T. Eisenbarth, R. Koschke, and D. Simon, "Locating Fea-tures in Source Code," Software Engineering, IEEE Transactions on, vol. 29, pp. 210–224, March 2003.

[15]D. Poshyvanyk, Y.-G. Gueheneuc, A. Marcus, G. Antoni-ol, and V. Rajlich, "Feature Location Using Probabilistic Ranking of Methods Based on Execution Scenarios and Information Retrieval," Software Engineering, IEEE Transactions on, vol. 33, pp. 420–432, June 2007. 

[16]B. Dit, M. Revelle, M. Gethers, and D. Poshyvanyk, "Fea-ture Location in Source Code: a Taxonomy and Survey," Journal of Software: Evolution and Process, vol. 25, no. 1, pp. 53–95, 2013. 

[17]J. Maras, M. Stula, J. Carlson, and I. Crnkovic, "Identify-ing Code of Individual Features in Client-side Web Ap-plications," Software Engineering, IEEE Transactions on, vol. 39, pp. 1680–1697, Dec 2013. 

[18]S. Some, "Use Cases Based Requirements Validation with Scenarios," in Requirements Engineering, 2005. Proceed-ings. 13th IEEE International Conference on, pp. 465–466, Aug 2005. 

[19]"IEEE Standard Glossary of Software Engineering Ter-minology," vol. 121990, no. 1, p. 1, 1990. 

[20]"IEEE Standard for Software Test Documentation," IEEE Std 829-1983. 

[21]I. Andjelkovic and C. Artho, "Trace Server: A Tool for Storing, Querying and Analyzing Execution Traces," in JPF Workshop, Lawrence, USA, 2011. 

[22]S. Wei and B. G. Ryder, "A Practical Blended Analysis for Dynamic Features in JavaScript," Technical Report TR-12-11, Computer Science, Virginia Tech, 2012. 

[23]H. Abelson and G. J. Sussman. "Structure and Interpreta-tion of Computer Programs," 1996. 

[24]G. Richards, S. Lebresne, B. Burg, and J. Vitek, "An Analysis of the Dynamic Behavior of JavaScript Programs," in Proceedings of the 2010 ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI '10, (New York, NY, USA), pp. 1–12, ACM, 2010. 

[25]S. Jensen, A. Mller, and P. Thiemann, "Type Analysis for JavaScript," in Static Analysis (J. Palsberg and Z. Su, eds.), vol. 5673 of Lecture Notes in Computer Science, pp. 238–255, Springer Berlin Heidelberg, 2009. 

[26]A. Feldthaus, M. Schafer, M. Sridharan, J. Dolby, and F. Tip, "Efficient Construction of Approximate Call Graphs for JavaScript IDE Services," in Software Engineering (ICSE), 2013 35th International Conference on, pp. 752–761, May 2013. 

[27]M. Sridharan, J. Dolby, S. Chandra, M. Schfer, and F. Tip, "Correlation Tracking for Points-to Analysis of JavaScript," in ECOOP 2012 Object-Oriented Programming (J. Noble, ed.), vol. 7313 of Lecture Notes in Computer Science, pp. 435–458, Springer Berlin Heidelberg, 2012. 

[28]"T. J. Watson Libraries for Analysis (WALA)." [Online; accessed 21-April-2014].

[29]"Index of Josip Maras." joma-ras/download/, 2010. [Online; accessed 20-April-2014].