skip to main content
10.1145/2577080.2577086acmotherconferencesArticle/Chapter ViewAbstractPublication PagesmodularityConference Proceedingsconference-collections
research-article

Assessing modularity using co-change clusters

Published: 22 April 2014 Publication History

Abstract

The traditional modular structure defined by the package hierarchy suffers from the dominant decomposition problem and it is widely accepted that alternative forms of modularization are necessary to increase developer's productivity. In this paper, we propose an alternative form to understand and assess package modularity based on co-change clusters, which are highly inter-related classes considering co-change relations. We evaluate how co-change clusters relate to the package decomposition of three real-world systems. The results show that the projection of co-change clusters to packages follow different patterns in each system. Therefore, we claim that modular views based on co-change clusters can improve developers' understanding on how well-modularized are their systems, considering that modularity is the ability to confine changes and evolve components in parallel.

References

[1]
B. Adams, Z. M. Jiang, and A. E. Hassan. Identifying crosscutting concerns using historical code changes. In 32nd International Conference on Software Engineering, pages 305--314. ACM, 2010.
[2]
R. Agrawal and R. Srikant. Fast algorithms for mining association rules in large databases. In 20th International Conference on Very Large Data Bases (VLDB), pages 487--499, 1994.
[3]
C. Y. Baldwin and K. B. Clark. Design Rules: The Power of Modularity. MIT Press, 2003.
[4]
F. Beck and S. Diehl. Evaluating the impact of software evolution on software clustering. In 17th Working Conference on Reverse Engineering (WCRE), pages 99--108, 2010.
[5]
D. Beyer and A. Noack. Clustering software artifacts based on frequent common changes. In 13th International Workshop on Program Comprehension (IWPC), pages 259--268, 2005.
[6]
S. Breu and T. Zimmermann. Mining aspects from version history. In 21st Automated Software Engineering Conference (ASE), pages 221--230, 2006.
[7]
S. Chidamber and C. Kemerer. Towards a metrics suite for object oriented design. In 6th Object-oriented programming systems, languages, and applications Conference (OOPSLA), pages 197--211, 1991.
[8]
C. Couto, C. Silva, M. T. Valente, R. Bigonha, and N. Anquetil. Uncovering causal relationships between software metrics and bugs. In 16th European Conference on Software Maintenance and Reengineering (CSMR), pages 223--232, 2012.
[9]
C. Couto, P. Pires, M. T. Valente, R. Bigonha, and N. Anquetil. Predicting software defects with causality tests. Journal of Systems and Software, pages 1--38, 2014.
[10]
M. D'Ambros, M. Lanza, and R. Robbes. An extensive comparison of bug prediction approaches. In 7th Working Conference on Mining Software Repositories (MSR), pages 31--41, 2010.
[11]
S. Deerwester, S. T. Dumais, G. W. Furnas, T. K. Landauer, and R. Harshman. Indexing by latent semantic analysis. Journal of the American Society for Information Science, 41:391--407, 1990.
[12]
S. Ducasse, T. Gîrba, and A. Kuhn. Distribution map. In 22nd IEEE International Conference on Software Maintenance (ICSM), pages 203--212, 2006.
[13]
M. Gethers, H. Kagdi, B. Dit, and D. Poshyvanyk. An adaptive approach to impact analysis from change requests to source code. In 26th Automated Software Engineering Conference (ASE), pages 540--543, 2011.
[14]
W. G. Griswold, J. J. Yuan, and Y. Kato. Exploiting the map metaphor in a tool for software evolution. In 23rd International Conference on Software Engineering (ICSE), pages 265--274, 2001.
[15]
K. Herzing and A. Zeller. The impact of tangled code changes. In 10th Working Conference on Mining Software Repositories (MSR), pages 121--130, 2013.
[16]
D. Janzen and K. D. Volder. Navigating and querying code without getting lost. In 2nd International Conference on Aspect-oriented Software Development (AOSD), pages 178--187, 2003.
[17]
H. Kagdi, M. Gethers, and D. Poshyvanyk. Integrating conceptual and logical couplings for change impact analysis in software. Empirical Software Engineering (EMSE), 2013.
[18]
G. Karypis, E.-H. S. Han, and V. Kumar. Chameleon: hierarchical clustering using dynamic modeling. Computer, 32(8):68--75, 1999.
[19]
C. Kästner, S. Apel, and M. Kuhlemann. Granularity in software product lines. In 30th International Conference on Software Engineering (ICSE), pages 311--320, 2008.
[20]
M. Kersten and G. C. Murphy. Using task context to improve programmer productivity. In 14th International Symposium on Foundations of Software Engineering (FSE), pages 1--11, 2006.
[21]
G. Kiczales, J. Lamping, A. Mendhekar, C. Maeda, C. Lopes, J.-M. Loingtier, and J. Irwin. Aspect-oriented programming. In 11th European Conference on Object-Oriented Programming (ECOOP), volume 1241 of LNCS, pages 220--242. Springer Verlag, 1997.
[22]
J. B. MacQueen. Some methods for classification and analysis of multivariate observations. In 5th Berkeley Symposium on Mathematical Statistics and Probability, pages 281--297, 1967.
[23]
C. D. Manning, P. Raghavan, and H. Schtze. Introduction to Information Retrieval. Cambridge University Press, 2008.
[24]
B. Meyer. Object-Oriented Software Construction. Prentice-Hall, 2000.
[25]
S. Negara, M. Vakilian, N. Chen, R. E. Johnson, and D. Dig. Is it dangerous to use version control histories to study source code evolution? In 26th European conference on Object-Oriented Programming (ECOOP), pages 79--103, 2012.
[26]
G. A. Oliva, F. W. Santana, M. A. Gerosa, and C. R. B. de Souza. Towards a classification of logical dependencies origins: a case study. In 12th International Workshop on Principles of Software Evolution and the 7th annual ERCIM Workshop on Software Evolution (EVOL/IWPSE), pages 31--40, 2011.
[27]
D. L. Parnas. On the criteria to be used in decomposing systems into modules. Communications of the ACM, 15(12):1053--1058, 1972.
[28]
D. Poshyvanyk and A. Marcus. Using information retrieval to support design of incremental change of software. In 22th IEEE/ACM International Conference on Automated Software Engineering (ASE), pages 563--566, 2007.
[29]
D. Poshyvanyk and A. Marcus. Measuring the semantic similarity of comments in bug reports. In 1st International ICPC2008 Workshop on Semantic Technologies in System Maintenance (STSM), pages 265--280, 2008.
[30]
M. P. Robillard and G. C. Murphy. Concern graphs: finding and describing concerns using structural program dependencies. In 24th International Conference on Software Engineering (ICSE), pages 406--416, 2002.
[31]
M. P. Robillard and G. C. Murphy. Representing concerns in source code. ACM Transactions on Software Engineering and Methodology, 16(1):1--38, 2007.
[32]
M. P. Robillard and F. Weigand-Warr. Concernmapper: simple viewbased separation of scattered concerns. In OOPSLA workshop on Eclipse technology eXchange, eclipse '05, pages 65--69, 2005.
[33]
G. Santos, M. T. Valente, and N. Anquetil. Remodularization analysis using semantic clustering. In 1st CSMR-WCRE Software Evolution Week, pages 224--233, 2014.
[34]
J. Śliwerski, T. Zimmermann, and A. Zeller. When do changes induce fixes? In 2nd Working Conference on Mining Software Repositories (MSR), pages 1--5, 2005.
[35]
W. P. Stevens, G. J. Myers, and L. L. Constantine. Structured design. IBM Systems Journal, 13(2):115--139, June 1974.
[36]
E. Tempero, C. Anslow, J. Dietrich, T. Han, J. Li, M. Lumpe, H. Melton, and J. Noble. Qualitas corpus: A curated collection of Java code for empirical studies. In Asia Pacific Software Engineering Conference (APSEC), pages 336--345, 2010.
[37]
R. Terra, L. F. Miranda, M. T. Valente, and R. S. Bigonha. Qualitas. class corpus: A compiled version of the qualitas corpus. Software Engineering Notes, pages 1--4, 2013.
[38]
R. J. Walker, S. Rawal, and J. Sillito. Do crosscutting concerns cause modularity problems? In 20th International Symposium on the Foundations of Software Engineering (FSE), pages 1--11, 2012.
[39]
T. Zimmermann, P. Weissgerber, S. Diehl, and A. Zeller. Mining version histories to guide software changes. IEEE Transactions on Software Engineering, 31(6):429--445, 2005.
[40]
T. Zimmermann, R. Premraj, and A. Zeller. Predicting defects for Eclipse. In 3rd International Workshop on Predictor Models in Software Engineering, page 9, 2007.

