CSE584: Software Engineering Lecture 6: Evolution (A)

2/6/01


Click here to start


Table of Contents

CSE584: Software Engineering Lecture 6: Evolution (A)

Outline

Software evolution

A legacy

Change

Why does it change?

Kinds of change

High cost, long time

Total life cycle cost

Open question

High-level answer

Aside: reuse

(Common) Observations

Laws of Program Evolution Program Evolution: Processes of Software Change (Lehman & Belady)

Law of increasing complexity

Reprise

Statistically regular growth

And two others

Open question

Approaches to reducing cost

Approaches to reducing cost

Program understand & comprehension

Various strategies

Did you try to understand?

A scenario

A view of maintenance

Sample (simple) task

Recap: example

Source models

Example source models

Combining source models

Extracting source models

Program databases

Three classic examples

Information characteristics

Ideal source models

Conservative source models

Optimistic source models

Approximate source models

Static vs. dynamic

Must iterate

Another maintenance task

What source model?

Start by searching

What files to search?

False positives

More false negatives

It’s not just syntax

Tools vs. task

Finding vs. updating

Downstream consequences

An alternative approach

But

Recap

Build up idioms

Source model accuracy

Call graph extraction tools (C)

... tools (C)

Apply a syntactic CGE tool

How precise?

A CGE experiment

Experimental results

Pairwise comparison (example)

Quantitative Results

Qualitative results

Call graph characterization

Next week

Author: David Notkin

Email: notkin@cs.washington.edu

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

Download presentation source