lecture-19 Program Analysis and Software Reliability

lecture-19 Program Analysis and Software Reliability - 1...

Info iconThis preview shows pages 1–3. Sign up to view the full content.

View Full Document Right Arrow Icon

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
This is the end of the preview. Sign up to access the rest of the document.

Unformatted text preview: 1 Final exam week Three things on finals week: final exam final project presentations final project report Program analysis and Software Reliability Software reliability: issues What are the issues? Software reliability: issues What is software reliability? How to measure it? Bug counts ? Will we ever have bug-free software? How many 9s ? Service Level Agreements ? What is a bug? Adherence to specifications But what is a specification User unhappy: is that a bug? Different levels of severity Software reliability: issues Cost of the methods for achieving reliability Independently develop 5 versions of the software, run them all in parallel & less likely that they fail at the same time in the same way. But cost is high For tools, cost of development of the tools Burden on the programmer fully automated vs. semi-automated methods allow progressive adoption Scalability vs. precision start with scalability and get precision later? Or the other way around? Software reliability: issues Level of guarantee provided by the method Hard guarantees, statistical guarantees, no formal guarantee What if tool is broken: trusted computing base When is the method used? compile-time, link-time, load-time, run-time What does the tool see? source code, assembly, the whole program or part of the program 2 One way of dividing the spectrum Compiler if () { x := ; } else { y := ; } ; 01 0 0 10 1 10 1 0 01 0 10 1 1 01 1 One way of dividing the spectrum Compiler Compiler Compiler if () { x := ; } else { y := ; } ; 01 0 0 10 1 10 1 0 01 0 10 1 1 01 1 Static techniques Testing techniques Run-time techniques Compiler if () { x := ; } else { y := ; } ; 01 0 0 10 1 10 1 0 01 0 10 1 1 01 1 One way of dividing the spectrum Compiler Compiler Compiler if () { x := ; } else { y := ; } ; 01 0 0 10 1 01 0 0 10 1 01 0 0 10 1 10 1 0 01 0 10 1 0 01 0 10 1 0 01 0 10 1 1 01 1 10 1 1 01 1 10 1 1 01 1 Static techniques Testing Testing Testing techniques techniques techniques Run Run Run-time time time techniques techniques techniques 01 0 0 10 1 10 1 0 01 0 10 1 1 01 1 Testing techniques Run-time techniques Static techniques Static Techniques Spec: says what code should and should not do Complete spec: specifies all behaviors (hard to formalize) Incomplete spec: only defines some behaviors e.g. no null derefs, requests received are eventually processed Many formalisms exist for specs (Pre/Post conditions, FSMs, Temporal Logic, Abstract State Machines etc.) if () { x := ; } else { y := ; } ; Spec & Code satisfies spec?...
View Full Document

This note was uploaded on 02/19/2008 for the course CSE 231 taught by Professor Lerner during the Fall '06 term at UCSD.

Page1 / 10

lecture-19 Program Analysis and Software Reliability - 1...

This preview shows document pages 1 - 3. Sign up to view the full document.

View Full Document Right Arrow Icon
Ask a homework question - tutors are online