Design Hotspots
In DV8, hotspots are defined as groups of frequently modified or bug-prone files within a given time range. DV8 extracts the design relationship between these files so that users can analyze whether design defects cause the high maintenance cost of these files.
- If the user's input does not include a target ID list, DV8 will detect a set of files that have been modified by multiple different commits and calculate a Change
- If the user's input contains a list of issue IDs, such as bug ticket IDs, these given issue IDs are defined as Target:
- DV8 first detects a set of files that multiple target issues have modified and names these files as a Seed file group. By default, DV8 considers files that have been modified because of two or more target issues as seed files. The user can change this threshold using DV8 console commands.
- DV8 will calculate a Seed Hotspot that contains the DSMs composed of these seed files only. To analyze these core files' impact on other files, DV8 also generated a set of Change Hotspots, including all files that have design relations with the seed files.
Research shows that 65% of code modifications are usually concentrated in fewer than three hotspots. The members of active hotspots may change during system evolution, but major hotspots will exist for a long time, an average of 24.6 months. If there are design anti-patterns in active hotspots, they usually reflect real design debt. Continuous tracking and detection of hot spots' occurrence and growth can reveal early design issues and help prevent severe architecture decay. Fixing design issues in hotspots can avoid many defects in multiple files.