Software Integration Analysis

Guangming Shi
1995-01-01
Abstract:During software development and maintenance, programmers often face the problem of demonstrating that numerous modules of a large, complex software system fit together properly and function correctly as a single program. This problem can be addressed by integration analysis and testing. Previous work in this arena focuses on testing which is used to confirm the functionality of combined modules of a program. However module interface inconsistency can be better addressed as an analysis rather than a testing problem. This thesis describes a systematic approach to software integration analysis called Quick Defect Analysis. QDA is both a general model of integration analysis and a collection of specific methods and tools that implement different kinds of analysis for different kinds of program properties. As a general model, QDA supports a comments analysis process based on hypotheses and assertions. It allows the user to annotate a program with assertions to create an abstract program model, and with hypotheses to represent program properties that are identified as needing verification. The hypotheses are verified against the abstract program model and its associated assertions. Two classes of program properties are identified: object state and event sequence. Methods and tools for facilitating the analysis of these properties are developed. In this thesis, the features of the previously described Object Property Analysis systems are summarized, and the properties of the previously undescribed Event Sequence Analysis systems are presented. OPA systems allow the description and verification of object properties and their relationships. ESA systems support the analysis of events and event sequencing properties which represent various types of operations in a program. Each system consists of a specification language for describing assertions and hypotheses and an analyzer for verifying the hypotheses. The systems have been successfully applied to published and production programs written in a range of programming languages. Previously undetected program faults were revealed in every program during the experiments indicating the effectiveness of the systems. Experimentation with the general QDA model and the specific systems indicates that QDA is a viable method for integration analysis and helps to fill void in software verification and validation methodology.
What problem does this paper attempt to address?