SlideShare a Scribd company logo
1 of 27
Download to read offline
An Exploratory Study of the Impact
    of Code Smells on Software Change-
                proneness

                  Foutse Khomh, Massimiliano Di Penta,
                       and Yann-Gaël Guéhéneuc
                                                  WCRE’09
                                                 2009/10/13



Ptidej Team – OO Programs Quality Evaluation and Enhancement using Patterns
Department of Computer Science and Operations Research
University of Montréal, Québec, Canada                                        © Khomh, 2009
Context and Motivation

        Code smells are “poor” solutions to recurring
        implementation problems
        Code smells are in between design and
        implementation
        Code smells are conjectured in the literature
        to hinder object-oriented software evolution
        No previous study has investigated the
        relationship between code smells and
        change-proneness
2/27
Objective

        Study the impact of code smells on the
        change-proneness of classes

        Study the impact of the composition of
        code smells on the change-proneness
        of classes


3/27
Outline

        Study Definition
        Study Context
        Study Design
        Analysis Method
        Results
        Conclusion and Future Work

4/27
Study Definition                  (1/2)
        Goal: investigate the relation
        between the presence of smells in
        classes and their change-proneness

        Quality focus: the increase of
        maintenance effort and cost is due to
        the presence of code smells

5/27
Study Definition                    (2/2)
        Perspective: both researchers,
        practitioners, and managers should be
        aware of the impact of code smells on
        classes to make inform design and
        implementation choices
        – The presence of change-prone classes
          increases maintenance effort and cost



6/27
Study Context                        (1/2)

        Programs
        – 9 versions of Azureus (5,858,041 LOCs)
        – 13 versions of Eclipse (31,579,975 LOCs)


        Change history between each analysed
        releases in the programs’ concurrent
        Versions System (CVS)

7/27
Study Context                       (2/2)
        29 code smells




        Detected using our tool, DECOR (based on
8/27    metrics and lexical information)
Study Design                                         (1/3)
        RQ1: What is the relation between smells and change
        proneness?
        – H01: the proportion of classes undergoing at least one
          change between two releases does not significantly differ
          between classes with code smells and other classes.

        RQ2: What is the relation between the number of
        smells in a class and its change-proneness?
        – H02: the numbers of smells in change-prone classes are not
          significantly higher than the numbers of smells in classes
          that do not change.




9/27
Study Design                           (2/3)

         RQ3: What is the relation between
         particular kinds of smells and change
         proneness?
         – H03: classes with particular kinds of code
           smells are not significantly more change-
           prone than other classes.



10/27
Study Design                             (3/3)
         Independent Variables
         – 29 kind of code smells.
         – Each variable si,j,k indicates the number of
           times a class i has a smell j in a release rk.

         Dependent variables
         – Classes change proneness.
         – Measured as the number of changes ci,k
           that a “smelly class” underwent between
           release rk and subsequent release rk+1.
11/27
Analysis Method                        (1/3)
         For RQ1, we:
         – Test the proportions of classes exhibiting
           (or not) at least one change with (some)
           smells vs. other classes.

         – Use Fisher’s exact test.

         – We compute the Odds ratios (OR).

12/27
Analysis Method                            (2/3)
         For RQ2, we:
         – Compare the numbers of smells in change-
           prone classes vs. non-change-prone
           classes.

         – Use a Mann-Whitney non-parametric test.

         – Estimate the magnitude of differences with
           the Cohen d effect size
           • Small: 0.2 ≤ d ≤ 0.3, medium: around 0.5, and
             large: ≥ 0.8.
13/27
Analysis Method                          (3/3)
         For RQ3, we:
         – Relate change-proneness with the
           presence of particular kinds of smells.

         – We use a logistic regression model.

         – We decide that a relation is significant if
           the null-hypothesis is rejected for at least
           75% of the releases.
14/27
Results                         (1/6)
        RQ1: smells and changes (Azureus)




15/27
Results                             (2/6)
        RQ1: smells and changes (Eclipse)




16/27
Results          (3/6)

         RQ2:
         composition
         of smells and
         changes
         (Azureus)

17/27
Results          (4/6)

         RQ2:
         composition
         of smells and
         changes
         (Eclipse)

18/27
Results        (5/6)

         RQ3: kinds
         of smells
         and changes
         (Azureus)




19/27
Results        (6/6)

         RQ3: kinds
         of smells
         and changes
         (Eclipse)




20/27
Discussion
         Classes with smells are more change-
         prone, some odds ratio 3 to 8 times
         bigger for these classes.
         HasChildren, MessageChains,
         NotComplex, and NotAbstract lead
         almost consistently to change-prone
         classes.
         Existing smells are generally removed
         from the system while some new are
         introduced in the context of new
