acdc: an algorithm for comprehension-driven clustering vassilios tzerpos r.c. holt
TRANSCRIPT
![Page 1: ACDC: An Algorithm for Comprehension-Driven Clustering Vassilios Tzerpos R.C. Holt](https://reader036.vdocuments.net/reader036/viewer/2022082818/56649ef25503460f94c035cd/html5/thumbnails/1.jpg)
ACDC: An Algorithm forComprehension-Driven Clustering
Vassilios Tzerpos
R.C. Holt
![Page 2: ACDC: An Algorithm for Comprehension-Driven Clustering Vassilios Tzerpos R.C. Holt](https://reader036.vdocuments.net/reader036/viewer/2022082818/56649ef25503460f94c035cd/html5/thumbnails/2.jpg)
Highest cohesion clustering
SS1
SS2
SS4
SS11
SS12
SS9
SS10
SS8
SS5
SS6
SS7SS3
![Page 3: ACDC: An Algorithm for Comprehension-Driven Clustering Vassilios Tzerpos R.C. Holt](https://reader036.vdocuments.net/reader036/viewer/2022082818/56649ef25503460f94c035cd/html5/thumbnails/3.jpg)
Contents of SS11
![Page 4: ACDC: An Algorithm for Comprehension-Driven Clustering Vassilios Tzerpos R.C. Holt](https://reader036.vdocuments.net/reader036/viewer/2022082818/56649ef25503460f94c035cd/html5/thumbnails/4.jpg)
Essential comprehension features
Effective cluster namingBounded cluster cardinalityFamiliarity
Comprehension as pattern recognition Certain subsystem patterns emerge often in
manual decompositions of software systems
![Page 5: ACDC: An Algorithm for Comprehension-Driven Clustering Vassilios Tzerpos R.C. Holt](https://reader036.vdocuments.net/reader036/viewer/2022082818/56649ef25503460f94c035cd/html5/thumbnails/5.jpg)
Source file pattern
Proc3
Proc2
Proc1 Proc4
Proc6
Proc5
Var1
Var2
Var3
File1 File2
![Page 6: ACDC: An Algorithm for Comprehension-Driven Clustering Vassilios Tzerpos R.C. Holt](https://reader036.vdocuments.net/reader036/viewer/2022082818/56649ef25503460f94c035cd/html5/thumbnails/6.jpg)
Directory structure pattern
File3
File2
File1 File4
File6
File5
File7
File8
File9
Dir1 Dir2
![Page 7: ACDC: An Algorithm for Comprehension-Driven Clustering Vassilios Tzerpos R.C. Holt](https://reader036.vdocuments.net/reader036/viewer/2022082818/56649ef25503460f94c035cd/html5/thumbnails/7.jpg)
Body-header pattern
alice.c
bob.h
bob.c
alice.h
![Page 8: ACDC: An Algorithm for Comprehension-Driven Clustering Vassilios Tzerpos R.C. Holt](https://reader036.vdocuments.net/reader036/viewer/2022082818/56649ef25503460f94c035cd/html5/thumbnails/8.jpg)
Leaf collection pattern
sin.c tan.ccos.c
![Page 9: ACDC: An Algorithm for Comprehension-Driven Clustering Vassilios Tzerpos R.C. Holt](https://reader036.vdocuments.net/reader036/viewer/2022082818/56649ef25503460f94c035cd/html5/thumbnails/9.jpg)
Support library pattern
busy.c weary.ctired.c
![Page 10: ACDC: An Algorithm for Comprehension-Driven Clustering Vassilios Tzerpos R.C. Holt](https://reader036.vdocuments.net/reader036/viewer/2022082818/56649ef25503460f94c035cd/html5/thumbnails/10.jpg)
Central dispatcher pattern
dispatcher.c
![Page 11: ACDC: An Algorithm for Comprehension-Driven Clustering Vassilios Tzerpos R.C. Holt](https://reader036.vdocuments.net/reader036/viewer/2022082818/56649ef25503460f94c035cd/html5/thumbnails/11.jpg)
Subgraph dominator pattern
dominator.c
a.c
z.cg.cf.ce.cd.c
c.cb.c
![Page 12: ACDC: An Algorithm for Comprehension-Driven Clustering Vassilios Tzerpos R.C. Holt](https://reader036.vdocuments.net/reader036/viewer/2022082818/56649ef25503460f94c035cd/html5/thumbnails/12.jpg)
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
![Page 13: ACDC: An Algorithm for Comprehension-Driven Clustering Vassilios Tzerpos R.C. Holt](https://reader036.vdocuments.net/reader036/viewer/2022082818/56649ef25503460f94c035cd/html5/thumbnails/13.jpg)
Skeleton construction
Source file clustersBody-header conglomerationLeaf collection and support library
identificationOrdered and limited subgraph dominationCreation of “support.ss”
![Page 14: ACDC: An Algorithm for Comprehension-Driven Clustering Vassilios Tzerpos R.C. Holt](https://reader036.vdocuments.net/reader036/viewer/2022082818/56649ef25503460f94c035cd/html5/thumbnails/14.jpg)
Orphan Adoption
Incremental clustering techniqueOrphan: a newly introduced resource to a
software systemOrphans are adopted by the subsystem that
interacts mostly with themAssuming that a substantial skeleton has
been constructed in the first stage, the same technique can be applied here
![Page 15: ACDC: An Algorithm for Comprehension-Driven Clustering Vassilios Tzerpos R.C. Holt](https://reader036.vdocuments.net/reader036/viewer/2022082818/56649ef25503460f94c035cd/html5/thumbnails/15.jpg)
ACDC properties
Subsystems have familiar or intuitive namesThe cardinality of the subsystems is
boundedThe final decomposition is nested and
unbalancedLimited use of the directory patternMagic numbers not important
![Page 16: ACDC: An Algorithm for Comprehension-Driven Clustering Vassilios Tzerpos R.C. Holt](https://reader036.vdocuments.net/reader036/viewer/2022082818/56649ef25503460f94c035cd/html5/thumbnails/16.jpg)
Algorithm validation
We experimented with two different software systems, TOBEY and Linux.
We measured the following: Performance Stability Skeleton size Quality
54 sec 84 sec
81.3% 69.4%
64.3% 51.1%
64.2% 55.7%
![Page 17: ACDC: An Algorithm for Comprehension-Driven Clustering Vassilios Tzerpos R.C. Holt](https://reader036.vdocuments.net/reader036/viewer/2022082818/56649ef25503460f94c035cd/html5/thumbnails/17.jpg)
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