Identifying Hidden Dependencies in Software Systems
The maintenance and evolution of software systems are highly impacted by activities such as bug fixing, adding new features or functionalities and updating existing ones. Impact analysis contributes to improving the maintenance activities by determining those parts from a software system which can be affected by changes to the system. There exist hidden dependencies in the software projects which cannot be found using common coupling measures and are due to the so called indirect coupling. In this paper we aim to provide a comprehensive review of existing methods for hidden dependencies identification, as well as to highlight the limitations of the existing state-of-the-art approaches. We also propose an unsupervised learning based computational model for the problem of hidden dependencies identification and give some incipient experimental results. The study performed in this paper supports our broader goal of developing machine learning methods for automatically detecting hidden dependencies.
 RaRe TECHNOLOGIES. https://github.com/RaRe-Technologies/gensim.
 Shirin Akbarinasaji, Behjat Soltanifar, Bora C¸a˘ glayan, Ayse Basar Bener, Andriy Miranskyy, Asli Filiz, Bryan M. Kramer, and Ayse Tosun. A metric suite proposal for logical dependency. In Proceedings of the 7th International Workshop on Emerging Trends in Software Metrics, WETSoM ’16, pages 57–63, New York, NY, USA, 2016. ACM.
 Taweesup Apiwattanapong, Alessandro Orso, and Mary Jean Harrold. Efficient and precise dynamic impact analysis using execute-after sequences. In Proceedings of the 27th International Conference on Software Engineering, ICSE ’05, pages 432–441, New York, NY, USA, 2005. ACM.
 A. Beer and S. Mohacsi. Efficient test data generation for variables with complex dependencies. In 2008 1st International Conference on Software Testing, Verification, and Validation, pages 3–11, April 2008.
 Jonathan Bell. Making Software More Reliable by Uncovering Hidden Dependencies. PhD thesis, Graduate School of Art and Sciences, Columbia University, 2016.
 Lionel C. Briand, Juergen Wuest, and Hakim Lounis. Using coupling measurement for impact analysis in object-oriented systems. In Proceedings of the IEEE International Conference on Software Maintenance, ICSM ’99, pages 475–482, Washington, DC, USA, 1999. IEEE Computer Society.
 Daniel Conte de Leon and Jim Alves-Foss. Hidden implementation dependencies in high assurance and critical computing systems. IEEE Trans. Softw. Eng., 32(10):790–811, October 2006.
 D. Conte de Leon and J. Alves-Foss. Hidden implementation dependencies in high assurance and critical computing systems. IEEE Transactions on Software Engineering, 32(10):790–811, Oct 2006.
 N. Elfelly, J.-Y. Dieulot, and P. Borne. A neural approach of multimodel representation of complex processes. International Journal of Computers, Communications & Control, III(2):149–160, 2008.
 Harald Gall, Karin Hajek, and Mehdi Jazayeri. Detection of logical coupling based on product release history. In Proceedings of the International Conference on Software Maintenance, ICSM ’98, pages 190–, Washington, DC, USA, 1998. IEEE Computer Society.
 Harald Gall, Karin Hajek, and Mehdi Jazayeri. Detection of logical coupling based on product release history. In Proceedings of the International Conference on Software Maintenance, ICSM ’98, pages 190–198, Washington, DC, USA, 1998. IEEE Computer Society.
 Jiawei Han. Data Mining: Concepts and Techniques. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA, 2005.
 Ahmed E. Hassan and Richard C. Holt. Predicting change propagation in software systems. In Proceedings of the 20th IEEE International Conference on Software Maintenance, ICSM ’04, pages 284–293, Washington, DC, USA, 2004. IEEE Computer Society.
 Hui He, Dongyan Zhang, Min Liu, Weizhe Zhang, and Dongmin Gao. A coverage and slicing dependencies analysis for seeking software security defects. The Scientific World Journal, 2014:1–10, 2014.
 Jakob Jenkov. Understanding Dependencies. Technical report, Tech and Media Labs, 2014.
 Huzefa Kagdi, Michael L. Collard, and Jonathan I. Maletic. A survey and taxonomy of approaches for mining software repositories in the context of software evolution. J. Softw. Maint. Evol., 19(2):77–131, March 2007.
 S. Kaski and T. Kohonen. Exploratory data analysis by the self-organizing map: Structures of welfare and poverty in the world. In Neural Networks in Financial Engineering. Proceedings of the Third International Conference on Neural Networks in the Capital Markets, pages 498–507. World Scientific, 1996.
 Serkan Kirbas, Alper Sen, Bora Caglayan, Ayse Bener, and Rasim Mahmutogullari. The effect of evolutionary coupling on software defects: An industrial case study on a legacy system. In Proceedings of the 8th ACM/IEEE International Symposium on Empirical Software Engineering and Measurement, ESEM ’14, pages 6:1–6:7, New York, NY, USA, 2014. ACM.
 Ehsan Kouroshfar, Mehdi Mirakhorli, Hamid Bagheri, Lu Xiao, Sam Malek, and Yuanfang Cai. A study on the role of software architecture in the evolution and quality of software. In Proceedings of the 12th Working Conference on Mining Software Repositories, MSR ’15, pages 246–257, Piscataway, NJ, USA, 2015. IEEE Press.
 Quoc V. Le and Tomas Mikolov. Distributed representations of sentences and documents. CoRR, abs/1405.4053, 2014.
 Steffen Lehnert. A taxonomy for software change impact analysis. In Proceedings of the 12th International Workshop on Principles of Software Evolution and the 7th Annual ERCIM Workshop on Software Evolution, IWPSE-EVOL ’11, pages 41–50, New York, NY, USA, 2011. ACM.
 Thomas M. Mitchell. Machine learning. McGraw-Hill, Inc. New York, USA, 1997.
 Kevin P. Murphy. Machine Learning: A Probabilistic Perspective. The MIT Press, 2012.
 Alessandro Orso, Taweesup Apiwattanapong, James Law, Gregg Rothermel, and Mary Jean Harrold. An empirical comparison of dynamic impact analysis algorithms. In Proceedings of the 26th International Conference on Software Engineering, ICSE ’04, pages 491–500, Washington, DC, USA, 2004. IEEE Computer Society.
 Maksym Petrenko and Vclav Rajlich. Variable granularity for improving precision of impact analysis. In ICPC, pages 10–19. IEEE Computer Society, 2009.
 Denys Poshyvanyk, Andrian Marcus, Rudolf Ferenc, and Tibor Gyimóthy. Using information retrieval based coupling measures for impact analysis. Empirical Softw. Engg., 14(1):5–32, February 2009.
 Vaclav Rajlich. A model for change propagation based on graph rewriting. In Proceedings of the International Conference on Software Maintenance, ICSM ’97, pages 84–91, Washington, DC, USA, 1997. IEEE Computer Society.
 Gabriela Serban, Alina Câmpan, and Istvan Gergely Czibula. A programming interface for finding relational association rules. International Journal of Computers, Communications & Control, I(S.):439–444, June 2006.
 Panu Somervuo and Teuvo Kohonen. Self-organizing maps and learning vector quantization for feature sequences. Neural Processing Letters, 10:151–159, 1999.
 R. Vanciu and V. Rajlich. Hidden dependencies in software systems. In Software Maintenance (ICSM), 2010 IEEE International Conference on, pages 1–10, Sept 2010.
 Lee White, Khaled Jaber, Brian Robinson, and Václav Rajlich. Extended firewall for regression testing: An experience report. J. Softw. Maint. Evol., 20(6):419–433, November 2008.
 H. Y. Yang and E. Tempero. Indirect coupling as a criteria for modularity. In Assessment of Contemporary Modularization Techniques, 2007. ICSE Workshops ACoM ’07. First International Workshop on, pages 10–10, May 2007.
 Hong Yul Yang, E. Tempero, and R. Berrigan. Detecting indirect coupling. In 2005 Australian Software Engineering Conference, pages 212–221, March 2005.
 Hong Yul Yang and Ewan Tempero. Measuring the strength of indirect coupling. In Proceedings of the 2007 Australian Software Engineering Conference, ASWEC ’07, pages 319–328, Washington, DC, USA, 2007. IEEE Computer Society.
 Hong Yul Yang, Ewan Tempero, and Rebecca Berrigan. Detecting indirect coupling. In Proceedings of the 2005 Australian Conference on Software Engineering, ASWEC ’05, pages 212–221, Washington, DC, USA, 2005. IEEE Computer Society.
 Zhifeng Yu and V. Rajlich. Hidden dependencies in program comprehension and change propagation. In Program Comprehension, 2001. IWPC 2001. Proceedings. 9th International Workshop on, pages 293–299, 2001.
This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
When the article is accepted for publication, I, as the author and representative of the coauthors, hereby agree to transfer to Studia Universitatis Babes-Bolyai, Series Informatica, all rights, including those pertaining to electronic forms and transmissions, under existing copyright laws, except for the following, which the author specifically retain: the right to make further copies of all or part of the published article for my use in classroom teaching; the right to reuse all or part of this material in a review or in a textbook of which I am the author; the right to make copies of the published work for internal distribution within the institution that employs me.