21/27    features addition.
Threats to the validity                       (1/2)
        Construct validity
         – The count of changes occurred to classes is
           based on the CVS change log.
         – Subjectivity of the definitions of code smells
            • We were interested in code smells as defined by
              our tool.
         – Dependence between code smells
            • We perform a Spearman rank correlation
              analysis.
            • Our logistic regression only selected non-
22/27         correlated smells.
Threats to the validity                                  (2/2)
         Internal validity
          – We do not claim causation, only relation.
         Conclusion validity
          – Statistic tests properly used.
              • We verified their underlying assumptions.
         Reliability validity
          – We provide all the details for the replication of our study.
         External validity
          – The generalisation will require further studies.
              • We chose programs from different domains and a
                representative set of code smells.
23/27
Conclusion                                 (1/2)
         We provide empirical evidence of the
         negative impact of code smells on classes
         change-proneness.
         We show that:
         – Classes with smells are significantly more likely
           to be the subject of changes, than other classes.
         – The more a class have smells, the more it
           changes.
         – Some specific code smells, are more likely to be
           of concern during evolution: e.g.,
           MessageChains, NotComplex (and Lazy classes)
24/27
Conclusion                                 (2/2)
         Previous studies correlated source code
         metrics with change-proneness.

         – But, we believe that smells can provide to
           developers recommendations easier to
           understand than what metric profiles can do.

         – However, we found that metrics still perform
           better than smells on building change-
           proneness/fault-proneness prediction models.

25/27
Future work
         Our future work includes:
         – Replicating this study
         – Studying the effect of anti patterns which
           are at a higher level of abstraction
         – Relates smells, anti patterns to fault-
           proneness



         The data of our study are available online
         http://www.ptidej.net/downloads/experiments/prop-WCRE09
26/27
Questions




         Thank you for listening
27/27

More Related Content

Similar to Code Smells Impact on Software Change-Proneness

FUNCTIONAL OVER-RELATED CLASSES BAD SMELL DETECTION AND REFACTORING SUGGESTIONS
FUNCTIONAL OVER-RELATED CLASSES BAD SMELL DETECTION AND REFACTORING SUGGESTIONSFUNCTIONAL OVER-RELATED CLASSES BAD SMELL DETECTION AND REFACTORING SUGGESTIONS
FUNCTIONAL OVER-RELATED CLASSES BAD SMELL DETECTION AND REFACTORING SUGGESTIONSijseajournal
 
Functional over related classes bad smell detection and refactoring suggestions
Functional over related classes bad smell detection and refactoring suggestionsFunctional over related classes bad smell detection and refactoring suggestions
Functional over related classes bad smell detection and refactoring suggestionsijseajournal
 
DETECTION AND REFACTORING OF BAD SMELL CAUSED BY LARGE SCALE
DETECTION AND REFACTORING OF BAD SMELL CAUSED BY LARGE SCALEDETECTION AND REFACTORING OF BAD SMELL CAUSED BY LARGE SCALE
DETECTION AND REFACTORING OF BAD SMELL CAUSED BY LARGE SCALEijseajournal
 
Sound Empirical Evidence in Software Testing
Sound Empirical Evidence in Software TestingSound Empirical Evidence in Software Testing
Sound Empirical Evidence in Software TestingJaguaraci Silva
 
Ijess complimentary copy vol1issue3
Ijess complimentary copy vol1issue3Ijess complimentary copy vol1issue3
Ijess complimentary copy vol1issue3surendergupta1978
 
Assessing The Impact Of Global Variables On Program Dependence And Dependence...
Assessing The Impact Of Global Variables On Program Dependence And Dependence...Assessing The Impact Of Global Variables On Program Dependence And Dependence...
Assessing The Impact Of Global Variables On Program Dependence And Dependence...Daphne Smith
 
YMER210765.pdffffffff fddddddddddddddddd
YMER210765.pdffffffff fdddddddddddddddddYMER210765.pdffffffff fddddddddddddddddd
YMER210765.pdffffffff fddddddddddddddddd031SolankiViveka
 
A survey on software smells
A survey on software smellsA survey on software smells
A survey on software smellsZahid Qaisar
 
130404 fehmi jaafar - on the relationship between program evolution and fau...
130404   fehmi jaafar - on the relationship between program evolution and fau...130404   fehmi jaafar - on the relationship between program evolution and fau...
130404 fehmi jaafar - on the relationship between program evolution and fau...Ptidej Team
 
Software Systems as Cities: a Controlled Experiment
Software Systems as Cities: a Controlled ExperimentSoftware Systems as Cities: a Controlled Experiment
Software Systems as Cities: a Controlled ExperimentRichard Wettel
 
A Critique On Code Critics
A Critique On Code CriticsA Critique On Code Critics
A Critique On Code CriticsLaurie Smith
 
