Publication | Closed Access
Finding refactorings via change metrics
254
Citations
28
References
2000
Year
Unknown Venue
Software MaintenanceEngineeringSoftware EngineeringReverse EngineeringSoftware AnalysisFormal VerificationData ScienceReverse Engineering EffortSoftware AspectSoftware MiningSoftware Re-engineeringKnowledge DiscoveryChange MetricsComputer ScienceSoftware DesignCode RefactoringSoftware EvolutionRefinement TechniqueProgram AnalysisSoftware TestingFormal MethodsSystem SoftwareSoftware Reverse EngineeringRefactoringCase Studies
Reverse engineering uncovers a software system’s design and rationale, and is essential because changing requirements cause implementations to drift from their original design. The study aims to detect refactorings by applying lightweight, object‑oriented metrics to successive versions, focusing reverse engineering on where implementations have changed. The approach applies these metrics to successive versions and is validated through three case studies of mature object‑oriented systems with multiple releases. The case studies show that the heuristics help reverse engineering by concentrating attention on the system’s relevant parts.
Reverse engineering is the process of uncovering the design and the design rationale from a functioning software system. Reverse engineering is an integral part of any successful software system, because changing requirements lead to implementations that drift from their original design. In contrast to traditional reverse engineering techniques ---which analyse a single snapshot of a system--- we focus the reverse engineering effort by determining where the implementation has changed. Since changes of object-oriented software are often phrased in terms of refactorings, we propose a set of heuristics for detecting refactorings by applying lightweight, object-oriented metrics to successive versions of a software system. We validate our approach with three separate case studies of mature object-oriented software systems for which multiple versions are available. The case studies suggest that the heuristics support the reverse engineering process by focusing attention on the relevant parts of a software system.
| Year | Citations | |
|---|---|---|
Page 1
Page 1