University of Waterloo
Tracking Structural Evolution using Origin Analysis
Michael Godfrey and Qiang Tu
Software Architecture Group (SWAG) University of Waterloo
20 May, 2002 IWPSE-02 2
Overview
- Open questions in software evolution research
- Motivation
- “Origin analysis” and Beagle
- Efficiency considerations
- An example
- Open questions in origin analysis
20 May, 2002 IWPSE-02 3
Some open questions
- Philosophical:
– Does software evolve in the same way as frogs and social structures?
- The Nature of Economies, by Jane Jacobs
– What are the recurring patterns and compelling metaphors of software evolution?
- Methodological:
– How to measure size?
- How to correlate size and quality?
– How to measure change?
- How to model architectural change?
– What is the predictive power of such models?
- Do the “other phenomena” dominate?
20 May, 2002 IWPSE-02 4
Some open questions
- Practical:
– What information do developers need to know about how a software system has evolved? – What kinds of tools would be useful:
- to the front-line developer?
- to the manager?
– How best to deal with:
- Large data sets
(large_system ∗ many_versions)
- Visualization and navigation
20 May, 2002 IWPSE-02 5
Motivation
- Want to build tools to aid developers in understanding how
software evolves.
– Change can be mostly additive … or much more invasive
- Building an accurate model of how a system has evolved is
hard in the presence of refactoring, redesign, structural and architectural change.
– Usual assumption:
- A change in name/location of a software entity means the old one died and
a new one was born
– … which means that “structural” discontinuities break old models of the system, and cause useful knowledge to be lost.
20 May, 2002 IWPSE-02 6
Motivation
- This also begs the question of software artifact ontology:
– What are the software entities/artifacts of interest in evolutionary studies?
- All CVSd things?
- “Hard” machine processable things, like source code files?
- User docs, requirements docs, …?
- Atomic vs. composite things?
(subsystems vs. files vs. classes vs. methods)
– What does it mean for an artifact/entity to be a different version of an
- lder artifact/entity?
- Same name? file? location? CVS control?
- “Because I say so”?