skip to main content
10.1145/2025113.2025162acmconferencesArticle/Chapter ViewAbstractPublication PagesfseConference Proceedingsconference-collections
research-article

On the congruence of modularity and code coupling

Published:09 September 2011Publication History

ABSTRACT

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.

References

  1. F. B. Abreu and M. Goulão. Coupling and Cohesion as Modularization Drivers: Are We Being Over-Persuaded? In CSMR '01: Proceedings of the Fifth European Conference on Software Maintenance and Reengineering, pages 47--57. IEEE Computer Society, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. P. Andritsos and V. Tzerpos. Information-Theoretic Software Clustering. IEEE Transactions on Software Engineering, 31(2):150--165, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. C. Y. Baldwin and K. B. Clark. Design Rules, Vol. 1: The Power of Modularity. The MIT Press, 1st edition, Mar. 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. F. Beck and S. Diehl. Evaluating the Impact of Software Evolution on Software Clustering. In WCRE '10: Proceedings of the 17th Working Conference on Reverse Engineering, pages 99--108. IEEE Computer Society, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. B. Biegel and S. Diehl. Highly Configurable and Extensible Code Clone Detection. In WCRE'10: Proceedings of the 17th Working Conference on Reverse Engineering, pages 237--241. IEEE Computer Society, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. R. A. Bittencourt, G. J. S. Santos, D. D. S. Guerrero, and G. C. Murphy. Improving Automated Mapping in Reflexion Models using Information Retrieval Techniques. In WCRE'10: Proceedings of the 17th Working Conference on Reverse Engineering, pages 163--172. IEEE Computer Society, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. I. T. Bowman and R. C. Holt. Software Architecture Recovery Using Conway's Law. In CASCON '98: Proceedings of the 1998 Conference of the Centre for Advanced Studies on Collaborative Research, pages 6+. IBM Press, 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. S. Breu and T. Zimmermann. Mining Aspects from Version History. In ASE '06: Proceedings of the 21st IEEE/ACM International Conference on Automated Software Engineering, pages 221--230. IEEE Computer Society, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. M. Cataldo, J. D. Herbsleb, and K. M. Carley. Socio-Technical Congruence: a Framework for Assessing the Impact of Technical and Work Dependencies on Software Development Productivity. In ESEM '08: Proceedings of the Second ACM-IEEE International Symposium on Empirical Software Engineering and Measurement, pages 2--11. ACM, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. M. Cataldo, A. Mockus, J. A. Roberts, and J. D. Herbsleb. Software Dependencies, Work Dependencies, and Their Impact on Failures. IEEE Transactions on Software Engineering, 35(6):864--878, Nov. 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. M. Conway. How do Committees Invent? Datamation Journal, pages 28--31, 1968.Google ScholarGoogle Scholar
  12. M. Harman, S. Swift, and K. Mahdavi. An Empirical Study of the Robustness of two Module Clustering Fitness Functions. In GECCO '05: Proceedings of the 2005 Conference on Genetic and Evolutionary Computation, pages 1029--1036. ACM Press, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. A. Kuhn, S. Ducasse, and T. Girba. Enriching Reverse Engineering with Semantic Clustering. In WCRE '05: Proceedings of the 12th Working Conference on Reverse Engineering, pages 133--142. IEEE Computer Society, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. S. Livieri, Y. Higo, M. Matsushita, and K. Inoue. Very-Large Scale Code Clone Analysis and Visualization of Open Source Programs Using Distributed CCFinder: D-CCFinder. In ICSE '07: Proceedings of the 29th International Conference on Software Engineering, pages 106--115. IEEE Computer Society, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. R. C. Martin. Agile Software Development, Principles, Patterns, and Practices. Prentice Hall, 1st edition, Oct. 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. B. Meyer. Object-Oriented Software Construction, 1st editon. Prentice-Hall, 1988.Google ScholarGoogle Scholar
  17. B. S. Mitchell and S. Mancoridis. On the Evaluation of the Bunch Search-Based Software Modularization Algorithm. Soft Computing, 12(1):77--93, Aug. 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. D. L. Parnas. Information Distribution Aspects of Design Methodology. In IFIP Congress (1), pages 339--344, 1971.Google ScholarGoogle Scholar
  19. D. L. Parnas. On the Criteria to be Used in Decomposing Systems into Modules. Communications of the ACM, 15(12):1053--1058, Dec. 1972. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. C. K. Roy and J. R. Cordy. A Survey on Software Clone Detection Research. Technical report, Queen's University at Kingston, Ontario, Canada, 2007.Google ScholarGoogle Scholar
  21. S. Sarkar, G. M. Rama, and A. C. Kak. API-Based and Information-Theoretic Metrics for Measuring the Quality of Software Modularization. IEEE Transactions on Software Engineering, 33(1):14--32, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. R. W. Schwanke. An Intelligent Tool for Re-Engineering Software Modularity. In ICSE '91: Proceedings of the 13th International Conference on Software Engineering, pages 83--92. IEEE Computer Society, 1991. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. W. P. Stevens, G. J. Myers, and L. L. Constantine. Structured Design. IBM Systems Journal, 13(2):115--139, 1974. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. P.-N. Tan, M. Steinbach, and V. Kumar. Introduction to Data Mining. Addison Wesley, May 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. P. Tarr, H. Ossher, W. Harrison, and S. M. Sutton. N Degrees of Separation: Multi-Dimensional Separation of Concerns. In ICSE '99: Proceedings of the 21st International Conference on Software Engineering, pages 107--119. ACM, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Z. Wen and V. Tzerpos. Software Clustering based on Omnipresent Object Detection. In IWPC '05: Proceedings of the 13th International Workshop on Program Comprehension, pages 269--278, Washington, DC, USA, 2005. IEEE Computer Society. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. A. Wierda, E. Dortmans, and L. L. Somers. Using Version Information in Architectural Clustering - A Case Study. In CSMR '06: Proceedings of the Conference on Software Maintenance and Reengineering, pages 214--228. IEEE Computer Society, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. T. Zimmermann and P. Weißgerber. Preprocessing CVS Data For Fine-Grained Analysis. In MSR '04: Proceedings of the 1st International Workshop on Mining Software Repositories, pages 2--6. IEEE Computer Society, 2004.Google ScholarGoogle Scholar

Index Terms

  1. On the congruence of modularity and code coupling

    Recommendations

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in
    • Published in

      cover image ACM Conferences
      ESEC/FSE '11: Proceedings of the 19th ACM SIGSOFT symposium and the 13th European conference on Foundations of software engineering
      September 2011
      548 pages
      ISBN:9781450304436
      DOI:10.1145/2025113

      Copyright © 2011 ACM

      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]

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 9 September 2011

      Permissions

      Request permissions about this article.

      Request Permissions

      Check for updates

      Qualifiers

      • research-article

      Acceptance Rates

      Overall Acceptance Rate17of128submissions,13%

      Upcoming Conference

      FSE '24

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader