SlideShare a Scribd company logo
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 WCRE09a.ppt

QSIC09.ppt
QSIC09.pptQSIC09.ppt
QSIC09.ppt
Ptidej Team
 
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
ijseajournal
 
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
ijseajournal
 
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
ijseajournal
 
Sound Empirical Evidence in Software Testing
Sound Empirical Evidence in Software TestingSound Empirical Evidence in Software Testing
Sound Empirical Evidence in Software Testing
Jaguaraci Silva
 
Ijess complimentary copy vol1issue3
Ijess complimentary copy vol1issue3Ijess complimentary copy vol1issue3
Ijess complimentary copy vol1issue3
surendergupta1978
 
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
 
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
Delft University of Technology
 
YMER210765.pdffffffff fddddddddddddddddd
YMER210765.pdffffffff fdddddddddddddddddYMER210765.pdffffffff fddddddddddddddddd
YMER210765.pdffffffff fddddddddddddddddd
031SolankiViveka
 
A survey on software smells
A survey on software smellsA survey on software smells
A survey on software smells
Zahid 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
 
Csmr13c.ppt
Csmr13c.pptCsmr13c.ppt
Csmr13c.ppt
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 Experiment
Richard Wettel
 
A Critique On Code Critics
A Critique On Code CriticsA Critique On Code Critics
A Critique On Code Critics
Laurie 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 review
Anh Nguyen Duc
 
