A practice-driven systematic review of dependency analysis solutions

When following architecture-driven strategies to develop large software-intensive systems, the analysis of the dependencies is not an easy task. In this paper, we report a systematic literature review on dependency analysis solutions. Dependency analysis concerns making dependencies due to interconnections between programs or system components explicit. The review is practice-driven because its research questions, execution, and reporting were influenced by the practice of a group of software architects at Philips Healthcare MRI. The review results in an overview and assessment of the state-of-the-art and applicability of dependency analysis. The overview provides insights about definitions related to dependency analysis, the sort of development activities that need dependency analysis, and the classification and description of a number of dependency analysis solutions. The contribution of this paper is for both practitioners and researchers. They can take it as a reference to learn about dependency analysis, match their own practice to the presented results, and to build similar overviews of other techniques and methods for other domains or types of systems.

[1]  Dirk Lewandowski Google Scholar as a tool for discovering journal articles in library and information science , 2010, Online Inf. Rev..

[2]  Glenford J Myers,et al.  Reliable software through composite design , 1975 .

[3]  Martin Glinz,et al.  Using Dependency Charts to Improve Scenario-Based Testing , 2000 .

[4]  John L. Pfaltz Using Concept Lattices to Uncover Causal Dependencies in Software , 2006, ICFCA.

[5]  Manish Gupta,et al.  Problem Determination Using Dependency Graphs and Run-Time Behavior Models , 2004, DSOM.

[6]  Arie van Deursen,et al.  A Systematic Survey of Program Comprehension through Dynamic Analysis , 2008, IEEE Transactions on Software Engineering.

[7]  FerranteJeanne,et al.  The program dependence graph and its use in optimization , 1987 .

[8]  Abdelwahab Hamou-Lhadj,et al.  A survey of trace exploration tools and techniques , 2004, CASCON.

[9]  Audris Mockus,et al.  International Workshop on Mining Software Repositories , 2004 .

[10]  P. America,et al.  The Darwin Project: Evolvability of Software-Intensive Systems , 2007, Third International IEEE Workshop on Software Evolvability 2007.

[11]  Joseph P. Loyall,et al.  Using dependence analysis to support the software maintenance process , 1993, 1993 Conference on Software Maintenance.

[12]  Baowen Xu,et al.  An overview of methods for dependence analysis of concurrent programs , 2002, SIGP.

[13]  Barbara G. Ryder,et al.  Discovering accurate interclass test dependences , 2007, PASTE '07.

[14]  Harry S. Delugach,et al.  Dependency Analysis Using Conceptual Graphs , 2001 .

[15]  Glenford J. Myers,et al.  Structured Design , 1974, IBM Syst. J..

[16]  Nachiappan Nagappan,et al.  Predicting defects using network analysis on dependency graphs , 2008, 2008 ACM/IEEE 30th International Conference on Software Engineering.

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

[18]  David Garlan,et al.  A formal basis for architectural connection , 1997, TSEM.

[19]  Jianjun Zhao Using Dependence Analysis to Support Software Architecture Understanding , 2001, ArXiv.

[20]  Mark Harman,et al.  Locating dependence clusters and dependence pollution , 2005, 21st IEEE International Conference on Software Maintenance (ICSM'05).

[21]  Robert J. Walker,et al.  Task-specific source code dependency investigation , 2007, 2007 4th IEEE International Workshop on Visualizing Software for Understanding and Analysis.

[22]  Stéphane Ducasse,et al.  Semantic clustering: Identifying topics in source code , 2007, Inf. Softw. Technol..

[23]  Emilia Mendes,et al.  Software productivity measurement using multiple size measures , 2004, IEEE Transactions on Software Engineering.

[24]  Mark Neal,et al.  Why and how of requirements tracing , 1994, IEEE Software.

[25]  Aaron B. Brown,et al.  An active approach to characterizing dynamic dependencies for problem determination in a distributed environment , 2001, 2001 IEEE/IFIP International Symposium on Integrated Network Management Proceedings. Integrated Network Management VII. Integrated Management Strategies for the New Millennium (Cat. No.01EX470).

[26]  Alexander Egyed,et al.  A Scenario-Driven Approach to Trace Dependency Analysis , 2003, IEEE Trans. Software Eng..

[27]  Rainer Koschke,et al.  Locating Features in Source Code , 2003, IEEE Trans. Software Eng..

[28]  Jiro Tanaka,et al.  Bridging the gap between analysis and design using dependency diagrams , 2005, Third ACIS Int'l Conference on Software Engineering Research, Management and Applications (SERA'05).

