Degradation archaeology: studying software flaws' evolution.

Angela Lozano, Michel Wermelinger, Bashar Nuseibeh · 2006

Given that software evolution depends on the ability to keep the knowledge about the system and the architectural integrity, research has been focussed on how to ease code comprehension and how to avoid architectural decay. Although these approaches have demonstrated to be useful, the lack of understanding of software degradation inhibits us to tackle it more adequately. Our position is that by studying the evolution of structural problems based on source code evidence (like bad smells, violation of design rules and bad programming styles), theory and practice of software evolution can be enhanced. The study proposes experiments to analyse these structural problems along several versions to detect their relations and evolution and to evaluate how structural changes impact them. The evolution of structural problems is considered in two ways how a structural problem degrades with time, by studying them in isolated compilation units and how related structural problems evolve as a group. The impact of restructuring is also considered by identifying the sets of refactorings applied to successfully remove structural problems in a compilation unit (individually) or in a certain version (as a group). By studying the causes of structural flaws through different sources of information like metrics, design snapshots and the CVS repository, we will obtain a high-level view that will allow us to generate predictive and evaluative models for supporting decision making in software evolution.

Read the paper · More papers on PaperTik