skip to main content
10.1109/MSR.2017.6acmconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
research-article

Analyzing program dependencies in Java EE applications

Published: 20 May 2017 Publication History

Abstract

Program dependency artifacts such as call graphs help support a number of software engineering tasks such as software mining, program understanding, debugging, feature location, software maintenance and evolution. Java Enterprise Edition (JEE) applications represent a significant part of the recent legacy applications, and we are interested in modernizing them. This modernization involves, among other things, analyzing dependencies between their various components/tiers. JEE applications tend to be multilanguage, rely on JEE container services, and make extensive use of late binding techniques-all of which makes finding such dependencies difficult. In this paper, we describe some of these difficulties and how we addressed them to build a dependency call graph. We developed our tool called DeJEE (Dependencies in JEE) as an Eclipse plug-in. We applied DeJEE on two open-source JEE applications: Java PetStore and JSP Blog. The results show that DeJEE is able to identify different types of JEE dependencies.

References

[1]
Bill Dudney, Stephen Asbury, Jospeh K. Krozak, and Kevin Wittkopf. J2EE Antipatterns. Wiley, 2003.
[2]
Ricardo Pérez-Castillo, Ignacio Garcia-Rodriguez De Guzman, and Mario Piattini, "Knowledge Discovery Metamodel-ISO/IEC 19506: A standard to modernize legacy systems," Computer Standards & Interfaces, 33(6):519--532, 2011.
[3]
Gleb Naumovich and Paolina Centonze, "Static analysis of role-based access control in j2ee applications," ACM SIGSOFT Software Engineering Notes, 29(5):1--10, 2004.
[4]
Christian Kirkegaard and Anders Møller, "Static analysis for java Servlets and jsp," In International Static Analysis Symposium, pages 336--352. Springer, 2006.
[5]
Jonathan Cloutier, Sỳgla Kpodjedo, and Ghizlane El Boussaidi, "Wavi: A reverse engineering tool for web applications," In IEEE 24th International Conference on Program Comprehension (ICPC), pages 1--3. IEEE, 2016.
[6]
Andy Zaidman, Nick Matthijssen, Margaret-Anne Storey, and Arie Van Deursen, "Understanding ajax applications by connecting client and server-side execution traces," Empirical Software Engineering, 18(2):181--218, 2013.
[7]
Tichelaar Sander, Stéphane Ducasse and Serge Demeyer, "FAMIX: Exchange experiences with CDIF and XMI," In Proceedings of the ICSE 2000 Workshop on Standard Exchange Format (WoSEF 2000), 2000.
[8]
Bruneliere, Hugo, Jordi Cabot, Grégoire Dupé and Frédéric Madiot, "Modisco: A model driven reverse engineering framework," Information and Software Technology, 56 (8):1012--1032, 2014.
[9]
KDM Analytics, ww.kdmanalytics.com, visited in 2016.
[10]
A. von Mayrhauser. "Program comprehension during software maintenance and evolution," In IEEE Computer, 28(8):44--55, 1995.
[11]
H. M. Kienle and H. A. Mllër. "Rigi-an environment for software reverse engineering, exploration, visualization, and redocumentation". In Science of Computer Programming, 75(4):247--263, 2012.
[12]
D. L. Moise and K. Wong. "Extracting and representing cross-language dependencies in diverse software systems," In Proceedings of the 12th Working Conference on Reverse Engineering. IEEE Computer Society Press, November 2005.
[13]
L. Deruelle, N. Melab, M. Bouneffa, and H. Basson. "Analysis and manipulation of distributed multi-language software code," In Proceedings of the 1st International Workshop on Source Code Analysis and Manipulation, pages 45--56. IEEE Computer Society Press, November 2001.
[14]
P. K. Linos, Z. hong Chen, S. Berrier, and B. O'Rourke. "A tool for understanding multi-language program dependencies," In Proceedings of the 11th International Workshop on Program Comprehension, pages 64--72. IEEE Computer Society Press, May 2003.
[15]
N. A. Kraft, B. W. Bonds, and R. K. Smith. "Cross-language clone detection," In Proceedings of the 20th International Conference on Software Engineering and Knowledge Engineering., pages 54--59. Knowledge Systems Institute, July 2008.
[16]
D. M. German and A. E. Hassan. "License integration patterns: Addressing license mismatches in component-based development," In Proceedings of the 31st International Conference on Software Engineering, pages 188--198. ACM Press, May 2009.
[17]
Philip Mayer and Andreas Schroeder, "Automated multi-language artifact binding and rename refactoring between java and dsls used by java frameworks," In European Conference on Object-Oriented Programming, pages 437--462. Springer, 2014.
[18]
A. Ayers, R. Schooler, C. Metcalf, A. Agarwal, J. Rhee, and E. Witchel. "Traceback: first fault diagnosis by reconstruction of distributed control flow," In Proceedings of the 26th conference on Programming language design and implementation. pages 201--212. ACM Press, June 2005.
[19]
A. R. Yazdanshenas and L. Moonen. "Crossing the boundaries while analyzing heterogeneous component-based software systems," In Proceedings of the 27th International Conference on Software Maintenance, pages 193--202. IEEE CS Press, September 2011.
[20]
Sun MicroSystems, Java Pet Store, http://www.oracle.com/technetwork/java/petstore1-3-1-02-139690.html, last access: Feb. 8th 2017.
[21]
JSP Blog, http://jspblog.sourceforge.net, last access: Feb. 8th 2017.
[22]
Object Management Group, "Architecture-Driven Modernization: Knowledge Discovery Meta-Model (KDM), v. 1.3".

Cited By

View all
  • (2018)An empirical evaluation of OSGi dependencies best practices in the eclipse IDEProceedings of the 15th International Conference on Mining Software Repositories10.1145/3196398.3196416(170-180)Online publication date: 28-May-2018
  • (2018)Identifying software components from object-oriented APIs based on dynamic analysisProceedings of the 26th Conference on Program Comprehension10.1145/3196321.3196349(189-199)Online publication date: 28-May-2018

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
MSR '17: Proceedings of the 14th International Conference on Mining Software Repositories
May 2017
567 pages
ISBN:9781538615447

Sponsors

Publisher

IEEE Press

Publication History

Published: 20 May 2017

Check for updates

Author Tags

  1. Java EE application
  2. code analysis
  3. container services
  4. modernization
  5. program dependency
  6. server pages

Qualifiers

  • Research-article

Conference

ICSE '17
Sponsor:

Upcoming Conference

ICSE 2025

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)5
  • Downloads (Last 6 weeks)0
Reflects downloads up to 16 Jan 2025

Other Metrics

Citations

Cited By

View all
  • (2018)An empirical evaluation of OSGi dependencies best practices in the eclipse IDEProceedings of the 15th International Conference on Mining Software Repositories10.1145/3196398.3196416(170-180)Online publication date: 28-May-2018
  • (2018)Identifying software components from object-oriented APIs based on dynamic analysisProceedings of the 26th Conference on Program Comprehension10.1145/3196321.3196349(189-199)Online publication date: 28-May-2018

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media