TY - GEN
T1 - Codifying Hidden Dependencies in Legacy J2EE Applications
AU - Hecht, Geoffrey
AU - Mili, Hafedh
AU - El-Boussaidi, Ghizlane
AU - Boubaker, Anis
AU - Abdellatif, Manel
AU - Gueheneuc, Yann Gael
AU - Shatnawi, Anas
AU - Privat, Jean
AU - Moha, Naouel
N1 - Publisher Copyright:
© 2018 IEEE.
PY - 2018/7/2
Y1 - 2018/7/2
N2 - J2EE applications tend to be multi-tier and multi-language applications. They rely on the J2EE platform and containers that offer infrastructure and architectural services to ensure distributed, secure, safe, and scalable executions. These mechanisms hide many program dependencies, which helps development but hinders maintenance, evolution, and re-engineering of J2EE applications. In this paper, we study (i) the J2EE specifications to extract a declarative specification of the dependencies that are inherent in the services offered and that are not visible in the user code that uses them. Then, we introduce (ii) a codification of the dependencies into rules, and (iii) a tool that supports the specification of those dependencies and their detection in J2EE applications. We validate our approach and tool on a sample of 10 J2EE applications. We also compare our tool against JRipples, a state-of-the-art tool for change-impact analysis tasks. Results show that our tool adds, on average, 15% more call dependencies, which would have been missed otherwise. On change impact analysis tasks, our tool outperforms JRipples in all 10 applications, especially for the early iterations of change propagation exploration.
AB - J2EE applications tend to be multi-tier and multi-language applications. They rely on the J2EE platform and containers that offer infrastructure and architectural services to ensure distributed, secure, safe, and scalable executions. These mechanisms hide many program dependencies, which helps development but hinders maintenance, evolution, and re-engineering of J2EE applications. In this paper, we study (i) the J2EE specifications to extract a declarative specification of the dependencies that are inherent in the services offered and that are not visible in the user code that uses them. Then, we introduce (ii) a codification of the dependencies into rules, and (iii) a tool that supports the specification of those dependencies and their detection in J2EE applications. We validate our approach and tool on a sample of 10 J2EE applications. We also compare our tool against JRipples, a state-of-the-art tool for change-impact analysis tasks. Results show that our tool adds, on average, 15% more call dependencies, which would have been missed otherwise. On change impact analysis tasks, our tool outperforms JRipples in all 10 applications, especially for the early iterations of change propagation exploration.
KW - Change Impact Analysis
KW - Dependencies
KW - J2EE
KW - Java
KW - Legacy
UR - https://www.scopus.com/pages/publications/85066812891
U2 - 10.1109/APSEC.2018.00045
DO - 10.1109/APSEC.2018.00045
M3 - Contribution to conference proceedings
AN - SCOPUS:85066812891
T3 - Proceedings - Asia-Pacific Software Engineering Conference, APSEC
SP - 305
EP - 314
BT - Proceedings - 25th Asia-Pacific Software Engineering Conference, APSEC 2018
PB - IEEE Computer Society
T2 - 25th Asia-Pacific Software Engineering Conference, APSEC 2018
Y2 - 4 December 2018 through 7 December 2018
ER -