Conference proceeding
Deicide: Decomposing Complex Classes into Responsibility Modules
Proceedings (Working IEEE/IFIP Conference on Software Architecture. Online), pp 301-312
31 Mar 2025
Abstract
Refactoring a large and complex class can be challenging, not only because the class aggregates many different responsibilities but also because of its potentially extensive impact on external classes. Although many extract class methods have been proposed, few support a holistic decomposition that can uncover multiple distinct responsibilities within a complex class, along with their system-wide impacts. Recent research highlights the need for such a holistic view before an organization can commit to redesigning and refactoring. To identify distinct responsibilities while minimizing internal and external impacts, we created Deicide, a new decomposition algorithm that uses an internal call graph, external usage patterns, and semantic similarity of identifiers to calculate a hierarchical set of cohesive clusters, each forming a responsibility module. We evaluated Deicide against three state-of-the-art extract class recommenders using 123 large, change-prone classes from 9 open-source projects. Our results show that the entities within the clusters identified by Deicide are more likely to be changed together and changed by the same group of developers, indicating de facto cohesive responsibilities. The implication is that refactoring based on Deicide's recommendations would have minimal impact on the system, and these newly extracted classes would be able to evolve independently.
Metrics
1 Record Views
Details
- Title
- Deicide: Decomposing Complex Classes into Responsibility Modules
- Creators
- Jason Lefever - Drexel UniversityYuanfang Cai - Drexel UniversityRick Kazman - University of Hawaiʻi at MānoaErnst Pisch - Drexel University
- Publication Details
- Proceedings (Working IEEE/IFIP Conference on Software Architecture. Online), pp 301-312
- Publisher
- IEEE
- Number of pages
- 12
- Grant note
- National Science Foundation (10.13039/100000001)
- Resource Type
- Conference proceeding
- Language
- English
- Academic Unit
- Computer Science
- Web of Science ID
- WOS:001484956700027
- Scopus ID
- 2-s2.0-105005027489
- Other Identifier
- 991022197327104721