Impact of design complexity on software quality - A systematic review
Impact of design complexity on software quality - A systematic reviewImpact of design complexity on software quality - A systematic review
Impact of design complexity on software quality - A systematic reviewAnh Nguyen Duc
 
On The Relation of Test Smells to Software Code Quality
On The Relation of Test Smells to Software Code QualityOn The Relation of Test Smells to Software Code Quality
On The Relation of Test Smells to Software Code QualityDelft University of Technology
 
What does the future hold for low cost air pollution sensors? - Dr Pete Edwards
What does the future hold for low cost air pollution sensors? - Dr Pete EdwardsWhat does the future hold for low cost air pollution sensors? - Dr Pete Edwards
What does the future hold for low cost air pollution sensors? - Dr Pete EdwardsIES / IAQM
 
Passive Samplers for Vapor Intrusion Monitoring: Update of EPA’s Technical S...
Passive Samplers for Vapor Intrusion Monitoring:  Update of EPA’s Technical S...Passive Samplers for Vapor Intrusion Monitoring:  Update of EPA’s Technical S...
Passive Samplers for Vapor Intrusion Monitoring: Update of EPA’s Technical S...Chris Lutes
 
Finding Bad Code Smells with Neural Network Models
Finding Bad Code Smells with Neural Network Models Finding Bad Code Smells with Neural Network Models
Finding Bad Code Smells with Neural Network Models IJECEIAES
 

Similar to Code Smells Impact on Software Change-Proneness (20)

QSIC09.ppt
QSIC09.pptQSIC09.ppt
QSIC09.ppt
 
FUNCTIONAL OVER-RELATED CLASSES BAD SMELL DETECTION AND REFACTORING SUGGESTIONS
FUNCTIONAL OVER-RELATED CLASSES BAD SMELL DETECTION AND REFACTORING SUGGESTIONSFUNCTIONAL OVER-RELATED CLASSES BAD SMELL DETECTION AND REFACTORING SUGGESTIONS
FUNCTIONAL OVER-RELATED CLASSES BAD SMELL DETECTION AND REFACTORING SUGGESTIONS
 
Functional over related classes bad smell detection and refactoring suggestions
Functional over related classes bad smell detection and refactoring suggestionsFunctional over related classes bad smell detection and refactoring suggestions
Functional over related classes bad smell detection and refactoring suggestions
 
DETECTION AND REFACTORING OF BAD SMELL CAUSED BY LARGE SCALE
DETECTION AND REFACTORING OF BAD SMELL CAUSED BY LARGE SCALEDETECTION AND REFACTORING OF BAD SMELL CAUSED BY LARGE SCALE
DETECTION AND REFACTORING OF BAD SMELL CAUSED BY LARGE SCALE
 
Sound Empirical Evidence in Software Testing
Sound Empirical Evidence in Software TestingSound Empirical Evidence in Software Testing
Sound Empirical Evidence in Software Testing
 
Ijess complimentary copy vol1issue3
Ijess complimentary copy vol1issue3Ijess complimentary copy vol1issue3
Ijess complimentary copy vol1issue3
 
Assessing The Impact Of Global Variables On Program Dependence And Dependence...
Assessing The Impact Of Global Variables On Program Dependence And Dependence...Assessing The Impact Of Global Variables On Program Dependence And Dependence...
Assessing The Impact Of Global Variables On Program Dependence And Dependence...
 
Practices and Tools for Better Software Testing
Practices and Tools for  Better Software TestingPractices and Tools for  Better Software Testing
Practices and Tools for Better Software Testing
 
YMER210765.pdffffffff fddddddddddddddddd
YMER210765.pdffffffff fdddddddddddddddddYMER210765.pdffffffff fddddddddddddddddd
YMER210765.pdffffffff fddddddddddddddddd
 
A survey on software smells
A survey on software smellsA survey on software smells
A survey on software smells
 
130404 fehmi jaafar - on the relationship between program evolution and fau...
130404   fehmi jaafar - on the relationship between program evolution and fau...130404   fehmi jaafar - on the relationship between program evolution and fau...
130404 fehmi jaafar - on the relationship between program evolution and fau...
 
Csmr13c.ppt
Csmr13c.pptCsmr13c.ppt
Csmr13c.ppt
 
Software Systems as Cities: a Controlled Experiment
Software Systems as Cities: a Controlled ExperimentSoftware Systems as Cities: a Controlled Experiment
Software Systems as Cities: a Controlled Experiment
 
A Critique On Code Critics
A Critique On Code CriticsA Critique On Code Critics
A Critique On Code Critics
 
Impact of design complexity on software quality - A systematic review
Impact of design complexity on software quality - A systematic reviewImpact of design complexity on software quality - A systematic review
Impact of design complexity on software quality - A systematic review
 
