SlideShare a Scribd company logo
1 of 27
Download to read offline
Foutse Khomh, Massimiliano Di Penta,
and Yann-Gaël Guéhéneuc
© Khomh, 2009
Ptidej Team – OO Programs Quality Evaluation and Enhancement using Patterns
Department of Computer Science and Operations Research
University of Montréal, Québec, Canada
An Exploratory Study of the Impact
of Code Smells on Software Change-
proneness
WCRE’09
2009/10/13
2/27
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
3/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
4/27
Outline
Study Definition
Study Context
Study Design
Analysis Method
Results
Conclusion and Future Work
5/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
6/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
7/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)
8/27
Study Context (2/2)
29 code smells
Detected using our tool, DECOR (based on
metrics and lexical information)
9/27
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.
10/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.
11/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.
12/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).
13/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.
14/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.
15/27
Results (1/6)
RQ1: smells and changes (Azureus)
16/27
Results (2/6)
RQ1: smells and changes (Eclipse)
17/27
Results (3/6)
RQ2:
composition
of smells and
changes
(Azureus)
18/27
Results (4/6)
RQ2:
composition
of smells and
changes
(Eclipse)
19/27
Results (5/6)
RQ3: kinds
of smells
and changes
(Azureus)
20/27
Results (6/6)
RQ3: kinds
of smells
and changes
(Eclipse)
21/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
features addition.
22/27
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-
correlated smells.
23/27
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.
24/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)
25/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.
26/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
27/27
Questions
Thank you for listening

More Related Content

Similar to Wcre09a.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 QualityDelft University of Technology
 
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
 
A Critique On Code Critics
A Critique On Code CriticsA Critique On Code Critics
A Critique On Code CriticsLaurie Smith
 
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
 
Characterization of Open-Source Applications and Test Suites
Characterization of Open-Source Applications and Test Suites Characterization of Open-Source Applications and Test Suites
Characterization of Open-Source Applications and Test Suites ijseajournal
 
Sound Empirical Evidence in Software Testing
Sound Empirical Evidence in Software TestingSound Empirical Evidence in Software Testing
Sound Empirical Evidence in Software TestingJaguaraci Silva
 
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
 
52 - The Impact of Test Ownership and Team Structure on the Reliability and E...
52 - The Impact of Test Ownership and Team Structure on the Reliability and E...52 - The Impact of Test Ownership and Team Structure on the Reliability and E...
52 - The Impact of Test Ownership and Team Structure on the Reliability and E...ESEM 2014
 
Comprehensive Testing Tool for Automatic Test Suite Generation, Prioritizatio...
Comprehensive Testing Tool for Automatic Test Suite Generation, Prioritizatio...Comprehensive Testing Tool for Automatic Test Suite Generation, Prioritizatio...
Comprehensive Testing Tool for Automatic Test Suite Generation, Prioritizatio...CSCJournals
 
YMER210765.pdffffffff fddddddddddddddddd
YMER210765.pdffffffff fdddddddddddddddddYMER210765.pdffffffff fddddddddddddddddd
YMER210765.pdffffffff fddddddddddddddddd031SolankiViveka
 
Research design
Research design Research design
Research design ANCYBS
 
The Impact of Test Ownership and Team Structure on the Reliability and Effect...
The Impact of Test Ownership and Team Structure on the Reliability and Effect...The Impact of Test Ownership and Team Structure on the Reliability and Effect...
The Impact of Test Ownership and Team Structure on the Reliability and Effect...Kim Herzig
 
Master project - Competitive Co-evolutionary Code-Smells Detection
Master project - Competitive Co-evolutionary Code-Smells DetectionMaster project - Competitive Co-evolutionary Code-Smells Detection
Master project - Competitive Co-evolutionary Code-Smells DetectionMohamed BOUSSAA
 
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 testing techniques - www.testersforum.com
Software testing techniques - www.testersforum.comSoftware testing techniques - www.testersforum.com
Software testing techniques - www.testersforum.comwww.testersforum.com
 

Similar to Wcre09a.ppt (20)

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
 
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
 
A Critique On Code Critics
A Critique On Code CriticsA Critique On Code Critics
A Critique On Code Critics
 
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
 
Characterization of Open-Source Applications and Test Suites
Characterization of Open-Source Applications and Test Suites Characterization of Open-Source Applications and Test Suites
Characterization of Open-Source Applications and Test Suites
 
Sound Empirical Evidence in Software Testing
Sound Empirical Evidence in Software TestingSound Empirical Evidence in Software Testing
Sound Empirical Evidence in Software Testing
 
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...
 
52 - The Impact of Test Ownership and Team Structure on the Reliability and E...
52 - The Impact of Test Ownership and Team Structure on the Reliability and E...52 - The Impact of Test Ownership and Team Structure on the Reliability and E...
52 - The Impact of Test Ownership and Team Structure on the Reliability and E...
 
Comprehensive Testing Tool for Automatic Test Suite Generation, Prioritizatio...
Comprehensive Testing Tool for Automatic Test Suite Generation, Prioritizatio...Comprehensive Testing Tool for Automatic Test Suite Generation, Prioritizatio...
Comprehensive Testing Tool for Automatic Test Suite Generation, Prioritizatio...
 
