Architectural reconstruction (3): Evolution Analysis Flashcards
What is Lehman’s Law of Continuing change about?
An e-type program that is used in a real-world environment must change, or become
progressively less useful in that environment. (Lehman’s Law of Continuing Change).
E-type system:
- An e-type system is embedded in the real world
- The world changes, so the system must change
What is Software Evolution?
Software evolution is the continual development of a piece of software
after its initial release to address changing stakeholder and/or market
requirements.
- We used to talk about software maintenance
- Nowadays evolution is the preferred term
What is Evolution Analysis, and how to we find information about its evolution?
= the study of how a system evolves over time.
Where can we find such information about its evolution?
- Version control repository.
- E.g. use the tool Git-Truck
What can Git Truck be used for in architecture recovery?
To highlight the parts of the system that are most changed.
Studies observe correlation between code churn and complexity metrics.
High code churn predicts bugs better than size.
What is code churn?
= a metric that indicates how often a given piece of code—e.g., a file, a class, a
function—gets edited.
———————-
EXTRA: can be detected with language independent analysis (which is good for
polyglot systems)
What is evolutionary hotspot viewpoint?
These hotspots are areas where the system’s architecture needs to be flexible and adaptable to accommodate future evolution and growth.
—————————
the focus is on identifying and analyzing those specific parts of the system that are likely to undergo frequent changes or have a higher potential for future modifications