Qsic09.ppt
Qsic09.pptQsic09.ppt
Qsic09.ppt
 
On The Relation of Test Smells to Software Code Quality
On The Relation of Test Smells to Software Code QualityOn The Relation of Test Smells to Software Code Quality
On The Relation of Test Smells to Software Code Quality
 
What does the future hold for low cost air pollution sensors? - Dr Pete Edwards
What does the future hold for low cost air pollution sensors? - Dr Pete EdwardsWhat does the future hold for low cost air pollution sensors? - Dr Pete Edwards
What does the future hold for low cost air pollution sensors? - Dr Pete Edwards
 
Passive Samplers for Vapor Intrusion Monitoring: Update of EPA’s Technical S...
Passive Samplers for Vapor Intrusion Monitoring:  Update of EPA’s Technical S...Passive Samplers for Vapor Intrusion Monitoring:  Update of EPA’s Technical S...
Passive Samplers for Vapor Intrusion Monitoring: Update of EPA’s Technical S...
 
Finding Bad Code Smells with Neural Network Models
Finding Bad Code Smells with Neural Network Models Finding Bad Code Smells with Neural Network Models
Finding Bad Code Smells with Neural Network Models
 

More from Ptidej Team

From IoT to Software Miniaturisation
From IoT to Software MiniaturisationFrom IoT to Software Miniaturisation
From IoT to Software MiniaturisationPtidej Team
 
Presentation by Lionel Briand
Presentation by Lionel BriandPresentation by Lionel Briand
Presentation by Lionel BriandPtidej Team
 
Manel Abdellatif
Manel AbdellatifManel Abdellatif
Manel AbdellatifPtidej Team
 
Azadeh Kermansaravi
Azadeh KermansaraviAzadeh Kermansaravi
Azadeh KermansaraviPtidej Team
 
CSED - Manel Grichi
CSED - Manel GrichiCSED - Manel Grichi
CSED - Manel GrichiPtidej Team
 
Cristiano Politowski
Cristiano PolitowskiCristiano Politowski
Cristiano PolitowskiPtidej Team
 
Will io t trigger the next software crisis
Will io t trigger the next software crisisWill io t trigger the next software crisis
Will io t trigger the next software crisisPtidej Team
 
Thesis+of+laleh+eshkevari.ppt
Thesis+of+laleh+eshkevari.pptThesis+of+laleh+eshkevari.ppt
Thesis+of+laleh+eshkevari.pptPtidej Team
 
Thesis+of+nesrine+abdelkafi.ppt
Thesis+of+nesrine+abdelkafi.pptThesis+of+nesrine+abdelkafi.ppt
Thesis+of+nesrine+abdelkafi.pptPtidej Team
 

More from Ptidej Team (20)

From IoT to Software Miniaturisation
From IoT to Software MiniaturisationFrom IoT to Software Miniaturisation
From IoT to Software Miniaturisation
 
Presentation
PresentationPresentation
Presentation
 
Presentation
PresentationPresentation
Presentation
 
Presentation
PresentationPresentation
Presentation
 
Presentation by Lionel Briand
Presentation by Lionel BriandPresentation by Lionel Briand
Presentation by Lionel Briand
 
Manel Abdellatif
Manel AbdellatifManel Abdellatif
Manel Abdellatif
 
Azadeh Kermansaravi
Azadeh KermansaraviAzadeh Kermansaravi
Azadeh Kermansaravi
 
Mouna Abidi
Mouna AbidiMouna Abidi
Mouna Abidi
 
CSED - Manel Grichi
CSED - Manel GrichiCSED - Manel Grichi
CSED - Manel Grichi
 
Cristiano Politowski
Cristiano PolitowskiCristiano Politowski
Cristiano Politowski
 
Will io t trigger the next software crisis
Will io t trigger the next software crisisWill io t trigger the next software crisis
Will io t trigger the next software crisis
 
MIPA
MIPAMIPA
MIPA
 
Thesis+of+laleh+eshkevari.ppt
Thesis+of+laleh+eshkevari.pptThesis+of+laleh+eshkevari.ppt
Thesis+of+laleh+eshkevari.ppt
 
Thesis+of+nesrine+abdelkafi.ppt
Thesis+of+nesrine+abdelkafi.pptThesis+of+nesrine+abdelkafi.ppt
Thesis+of+nesrine+abdelkafi.ppt
 
Medicine15.ppt
Medicine15.pptMedicine15.ppt
Medicine15.ppt
 
Qrs17b.ppt
Qrs17b.pptQrs17b.ppt
Qrs17b.ppt
 
Icpc11c.ppt
Icpc11c.pptIcpc11c.ppt
Icpc11c.ppt
 
