Red lines represent relationships to remove.
Red nodes represent classes to remove.
Zoom in / out with your mouse wheel and click/move to drag the image.
Clicking on a node in the DOT graph (if present below) will open its source file in the repo. Right/Alt click to open in a new browser tab. Excludes classes that have no incoming and outgoing edges
Number of classes: 382 Number of relationships: 1134
Current Class Cycle Count: 28
Number of Class Relationships to Remove: 54
Classes with * should be broken apart
Removing class relationships below will eliminate class cycles
Red lines represent relationships to remove.
Red nodes represent classes to remove.
Zoom in / out with your mouse wheel and click/move to drag the image.
Excludes packages that have no incoming and outgoing edges
Number of packages: 35 Number of relationships: 136
Current Package Cycle Count: 6
Number of Package Relationships to Remove: 20
Packages and classes with * should be broken apart
Removing package relationships below will eliminate package cycles
Package Relationship
Priority
In Pkg Cycles
Relationship Strength
Class Relationships to Remove To Break Package Relationship
Child class is large and often complex, but doesn't override or use many of the parent class's methods
Solution:
Do one or more of the following: - Extract the child class into a separate class. Move the methods that are used from the parent class into the child class. - Make unused protected members private in the parent class. - If a parent class has multiple children, move methods not used by all descendants to another class.
Refused Parent Bequest Chart Legend:
X-Axis: Effort to refactor
Y-Axis: Relative churn
Color: Priority of what to fix first
Circle size: Priority (Visual) of what to fix first
Refused Parent Bequest by the numbers: (Refactor Starting with Priority 1)
- Move the method closer to the calling classes (move the behavior closer to the data) if it is small. - If it is a large method, treat is as a Brain Method and decompose it into two or more smaller methods.
Shotgun Surgery Chart Legend:
X-Axis: Effort to refactor
Y-Axis: Relative churn
Color: Priority of what to fix first
Circle size: Priority (Visual) of what to fix first
Shotgun Surgery by the numbers: (Refactor Starting with Priority 1)
Limiting number of cycles displayed to 1 to keep page load time fast
Cycle Map
×
Red lines represent relationships to remove.
Red nodes represent classes to remove.
Zoom in / out with your mouse wheel and click/move to drag the image.
Clicking on a node in the DOT graph (if present below) will open its source file in the repo. Right/Alt click to open in a new browser tab.
* indicates class to remove, bold text indicates relationships to remove to decompose cycle