Software systems are not static, they have to undergo
frequent changes to stay fit for purpose, and in the process of
doing so, their complexity increases. It has been observed that
this process often leads to the erosion of the systems design
and architecture and with it, the decline of many desirable
quality attributes, such as maintainability. This process can
be captured in terms of antipatterns - atomic violations of
widely accepted design principles. We present a visualisation
that exposes the design of evolving Java programs, highlighting
instances of selected antipatterns including their emergence and
cancerous growth. This visualisation assists software engineers
and architects in assessing, tracing and therefore combating
design erosion. We evaluated the effectiveness of the
visualisation in four case studies with ten participants.
Visualizing Design Erosion: How Big Balls of Mud are Made
1. Visualizing Design Erosion:
How Big Balls of Mud are Made
VISSOFT 2018
Madrid, 2018-09-24
David Baum, Jens Dietrich,
Craig Anslow, Richard Müller
2. Visualizing Design Erosion | VISSOFT 2018
David Baum 2
USE CASE
Antipattern and smells are used to assess systems
design and archtitecture with static analysis
The evolution of antipatterns is under-researched
Trace back origin of antipattern instances
Find versions with design erosion/quality loss
Once you know the when you can investigate the why
Product releases under time pressure
Team changes
…
4. Visualizing Design Erosion | VISSOFT 2018
David Baum 4
Packages
gray circles
Classes
green disks
Nested according to
containment tree
STRUCTURE VISUALIZATION
5. Visualizing Design Erosion | VISSOFT 2018
David Baum 5
ANTIPATTERN VISUALIZATION
Antipattern instances can be selected for detailed view
depedencies between classes
Disk size indicates the
importance of the
classes for the antipattern
instance
Biggest class is the most
central class of this anti-
pattern
Analogous for STK, but
color (green red scale) instead
of size indicates centrality
6. Visualizing Design Erosion | VISSOFT 2018
David Baum 6
EVOLUTION VISUALIZATION
Visualize versions above each other
x and y coordinates of disks are stable, so identical disks
are exactly above each other
7. Visualizing Design Erosion | VISSOFT 2018
David Baum 7
EVALUATION
Preliminary evaluation with 10 participants
Which version reduced the quality of the system the
most?
Which packages are part of the original Circular
Dependency Component 1?
With which class would you start refactoring?
Result: „it works“
Participants gave reasonable answers
Participants like the tool and find it effective for solving the
tasks
Compairing versions was described as „very intuitive“
No complains about occlusion
8. Visualizing Design Erosion | VISSOFT 2018
David Baum 8
BUT ...
Red green scale is very misleading
Some complaints about navigation mode
Participants asked for more context/information for
solving the tasks
Some technical issues, mostly with X3DOM as
visualization technique
Scalability needs to be improved
9. Visualizing Design Erosion | VISSOFT 2018
David Baum 9
SUMMARY
„Big Balls of Mud“ can be traced over multiple versions
to see how they emerged and evolved
Visualizing design erosion …
supports refactoring decisions,
supports assessing quality of software architecture
might be a starting point for further analysis, combining
technical and social information
10. Visualizing Design Erosion | VISSOFT 2018
David Baum 10
References
W. Stevens, G. Myers, and L. Constantine. 1979.
Structured design. In Classics in software engineering,
Edward Nash Yourdon (Ed.). Yourdon Press, Upper
Saddle River, NJ, USA 205-232.
A. J. Riel. Object-Oriented Design Heuristics. Addison-
Wesley Longman Publishing Co., Inc., Boston, MA,
USA, 1996.