Icsme16.ppt
Icsme16.pptIcsme16.ppt
Icsme16.ppt
 
Msr17a.ppt
Msr17a.pptMsr17a.ppt
Msr17a.ppt
 
Icsoc15.ppt
Icsoc15.pptIcsoc15.ppt
Icsoc15.ppt
 

Recently uploaded

Enhancing and Restoring Safety & Quality Cultures - Dave Litwiller - May 2024...
Enhancing and Restoring Safety & Quality Cultures - Dave Litwiller - May 2024...Enhancing and Restoring Safety & Quality Cultures - Dave Litwiller - May 2024...
Enhancing and Restoring Safety & Quality Cultures - Dave Litwiller - May 2024...Dave Litwiller
 
Call Girls Electronic City Just Call 👗 7737669865 👗 Top Class Call Girl Servi...
Call Girls Electronic City Just Call 👗 7737669865 👗 Top Class Call Girl Servi...Call Girls Electronic City Just Call 👗 7737669865 👗 Top Class Call Girl Servi...
Call Girls Electronic City Just Call 👗 7737669865 👗 Top Class Call Girl Servi...amitlee9823
 
The Path to Product Excellence: Avoiding Common Pitfalls and Enhancing Commun...
The Path to Product Excellence: Avoiding Common Pitfalls and Enhancing Commun...The Path to Product Excellence: Avoiding Common Pitfalls and Enhancing Commun...
The Path to Product Excellence: Avoiding Common Pitfalls and Enhancing Commun...Aggregage
 
John Halpern sued for sexual assault.pdf
John Halpern sued for sexual assault.pdfJohn Halpern sued for sexual assault.pdf
John Halpern sued for sexual assault.pdfAmzadHosen3
 
👉Chandigarh Call Girls 👉9878799926👉Just Call👉Chandigarh Call Girl In Chandiga...
👉Chandigarh Call Girls 👉9878799926👉Just Call👉Chandigarh Call Girl In Chandiga...👉Chandigarh Call Girls 👉9878799926👉Just Call👉Chandigarh Call Girl In Chandiga...
👉Chandigarh Call Girls 👉9878799926👉Just Call👉Chandigarh Call Girl In Chandiga...rajveerescorts2022
 
Organizational Transformation Lead with Culture
Organizational Transformation Lead with CultureOrganizational Transformation Lead with Culture
Organizational Transformation Lead with CultureSeta Wicaksana
 
M.C Lodges -- Guest House in Jhang.
M.C Lodges --  Guest House in Jhang.M.C Lodges --  Guest House in Jhang.
M.C Lodges -- Guest House in Jhang.Aaiza Hassan
 
Famous Olympic Siblings from the 21st Century
Famous Olympic Siblings from the 21st CenturyFamous Olympic Siblings from the 21st Century
Famous Olympic Siblings from the 21st Centuryrwgiffor
 
A DAY IN THE LIFE OF A SALESMAN / WOMAN
A DAY IN THE LIFE OF A  SALESMAN / WOMANA DAY IN THE LIFE OF A  SALESMAN / WOMAN
A DAY IN THE LIFE OF A SALESMAN / WOMANIlamathiKannappan
 
Russian Call Girls In Gurgaon ❤️8448577510 ⊹Best Escorts Service In 24/7 Delh...
Russian Call Girls In Gurgaon ❤️8448577510 ⊹Best Escorts Service In 24/7 Delh...Russian Call Girls In Gurgaon ❤️8448577510 ⊹Best Escorts Service In 24/7 Delh...
Russian Call Girls In Gurgaon ❤️8448577510 ⊹Best Escorts Service In 24/7 Delh...lizamodels9
 
Call Girls in Gomti Nagar - 7388211116 - With room Service
Call Girls in Gomti Nagar - 7388211116  - With room ServiceCall Girls in Gomti Nagar - 7388211116  - With room Service
Call Girls in Gomti Nagar - 7388211116 - With room Servicediscovermytutordmt
 
KYC-Verified Accounts: Helping Companies Handle Challenging Regulatory Enviro...
KYC-Verified Accounts: Helping Companies Handle Challenging Regulatory Enviro...KYC-Verified Accounts: Helping Companies Handle Challenging Regulatory Enviro...
KYC-Verified Accounts: Helping Companies Handle Challenging Regulatory Enviro...Any kyc Account
 
Cracking the Cultural Competence Code.pptx
Cracking the Cultural Competence Code.pptxCracking the Cultural Competence Code.pptx
Cracking the Cultural Competence Code.pptxWorkforce Group
 
Regression analysis: Simple Linear Regression Multiple Linear Regression
Regression analysis:  Simple Linear Regression Multiple Linear RegressionRegression analysis:  Simple Linear Regression Multiple Linear Regression
Regression analysis: Simple Linear Regression Multiple Linear RegressionRavindra Nath Shukla
 
