CSE584: Software Engineering Lecture 8: Tools & Analysis (A)

2/20/01


Click here to start


Table of Contents

CSE584: Software Engineering Lecture 8: Tools & Analysis (A)

This week and next

Structure

What’s a tool?

What’s analysis?

Tools you probably use

What other tools do you use?

Some historical context

CASE

Environments vs. tools (very roughly)

Why environments?

Why environments?

What are environments?

Computer help?

The “promise” of CASE

CASE is ...

CASE is ...

CASE is

CASE confusion

Appearances in INSPEC

(A few) classic environments

Interlisp (Xerox PARC)

Smalltalk-80 (Xerox PARC)

Unix (Bell Labs)

Cedar (Xerox PARC)

Commercialization

The business of CASE

The business of CASE

The business of CASE

Some context

CASE quotation I

CASE quotation II

Myth #1 of CASE

Myth #2 of CASE

Myth #3 of CASE

Myth #4 of CASE

Organizational issues (Orlikowski)

Myth #5 of CASE

Myth #6 of CASE

Tools

News Flash! Notkin’s wrong!

Programming languages

However

Types

Type inferencing

Static vs. dynamic tools

Static tools

Dynamic tools

A classic static tool: slicing

Slicing, dicing, chopping

Basic ideas

Example

Weiser’s approach

Ottenstein & Ottenstein

PDG for the example

Procedures

The next slide...

PPT Slide

Context

Reps et al.

Technical issues

LCLint next

LCLint [Evans et al.]

Detects potential bugs

Enforces coding style

LCLint Does Not

Ex: Definition before Use

More Accurate Checks

Abstraction Boundaries

Checking Abstract Types

Checking Side Effects

Checking Use of Memory

If C Were Better...

Experience with LCLint

Understanding Legacy Code

Fundamental benefit

Purify (& Bounds-checker)

Memory State Transitions

Other violations

Overhead

Next week

Author: David Notkin

Email: notkin@cs.washington.edu

Home Page: http://www.cs.washington.edu/education/courses/584

Download presentation source