Continuity in software systems
- 1 July 2002
- proceedings article
- Published by Association for Computing Machinery (ACM) in ACM SIGSOFT Software Engineering Notes
- Vol. 27 (4) , 196-200
- https://doi.org/10.1145/566172.566203
Abstract
Most engineering artifacts behave in a continuous fashion, and this property is generally believed to underlie their dependability. In contrast, software systems do not have continuous behavior, which is taken to be an underlying cause of their undependability. The theory of software reliability has been questioned because technically the sampling on which it is based applies only to continuous functions.This paper examines the role of continuity in engineering, particularly in testing and certifying artifacts, then considers the analogous software situations and the ways in which software is intrinsically unlike other engineered objects. Several definitions of software 'continuity' are proposed and related to ideas in software testing. It is shown how 'continuity' can be established in practice, and the consequences for testing and analysis of knowing that a program is 'continuous.Underlying any use of software 'continuity' is the continuity of its specification in the usual mathematical sense. However, many software applications are intrinsically discontinuous and one reason why software is so valuable is its natural ability to handle these applications, where it makes no sense to seek software 'continuity' or to blame poor dependability on its absence.Keywords
This publication has 9 references indexed in Scilit:
- Predicting dependability by testingPublished by Association for Computing Machinery (ACM) ,1996
- Designing programs that check their workJournal of the ACM, 1995
- Digitally continuous functionsPattern Recognition Letters, 1994
- The infeasibility of quantifying the reliability of life-critical real-time softwareIEEE Transactions on Software Engineering, 1993
- Data diversity: an approach to software fault toleranceIEEE Transactions on Computers, 1988
- ‘Continuous’ functions on digital picturesPattern Recognition Letters, 1986
- Partition Analysis: A Method Combining Testing and VerificationIEEE Transactions on Software Engineering, 1985
- Test data as an aid in proving program correctnessCommunications of the ACM, 1978
- Reliability of the Path Analysis Testing StrategyIEEE Transactions on Software Engineering, 1976