Lucknow 💋 Escorts in Lucknow - 450+ Call Girl Cash Payment 8923113531 Neha Th...
Lucknow 💋 Escorts in Lucknow - 450+ Call Girl Cash Payment 8923113531 Neha Th...Lucknow 💋 Escorts in Lucknow - 450+ Call Girl Cash Payment 8923113531 Neha Th...
Lucknow 💋 Escorts in Lucknow - 450+ Call Girl Cash Payment 8923113531 Neha Th...anilsa9823
 
It will be International Nurses' Day on 12 May
It will be International Nurses' Day on 12 MayIt will be International Nurses' Day on 12 May
It will be International Nurses' Day on 12 MayNZSG
 
HONOR Veterans Event Keynote by Michael Hawkins
HONOR Veterans Event Keynote by Michael HawkinsHONOR Veterans Event Keynote by Michael Hawkins
HONOR Veterans Event Keynote by Michael HawkinsMichael W. Hawkins
 
VIP Call Girls In Saharaganj ( Lucknow ) 🔝 8923113531 🔝 Cash Payment (COD) 👒
VIP Call Girls In Saharaganj ( Lucknow  ) 🔝 8923113531 🔝  Cash Payment (COD) 👒VIP Call Girls In Saharaganj ( Lucknow  ) 🔝 8923113531 🔝  Cash Payment (COD) 👒
VIP Call Girls In Saharaganj ( Lucknow ) 🔝 8923113531 🔝 Cash Payment (COD) 👒anilsa9823
 
Monte Carlo simulation : Simulation using MCSM
Monte Carlo simulation : Simulation using MCSMMonte Carlo simulation : Simulation using MCSM
Monte Carlo simulation : Simulation using MCSMRavindra Nath Shukla
 

Recently uploaded (20)

Enhancing and Restoring Safety & Quality Cultures - Dave Litwiller - May 2024...
Enhancing and Restoring Safety & Quality Cultures - Dave Litwiller - May 2024...Enhancing and Restoring Safety & Quality Cultures - Dave Litwiller - May 2024...
Enhancing and Restoring Safety & Quality Cultures - Dave Litwiller - May 2024...
 
Call Girls Electronic City Just Call 👗 7737669865 👗 Top Class Call Girl Servi...
Call Girls Electronic City Just Call 👗 7737669865 👗 Top Class Call Girl Servi...Call Girls Electronic City Just Call 👗 7737669865 👗 Top Class Call Girl Servi...
Call Girls Electronic City Just Call 👗 7737669865 👗 Top Class Call Girl Servi...
 
The Path to Product Excellence: Avoiding Common Pitfalls and Enhancing Commun...
The Path to Product Excellence: Avoiding Common Pitfalls and Enhancing Commun...The Path to Product Excellence: Avoiding Common Pitfalls and Enhancing Commun...
The Path to Product Excellence: Avoiding Common Pitfalls and Enhancing Commun...
 
John Halpern sued for sexual assault.pdf
John Halpern sued for sexual assault.pdfJohn Halpern sued for sexual assault.pdf
John Halpern sued for sexual assault.pdf
 
👉Chandigarh Call Girls 👉9878799926👉Just Call👉Chandigarh Call Girl In Chandiga...
👉Chandigarh Call Girls 👉9878799926👉Just Call👉Chandigarh Call Girl In Chandiga...👉Chandigarh Call Girls 👉9878799926👉Just Call👉Chandigarh Call Girl In Chandiga...
👉Chandigarh Call Girls 👉9878799926👉Just Call👉Chandigarh Call Girl In Chandiga...
 
Organizational Transformation Lead with Culture
Organizational Transformation Lead with CultureOrganizational Transformation Lead with Culture
Organizational Transformation Lead with Culture
 
M.C Lodges -- Guest House in Jhang.
M.C Lodges --  Guest House in Jhang.M.C Lodges --  Guest House in Jhang.
M.C Lodges -- Guest House in Jhang.
 
Famous Olympic Siblings from the 21st Century
Famous Olympic Siblings from the 21st CenturyFamous Olympic Siblings from the 21st Century
Famous Olympic Siblings from the 21st Century
 
A DAY IN THE LIFE OF A SALESMAN / WOMAN
A DAY IN THE LIFE OF A  SALESMAN / WOMANA DAY IN THE LIFE OF A  SALESMAN / WOMAN
A DAY IN THE LIFE OF A SALESMAN / WOMAN
 