YMER210765.pdffffffff fddddddddddddddddd
YMER210765.pdffffffff fdddddddddddddddddYMER210765.pdffffffff fddddddddddddddddd
YMER210765.pdffffffff fddddddddddddddddd
 
Research design
Research design Research design
Research design
 
Experiment by design.pptx
Experiment by design.pptxExperiment by design.pptx
Experiment by design.pptx
 
The Impact of Test Ownership and Team Structure on the Reliability and Effect...
The Impact of Test Ownership and Team Structure on the Reliability and Effect...The Impact of Test Ownership and Team Structure on the Reliability and Effect...
The Impact of Test Ownership and Team Structure on the Reliability and Effect...
 
Master project - Competitive Co-evolutionary Code-Smells Detection
Master project - Competitive Co-evolutionary Code-Smells DetectionMaster project - Competitive Co-evolutionary Code-Smells Detection
Master project - Competitive Co-evolutionary Code-Smells Detection
 
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
 
Experimental Design and its Types ppt
Experimental Design and its Types pptExperimental Design and its Types ppt
Experimental Design and its Types ppt
 
Too many files
Too many filesToo many files
Too many files
 
Software testing techniques - www.testersforum.com
Software testing techniques - www.testersforum.comSoftware testing techniques - www.testersforum.com
Software testing techniques - www.testersforum.com
 
Bd36334337
Bd36334337Bd36334337
Bd36334337
 

More from Yann-Gaël Guéhéneuc

Advice for writing a NSERC Discovery grant application v0.5
Advice for writing a NSERC Discovery grant application v0.5Advice for writing a NSERC Discovery grant application v0.5
Advice for writing a NSERC Discovery grant application v0.5Yann-Gaël Guéhéneuc
 
Ptidej Architecture, Design, and Implementation in Action v2.1
Ptidej Architecture, Design, and Implementation in Action v2.1Ptidej Architecture, Design, and Implementation in Action v2.1
Ptidej Architecture, Design, and Implementation in Action v2.1Yann-Gaël Guéhéneuc
 
Evolution and Examples of Java Features, from Java 1.7 to Java 22
Evolution and Examples of Java Features, from Java 1.7 to Java 22Evolution and Examples of Java Features, from Java 1.7 to Java 22
Evolution and Examples of Java Features, from Java 1.7 to Java 22Yann-Gaël Guéhéneuc
 
Consequences and Principles of Software Quality v0.3
Consequences and Principles of Software Quality v0.3Consequences and Principles of Software Quality v0.3
Consequences and Principles of Software Quality v0.3Yann-Gaël Guéhéneuc
 
Some Pitfalls with Python and Their Possible Solutions v0.9
Some Pitfalls with Python and Their Possible Solutions v0.9Some Pitfalls with Python and Their Possible Solutions v0.9
Some Pitfalls with Python and Their Possible Solutions v0.9Yann-Gaël Guéhéneuc
 
An Explanation of the Unicode, the Text Encoding Standard, Its Usages and Imp...
An Explanation of the Unicode, the Text Encoding Standard, Its Usages and Imp...An Explanation of the Unicode, the Text Encoding Standard, Its Usages and Imp...
An Explanation of the Unicode, the Text Encoding Standard, Its Usages and Imp...Yann-Gaël Guéhéneuc
 
An Explanation of the Halting Problem and Its Consequences
An Explanation of the Halting Problem and Its ConsequencesAn Explanation of the Halting Problem and Its Consequences
An Explanation of the Halting Problem and Its ConsequencesYann-Gaël Guéhéneuc
 
Informaticien(ne)s célèbres (v1.0.2, 19/02/20)
Informaticien(ne)s célèbres (v1.0.2, 19/02/20)Informaticien(ne)s célèbres (v1.0.2, 19/02/20)
Informaticien(ne)s célèbres (v1.0.2, 19/02/20)Yann-Gaël Guéhéneuc
 
On Java Generics, History, Use, Caveats v1.1
On Java Generics, History, Use, Caveats v1.1On Java Generics, History, Use, Caveats v1.1
On Java Generics, History, Use, Caveats v1.1Yann-Gaël Guéhéneuc
 
On Reflection in OO Programming Languages v1.6
On Reflection in OO Programming Languages v1.6On Reflection in OO Programming Languages v1.6
On Reflection in OO Programming Languages v1.6Yann-Gaël Guéhéneuc
 

More from Yann-Gaël Guéhéneuc (20)

Advice for writing a NSERC Discovery grant application v0.5
Advice for writing a NSERC Discovery grant application v0.5Advice for writing a NSERC Discovery grant application v0.5
Advice for writing a NSERC Discovery grant application v0.5
 
Ptidej Architecture, Design, and Implementation in Action v2.1
Ptidej Architecture, Design, and Implementation in Action v2.1Ptidej Architecture, Design, and Implementation in Action v2.1
Ptidej Architecture, Design, and Implementation in Action v2.1
 
