4. Essential comprehension features
Effective cluster naming
Bounded cluster cardinality
Familiarity
Comprehension as pattern recognition
Certain subsystem patterns emerge often in
manual decompositions of software systems
12. The ACDC algorithm
Two stages:
Using a pattern-driven approach, a “skeleton”
of the final decomposition is created.
Subsystems are named appropriately.
The decomposition is completed by applying an
extended version of the Orphan Adoption
algorithm
13. Skeleton construction
Source file clusters
Body-header conglomeration
Leaf collection and support library
identification
Ordered and limited subgraph domination
Creation of “support.ss”
14. Orphan Adoption
Incremental clustering technique
Orphan: a newly introduced resource to a
software system
Orphans are adopted by the subsystem that
interacts mostly with them
Assuming that a substantial skeleton has
been constructed in the first stage, the same
technique can be applied here
15. ACDC properties
Subsystems have familiar or intuitive names
The cardinality of the subsystems is
bounded
The final decomposition is nested and
unbalanced
Limited use of the directory pattern
Magic numbers not important
16. Algorithm validation
We experimented with two different
software systems, TOBEY and Linux.
We measured the following:
Performance 54 sec 84 sec
Stability 81.3% 69.4%
Skeleton size 64.3% 51.1%
Quality 64.2% 55.7%
17. Conclusions
Clustering approaches should focus on
comprehension
Pattern-driven approach appears to perform
satisfactorily
Impact of ACDC’s features on
comprehension remains to be determined