skip to main content
10.1145/3576123.3576138acmotherconferencesArticle/Chapter ViewAbstractPublication Pagesaus-ceConference Proceedingsconference-collections
research-article

An Experiment on the Effects of Modularity on Code Modification and Understanding

Published:30 January 2023Publication History

ABSTRACT

Good modularity is seen as an important goal in software design. Achieving this goal is claimed to improve, among other things, the understandability and modifiability of a design. Yet, when teaching software design, we see that students limit the amount of modularity that they introduce into their code and cannot see the benefit of further modularity. This could be because they do not understand the benefits, but it could also be that these benefits are limited for inexperienced developers. In order to teach the benefits of modularity we need to understand what, if any, benefits exist for students. We conducted a controlled experiment where 40 students performed a modification task on two different designs, one with higher modularity than the other. Students were better able to successfully complete the task with the design with higher modularity. However, we found a trend where understanding was lower for the high modularity design. These results suggest modularity is beneficial to students, and that understanding of modularity needs to be better supported when teaching software design.

References

  1. Edward V. Berard. 1993. Essays on object-oriented software engineering (vol. 1). Prentice-Hall, Inc.Google ScholarGoogle Scholar
  2. Andrew P. Black, Kim B. Bruce, Michael Homer, James Noble, Amy Ruskin, and Richard Yannow. 2013. Seeking Grace: A New Object-Oriented Language for Novices. In Proceeding of the 44th ACM Technical Symposium on Computer Science Education (Denver, Colorado, USA) (SIGCSE ’13). Association for Computing Machinery, New York, NY, USA, 129–134. https://doi.org/10.1145/2445196.2445240Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Barry W Boehm, John R Brown, and Myron Lipow. 1976. Quantitative evaluation of software quality. In Proceedings of the 2nd International Conference on Software Engineering. 592–605.Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. B. W. Boehm, J. R. Brown, M. Lipow, G. J. MacLeod, and M. J. Merritt. 1978. Characteristics of Software Quality. Elsevier North-Holland.Google ScholarGoogle Scholar
  5. Grady Booch. 1994. Object-Oriented Analysis and Design: with Applications (2nd ed.). Addison-Wesley.Google ScholarGoogle Scholar
  6. Kim B. Bruce. 2004. Controversy on How to Teach CS 1: A Discussion on the SIGCSE-Members Mailing List. In Working Group Reports from ITiCSE on Innovation and Technology in Computer Science Education (Leeds, United Kingdom) (ITiCSE-WGR ’04). Association for Computing Machinery, New York, NY, USA, 29–34. https://doi.org/10.1145/1044550.1041652Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Yuanfang Cai, Daniel Iannuzzi, and Sunny Wong. 2011. Leveraging design structure matrices in software design education. In 2011 24th IEEE-CS Conference on Software Engineering Education and Training (CSEE T). 179–188. https://doi.org/10.1109/CSEET.2011.5876085Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Yuanfang Cai, Rick Kazman, Ciera Jaspan, and Jonathan Aldrich. 2013. Introducing tool-supported architecture review into software design education. In 2013 26th International Conference on Software Engineering Education and Training (CSEET). 70–79. https://doi.org/10.1109/CSEET.2013.6595238Google ScholarGoogle ScholarCross RefCross Ref
  9. Marian Daun, Carolin Hübscher, and Thorsten Weyer. 2017. Controlled Experiments with Student Participants in Software Engineering: Preliminary Results from a Systematic Mapping Study. arxiv:1708.04662 [cs.SE]Google ScholarGoogle Scholar
  10. Pablo Anderson de L. Lima, Gustavo da C. C. Franco Fraga, Eudisley G. dos Anjos, and Danielle Rousy D. da Silva. 2015. Systematic Mapping Studies in Modularity in IT Courses. In Computational Science and Its Applications – ICCSA 2015, Osvaldo Gervasi, Beniamino Murgante, Sanjay Misra, Marina L. Gavrilova, Ana Maria Alves Coutinho Rocha, Carmelo Torre, David Taniar, and Bernady O. Apduhan (Eds.). Springer International Publishing, Cham, 132–146.Google ScholarGoogle Scholar
  11. Paul Denny, James Prather, Brett A. Becker, Catherine Mooney, John Homer, Zachary C Albrecht, and Garrett B. Powell. 2021. On Designing Programming Error Messages for Novices: Readability and Its Constituent Factors. Association for Computing Machinery, New York, NY, USA. https://doi.org/10.1145/3411764.3445696Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Norman E Fenton and Shari L Pfleeger. 1998. Software Metrics: A Rigorous and Practical Approach. PWS Publishing Co., Boston, MA, USA. http://portal.acm.org/citation.cfm?id=580949Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. International Organization for Standardization. 2011. ISO/IEC 25010:2011: Systems and software engineering — Systems and software Quality Requirements and Evaluation (SQuaRE) — System and software quality models. https://www.iso.org/standard/35733.html.Google ScholarGoogle Scholar
  14. Lyndsey Franklin, Kristina Lerman, and Nathan Hodas. 2017. Will Break for Productivity: Generalized Symptoms of Cognitive Depletion. arXiv preprint arXiv:1706.01521(2017).Google ScholarGoogle Scholar
  15. Richard Gauthier and Stephen Pont. 1970. Designing Systems Programs. Prentice-Hall.Google ScholarGoogle Scholar
  16. Daniel Graziotin, Fabian Fagerholm, Xiaofeng Wang, and Pekka Abrahamsson. 2017. Unhappy developers: Bad for themselves, bad for process, and bad for software product. In 2017 IEEE/ACM 39th International Conference on Software Engineering Companion (ICSE-C). IEEE, 362–364.Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Sandra G Hart. 2006. NASA-task load index (NASA-TLX); 20 years later. In Proceedings of the human factors and ergonomics society annual meeting, Vol. 50. Sage Publications Sage CA: Los Angeles, CA, 904–908.Google ScholarGoogle ScholarCross RefCross Ref
  18. Sandra G Hart and Lowell E Staveland. 1988. Development of NASA-TLX (Task Load Index): Results of Empirical and Theoretical Research. Human Mental Workload, Vol. 52. North-Holland, Amsterdam ;. 139–183 pages.Google ScholarGoogle Scholar
  19. Michael Kölling. 1999. The Problem of Teaching Object-Oriented Programming, Part I: Languages.JOOP 11 (04 1999), 8–15.Google ScholarGoogle Scholar
  20. M. Kolling. 1999. The problem of teaching object-oriented programming, Part 2: Environments. Journal of Object-Oriented Programming 11, 9 (1999), 6–12. http://bluej.kent.ac.uk/papers/1999-09-JOOP2-environments.pdfGoogle ScholarGoogle Scholar
  21. Joseph Lawrance, Christopher Bogart, Margaret Burnett, Rachel Bellamy, Kyle Rector, and Scott D Fleming. 2010. How programmers debug, revisited: An information foraging theory perspective. IEEE Transactions on Software Engineering 39, 2 (2010), 197–215.Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Robert C. Martin. 1995. Object Oriented Design Quality Metrics: an analysis of dependencies. C++ Report (Sep/Oct 1995).Google ScholarGoogle Scholar
  23. Robert C. Martin. 2003. Agile Software Development: Principles, Patterns, and Practices. Prentice Hall.Google ScholarGoogle Scholar
  24. J. McCall, P. A. Richards, and Gene F. Walters. 1977. Factors in software quality: concept and definitions of software quality. Nat’l Tech. Information Service 1, 2, 3 (1977).Google ScholarGoogle Scholar
  25. Craig S. Miller and Amber Settle. 2016. Some Trouble with Transparency: An Analysis of Student Errors with Object-Oriented Python. In Proceedings of the 2016 ACM Conference on International Computing Education Research (Melbourne, VIC, Australia) (ICER ’16). Association for Computing Machinery, New York, NY, USA, 133–141. https://doi.org/10.1145/2960310.2960327Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Nathan Mills, Allen Wang, and Nasser Giacaman. 2021. Visual Analogy for Understanding Polymorphism Types. In ACE ’21: 23rd Australasian Computing Education Conference, Auckland, New Zealand (and virtually), 2-5February, 2021, Claudia Szabo and Judy Sheard (Eds.). ACM, 48–57. https://doi.org/10.1145/3441636.3442304Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Fred GWC Paas and Jeroen JG Van Merriënboer. 1994. Instructional control of cognitive load in the training of complex cognitive tasks. Educational psychology review 6, 4 (1994), 351–371.Google ScholarGoogle Scholar
  28. D. L. Parnas. 1972. On the criteria to be used in decomposing systems into modules. Commun. ACM 15, 12 (1972), 1053–1058. https://doi.org/10.1145/361598.361623Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. Chris Parnin. 2010. A cognitive neuroscience perspective on memory for programming tasks. Programming Interest Group(2010), 27.Google ScholarGoogle Scholar
  30. Chris Parnin and Spencer Rugaber. 2011. Resumption strategies for interrupted programming tasks. Software Quality Journal 19, 1 (2011), 5–34.Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. Shari L Pfleeger. 1998. Software Engineering: Theory and Practice. Prentice Hall.Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. Iflaah Salman, Ayse Tosun Misirli, and Natalia Juristo. 2015. Are Students Representatives of Professionals in Software Engineering Experiments?. In Proceedings of the 37th International Conference on Software Engineering - Volume 1(Florence, Italy) (ICSE ’15). IEEE Press, 666–676.Google ScholarGoogle ScholarCross RefCross Ref
  33. R. Shmallo and N. Ragonis. 2021. Understanding the “this” reference in object oriented programming: Misconceptions, conceptions, and teaching recommendations.Educ Inf Technol (2021). https://doi.org/10.1007/s10639-020-10265-6Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. Dag Ingar Kondrup Sjøberg, Jo Erskine Hannay, Ove Hansen, Vigdis By Kampenes, Amela Karahasanovic, Nils-Kristian Liborg, and Anette C. Rekdal. 2005. A Survey of Controlled Experiments in Software Engineering. IEEE Transactions on Software Engineering 31, 9 (September 2005), 733–753. https://doi.ieeecomputersociety.org/10.1109/TSE.2005.97Google ScholarGoogle Scholar
  35. D. I. K. Sjøberg, A. Yamashita, B. C. D. Anda, A. Mockus, and T. Dybå. 2013. Quantifying the Effect of Code Smells on Maintenance Effort. IEEE Transactions on Software Engineering 39, 8 (Aug. 2013), 1144–1156. https://doi.org/10.1109/TSE.2012.89Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. An Experiment on the Effects of Modularity on Code Modification and Understanding

    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 Other conferences
      ACE '23: Proceedings of the 25th Australasian Computing Education Conference
      January 2023
      139 pages
      ISBN:9781450399418
      DOI:10.1145/3576123

      Copyright © 2023 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: 30 January 2023

      Permissions

      Request permissions about this article.

      Request Permissions

      Check for updates

      Qualifiers

      • research-article
      • Research
      • Refereed limited

      Acceptance Rates

      Overall Acceptance Rate161of359submissions,45%
    • Article Metrics

      • Downloads (Last 12 months)28
      • Downloads (Last 6 weeks)2

      Other Metrics

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    HTML Format

    View this article in HTML Format .

    View HTML Format