Russian Call Girls In Gurgaon ❤️8448577510 ⊹Best Escorts Service In 24/7 Delh...
Russian Call Girls In Gurgaon ❤️8448577510 ⊹Best Escorts Service In 24/7 Delh...Russian Call Girls In Gurgaon ❤️8448577510 ⊹Best Escorts Service In 24/7 Delh...
Russian Call Girls In Gurgaon ❤️8448577510 ⊹Best Escorts Service In 24/7 Delh...
 
Call Girls in Gomti Nagar - 7388211116 - With room Service
Call Girls in Gomti Nagar - 7388211116  - With room ServiceCall Girls in Gomti Nagar - 7388211116  - With room Service
Call Girls in Gomti Nagar - 7388211116 - With room Service
 
KYC-Verified Accounts: Helping Companies Handle Challenging Regulatory Enviro...
KYC-Verified Accounts: Helping Companies Handle Challenging Regulatory Enviro...KYC-Verified Accounts: Helping Companies Handle Challenging Regulatory Enviro...
KYC-Verified Accounts: Helping Companies Handle Challenging Regulatory Enviro...
 
Cracking the Cultural Competence Code.pptx
Cracking the Cultural Competence Code.pptxCracking the Cultural Competence Code.pptx
Cracking the Cultural Competence Code.pptx
 
Regression analysis: Simple Linear Regression Multiple Linear Regression
Regression analysis:  Simple Linear Regression Multiple Linear RegressionRegression analysis:  Simple Linear Regression Multiple Linear Regression
Regression analysis: Simple Linear Regression Multiple Linear Regression
 
Lucknow 💋 Escorts in Lucknow - 450+ Call Girl Cash Payment 8923113531 Neha Th...
Lucknow 💋 Escorts in Lucknow - 450+ Call Girl Cash Payment 8923113531 Neha Th...Lucknow 💋 Escorts in Lucknow - 450+ Call Girl Cash Payment 8923113531 Neha Th...
Lucknow 💋 Escorts in Lucknow - 450+ Call Girl Cash Payment 8923113531 Neha Th...
 
It will be International Nurses' Day on 12 May
It will be International Nurses' Day on 12 MayIt will be International Nurses' Day on 12 May
It will be International Nurses' Day on 12 May
 
HONOR Veterans Event Keynote by Michael Hawkins
HONOR Veterans Event Keynote by Michael HawkinsHONOR Veterans Event Keynote by Michael Hawkins
HONOR Veterans Event Keynote by Michael Hawkins
 
VVVIP Call Girls In Greater Kailash ➡️ Delhi ➡️ 9999965857 🚀 No Advance 24HRS...
VVVIP Call Girls In Greater Kailash ➡️ Delhi ➡️ 9999965857 🚀 No Advance 24HRS...VVVIP Call Girls In Greater Kailash ➡️ Delhi ➡️ 9999965857 🚀 No Advance 24HRS...
VVVIP Call Girls In Greater Kailash ➡️ Delhi ➡️ 9999965857 🚀 No Advance 24HRS...
 
VIP Call Girls In Saharaganj ( Lucknow ) 🔝 8923113531 🔝 Cash Payment (COD) 👒
VIP Call Girls In Saharaganj ( Lucknow  ) 🔝 8923113531 🔝  Cash Payment (COD) 👒VIP Call Girls In Saharaganj ( Lucknow  ) 🔝 8923113531 🔝  Cash Payment (COD) 👒
VIP Call Girls In Saharaganj ( Lucknow ) 🔝 8923113531 🔝 Cash Payment (COD) 👒
 
Monte Carlo simulation : Simulation using MCSM
Monte Carlo simulation : Simulation using MCSMMonte Carlo simulation : Simulation using MCSM
Monte Carlo simulation : Simulation using MCSM
 

