ece 355: software engineering chapter 11 part i. course outline unit 1: software engineering basics...
Post on 25-Dec-2015
212 Views
Preview:
TRANSCRIPT
ECE 355: Software Engineering
CHAPTER 11 Part I
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
Overview
Software Reliability– What Is Software Reliability?– Basic concepts– Models
Software Reliability
• What Is Software Reliability?– 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
Basic Concepts
• Failure and fault– 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 – 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
Basic Concepts
Software System
Failure behavior: - # of faults in the SW- Exec environment (run types)
• Average Total Number of Failures: μ(τ),• Failure Intensity – Number of Failures per time unit : λ(τ)•Mean Time to Failure 1/λ(τ)
Failures
Random process
Reliability Models(of Musa)
• Assumptions• Two models
– Basic– Logarithmic
• Diff: Change in failure intensity per failure seen– Basic: decrement is constant– Logarithmic: decrement reduces
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
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
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
Reliability ModelsBasic model
1 - v0]
Logarithmic model
exp
v0
Basic
Log.
Mean failures exp.
f
ailu
re in
tens
ityInitial failure intensity, 0
failure intensity decayλ: Failure intensityλ0: Initial failure intensity at start of executionμ: Average total number of failures at a given point in timev0: Total number of failures over infinite time
Reliability Models
Basic model
v0[1 – exp/v0
0exp/v0
Logarithmic model
ln00
v0Basic
Log.
Basic
Log.
Reliability ModelsExample: 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 0.000454 failure/CPU-hr. Predict the additional testing time to achieve the stated objective.
Ans.: We know that 0exp/v0
At time 1, 0exp/v0p
At time 2, 0exp/v0f
- (v0/ 0).ln(p/f)
v0 = 100 faults, 0 = 10 failures/CPU-hr p = 3.68 failures/CPU-hr, f = 0.000454 failure/CPU-hr
esting time = ( - CPU-hr
top related