ece 355: software engineering chapter 11 part i. course outline unit 1: software engineering basics...

13
ECE 355: Software Engineering CHAPTER 11 Part I

Upload: jasmine-potter

Post on 25-Dec-2015

212 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ECE 355: Software Engineering CHAPTER 11 Part I. Course outline Unit 1: Software Engineering Basics Unit 2: Process Models and Software Life Cycles Unit

ECE 355: Software Engineering

CHAPTER 11 Part I

Page 2: ECE 355: Software Engineering CHAPTER 11 Part I. Course outline Unit 1: Software Engineering Basics Unit 2: Process Models and Software Life Cycles Unit

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

Page 3: ECE 355: Software Engineering CHAPTER 11 Part I. Course outline Unit 1: Software Engineering Basics Unit 2: Process Models and Software Life Cycles Unit

Overview

Software Reliability– What Is Software Reliability?– Basic concepts– Models

Page 4: ECE 355: Software Engineering CHAPTER 11 Part I. Course outline Unit 1: Software Engineering Basics Unit 2: Process Models and Software Life Cycles Unit

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

Page 5: ECE 355: Software Engineering CHAPTER 11 Part I. Course outline Unit 1: Software Engineering Basics Unit 2: Process Models and Software Life Cycles Unit

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

Page 6: ECE 355: Software Engineering CHAPTER 11 Part I. Course outline Unit 1: Software Engineering Basics Unit 2: Process Models and Software Life Cycles Unit

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

Page 7: ECE 355: Software Engineering CHAPTER 11 Part I. Course outline Unit 1: Software Engineering Basics Unit 2: Process Models and Software Life Cycles Unit

Reliability Models(of Musa)

• Assumptions• Two models

– Basic– Logarithmic

• Diff: Change in failure intensity per failure seen– Basic: decrement is constant– Logarithmic: decrement reduces

Page 8: ECE 355: Software Engineering CHAPTER 11 Part I. Course outline Unit 1: Software Engineering Basics Unit 2: Process Models and Software Life Cycles Unit

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

Page 9: ECE 355: Software Engineering CHAPTER 11 Part I. Course outline Unit 1: Software Engineering Basics Unit 2: Process Models and Software Life Cycles Unit

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

Page 10: ECE 355: Software Engineering CHAPTER 11 Part I. Course outline Unit 1: Software Engineering Basics Unit 2: Process Models and Software Life Cycles Unit

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

Page 11: ECE 355: Software Engineering CHAPTER 11 Part I. Course outline Unit 1: Software Engineering Basics Unit 2: Process Models and Software Life Cycles Unit

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

Page 12: ECE 355: Software Engineering CHAPTER 11 Part I. Course outline Unit 1: Software Engineering Basics Unit 2: Process Models and Software Life Cycles Unit

Reliability Models

Basic model

v0[1 – exp/v0

0exp/v0

Logarithmic model

ln00

v0Basic

Log.

Basic

Log.

Page 13: ECE 355: Software Engineering CHAPTER 11 Part I. Course outline Unit 1: Software Engineering Basics Unit 2: Process Models and Software Life Cycles Unit

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