Cited By

View all
  • (2024)3Erefactor: Effective, Efficient and Executable Refactoring Recommendation for Software Architectural ConsistencyIEEE Transactions on Software Engineering10.1109/TSE.2024.344956450:10(2633-2655)Online publication date: 1-Oct-2024
  • (2024)Prevalence and Prediction of Unseen Co-Changes: A Graph-Based Approach2024 IEEE 48th Annual Computers, Software, and Applications Conference (COMPSAC)10.1109/COMPSAC61105.2024.00155(1157-1167)Online publication date: 2-Jul-2024
  • (2024)Revealing code change propagation channels by evolution history miningJournal of Systems and Software10.1016/j.jss.2023.111912208:COnline publication date: 1-Feb-2024
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Other conferences
MODULARITY '14: Proceedings of the 13th international conference on Modularity
April 2014
264 pages
ISBN:9781450327725
DOI:10.1145/2577080
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

  • AOSA: Aspect-Oriented Software Association

In-Cooperation

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 22 April 2014

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. chameleon graph partitioning algorithm
  2. co-change clusters
  3. co-change graphs
  4. modularity
  5. software change
  6. version control systems

Qualifiers

  • Research-article

Funding Sources

Conference

MODULARITY '14
Sponsor:
  • AOSA

Acceptance Rates

