CSE584: Software EngineeringLecture 4 (October 20, 1998)
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
Observations
Laws of Program Evolution
Law of increasing complexity
Statistically regular growth
And two others
How do you go about it?
Approaches to reducing cost
Did you try to understand?
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 your 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
Email: notkin@cs.washington.edu
Other information: CSE 584, Lecture 4
Download presentation source