Qsic09.ppt
Qsic09.pptQsic09.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
Delft 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 Edwards
IES / 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 WCRE09a.ppt (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 Miniaturisation
Ptidej Team
 
Presentation
PresentationPresentation
Presentation
Ptidej Team
 
Presentation
PresentationPresentation
Presentation
Ptidej Team
 
Presentation
PresentationPresentation
Presentation
Ptidej Team
 
Presentation by Lionel Briand
Presentation by Lionel BriandPresentation by Lionel Briand
Presentation by Lionel Briand
Ptidej Team
 
Manel Abdellatif
Manel AbdellatifManel Abdellatif
Manel Abdellatif
Ptidej Team
 
Azadeh Kermansaravi
Azadeh KermansaraviAzadeh Kermansaravi
Azadeh Kermansaravi
Ptidej Team
 
Mouna Abidi
Mouna AbidiMouna Abidi
Mouna Abidi
Ptidej Team
 
CSED - Manel Grichi
CSED - Manel GrichiCSED - Manel Grichi
CSED - Manel Grichi
Ptidej Team
 
Cristiano Politowski
Cristiano PolitowskiCristiano Politowski
Cristiano Politowski
Ptidej 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 crisis
Ptidej Team
 
MIPA
MIPAMIPA
Thesis+of+laleh+eshkevari.ppt
Thesis+of+laleh+eshkevari.pptThesis+of+laleh+eshkevari.ppt
Thesis+of+laleh+eshkevari.ppt
Ptidej Team
 
Thesis+of+nesrine+abdelkafi.ppt
Thesis+of+nesrine+abdelkafi.pptThesis+of+nesrine+abdelkafi.ppt
Thesis+of+nesrine+abdelkafi.ppt
Ptidej Team
 
Medicine15.ppt
Medicine15.pptMedicine15.ppt
Medicine15.ppt
Ptidej Team
 
Qrs17b.ppt
Qrs17b.pptQrs17b.ppt
Qrs17b.ppt
Ptidej Team
 
Icpc11c.ppt
Icpc11c.pptIcpc11c.ppt
Icpc11c.ppt
Ptidej Team
 
Icsme16.ppt
Icsme16.pptIcsme16.ppt
Icsme16.ppt
Ptidej Team
 
Msr17a.ppt
Msr17a.pptMsr17a.ppt
Msr17a.ppt
Ptidej Team
 
Icsoc15.ppt
Icsoc15.pptIcsoc15.ppt
Icsoc15.ppt
Ptidej 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

The Steadfast and Reliable Bull: Taurus Zodiac Sign
The Steadfast and Reliable Bull: Taurus Zodiac SignThe Steadfast and Reliable Bull: Taurus Zodiac Sign
The Steadfast and Reliable Bull: Taurus Zodiac Sign
my Pandit
 
Income Tax exemption for Start up : Section 80 IAC
Income Tax  exemption for Start up : Section 80 IACIncome Tax  exemption for Start up : Section 80 IAC
Income Tax exemption for Start up : Section 80 IAC
CA Dr. Prithvi Ranjan Parhi
 
Top 10 Free Accounting and Bookkeeping Apps for Small Businesses
Top 10 Free Accounting and Bookkeeping Apps for Small BusinessesTop 10 Free Accounting and Bookkeeping Apps for Small Businesses
Top 10 Free Accounting and Bookkeeping Apps for Small Businesses
YourLegal Accounting
 
TIMES BPO: Business Plan For Startup Industry
TIMES BPO: Business Plan For Startup IndustryTIMES BPO: Business Plan For Startup Industry
TIMES BPO: Business Plan For Startup Industry
timesbpobusiness
 
Pitch Deck Teardown: Kinnect's $250k Angel deck
Pitch Deck Teardown: Kinnect's $250k Angel deckPitch Deck Teardown: Kinnect's $250k Angel deck
Pitch Deck Teardown: Kinnect's $250k Angel deck
HajeJanKamps
 
Lundin Gold Corporate Presentation - June 2024
Lundin Gold Corporate Presentation - June 2024Lundin Gold Corporate Presentation - June 2024
Lundin Gold Corporate Presentation - June 2024
Adnet Communications
 
Taurus Zodiac Sign: Unveiling the Traits, Dates, and Horoscope Insights of th...
Taurus Zodiac Sign: Unveiling the Traits, Dates, and Horoscope Insights of th...Taurus Zodiac Sign: Unveiling the Traits, Dates, and Horoscope Insights of th...
Taurus Zodiac Sign: Unveiling the Traits, Dates, and Horoscope Insights of th...
my Pandit
 
Satta Matka Dpboss Matka Guessing Kalyan Chart Indian Matka Kalyan panel Chart
Satta Matka Dpboss Matka Guessing Kalyan Chart Indian Matka Kalyan panel ChartSatta Matka Dpboss Matka Guessing Kalyan Chart Indian Matka Kalyan panel Chart
Satta Matka Dpboss Matka Guessing Kalyan Chart Indian Matka Kalyan panel Chart
➒➌➎➏➑➐➋➑➐➐Dpboss Matka Guessing Satta Matka Kalyan Chart Indian Matka
 
DearbornMusic-KatherineJasperFullSailUni
DearbornMusic-KatherineJasperFullSailUniDearbornMusic-KatherineJasperFullSailUni
DearbornMusic-KatherineJasperFullSailUni
katiejasper96
 
Profiles of Iconic Fashion Personalities.pdf
Profiles of Iconic Fashion Personalities.pdfProfiles of Iconic Fashion Personalities.pdf
Profiles of Iconic Fashion Personalities.pdf
TTop Threads
 
❼❷⓿❺❻❷❽❷❼❽ Dpboss Matka Result Satta Matka Guessing Satta Fix jodi Kalyan Fin...
❼❷⓿❺❻❷❽❷❼❽ Dpboss Matka Result Satta Matka Guessing Satta Fix jodi Kalyan Fin...❼❷⓿❺❻❷❽❷❼❽ Dpboss Matka Result Satta Matka Guessing Satta Fix jodi Kalyan Fin...
❼❷⓿❺❻❷❽❷❼❽ Dpboss Matka Result Satta Matka Guessing Satta Fix jodi Kalyan Fin...
❼❷⓿❺❻❷❽❷❼❽ Dpboss Kalyan Satta Matka Guessing Matka Result Main Bazar chart
 
The Genesis of BriansClub.cm Famous Dark WEb Platform
The Genesis of BriansClub.cm Famous Dark WEb PlatformThe Genesis of BriansClub.cm Famous Dark WEb Platform
The Genesis of BriansClub.cm Famous Dark WEb Platform
SabaaSudozai
 
Observation Lab PowerPoint Assignment for TEM 431
Observation Lab PowerPoint Assignment for TEM 431Observation Lab PowerPoint Assignment for TEM 431
Observation Lab PowerPoint Assignment for TEM 431
ecamare2
 
Maksym Vyshnivetskyi: PMO KPIs (UA) (#12)
Maksym Vyshnivetskyi: PMO KPIs (UA) (#12)Maksym Vyshnivetskyi: PMO KPIs (UA) (#12)
Maksym Vyshnivetskyi: PMO KPIs (UA) (#12)
Lviv Startup Club
 
3 Simple Steps To Buy Verified Payoneer Account In 2024
3 Simple Steps To Buy Verified Payoneer Account In 20243 Simple Steps To Buy Verified Payoneer Account In 2024
3 Simple Steps To Buy Verified Payoneer Account In 2024
SEOSMMEARTH
 
Best practices for project execution and delivery
Best practices for project execution and deliveryBest practices for project execution and delivery
Best practices for project execution and delivery
CLIVE MINCHIN
 
Digital Marketing with a Focus on Sustainability
Digital Marketing with a Focus on SustainabilityDigital Marketing with a Focus on Sustainability
Digital Marketing with a Focus on Sustainability
sssourabhsharma
 
Business storytelling: key ingredients to a story
Business storytelling: key ingredients to a storyBusiness storytelling: key ingredients to a story
Business storytelling: key ingredients to a story
Alexandra Fulford
 
Part 2 Deep Dive: Navigating the 2024 Slowdown
Part 2 Deep Dive: Navigating the 2024 SlowdownPart 2 Deep Dive: Navigating the 2024 Slowdown
Part 2 Deep Dive: Navigating the 2024 Slowdown
jeffkluth1
 
GKohler - Retail Scavenger Hunt Presentation
GKohler - Retail Scavenger Hunt PresentationGKohler - Retail Scavenger Hunt Presentation
GKohler - Retail Scavenger Hunt Presentation
GraceKohler1
 

Recently uploaded (20)

The Steadfast and Reliable Bull: Taurus Zodiac Sign
The Steadfast and Reliable Bull: Taurus Zodiac SignThe Steadfast and Reliable Bull: Taurus Zodiac Sign
The Steadfast and Reliable Bull: Taurus Zodiac Sign
 
Income Tax exemption for Start up : Section 80 IAC
Income Tax  exemption for Start up : Section 80 IACIncome Tax  exemption for Start up : Section 80 IAC
Income Tax exemption for Start up : Section 80 IAC
 
Top 10 Free Accounting and Bookkeeping Apps for Small Businesses
Top 10 Free Accounting and Bookkeeping Apps for Small BusinessesTop 10 Free Accounting and Bookkeeping Apps for Small Businesses
Top 10 Free Accounting and Bookkeeping Apps for Small Businesses
 
TIMES BPO: Business Plan For Startup Industry
TIMES BPO: Business Plan For Startup IndustryTIMES BPO: Business Plan For Startup Industry
TIMES BPO: Business Plan For Startup Industry
 
Pitch Deck Teardown: Kinnect's $250k Angel deck
Pitch Deck Teardown: Kinnect's $250k Angel deckPitch Deck Teardown: Kinnect's $250k Angel deck
Pitch Deck Teardown: Kinnect's $250k Angel deck
 
Lundin Gold Corporate Presentation - June 2024
Lundin Gold Corporate Presentation - June 2024Lundin Gold Corporate Presentation - June 2024
Lundin Gold Corporate Presentation - June 2024
 
Taurus Zodiac Sign: Unveiling the Traits, Dates, and Horoscope Insights of th...
Taurus Zodiac Sign: Unveiling the Traits, Dates, and Horoscope Insights of th...Taurus Zodiac Sign: Unveiling the Traits, Dates, and Horoscope Insights of th...
Taurus Zodiac Sign: Unveiling the Traits, Dates, and Horoscope Insights of th...
 
Satta Matka Dpboss Matka Guessing Kalyan Chart Indian Matka Kalyan panel Chart
Satta Matka Dpboss Matka Guessing Kalyan Chart Indian Matka Kalyan panel ChartSatta Matka Dpboss Matka Guessing Kalyan Chart Indian Matka Kalyan panel Chart
Satta Matka Dpboss Matka Guessing Kalyan Chart Indian Matka Kalyan panel Chart
 
DearbornMusic-KatherineJasperFullSailUni
DearbornMusic-KatherineJasperFullSailUniDearbornMusic-KatherineJasperFullSailUni
DearbornMusic-KatherineJasperFullSailUni
 
Profiles of Iconic Fashion Personalities.pdf
Profiles of Iconic Fashion Personalities.pdfProfiles of Iconic Fashion Personalities.pdf
Profiles of Iconic Fashion Personalities.pdf
 
❼❷⓿❺❻❷❽❷❼❽ Dpboss Matka Result Satta Matka Guessing Satta Fix jodi Kalyan Fin...
❼❷⓿❺❻❷❽❷❼❽ Dpboss Matka Result Satta Matka Guessing Satta Fix jodi Kalyan Fin...❼❷⓿❺❻❷❽❷❼❽ Dpboss Matka Result Satta Matka Guessing Satta Fix jodi Kalyan Fin...
❼❷⓿❺❻❷❽❷❼❽ Dpboss Matka Result Satta Matka Guessing Satta Fix jodi Kalyan Fin...
 
The Genesis of BriansClub.cm Famous Dark WEb Platform
The Genesis of BriansClub.cm Famous Dark WEb PlatformThe Genesis of BriansClub.cm Famous Dark WEb Platform
The Genesis of BriansClub.cm Famous Dark WEb Platform
 
Observation Lab PowerPoint Assignment for TEM 431
Observation Lab PowerPoint Assignment for TEM 431Observation Lab PowerPoint Assignment for TEM 431
Observation Lab PowerPoint Assignment for TEM 431
 
Maksym Vyshnivetskyi: PMO KPIs (UA) (#12)
Maksym Vyshnivetskyi: PMO KPIs (UA) (#12)Maksym Vyshnivetskyi: PMO KPIs (UA) (#12)
Maksym Vyshnivetskyi: PMO KPIs (UA) (#12)
 
3 Simple Steps To Buy Verified Payoneer Account In 2024
3 Simple Steps To Buy Verified Payoneer Account In 20243 Simple Steps To Buy Verified Payoneer Account In 2024
3 Simple Steps To Buy Verified Payoneer Account In 2024
 
Best practices for project execution and delivery
Best practices for project execution and deliveryBest practices for project execution and delivery
Best practices for project execution and delivery
 
Digital Marketing with a Focus on Sustainability
Digital Marketing with a Focus on SustainabilityDigital Marketing with a Focus on Sustainability
Digital Marketing with a Focus on Sustainability
 
Business storytelling: key ingredients to a story
Business storytelling: key ingredients to a storyBusiness storytelling: key ingredients to a story
Business storytelling: key ingredients to a story
 
Part 2 Deep Dive: Navigating the 2024 Slowdown
Part 2 Deep Dive: Navigating the 2024 SlowdownPart 2 Deep Dive: Navigating the 2024 Slowdown
Part 2 Deep Dive: Navigating the 2024 Slowdown
 
GKohler - Retail Scavenger Hunt Presentation
GKohler - Retail Scavenger Hunt PresentationGKohler - Retail Scavenger Hunt Presentation
GKohler - Retail Scavenger Hunt Presentation
 

WCRE09a.ppt

  • 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