MODULARITY '14 Paper Acceptance Rate 21 of 60 submissions, 35%;
Overall Acceptance Rate 41 of 139 submissions, 29%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)10
  • Downloads (Last 6 weeks)0
Reflects downloads up to 16 Feb 2025

Other Metrics

Citations

Cited By

View all
  • (2024)3Erefactor: Effective, Efficient and Executable Refactoring Recommendation for Software Architectural ConsistencyIEEE Transactions on Software Engineering10.1109/TSE.2024.344956450:10(2633-2655)Online publication date: 1-Oct-2024
  • (2024)Prevalence and Prediction of Unseen Co-Changes: A Graph-Based Approach2024 IEEE 48th Annual Computers, Software, and Applications Conference (COMPSAC)10.1109/COMPSAC61105.2024.00155(1157-1167)Online publication date: 2-Jul-2024
  • (2024)Revealing code change propagation channels by evolution history miningJournal of Systems and Software10.1016/j.jss.2023.111912208:COnline publication date: 1-Feb-2024
  • (2023)Identifying Code Changes for Architecture Decay via a Metric Forest Structure2023 ACM/IEEE International Conference on Technical Debt (TechDebt)10.1109/TechDebt59074.2023.00014(62-71)Online publication date: May-2023
  • (2022)Software Module Clustering: An In-Depth Literature AnalysisIEEE Transactions on Software Engineering10.1109/TSE.2020.304255348:6(1905-1928)Online publication date: 1-Jun-2022
  • (2020)Exploring software bug-proneness based on evolutionary clique modeling and analysisInformation and Software Technology10.1016/j.infsof.2020.106380128(106380)Online publication date: Dec-2020
  • (2019)History Coupling Space: A New Model to Represent Evolutionary Relations2019 26th Asia-Pacific Software Engineering Conference (APSEC)10.1109/APSEC48747.2019.00026(126-133)Online publication date: Dec-2019
  • (2018)A design structure matrix approach for measuring co-change-modularity of software productsProceedings of the 15th International Conference on Mining Software Repositories10.1145/3196398.3196409(331-335)Online publication date: 28-May-2018
  • (2017)Investigating the relationship between bad smells and bugs in software systemsProceedings of the 11th Brazilian Symposium on Software Components, Architectures, and Reuse10.1145/3132498.3132513(1-10)Online publication date: 18-Sep-2017
  • (2016)Mining software change data stream to predict changeability of classes of object-oriented software systemEvolving Systems10.1007/s12530-016-9151-y7:2(117-128)Online publication date: 7-Apr-2016
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media