CSE584: Software EngineeringLecture 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 EvolutionProgram Evolution: Processes of Software Change(Lehman & Belady)
Law of increasing complexity
Reprise
Statistically regular growth
And two others
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
Email: notkin@cs.washington.edu
Home Page: http://www.cs.washington.edu/education/courses/584
Download presentation source