Evolution and Examples of Java Features, from Java 1.7 to Java 22
Evolution and Examples of Java Features, from Java 1.7 to Java 22Evolution and Examples of Java Features, from Java 1.7 to Java 22
Evolution and Examples of Java Features, from Java 1.7 to Java 22
 
Consequences and Principles of Software Quality v0.3
Consequences and Principles of Software Quality v0.3Consequences and Principles of Software Quality v0.3
Consequences and Principles of Software Quality v0.3
 
Some Pitfalls with Python and Their Possible Solutions v0.9
Some Pitfalls with Python and Their Possible Solutions v0.9Some Pitfalls with Python and Their Possible Solutions v0.9
Some Pitfalls with Python and Their Possible Solutions v0.9
 
An Explanation of the Unicode, the Text Encoding Standard, Its Usages and Imp...
An Explanation of the Unicode, the Text Encoding Standard, Its Usages and Imp...An Explanation of the Unicode, the Text Encoding Standard, Its Usages and Imp...
An Explanation of the Unicode, the Text Encoding Standard, Its Usages and Imp...
 
An Explanation of the Halting Problem and Its Consequences
An Explanation of the Halting Problem and Its ConsequencesAn Explanation of the Halting Problem and Its Consequences
An Explanation of the Halting Problem and Its Consequences
 
Are CPUs VMs Like Any Others? v1.0
Are CPUs VMs Like Any Others? v1.0Are CPUs VMs Like Any Others? v1.0
Are CPUs VMs Like Any Others? v1.0
 
Informaticien(ne)s célèbres (v1.0.2, 19/02/20)
Informaticien(ne)s célèbres (v1.0.2, 19/02/20)Informaticien(ne)s célèbres (v1.0.2, 19/02/20)
Informaticien(ne)s célèbres (v1.0.2, 19/02/20)
 
Well-known Computer Scientists v1.0.2
Well-known Computer Scientists v1.0.2Well-known Computer Scientists v1.0.2
Well-known Computer Scientists v1.0.2
 
On Java Generics, History, Use, Caveats v1.1
On Java Generics, History, Use, Caveats v1.1On Java Generics, History, Use, Caveats v1.1
On Java Generics, History, Use, Caveats v1.1
 
On Reflection in OO Programming Languages v1.6
On Reflection in OO Programming Languages v1.6On Reflection in OO Programming Languages v1.6
On Reflection in OO Programming Languages v1.6
 
ICSOC'21
ICSOC'21ICSOC'21
ICSOC'21
 
Vissoft21.ppt
Vissoft21.pptVissoft21.ppt
Vissoft21.ppt
 
Service computation20.ppt
Service computation20.pptService computation20.ppt
Service computation20.ppt
 
Serp4 iot20.ppt
Serp4 iot20.pptSerp4 iot20.ppt
Serp4 iot20.ppt
 
Msr20.ppt
Msr20.pptMsr20.ppt
Msr20.ppt
 
Iwesep19.ppt
Iwesep19.pptIwesep19.ppt
Iwesep19.ppt
 
Icsoc20.ppt
Icsoc20.pptIcsoc20.ppt
Icsoc20.ppt
 
Icsoc18.ppt
Icsoc18.pptIcsoc18.ppt
Icsoc18.ppt
 

Recently uploaded

W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...Health
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesVictorSzoltysek
 
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdfAzure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdfryanfarris8
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplatePresentation.STUDIO
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionOnePlan Solutions
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension AidPhilip Schwarz
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsAndolasoft Inc
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfVishalKumarJha10
 

Recently uploaded (20)

W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
 
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdfAzure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
 

Wcre09a.ppt

  • 1. Foutse Khomh, Massimiliano Di Penta, and Yann-Gaël Guéhéneuc © Khomh, 2009 Ptidej Team – OO Programs Quality Evaluation and Enhancement using Patterns Department of Computer Science and Operations Research University of Montréal, Québec, Canada An Exploratory Study of the Impact of Code Smells on Software Change- proneness WCRE’09 2009/10/13
  • 2. 2/27 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
  • 3. 3/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
  • 4. 4/27 Outline Study Definition Study Context Study Design Analysis Method Results Conclusion and Future Work
  • 5. 5/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
  • 6. 6/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
  • 7. 7/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)
  • 8. 8/27 Study Context (2/2) 29 code smells Detected using our tool, DECOR (based on metrics and lexical information)
  • 9. 9/27 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.
  • 10. 10/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.
  • 11. 11/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.
  • 12. 12/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).
  • 13. 13/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.
  • 14. 14/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.
  • 15. 15/27 Results (1/6) RQ1: smells and changes (Azureus)
  • 16. 16/27 Results (2/6) RQ1: smells and changes (Eclipse)
  • 19. 19/27 Results (5/6) RQ3: kinds of smells and changes (Azureus)
  • 20. 20/27 Results (6/6) RQ3: kinds of smells and changes (Eclipse)
  • 21. 21/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 features addition.
  • 22. 22/27 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- correlated smells.
  • 23. 23/27 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.
  • 24. 24/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)
  • 25. 25/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.
  • 26. 26/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