Robustness and diagnosability of OO systems designed by contracts

While there is a growing interest in component-based systems for industrial applications, little effort has so far been devoted to quality evaluation of these systems. This paper presents the definition of measures for two quality factors, namely robustness and "diagnosability" for the special case of object-oriented (OO) systems, for which thee approach known as design-by-contract has been used. The main steps in constructing these measures are given, from informal definitions of the factors to be measured to the mathematical model of the measures. To fix the parameters, experimental studies have been conducted, essentially based on applying mutation analysis in the OO context. Several measures are presented that reveal and estimate the contribution of the contracts' quality and density to the overall quality of a system in terms of robustness and diagnosability.

[1]  Bernhard Meyer Towards More Expressive Contracts , 2000 .

[2]  Yves Le Traon,et al.  Software diagnosability , 1998, Proceedings Ninth International Symposium on Software Reliability Engineering (Cat. No.98TB100257).

[3]  Yves Le Traon,et al.  Testing-for-trust: the genetic selection model applied to component qualification , 2000, Proceedings 33rd International Conference on Technology of Object-Oriented Languages and Systems TOOLS 33.

[4]  Martin Shepperd,et al.  Derivation and Validation of Software Metrics , 1993 .

[5]  Joseph Robert Horgan,et al.  Fault localization using execution slices and dataflow tests , 1995, Proceedings of Sixth International Symposium on Software Reliability Engineering. ISSRE'95.

[6]  Mariam Kamkar,et al.  An overview and comparative classification of program slicing techniques , 1995, J. Syst. Softw..

[7]  Mark Weiser,et al.  Programmers use slices when debugging , 1982, CACM.

[8]  Jeffrey M. Voas Software Testability Measurement for Assertion Placement and Fault Localization , 1995, AADEBUG.

[9]  V. Stavridou,et al.  Abstraction and specification in program development , 1988 .

[10]  Mark Weiser,et al.  Program Slicing , 1981, IEEE Transactions on Software Engineering.

[11]  Shari Lawrence Pfleeger,et al.  Towards a Framework for Software Measurement Validation , 1995, IEEE Trans. Software Eng..

[12]  Bertrand Meyer,et al.  Applying 'design by contract' , 1992, Computer.

[13]  Yves Le Traon,et al.  Analyzing testability on data flow designs , 2000, Proceedings 11th International Symposium on Software Reliability Engineering. ISSRE 2000.

[14]  Jeffrey M. Voas,et al.  The revealing power of a test case , 1992, Softw. Test. Verification Reliab..

[15]  Richard J. Lipton,et al.  Hints on Test Data Selection: Help for the Practicing Programmer , 1978, Computer.

[16]  Robin W. Whitty,et al.  Axiomatic Approach to Software Metrication Through Program Decomposition , 1986, Comput. J..

[17]  Jean-Marc Jézéquel,et al.  Efficient strategies for integration and regression testing of OO systems , 1999, Proceedings 10th International Symposium on Software Reliability Engineering (Cat. No.PR00443).

[18]  Sandro Morasca,et al.  Property-Based Software Engineering Measurement , 1996, IEEE Trans. Software Eng..

[19]  Jean-Marc Jézéquel,et al.  Design by Contract: The Lessons of Ariane , 1997, Computer.

[20]  B. Korel Computation of Dynamic Program Slices for Unstructured Programs , 1997, IEEE Trans. Software Eng..

[21]  A. Jefferson Offutt,et al.  An Experimental Evaluation of Data Flow and Mutation Testing , 1996, Softw. Pract. Exp..