An intelligent tool for re-engineering software modularity
ICSE '91 Proceedings of the 13th international conference on Software engineering
N degrees of separation: multi-dimensional separation of concerns
Proceedings of the 21st international conference on Software engineering
On the criteria to be used in decomposing systems into modules
Communications of the ACM
Agile Software Development: Principles, Patterns, and Practices
Agile Software Development: Principles, Patterns, and Practices
Design Rules: The Power of Modularity Volume 1
Design Rules: The Power of Modularity Volume 1
Software architecture recovery using Conway's law
CASCON '98 Proceedings of the 1998 conference of the Centre for Advanced Studies on Collaborative research
Coupling and Cohesion as Modularization Drivers: Are We Being Over-Persuaded?
CSMR '01 Proceedings of the Fifth European Conference on Software Maintenance and Reengineering
Information-Theoretic Software Clustering
IEEE Transactions on Software Engineering
Software Clustering based on Omnipresent Object Detection
IWPC '05 Proceedings of the 13th International Workshop on Program Comprehension
An empirical study of the robustness of two module clustering fitness functions
GECCO '05 Proceedings of the 7th annual conference on Genetic and evolutionary computation
Introduction to Data Mining, (First Edition)
Introduction to Data Mining, (First Edition)
Enriching Reverse Engineering with Semantic Clustering
WCRE '05 Proceedings of the 12th Working Conference on Reverse Engineering
Using Version Information in Architectural Clustering - A Case Study
CSMR '06 Proceedings of the Conference on Software Maintenance and Reengineering
Mining Aspects from Version History
ASE '06 Proceedings of the 21st IEEE/ACM International Conference on Automated Software Engineering
API-Based and Information-Theoretic Metrics for Measuring the Quality of Software Modularization
IEEE Transactions on Software Engineering
ICSE '07 Proceedings of the 29th international conference on Software Engineering
On the evaluation of the Bunch search-based software modularization algorithm
Soft Computing - A Fusion of Foundations, Methodologies and Applications
Proceedings of the Second ACM-IEEE international symposium on Empirical software engineering and measurement
IBM Systems Journal
Software Dependencies, Work Dependencies, and Their Impact on Failures
IEEE Transactions on Software Engineering
Evaluating the Impact of Software Evolution on Software Clustering
WCRE '10 Proceedings of the 2010 17th Working Conference on Reverse Engineering
Improving Automated Mapping in Reflexion Models Using Information Retrieval Techniques
WCRE '10 Proceedings of the 2010 17th Working Conference on Reverse Engineering
Highly Configurable and Extensible Code Clone Detection
WCRE '10 Proceedings of the 2010 17th Working Conference on Reverse Engineering
An empirical study on the developers' perception of software coupling
Proceedings of the 2013 International Conference on Software Engineering
Diversity in software engineering research
Proceedings of the 2013 9th Joint Meeting on Foundations of Software Engineering
Hi-index | 0.00 |
Software systems are modularized to make their inherent complexity manageable. While there exists a set of well-known principles that may guide software engineers to design the modules of a software system, we do not know which principles are followed in practice. In a study based on 16 open source projects, we look at different kinds of coupling concepts between source code entities, including structural dependencies, fan-out similarity, evolutionary coupling, code ownership, code clones, and semantic similarity. The congruence between these coupling concepts and the modularization of the system hints at the modularity principles used in practice. Furthermore, the results provide insights on how to support developers to modularize software systems.