Code Smells Impact on Software Change-Proneness

  • 1. An Exploratory Study of the Impact of Code Smells on Software Change- proneness Foutse Khomh, Massimiliano Di Penta, and Yann-Gaël Guéhéneuc WCRE’09 2009/10/13 Ptidej Team – OO Programs Quality Evaluation and Enhancement using Patterns Department of Computer Science and Operations Research University of Montréal, Québec, Canada © Khomh, 2009
  • 2. Context and Motivation Code smells are “poor” solutions to recurring implementation problems Code smells are in between design and implementation Code smells are conjectured in the literature to hinder object-oriented software evolution No previous study has investigated the relationship between code smells and change-proneness 2/27
  • 3. Objective Study the impact of code smells on the change-proneness of classes Study the impact of the composition of code smells on the change-proneness of classes 3/27
  • 4. Outline Study Definition Study Context Study Design Analysis Method Results Conclusion and Future Work 4/27
  • 5. Study Definition (1/2) Goal: investigate the relation between the presence of smells in classes and their change-proneness Quality focus: the increase of maintenance effort and cost is due to the presence of code smells 5/27
  • 6. Study Definition (2/2) Perspective: both researchers, practitioners, and managers should be aware of the impact of code smells on classes to make inform design and implementation choices – The presence of change-prone classes increases maintenance effort and cost 6/27
  • 7. Study Context (1/2) Programs – 9 versions of Azureus (5,858,041 LOCs) – 13 versions of Eclipse (31,579,975 LOCs) Change history between each analysed releases in the programs’ concurrent Versions System (CVS) 7/27
  • 8. Study Context (2/2) 29 code smells Detected using our tool, DECOR (based on 8/27 metrics and lexical information)
  • 9. Study Design (1/3) RQ1: What is the relation between smells and change proneness? – H01: the proportion of classes undergoing at least one change between two releases does not significantly differ between classes with code smells and other classes. RQ2: What is the relation between the number of smells in a class and its change-proneness? – H02: the numbers of smells in change-prone classes are not significantly higher than the numbers of smells in classes that do not change. 9/27
  • 10. Study Design (2/3) RQ3: What is the relation between particular kinds of smells and change proneness? – H03: classes with particular kinds of code smells are not significantly more change- prone than other classes. 10/27
  • 11. Study Design (3/3) Independent Variables – 29 kind of code smells. – Each variable si,j,k indicates the number of times a class i has a smell j in a release rk. Dependent variables – Classes change proneness. – Measured as the number of changes ci,k that a “smelly class” underwent between release rk and subsequent release rk+1. 11/27
  • 12. Analysis Method (1/3) For RQ1, we: – Test the proportions of classes exhibiting (or not) at least one change with (some) smells vs. other classes. – Use Fisher’s exact test. – We compute the Odds ratios (OR). 12/27
  • 13. Analysis Method (2/3) For RQ2, we: – Compare the numbers of smells in change- prone classes vs. non-change-prone classes. – Use a Mann-Whitney non-parametric test. – Estimate the magnitude of differences with the Cohen d effect size • Small: 0.2 ≤ d ≤ 0.3, medium: around 0.5, and large: ≥ 0.8. 13/27
  • 14. Analysis Method (3/3) For RQ3, we: – Relate change-proneness with the presence of particular kinds of smells. – We use a logistic regression model. – We decide that a relation is significant if the null-hypothesis is rejected for at least 75% of the releases. 14/27
  • 15. Results (1/6) RQ1: smells and changes (Azureus) 15/27
  • 16. Results (2/6) RQ1: smells and changes (Eclipse) 16/27
  • 17. Results (3/6) RQ2: composition of smells and changes (Azureus) 17/27
  • 18. Results (4/6) RQ2: composition of smells and changes (Eclipse) 18/27
  • 19. Results (5/6) RQ3: kinds of smells and changes (Azureus) 19/27
  • 20. Results (6/6) RQ3: kinds of smells and changes (Eclipse) 20/27
  • 21. Discussion Classes with smells are more change- prone, some odds ratio 3 to 8 times bigger for these classes. HasChildren, MessageChains, NotComplex, and NotAbstract lead almost consistently to change-prone classes. Existing smells are generally removed from the system while some new are introduced in the context of new 21/27 features addition.
  • 22. Threats to the validity (1/2) Construct validity – The count of changes occurred to classes is based on the CVS change log. – Subjectivity of the definitions of code smells • We were interested in code smells as defined by our tool. – Dependence between code smells • We perform a Spearman rank correlation analysis. • Our logistic regression only selected non- 22/27 correlated smells.
  • 23. Threats to the validity (2/2) Internal validity – We do not claim causation, only relation. Conclusion validity – Statistic tests properly used. • We verified their underlying assumptions. Reliability validity – We provide all the details for the replication of our study. External validity – The generalisation will require further studies. • We chose programs from different domains and a representative set of code smells. 23/27
  • 24. Conclusion (1/2) We provide empirical evidence of the negative impact of code smells on classes change-proneness. We show that: – Classes with smells are significantly more likely to be the subject of changes, than other classes. – The more a class have smells, the more it changes. – Some specific code smells, are more likely to be of concern during evolution: e.g., MessageChains, NotComplex (and Lazy classes) 24/27
  • 25. Conclusion (2/2) Previous studies correlated source code metrics with change-proneness. – But, we believe that smells can provide to developers recommendations easier to understand than what metric profiles can do. – However, we found that metrics still perform better than smells on building change- proneness/fault-proneness prediction models. 25/27
  • 26. Future work Our future work includes: – Replicating this study – Studying the effect of anti patterns which are at a higher level of abstraction – Relates smells, anti patterns to fault- proneness The data of our study are available online http://www.ptidej.net/downloads/experiments/prop-WCRE09 26/27
  • 27. Questions Thank you for listening 27/27