Table of Contents
CSE584: Software EngineeringLecture 4 (April 22, 1997)
Lecture 4, Outline [approximate minutes]
Software evolution
Why does it change?
Kinds of change
High cost, long time
Total life cycle cost
Open question
High-level answer
Observations about maintenance
Laws of Program Evolution [Belady & Lehman]
Law of increasing complexity
Law of statistically regular growth
And two others
Approaches to reducing cost
Approaches to reducing cost
A view of maintenance
Sample task
Recap: example
Source models
Example source models
Combining source models
Extracting source models
Information characteristics
Ideal source models
Conservative source models
Optimistic source models
Approximate source models
Static vs. dynamic source models
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
Another task: isolating a subsystem
Mosaic
Mosaic source code
Some initial analysis
Apply the framework
Call graph extractors
Apply the framework...
Call graph extraction tools (C)
CGE tools (C)...
Apply a syntactic CGE tool
Querying the source model
Iterate and add information
How precise is the source model?
A CGE experiment
Experimental results
Pairwise comparison (example)
Quantitative Results
Qualitative results
Call graph characterization
Back to the isolation task
Back to the isolation task...
Augmenting with dynamic calls
Alternative action
Are we done?
One approach
Other approaches
Visualization
Visualization...
Visualization...
Visualization...
Reverse engineering
Reverse engineering...
Reverse engineering...
Summarization
Summarization...
Summarization...
Summarization...
Case study: A task on Excel
The process used
An initial Reflexion Model
An iterative process (over 4 wks)
A refined Reflexion Model
Results
Wrap up
|