DOI QR코드

DOI QR Code

An Automatic Extraction Scheme of Dependency Relations between Web Components and Web Resources in Java Web Applications

자바 웹 앱에서 웹 컴포넌트와 웹 자원의 의존 관계를 자동으로 추출하는 기법

  • Oh, Jaewon (School of Computer Science and Information Engineering, The Catholic University of Korea) ;
  • Lee, Seunghyun (School of Computer Science and Information Engineering, The Catholic University of Korea) ;
  • Kim, Ah Hyoung (School of Computer Science and Information Engineering, The Catholic University of Korea) ;
  • Ahn, Woo Hyun (School of Software, Kwangwoon University)
  • Received : 2017.12.27
  • Accepted : 2018.01.16
  • Published : 2018.03.28

Abstract

As the requirements of web apps become complex and rapidly changing, the maintenance of web apps becomes more important. However, web apps have a problem that more often than not there is not enough documentation to understand and maintain them. Thus, their effective maintenance requires models that represent their internal behavior occurring when they dynamically generate web pages. Previous works identify web components (such as JSPs and Servlets) as participants in the behavior but not web resources (such as images, CSS files, and JavaScript files). Moreover, they do not identify dependency relations between web components and web resources. This paper dynamically analyzes Java web apps to extract such dependency relations, which are included in our graph model for page generation. Case studies using open-source web apps show the applicability of the proposed approach.

Acknowledgement

Supported by : National Research Foundation of Korea (NRF), Kwangwoon University

References

  1. H. M. Kienle and H. A. Muller, "A WSAD-based fact extractor for J2EE web projects," in Proceedings of the 9th IEEE International Workshop on Web Site Evolution, Paris, pp. 57-64, 2007.
  2. I. Zahoor, O. Maqbool, and R. Naseem, "Web application fact extractor (WAFE)," in Proceedings of the 2013 8th International Conference on Digital Information Management, Islamabad, pp. 379-384, 2013.
  3. H. M. Kienle and D. Distante, "Evolution of web systems," in Evolving Software Systems, 1st ed. Heidelberg: Springer-Verlag Berlin Heidelberg, ch. 7, pp. 201-228, 2014.
  4. A. E. Hassan and R. C. Holt, "Architecture recovery of web applications," in Proceedings of the 24th International Conference on Software Engineering, Orlando, pp. 349-359, 2002.
  5. Z. Mushtaq, G. Rasool, and B. Shehzad. (2017, June). Multilingual source code analysis: A systematic literature review. IEEE Access [Online]. Available: http://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=7953501.
  6. A. Zaidman, N. Matthijssen, M. A. Storey, and A. Van Deursen, "Understanding AJAX applications by connecting client and server-side execution traces," Empirical Software Engineering, vol. 18, no. 2, pp. 181-218, Apr. 2013. https://doi.org/10.1007/s10664-012-9200-5
  7. J. Oh, W. H. Ahn, and T. Kim, "Automatic extraction of component collaboration in Java web applications by using servlet filters and wrappers," KIPS Transactions on Software and Data Engineering, vol. 6, no. 7, pp. 329-336, July 2017. https://doi.org/10.3745/KTSDE.2017.6.7.329
  8. M. Han and C. Hofmeister, "Modeling request routing in web applications," in Proceedings of the 8th IEEE International Symposium on Web Site Evolution, Philadelphia, pp. 103-110, 2006.
  9. W. G. Halfond, "Identifying inter-component control flow in web applications," in Proceedings of the 15th International Conference on Web Engineering, Rotterdam, pp. 52-70, 2015.
  10. J. Buckley, N. Ali, M. English, J. Rosik, and S. Herold, "Real-time reflexion modelling in architecture reconciliation: A multi case study," Information and Software Technology, vol. 61, pp. 107-123, May 2015. https://doi.org/10.1016/j.infsof.2015.01.011
  11. T. Forster, T. Keuler, J. Knodel, and M. C. Becker, "Recovering component dependencies hidden by frameworks--experiences from analyzing OSGi and Qt," in Proceedings of the 17th European Conference on Software Maintenance and Reengineering, Genova, pp. 295-304, 2013.
  12. J. Oh, W. H. Ahn, and T. Kim, "MVC architecture driven restructuring to achieve client-side web page composition," in Proceedings of the 2016 7th IEEE International Conference on Software Engineering and Service Science, Beijing, pp. 45-53, 2016.
  13. Oracle. The essentials of filters [Internet], Available: http://www.oracle.com/technetwork/java/filters-137243.html.
  14. MDN Web Docs. Browser extensions [Internet], Available: https://developer.mozilla.org/en-US/Add-ons/WebExtensions.
  15. J. Oh, W. H. Ahn, and T. Kim, "MVC architecture-aware restructuring of web apps," Journal of the Korea Institute of Information and Communication Engineering, vol. 21, no. 11, pp. 2153-2166, Nov. 2017. https://doi.org/10.6109/JKIICE.2017.21.11.2153
  16. J. Oh, W. H. Ahn, and T. Kim, "Web app restructuring based on shadow DOMs to improve maintainability," in Proceedings of the 2017 8th IEEE International Conference on Software Engineering and Service Science, Beijing, pp. 118-122, 2017.
  17. Y. Qu, X. Guan, Q. Zheng, T. Liu, J. Zhou, and J. Li, "Calling network: A new method for modeling software runtime behaviors," ACM SIGSOFT Software Engineering Notes, vol. 40, no. 1, pp.1-8, Feb. 2015.
  18. D. Shen, Q. Luo, D. Poshyvanyk, and M. Grechanik, "Automating performance bottleneck detection using search-based application profiling," in Proceedings of the 2015 International Symposium on Software Testing and Analysis, Maryland, pp. 270-281, 2015.
  19. A. Mesbah and A. Van Deursen, "Migrating multi-page web applications to single-page AJAX interfaces," in Proceedings of the 11th European Conference on Software Maintenance and Reengineering, Amsterdam, pp. 181-190, 2007.