Evaluation of Safety Critical Software David L Parnas

  • Slides: 13
Download presentation
Evaluation of Safety Critical Software David L. Parnas, C ACM, June 1990 841 f

Evaluation of Safety Critical Software David L. Parnas, C ACM, June 1990 841 f 06 parnas 13 1

Coin toss u How many heads in a row before you decide the coin

Coin toss u How many heads in a row before you decide the coin is not “fixed”. 841 f 06 parnas 13 2

Table 1 Table I shows that, if our design target was to have the

Table 1 Table I shows that, if our design target was to have the probability of failure be less than 1 in 1000, performing between 4500 and 5000 tests (randomly chosen from the appropriate test case distribution) without failure would mean that the probability of an unacceptable product passing the test was less than 1 in a hundred. 841 f 06 parnas 13 3

Table II 841 f 06 parnas 13 4

Table II 841 f 06 parnas 13 4

Parnas’ model u Is this the marble model? u We want 95% confidence that

Parnas’ model u Is this the marble model? u We want 95% confidence that the reliability of the software running for 100 days is more than 80 percent. 841 f 06 parnas 13 5

Linear Functions Some engineers believe one can design black box tests without knowledge of

Linear Functions Some engineers believe one can design black box tests without knowledge of what is inside the box. This is, unfortunately, not completely true. If we know that the contents of a black box exhibit linear behavior, the number of tests needed to make sure it would function as specified could be quite small. If we know that the function can be described by a polynomial of order “N, ” we can use that information to determine how many tests are needed. If the function can have a large number of discontinuities, far more tests are needed. 841 f 06 parnas 13 6

FSM model In effect, loading a program in the machine selects a terminal submachine

FSM model In effect, loading a program in the machine selects a terminal submachine consisting of all states that can be reached from the initial state. The software can be viewed as a finite state machine described by two very large tables. This model of software allows us to define what we mean by the number of faults in the software; it is the number of entries in the table that specify behavior that would be considered unacceptable. 841 f 06 parnas 13 7

Finite State Machine Model u How does a program map to this model u

Finite State Machine Model u How does a program map to this model u The faults are the errors in the transition u How is this useful to estimation? 841 f 06 parnas 13 8

FSM and the triangle? u For the triangle problem and the cfg as fsm,

FSM and the triangle? u For the triangle problem and the cfg as fsm, is Parnas’ fault counts always the same as ours? u Is this true for all programs and faults? 841 f 06 parnas 13 9

Information Hiding u Parnas implies that information hiding or object-oriented programming improves the reliability

Information Hiding u Parnas implies that information hiding or object-oriented programming improves the reliability of software u Is this true for OO? 841 f 06 parnas 13 10

OO and testing u Given two programs (one OO and one non. OO) that

OO and testing u Given two programs (one OO and one non. OO) that do the same thing, is E(Q) always lower in the OO version? 841 f 06 parnas 13 11

Reliability Growth Models Other portions of the literature are concerned with reliability growth models.

Reliability Growth Models Other portions of the literature are concerned with reliability growth models. These attempt to predict the reliability of the next (corrected) version on the basis of reliability data collected from previous versions. Most assume the failure rate is reduced whenever an error is corrected. They also assume the reductions in failure rates resulting from each correction are predictable. These assumptions are not justified by either theoretical or empirical studies of programs. Reliability growth models may be useful for management and scheduling purposes, but for safetycritical applications one must treat each modification of the program as a new program. Because even small changes can have major effects, we should consider data obtained from previous versions of the program to be irrelevant. 841 f 06 parnas 13 12