Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/3439961.3439969acmotherconferencesArticle/Chapter ViewAbstractPublication PagessbqsConference Proceedingsconference-collections
research-article

Applying coupling and cohesion concepts in object-oriented software: a controlled experiment

Published: 06 March 2021 Publication History
  • Get Citation Alerts
  • Abstract

    Context: Coupling and cohesion concepts support the object-oriented (OO) design activity. A better design implies less coupled and more cohesive classes. Thus, it is expected studies on OO design investigate issues impacting the good application of these concepts. However, most studies in the area have focused on high-level metaphors, such as code smells and design patterns; or software metrics. Objective: This study aims to build empirical evidence reinforcing that basic concepts deserve more attention towards better OO design. The study investigates the application of coupling and cohesion concepts during programming activity. Two topics are addressed: i) how developer characteristics (“previous knowledge on the concepts” and “developers experience”) impact on software design during programming activity; and ii) the differences in applying the concepts, independently. Method: A quasi-experiment with 17 participants. The participants were graduate and undergraduate students, but all have professional experience in software development. The software they programmed was compared with the experiment’s oracle in terms of the application of coupling and cohesion concepts. Result: One finding is previous knowledge on the concepts impacts on design quality, in some way; while developers experience doesn’t. Another finding is: application of cohesion is significantly easier than application of coupling. Conclusion: A conjecture based on these findings is training on basic OO principles (including formal education) might be more relevant than developer experience towards better software design. At last, the topic needs more investigation. We suggest this approach brings a complementary perspective of analysis to discuss the topic.

    References

    [1]
    G. Bavota, B. Dit, R. Oliveto, M. Di Penta, D. Poshyvanyk, and A. De Lucia. 2013. An empirical study on the developers’ perception of software coupling. In 2013 35th ICSE. 692–701.
    [2]
    S. R. Chidamber and C. F. Kemerer. 1994. A Metrics Suite for Object Oriented Design. IEEE Trans. Softw. Eng. 20, 6 (1994), 476–493.
    [3]
    Norman Cliff. 1996. Ordinal Methods for Behavioral Data Analysis. Erlbaum.
    [4]
    S. Counsell, S. Swift, A. Tucker, and E. Mendes. 2005. Object-oriented cohesion as a surrogate of software comprehension: an empirical study. In Fifth IEEE International Workshop on SCAM. 161–169.
    [5]
    Steve Counsell, Stephen Swift, Allan Tucker, and Emilia Mendes. 2006. Object-Oriented Cohesion Subjectivity amongst Experienced and Novice Developers: An Empirical Study. SIGSOFT Softw. Eng. Notes 31, 5 (Sept. 2006), 1–10.
    [6]
    Ward Cunningham. 1992. The WyCash Portfolio Management System. In Addendum to the Proceedings on OOPSLA (Vancouver, British Columbia, Canada). Association for Computing Machinery, New York, NY, USA, 29–30.
    [7]
    Bruno C. da Silva, Claudio N. Sant’Anna, and Christina von F.G. Chavez. 2014. An Empirical Study on How Developers Reason about Module Cohesion. In Proceedings of the 13th International Conference on MODULATIRY (Lugano, Switzerland). Association for Computing Machinery, New York, NY, USA, 121–132.
    [8]
    Nell Dale and John Lewis. 2016. Computer Science Illuminated. Jones and Bartlett Publishers, Inc., USA.
    [9]
    Rafael Maiani de Mello, Roberto Oliveira, and Alessandro Garcia. 2017. On the Influence of Human Factors for Identifying Code Smells: A Multi-Trial Empirical Study. In Proceedings of the 11th ACM/IEEE International Symposium on ESEM (Markham, Ontario, Canada). IEEE Press, 68–77.
    [10]
    Amr F. Desouky and Letha H. Etzkorn. 2014. Object Oriented Cohesion Metrics: A Qualitative Empirical Analysis of Runtime Behavior. In Proceedings of the 2014 ACM Southeast Regional Conference (Kennesaw, Georgia). Association for Computing Machinery, New York, NY, USA, Article 58, 6 pages.
    [11]
    Tore Dybå, Dag I.K. Sjøberg, and Daniela S. Cruzes. 2012. What Works for Whom, Where, when, and Why?: On the Role of Context in Empirical Software Engineering. In Proc. of the 6th International Symposium on ESEM. 19–28.
    [12]
    R. Johnson E. Gamma, R. Helm and J. Vlissides. 1994. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley Professional, U.S.
    [13]
    M. Fowler. 1999. Refactoring: improving the design of existing code. Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA.
    [14]
    M. Höst, C. Wohlin, and T. Thelin. 2005. Experimental context classification: incentives and experience of subjects. In Proc. of the 27th ICSE. 470–478.
    [15]
    Andreas Jedlitschka, Marcus Ciolkowski, and Dietmar Pfahl. 2008. Reporting Experiments in Software Engineering. In Guide to Advanced Empirical Software Engineering, Forrest Shull, Janice Singer, and Dag I. K. Søberg(Eds.). Springer London, 201–228.
    [16]
    Huzefa Kagdi Jonathan I. Maletic. 2008. Expressiveness and effectiveness of program comprehension: Thoughts on future research directions. In FoSM (Beijing, China). 31–37.
    [17]
    F. Khomh and Y. Guéhéneuc. 2008. Do Design Patterns Impact Software Quality Positively?. In 2008 12th European CSMR. 274–278.
    [18]
    Barbara Kitchenham, Lech Madeyski, David Budgen, Jacky Keung, Pearl Brereton, Stuart Charters, Shirley Gibbs, and Amnart Pohthong. 2017. Robust Statistical Methods for Empirical Software Engineering. Empirical Softw. Engg. 22, 2 (April 2017), 579–630.
    [19]
    Stefan Kramer and Hermann Kaindl. 2004. Coupling and Cohesion Metrics for Knowledge-Based Systems Using Frames and Rules. ACM Trans. Softw. Eng. Methodol. 13, 3 (July 2004), 332–358.
    [20]
    Philippe Kruchten, Robert Nord, and Ipek Ozkaya. 2019. Managing Technical Debt: Reducing Friction in Software Development (1st ed.). Addison-Wesley Professional.
    [21]
    Michele Lanza and Radu Marinescu. 2005. Object-Oriented Metrics in Practice. Springer-Verlag New York, Inc., Secaucus, NJ, USA.
    [22]
    C. Larman. 2002. Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and the Unified Process. Prentice-Hall, Inc., NJ, United States.
    [23]
    Mika V. Mäntylä and Casper Lassenius. 2006. Drivers for software refactoring decisions. In Proc. of 5th ISESE. 297–306.
    [24]
    S. McConnell and S.M. McConnell. 1993. Code Complete: A Practical Handbook of Software Construction. Microsoft Press.
    [25]
    Bertrand Meyer. 1988. Object-Oriented Software Construction(1st ed.). Prentice-Hall, Inc., Upper Saddle River, NJ, USA.
    [26]
    Fabio Palomba, Gabriele Bavota, Massimiliano Di Penta, Rocco Oliveto, and Andrea De Lucia. 2014. Do they Really Smell Bad? A Study on Developers’ Perception of Bad Code Smells. In Proc. of the 30th IEEE ICSME.
    [27]
    Amit Rathee and Jitender Kumar Chhabra. 2017. Restructuring of Object-Oriented Software Through Cohesion Improvement Using Frequent Usage Patterns. SIGSOFT Softw. Eng. Notes 42, 3 (Sept. 2017), 1–8.
    [28]
    Arthur J. Riel. 1996. Object-Oriented Design Heuristics(1st ed.). Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA.
    [29]
    J. Romano, J.D. Kromrey, J. Coraggio, and J. Skowronek. 2006. Appropriate statistics for ordinal level data: Should we really be using t-test and Cohen’sd for evaluating group differences on the NSSE and other surveys?. In In annual meeting of the Florida Association of Institutional Research. 1–3.
    [30]
    José Amancio Santos, Manoel Mendonça, and Carlos Silva. 2013. An exploratory study to investigate the impact of conceptualization in god class detection. In Proc. of the 17th International Conference on Evaluation and Assessment in Software Engineering (EASE). 48–59.
    [31]
    José Amancio Santos, João B. Rocha-Junior, and Manoel Gomes de Mendonça. 2017. Investigating factors that affect the human perception on god class detection: an analysis based on a family of four controlled experiments. Journal of Software Engineering Research and Development (JSERD) 5, 8(2017).
    [32]
    José Amancio M. Santos, João B. Rocha-Junior, Luciana Carla Lins Prates, Rogeres Santos do Nascimento, Mydiã Falcão Freitas, and Manoel Gomes de Mendonça. 2018. A systematic review on the code smell effect. Journal of Systems and Software 144 (2018), 450 – 477.
    [33]
    A. Shalloway and J. R. Trott. 2002. Design Patterns Explained: A New Perspective on Object-Oriented Design. Addison-Wesley Professional, U.S.
    [34]
    W. P. Stevens, G. J. Myers, and L. L. Constantine. 1974. Structured Design. IBM Syst. J. 13, 2 (June 1974), 115–139.
    [35]
    Norman G. Vinson and Janice Singer. 2008. A Practical Guide to Ethical Research Involving Humans. In Guide to Advanced Empirical Software Engineering, Forrest Shull, Janice Singer, and Dag I. K. Søberg(Eds.). Springer London, 229–256.
    [36]
    F. Wedyan and S. Abufakher. 2020. Impact of design patterns on software quality: a systematic literature review. IET Software 14, 1 (2020), 1–17.
    [37]
    C. Wohlin, P. Runeson, M. Höst, M.C. Ohlsson, B. Regnell, and A. Wesslén. 2012. Experimentation in Software Engineering. Springer Berlin Heidelberg.
    [38]
    E. Yourdon and L.L. Constantine. 1978. Structured design: fundamentals of a discipline of computer program and systems design. Yourdon Press.
    [39]
    Min Zhang, Tracy Hall, and Nathan Baddoo. 2011. Code Bad Smells: A Review of Current Knowledge. Software Maintenance and Evolution: Research and Practice 23, 3 (April 2011), 179–202.

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM Other conferences
    SBQS '20: Proceedings of the XIX Brazilian Symposium on Software Quality
    December 2020
    430 pages
    ISBN:9781450389235
    DOI:10.1145/3439961
    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 the author(s) 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: 06 March 2021

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. cohesion
    2. coupling
    3. object oriented
    4. programming

    Qualifiers

    • Research-article
    • Research
    • Refereed limited

    Conference

    SBQS'20
    SBQS'20: 19th Brazilian Symposium on Software Quality
    December 1 - 4, 2020
    São Luís, Brazil

    Acceptance Rates

    Overall Acceptance Rate 35 of 99 submissions, 35%

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • 0
      Total Citations
    • 89
      Total Downloads
    • Downloads (Last 12 months)17
    • Downloads (Last 6 weeks)3
    Reflects downloads up to 11 Aug 2024

    Other Metrics

    Citations

    View Options

    Get Access

    Login options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    HTML Format

    View this article in HTML Format.

    HTML Format

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media