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.

웹 앱의 요구사항이 복잡해지고 빠르게 변화하고 있어, 웹 앱의 유지보수가 더욱더 중요해지고 있다. 그렇지만, 웹 앱은 문서화가 충분하게 이루어지지 않아 유지보수가 어렵다. 그래서 효과적인 웹 앱의 유지보수를 위해 웹 페이지 생성 시 일어나는 내부 행위를 추상화한 모델을 추출할 필요가 있다. 기존 연구는 상호 작용하는 웹 컴포넌트(JSP, 서블릿 등)를 식별하지만, 웹 자원(이미지, CSS 파일, 자바스크립트 파일 등)을 식별하지 못하거나, 웹 컴포넌트와 웹 자원 사이의 의존 관계를 추출하지 못한다. 본 논문은 자바 웹 앱을 동적 분석하여 이러한 의존 관계를 추출하고, 그래프 모델로 표현하는 방법을 제안한다. 그리고 오픈 소스 웹 앱을 대상으로 실험하여 제안하는 기법의 활용 가능성을 검증한다.

Keywords

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.