[29]  Pearl Brereton,et al.  Lessons from applying the systematic literature review process within the software engineering domain , 2007, J. Syst. Softw..

[30]  Y. Neuvo,et al.  Cellular phones as embedded systems , 2004, 2004 IEEE International Solid-State Circuits Conference (IEEE Cat. No.04CH37519).

[31]  Lu Yansheng,et al.  The Design of Dependency Relationships Matrix to improve the testability of Component-based Software , 2006, 2006 Sixth International Conference on Quality Software (QSIC'06).

[32]  Alexander Kossiakoff,et al.  Systems Engineering Principles and Practice , 2020 .

[33]  Stefan Voigt,et al.  Projecting code changes onto execution traces to support localization of recently introduced bugs , 2009, SAC '09.

[34]  Vineet Sinha,et al.  Using dependency models to manage complex software architecture , 2005, OOPSLA '05.

[35]  Olly Gotel,et al.  An analysis of the requirements traceability problem , 1994, Proceedings of IEEE International Conference on Requirements Engineering.

[36]  Ivica Crnkovic,et al.  Using dependency model to support software architecture evolution , 2008, 2008 23rd IEEE/ACM International Conference on Automated Software Engineering - Workshops.

[37]  Yang Xiao,et al.  Recovery of Concurrent Processes in a Service Composition Environment Using Data Dependencies , 2008, OTM Conferences.

[38]  Kenny Wong,et al.  Comprehension and Maintenance of Large-Scale Multi-Language Software Applications , 2006, 2006 22nd IEEE International Conference on Software Maintenance.

[39]  Michael W. Godfrey,et al.  System-level Usage Dependency Analysis of Object-Oriented Systems , 2007, 2007 IEEE International Conference on Software Maintenance.

[40]  Nachiappan Nagappan,et al.  Predicting Subsystem Failures using Dependency Graph Complexities , 2007, The 18th IEEE International Symposium on Software Reliability (ISSRE '07).

[41]  Debra J. Richardson,et al.  Analyzing dependencies in large component-based systems , 2002, Proceedings 17th IEEE International Conference on Automated Software Engineering,.

[42]  James D. Herbsleb,et al.  Socio-technical congruence: a framework for assessing the impact of technical and work dependencies on software development productivity , 2008, ESEM '08.

[43]  Rainer Koschke,et al.  Aiding program comprehension by static and dynamic feature analysis , 2001, Proceedings IEEE International Conference on Software Maintenance. ICSM 2001.

[44]  Judith Wusteman,et al.  Putting Google Scholar to the test: a preliminary study , 2007, Program.

[45]  Timothy C. Winkler,et al.  Approximate Reasoning About the Semantic Effects of Program Changes , 1990, IEEE Trans. Software Eng..

[46]  Tibor Gyimóthy,et al.  Static Execute After/Before as a replacement of traditional software dependencies , 2008, 2008 IEEE International Conference on Software Maintenance.

[47]  Alexander Kossiakoff,et al.  Systems Engineering Principles and Practice: Kossiakoff/Systems Engineering Principles and Practice , 2005 .

[48]  Pearl Brereton,et al.  Systematic literature reviews in software engineering - A systematic literature review , 2009, Inf. Softw. Technol..

[49]  A. Steven Klusener,et al.  Towards Recovering Architectural Concepts Using Latent Semantic Indexing , 2008, 2008 12th European Conference on Software Maintenance and Reengineering.

[50]  Rajiv Gupta,et al.  Unified control flow and data dependence traces , 2007, TACO.

[51]  Denys Poshyvanyk,et al.  The conceptual cohesion of classes , 2005, 21st IEEE International Conference on Software Maintenance (ICSM'05).

[52]  Xiangyu Zhang,et al.  Efficient online detection of dynamic control dependence , 2007, ISSTA '07.

[53]  Václav Rajlich,et al.  Case study of feature location using dependence graph , 2000, Proceedings IWPC 2000. 8th International Workshop on Program Comprehension.

[54]  Kamran Sartipi,et al.  Dynamic Analysis of Software Systems using Execution Pattern Mining , 2006, 14th IEEE International Conference on Program Comprehension (ICPC'06).

[55]  Gregg Rothermel,et al.  Whole program path-based dynamic impact analysis , 2003, 25th International Conference on Software Engineering, 2003. Proceedings..

[56]  Rob C. van Ommering Building product populations with software components , 2002, ICSE '02.

[57]  V. Malheiros,et al.  A Visual Text Mining approach for Systematic Reviews , 2007, ESEM 2007.

[58]  Uri Blumenthal,et al.  Classification and computation of dependencies for distributed management , 2000, Proceedings ISCC 2000. Fifth IEEE Symposium on Computers and Communications.

[59]  Eliane Martins,et al.  Fault injection approach based on dependence analysis , 2005, 29th Annual International Computer Software and Applications Conference (COMPSAC'05).

[60]  Yael Dubinsky,et al.  Combined static and dynamic analysis for inferring program dependencies using a pattern language , 2006, CASCON.

[61]  Martin P. Robillard,et al.  Topology analysis of software dependencies , 2008, TSEM.

[62]  Robert J. Walker,et al.  Polylingual Dependency Analysis Using Island Grammars: A Cost Versus Accuracy Evaluation , 2007, 2007 IEEE International Conference on Software Maintenance.

[63]  Hee Yong Youn,et al.  Context-based Dynamic Channel Management for Efficient Event Service in Pervasive Computing , 2007 .

[64]  Manish Gupta,et al.  Discovering Dynamic Dependencies in Enterprise Environments for Problem Determination , 2003, DSOM.

[65]  Lulu Huang,et al.  Precise Dynamic Impact Analysis with Dependency Analysis for Object-oriented Programs , 2007, 5th ACIS International Conference on Software Engineering Research, Management & Applications (SERA 2007).

[66]  Eleni Stroulia,et al.  Understanding the Evolution and Co-evolution of Classes in Object-oriented Systems , 2006, Int. J. Softw. Eng. Knowl. Eng..

[67]  Arie van Deursen,et al.  Understanding Execution Traces Using Massive Sequence and Circular Bundle Views , 2007, 15th IEEE International Conference on Program Comprehension (ICPC '07).

[68]  Robert L. Glass,et al.  Matching methodology to problem domain , 2004, CACM.

[69]  Nenad Medvidovic,et al.  Towards a taxonomy of software connectors , 2000, Proceedings of the 2000 International Conference on Software Engineering. ICSE 2000 the New Millennium.

[70]  A. Maule,et al.  Impact analysis of database schema changes , 2008, 2008 ACM/IEEE 30th International Conference on Software Engineering.

[71]  Shinji Kusumoto,et al.  Debugging support for aspect-oriented program based on program slicing and call graph , 2004, 20th IEEE International Conference on Software Maintenance, 2004. Proceedings..

[72]  Alexander Keller,et al.  Dynamic Dependencies in Application Service Management , 2000, PDPTA.

[73]  Jianjun Zhao,et al.  Change impact analysis for aspect-oriented software evolution , 2002, IWPSE '02.

[74]  Bogdan Korel,et al.  Model based regression test reduction using dependence analysis , 2002, International Conference on Software Maintenance, 2002. Proceedings..

[75]  Oscar Nierstrasz,et al.  Tracking Objects to Detect Feature Dependencies , 2007, 15th IEEE International Conference on Program Comprehension (ICPC '07).

[76]  Jonathan I. Maletic,et al.  Combining Single-Version and Evolutionary Dependencies for Software-Change Prediction , 2007, Fourth International Workshop on Mining Software Repositories (MSR'07:ICSE Workshops 2007).

[77]  Alexander L. Wolf,et al.  Architecture-level dependence analysis in support of software maintenance , 1998, ISAW '98.

[78]  Igor Ivkovic,et al.  Towards Automatic Establishment of Model Dependencies Using Formal Concept Analysis , 2006, Int. J. Softw. Eng. Knowl. Eng..

[79]  Joe D. Warren,et al.  The program dependence graph and its use in optimization , 1987, TOPL.

[80]  Jie Gao,et al.  Approaches to building self healing systems using dependency analysis , 2004, 2004 IEEE/IFIP Network Operations and Management Symposium (IEEE Cat. No.04CH37507).

[81]  Gregg Rothermel,et al.  Incremental dynamic impact analysis for evolving software systems , 2003, 14th International Symposium on Software Reliability Engineering, 2003. ISSRE 2003..

[82]  Kim G. Larsen,et al.  Verification of Large State/Event Systems Using Compositionality and Dependency Analysis , 1998, Formal Methods Syst. Des..

[83]  David F. Redmiles,et al.  On the relationship between software dependencies and coordination: field studies and tool support , 2005 .

[84]  Nachiappan Nagappan,et al.  Using Software Dependencies and Churn Metrics to Predict Field Failures: An Empirical Case Study , 2007, First International Symposium on Empirical Software Engineering and Measurement (ESEM 2007).

[85]  Ha Jin Hwang An Empirical Assessment of the Perception of Computer Security between US and Korea : Focused on Rootkits , 2007, 5th ACIS International Conference on Software Engineering Research, Management & Applications (SERA 2007).

[86]  Christian Lovis,et al.  Mapping moving landscapes by mining mountains of logs: novel techniques for dependency model generation , 2006, VLDB.

[87]  Eleni Stroulia,et al.  Assessing the maintainability benefits of design restructuring using dependency analysis , 2003, Proceedings. 5th International Workshop on Enterprise Networking and Computing in Healthcare Industry (IEEE Cat. No.03EX717).

[88]  Dave McComb,et al.  Dependency analysis and visualization as tools to prolong system life , 2002, Proceedings 26th Annual International Computer Software and Applications.

[89]  Richard Stevens,et al.  Systems engineering : coping with complexity , 1998 .

[90]  Vassilios Tzerpos,et al.  Software clustering based on dynamic dependencies , 2005, Ninth European Conference on Software Maintenance and Reengineering.

[91]  Pierre America,et al.  Analyzing the Actual Execution of a Large Software-Intensive System for Determining Dependencies , 2008, 2008 15th Working Conference on Reverse Engineering.

[92]  Hasan Ural,et al.  Test Suite Reduction Based on Dependence Analysis , 2006, ISCIS.

[93]  Alexander L. Wolf,et al.  Architecture-Level Dependence Analysis for Software Systems , 2001, Int. J. Softw. Eng. Knowl. Eng..

[94]  Lori A. Clarke,et al.  A Formal Model of Program Dependences and Its Implications for Software Testing, Debugging, and Maintenance , 1990, IEEE Trans. Software Eng..

[95]  Harald Wertz,et al.  Visualizing Dynamic Data Dependences as a Help to Maintain Programs 1 , 2005 .

[96]  Arie van Deursen,et al.  Splitting a large software repository for easing future software evolution - an industrial experience report , 2009, J. Softw. Maintenance Res. Pract..

[97]  Alessandro F. Garcia,et al.  On the Impact of Evolving Requirements-Architecture Dependencies: An Exploratory Study , 2008, CAiSE.

[98]  Péter Jacsó,et al.  Google Scholar revisited , 2008, Online Inf. Rev..

[99]  Chengying Mao,et al.  Using Dependence Matrix to Support Change Impact Analysis for CBS , 2007, 2007 International Conference on Computational Science and its Applications (ICCSA 2007).

[100]  Tao Jiang,et al.  Locating dependence structures using search-based slicing , 2008, Inf. Softw. Technol..

[101]  Alexander L. Wolf,et al.  The Application of Dependence Analysis to Software Architecture Descriptions , 2003, SFM.

[102]  Zakarya A. Alzamil Redundant Coupling Detection Using Dynamic Dependence Analysis , 2007, International Conference on Software Engineering Advances (ICSEA 2007).

[103]  Debra J. Richardson,et al.  Describing Dependencies in Component Access Points , 2001 .

[104]  Wei Li,et al.  An Active Method to Building Dynamic Dependency Model for Distributed Components , 2005, Second International Conference on Autonomic Computing (ICAC'05).

[105]  Baowen Xu,et al.  An approach to analyzing dependency of concurrent programs , 2000, Proceedings First Asia-Pacific Conference on Quality Software.

[106]  Kenny Wong,et al.  Extracting and representing cross-language dependencies in diverse software systems , 2005, 12th Working Conference on Reverse Engineering (WCRE'05).

[107]  KüffnerRobert,et al.  RelEx---Relation extraction using dependency parse trees , 2007 .

[108]  Ralf Zimmer,et al.  RelEx - Relation extraction using dependency parse trees , 2007, Bioinform..

[109]  Bixin Li,et al.  Matrix-based component dependence representation and its applications in software quality assurance , 2005, SIGP.

[110]  Barbara Kitchenham,et al.  Procedures for Performing Systematic Reviews , 2004 .

[111]  Satish Narayanasamy,et al.  Recording shared memory dependencies using strata , 2006, ASPLOS XII.

[112]  Vahid Garousi,et al.  Analysis and visualization of behavioral dependencies among distributed objects based on UML models , 2006, MoDELS'06.

[113]  Andrian Marcus,et al.  Static techniques for concept location in object-oriented code , 2005, 13th International Workshop on Program Comprehension (IWPC'05).