Interconnectivity analysis techniques for error localization in large systems

Abstract Software systems contain multiple types of interrelations among components — data, control, and sequencing, among others. We are developing interconnectivity analysis techniques that derive multiple views of the structure of large-scale software systems. These techniques calculate interconnections among components and then recursively group the components into sets according to their degree of interconnection. These techniques are especially suited to large-scale systems (e.g., > 100,000 lines) since numerous types of interconnections can be determined automatically in a tractable manner. Interconnectivity analysis techniques produce visualizations of system structure and can be used to document systems, model their evolution over time, compare system structure, guide regression testing, or localize error-prone structure. This article summarizes two studies using interconnectivity analysis. In earlier work, one such technique was applied effectively in a feasibility study to characterize the error-prone components in a large-scale system from a production environment. Routines with the highest coupling/cohesion ratios had 8.1 times more errors per 1,000 source lines of code that did routines with the lowest coupling /cohesion ratios. A second validation study is currently underway. In this study, we are applying interconnectivity analysis techniques to the design specification of a large distributed command and control system. Tools supporting interconnectivity analysis will be integrated into the Amadeus measurement-driven analysis and feedback system.

[1]  Victor R. Basili,et al.  System Structure Analysis: Clustering with Data Bindings , 1985, IEEE Transactions on Software Engineering.

[2]  H. Scheffé,et al.  The Analysis of Variance , 1960 .

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

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

[5]  Sallie M. Henry,et al.  Software Structure Metrics Based on Information Flow , 1981, IEEE Transactions on Software Engineering.

[6]  B. H. Yin,et al.  The establishment and use of measures to evaluate the quality of software designs , 1978 .

[7]  Walt Scacchi,et al.  A Software Hypertext Environment for Configured Software Descriptions , 1988, SCM.

[8]  Adam A. Porter,et al.  Learning from Examples: Generation and Evaluation of Decision Trees for Software Resource Analysis , 1988, IEEE Trans. Software Eng..

[9]  Glenford J. Myers,et al.  Composite/structured design , 1978 .

[10]  R. W. Selby,et al.  Generating hierarchical system descriptions for software error localization , 1988, [1988] Proceedings. Second Workshop on Software Testing, Verification, and Analysis.

[11]  Victor R. Basili,et al.  Error localization during software maintenance: generating hierarchical system descriptions from the source code alone , 1988, Proceedings. Conference on Software Maintenance, 1988..

[12]  Meir M. Lehman,et al.  On understanding laws, evolution, and conservation in the large-program life cycle , 1984, J. Syst. Softw..

[13]  Laszlo A. Belady,et al.  System partitioning and its measure , 1981, J. Syst. Softw..

[14]  Jack C. Wileden,et al.  Foundations for the Arcadia environment architecture , 1989, SDE 3.

[15]  Victor R. Basili,et al.  Iterative enhancement: A practical technique for software development , 1975, IEEE Transactions on Software Engineering.

[16]  Douglas C. Schmidt,et al.  Metric-driven analysis and feedback systems for enabling empirically guided software development , 1991, [1991 Proceedings] 13th International Conference on Software Engineering.

[17]  Brian Everitt,et al.  Cluster analysis , 1974 .

[18]  Adam A. Porter,et al.  Empirically guided software development using metric-based classification trees , 1990, IEEE Software.

[19]  Victor R. Basili,et al.  Analyzing Error-Prone System Structure , 1991, IEEE Trans. Software Eng..

[20]  Sallie M. Henry,et al.  Software quality metrics based on interconnectivity , 1981, J. Syst. Softw..