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.

[1]  Jim Alves-Foss,et al.  Hidden Implementation Dependencies in High Assurance and Critical Computing Systems , 2006, IEEE Transactions on Software Engineering.

[2]  Alessandro Orso,et al.  Efficient and precise dynamic impact analysis using execute-after sequences , 2005, Proceedings. 27th International Conference on Software Engineering, 2005. ICSE 2005..

[3]  Ewan D. Tempero,et al.  Measuring the Strength of Indirect Coupling , 2007, 2007 Australian Software Engineering Conference (ASWEC'07).

[4]  Bora Caglayan,et al.  The effect of evolutionary coupling on software defects: an industrial case study on a legacy system , 2014, ESEM '14.

[5]  T. Kohonen,et al.  Exploratory Data Analysis by the Self-Organizing Map: Structures of Welfare and Poverty in the World , 1996 .

[6]  Václav Rajlich,et al.  Variable granularity for improving precision of impact analysis , 2009, 2009 IEEE 17th International Conference on Program Comprehension.

[7]  I MaleticJonathan,et al.  A survey and taxonomy of approaches for mining software repositories in the context of software evolution , 2007 .

[8]  Gregg Rothermel,et al.  An empirical comparison of dynamic impact analysis algorithms , 2004, Proceedings. 26th International Conference on Software Engineering.

[9]  Richard C. Holt,et al.  Predicting change propagation in software systems , 2004, 20th IEEE International Conference on Software Maintenance, 2004. Proceedings..

[10]  Pierre Borne,et al.  A Neural Approach of Multimodel Representation of Complex Processes , 2008, Int. J. Comput. Commun. Control.

[11]  Tibor Gyimóthy,et al.  Using information retrieval based coupling measures for impact analysis , 2009, Empirical Software Engineering.

[12]  Armin Beer,et al.  Efficient Test Data Generation for Variables with Complex Dependencies , 2008, 2008 1st International Conference on Software Testing, Verification, and Validation.

[13]  Lee J. White,et al.  Extended firewall for regression testing: an experience report , 2008, J. Softw. Maintenance Res. Pract..

[14]  Ewan D. Tempero,et al.  Detecting indirect coupling , 2005, 2005 Australian Software Engineering Conference.

[15]  Václav Rajlich,et al.  Hidden dependencies in program comprehension and change propagation , 2001, Proceedings 9th International Workshop on Program Comprehension. IWPC 2001.

[16]  Quoc V. Le,et al.  Distributed Representations of Sentences and Documents , 2014, ICML.

[17]  Ayse Basar Bener,et al.  A Metric Suite Proposal for Logical Dependency , 2016, 2016 IEEE/ACM 7th International Workshop on Emerging Trends in Software Metrics (WETSoM).

[18]  Jonathan Schaffer Bell Making Software More Reliable by Uncovering Hidden Dependencies , 2016 .

[19]  Václav Rajlich,et al.  A model for change propagation based on graph rewriting , 1997, 1997 Proceedings International Conference on Software Maintenance.

[20]  Harald C. Gall,et al.  Detection of logical coupling based on product release history , 1998, Proceedings. International Conference on Software Maintenance (Cat. No. 98CB36272).

[21]  Steffen Lehnert,et al.  A taxonomy for software change impact analysis , 2011, IWPSE-EVOL '11.

[22]  Petra Perner,et al.  Data Mining - Concepts and Techniques , 2002, Künstliche Intell..

[23]  Lionel C. Briand,et al.  Using coupling measurement for impact analysis in object-oriented systems , 1999, Proceedings IEEE International Conference on Software Maintenance - 1999 (ICSM'99). 'Software Maintenance for Business Change' (Cat. No.99CB36360).

[24]  Sam Malek,et al.  A Study on the Role of Software Architecture in the Evolution and Quality of Software , 2015, 2015 IEEE/ACM 12th Working Conference on Mining Software Repositories.

[25]  Hong Yul Yang,et al.  Indirect Coupling As a Criteria for Modularity , 2007, First International Workshop on Assessment of Contemporary Modularization Techniques (ACoM '07).

[26]  Panu Somervuo,et al.  Self-Organizing Maps and Learning Vector Quantization for Feature Sequences , 1999, Neural Processing Letters.

[27]  Kevin P. Murphy,et al.  Machine learning - a probabilistic perspective , 2012, Adaptive computation and machine learning series.

[28]  Radu Vanciu,et al.  Hidden dependencies in software systems , 2010, 2010 IEEE International Conference on Software Maintenance.

[29]  Jonathan I. Maletic,et al.  A survey and taxonomy of approaches for mining software repositories in the context of software evolution , 2007, J. Softw. Maintenance Res. Pract..

[30]  Hui He,et al.  A Coverage and Slicing Dependencies Analysis for Seeking Software Security Defects , 2014, TheScientificWorldJournal.