Presentation is loading. Please wait.

Presentation is loading. Please wait.

ECE 355: Software Engineering

Similar presentations


Presentation on theme: "ECE 355: Software Engineering"— Presentation transcript:

1 ECE 355: Software Engineering
CHAPTER 11 Part I

2 Course outline Unit 1: Software Engineering Basics
Unit 2: Process Models and Software Life Cycles Unit 3: Software Requirements Unit 4: Unified Modeling Language (UML) Unit 5: Design Basics and Software Architecture Unit 6: OO Analysis and Design Unit 7: Design Patterns  Unit 8: Testing and Reliability Unit 9: Software Engineering Management and Economics

3 Overview Software Reliability What Is Software Reliability?
Basic concepts Models

4 Software Reliability What Is Software Reliability? Uses
Defn.: Probability(failure-free op, specified time, given environment)  P(t) Affected by development process—not ageing/ manufacturing Uses Criterion for technology evaluation: expensive Project management: ready to release? More test? Size of change: change decreases reliability

5 Basic Concepts Failure and fault Time
Failure: departure of external results of program operation Fault: cause of failure that is a defect in the code (localized or not) Time Execution time (t) Calendar time (t): meaningful to managers Characterizing failure occurrence in time Time of failure: instant Time interval between failures Cumulative failures up to a given time Failures in a time interval

6 Basic Concepts Software System Random process Failure behavior:
- # of faults in the SW - Exec environment (run types) Failures Average Total Number of Failures: μ(τ), Failure Intensity – Number of Failures per time unit : λ(τ) Mean Time to Failure 1/λ(τ)

7 Reliability Models (of Musa)
Assumptions Two models Basic Logarithmic Diff: Change in failure intensity per failure seen Basic: decrement is constant Logarithmic: decrement reduces

8 Assumptions for the Basic Reliability Model
Faults are independent and distributed with constant rate of encounter Well mixed types of instructions execution time between failures is large compared to instruction execution time Test space covers use space Tests selected from a complete set of use input sets Set of inputs for each run selected randomly All failures are observed implied by our definition of failure Fault causing failure is corrected immediately otherwise reoccurrence of that failure is not counted

9 Basic (Linear) Model Assumption: decrement in failure intensity function derivative w.r.t. number of expected failures) is constant Consequence: failure intensity is function of average number of failures experienced at any given point in time failure probability

10 Logarithmic Model Decrement per encountered failure decreases
Θ is a failure intensity decay parameter Comparison of models: Basic model assumes that there is a failure intensity - logarithmic model assumes convergence to 0 failure intensity Basic model assumes a finite number of failures in the system - logarithmic model assumes infinite number

11 Reliability Models Basic model Logarithmic model l(m) = l0[1 - m/v0]
l(m) = l0exp(-qm) q: failure intensity decay λ: Failure intensity λ0: Initial failure intensity at start of execution μ: Average total number of failures at a given point in time v0: Total number of failures over infinite time Initial failure intensity, l0 l: failure intensity Basic Log. v0 m: Mean failures exp.

12 Reliability Models Basic model Logarithmic model
m(t) = v0[1 – exp(-l0t/v0)] m(t) = (1/q).ln(l0qt + 1) l(t) = l0/(l0qt + 1) l(t) = l0exp(-l0t/v0) l m Log. Log. v0 Basic Basic t t

13 Reliability Models Example: Assume that a program will experience 100 failures in infinite time. The initial failure intensity was 10 failures/CPU-hr, the present failure intensity is 3.68 failures/CPU-hour and our objective intensity is failure/CPU-hr. Predict the additional testing time to achieve the stated objective. Ans.: We know that l(t) = l0exp(-l0t/v0) At time t1, l(t1) = l0exp(-l0t1/v0) = lp At time t2, l(t2) = l0exp(-l0t2/v0) = lf t2 - t1 = (v0/ l0).ln(lp/ lf) v0 = 100 faults, l0 = 10 failures/CPU-hr lp = 3.68 failures/CPU-hr, lf = failure/CPU-hr Testing time = (t2 - t1 ) = 90 CPU-hr


Download ppt "ECE 355: Software Engineering"

Similar presentations


Ads by Google