SlideShare a Scribd company logo
1 of 25
Download to read offline
Do Code Smells Impact the Effort of
Different Maintenance Programming
Activities?
Zephyrin Soh, AikoYamashita, Foutse Khomh, andYann-Gael Guéheneuc
SANER - Osaka, March 2016
CODE SMELLS AND ANTI-PATTERNS
➡ Long Method
➡ Large Class
Bloaters
Change preventers
➡ Divergent Change
➡ Shotgun Surgery
https://sourcemaking.com/refactoring/smells https://xkcd.com/844/
Spaghetti
monster
STATE OF ART ON CODE SMELLS
Empirical studies
• Code smells have deterring effects on the introduction of defects
‣ Monden (2002), Li &Shatnawi (2007), Kapser (2006), Juergens (2009), Rahman (2011)
• Larger maintenance effort
‣ Deligiannis (2004), Abbes (2011)
• Larger and more frequent changes in the code
‣ Olbrich (2009), Khomh (2009)
• The overall capacity of code smell analysis to explain or predict
maintenance problems or maintenance effort is rather modest
‣ Yamashita (2012), Sjøberg (2013)
Previous work: Multiple, controlled case study
(Yamashita 2012, Sjøberg et al., 2013)
• 4 Java Applications
• Same functionality
• Different design/code
• Size: 7KLOC to 14KLOC
Context
Task 3.
New Reporting
functionality
Task 1. Replacing external data source
✔
Task 2.
New authentication
mechanism
System!
Maintenance Tasks
DCBA
Developer
System
Study Design
Previous work: Multiple, controlled case study
(Yamashita 2012, Sjøberg et al., 2013)
System
Project context
Tasks
Source
code
Daily interviews
Audio files/notes
Subversion
database
Programming
Skill
Defects*
Development
Technology
Change
Size**
Effort**
Maintenance outcomes
Think aloud
Video files/notes
Task
progress
sheets
Eclipse
activity
logs
Trac (Issue tracker),
Acceptance test
reports
Open interviews
Audio files/notes
Variables
of interest
Data
sources
Moderator
variables
Code smells
(num. smells**
smell density**)
** System and file level
* Only at system level
Maintainability
perception*
Maintenance
problems**
Think aloud
Video files/notes
Study
diary
• 50,000 Euros
• Sep-Dec, 2008
• 7 Weeks• 6 Developers
• 2 Companies
Paper by
Sjøberg et al.
(2013)
• A model that includes file size and
number of changes and code smells
displayed a fit of R2 = 0.58
• Removing the smells from that model
did not decrease the fit!! (R2 = 0.58)
• Only smell that remained significant
was Refused Bequest, which registered
a decrease in effort (α < 0.01)
• File size and number of changes
remain the most significant predictors
of effort (α < 0.001)
Analysis done in previous work
(Sjøberg et al., 2013)
Dependent variable: Effort (time)
Independent variables: 12 smells
Control variables:
• File size (LOC)
• Number of revisions on a file
• System
• Developer
• Round
Analysis: Multiple Linear Regression
Explanatory model for Effort Results
• A model that includes file size and
number of changes and code smells
displayed a fit of R2 = 0.58
• Removing the smells from that model
did not decrease the fit!! (R2 = 0.58)
• Only smell that remained significant
was Refused Bequest, which registered
a decrease in effort (α < 0.01)
• File size and number of changes
remain the most significant predictors
of effort (α < 0.001)
Analysis done in previous work
(Sjøberg et al., 2013)
Dependent variable: Effort (time)
Independent variables: 12 smells
Control variables:
• File size (LOC)
• Number of revisions on a file
• System
• Developer
• Round
Analysis: Multiple Linear Regression
Explanatory model for Effort
Code smells are not better at
explaining sheer-effort at file level,
than size and number of revisions.
Results
Previous analysis considers sheer effort
Programming (code-related)
activities during Maintenance
Reading
Searching
Navigating
Editing
Others
Procedure for extracting activity effort
• Selection of artifacts in the package explorer
• Selection of Java elements in the editor window
• Selecting Java elements in the file outline
• Editing source files (Java files)
• Scrolling the source code window
• Switching between open files
• Running Eclipse “commands” (copy, paste, go to line)
Think aloud
Video files/notes
Task
progress
sheets
Eclipse
activity
logs
(Issue tracker),
ceptance test
reports
Activity logs
Annotation schema
Procedure for extracting activity effortThink aloud
Video files/notes
Task
progress
sheets
Eclipse
activity
logs
(Issue tracker),
ceptance test
reports
Think aloud
Video files/notes
Task
progress
sheets
se
ty
s
Activity logs
Automated
annotation
Annotated activity logs
Effort per
activity
Truncate consecutive
events with same
activity and calculate
elapsing time
Procedure for extracting activity effortThink aloud
Video files/notes
Task
progress
sheets
Eclipse
activity
logs
(Issue tracker),
ceptance test
reports
Categorization
Categorization of developers’
activities and sub-activities
was adapted from previous
work (Layman 2008)
Analysis performed
Only Java files
considered
Multiple linear regression
- Forward stepwise -
Results: Distribution of activity effort
➡ Mostly performed activities:
Navigating (58.72%), Reading
(28.27%), Editing (10.18%) and
searching (2.47%)
➡ Distribution is consistent with
Ko et al. 2006 (top four)
➡ Reading as most consuming
activity in Ko et al. 2006.
‣ Definition of event/action
belonging to an activity
For our analysis, we only consider:
Editing, Navigating, Searching and Reading
Results: Editing Effort
Model 0 + file size
R2 = 0.11
Model 3 - smellsR2 = 0.59
Results: Editing Effort
Model 0 + file size
R2 = 0.11
Model 3 - smellsR2 = 0.59
Compared to code smells, file size has limited impact
Contrast with previous study by Sjøberg et al [2013]
Effect of code smells vanishes when the revisions is included
God Class, ISPViolation, and Use interface instead of
implementation can indicate larger effort
Results: Navigating Effort
Results: Navigating Effort
Revisions still impacts more than file size and code smells
Only God Class remains significant after revisions
Results: Reading Effort
Results: Reading Effort
Revisions and file size explain more the effort than code smells
Change size explains the effort more than the file size
Results: Searching Effort
Results: Searching Effort
Revisions impacts more than file size (magnitude and model fit)
Only Feature Envy smell affects the searching effort
Summary of Results
Smells explain better Editing and
Navigating effort than file size, but
not for Reading and Searching
Maintenance problems in
previous work related to
increased effort for editing,
navigating and reading
Threats to validity
‣ Learning effect (accounted with rounds)
‣ Instrumentation and log processing accuracy
‣ Choice of tools for code smells (inCode and Together)
‣ Generalization is limited to context
‣Think-aloud + Log analysis = how smells affect the activities
‣Taxonomies on programming problems during maintenance
‣ Explore GLM for better explanatory models
‣ More replications!
Future work
What to take home today...
‣Structural attributes represented in the form of different code smells do
indeed have an effect on the developers’ effort for certain kinds of
activities.
‣Different code smells significantly impact the effort of different activities.
For example, we found that “Feature Envy” affects searching effort while
“Data Clumps” affects editing effort.
‣The effect of code smells on editing and navigating effort is, in fact, larger
than file size, whiles the opposite is the true for reading and searching
effort
‣If the effect of code smells is contingent on the type of activity, this may
mean that is contingent on the task at hand (e.g., some tasks may require
more reading than others)
ありがとうございます!
Contact: aiko.yamashita@hioa.no
(thank you!)

More Related Content

Similar to Saner16a.ppt

ISTQB / ISEB Foundation Exam Practice
ISTQB / ISEB Foundation Exam PracticeISTQB / ISEB Foundation Exam Practice
ISTQB / ISEB Foundation Exam Practice
Yogindernath Gupta
 
15 object orienteddesign
15 object orienteddesign15 object orienteddesign
15 object orienteddesign
randhirlpu
 
Cross functional peer review preso 10-01-2013
Cross functional peer review preso 10-01-2013Cross functional peer review preso 10-01-2013
Cross functional peer review preso 10-01-2013
SmartBear
 
Document Control
Document ControlDocument Control
Document Control
Dan Junkins
 

Similar to Saner16a.ppt (20)

Can we induce change with what we measure?
Can we induce change with what we measure?Can we induce change with what we measure?
Can we induce change with what we measure?
 
ISTQB Foundation - Chapter 3
ISTQB Foundation - Chapter 3ISTQB Foundation - Chapter 3
ISTQB Foundation - Chapter 3
 
ISTQB / ISEB Foundation Exam Practice
ISTQB / ISEB Foundation Exam PracticeISTQB / ISEB Foundation Exam Practice
ISTQB / ISEB Foundation Exam Practice
 
Replication and Benchmarking in Software Analytics
Replication and Benchmarking in Software AnalyticsReplication and Benchmarking in Software Analytics
Replication and Benchmarking in Software Analytics
 
Towards Software Sustainability Guides for Industrial Software Systems
Towards Software Sustainability Guides for Industrial Software SystemsTowards Software Sustainability Guides for Industrial Software Systems
Towards Software Sustainability Guides for Industrial Software Systems
 
Static testing techniques
Static testing techniquesStatic testing techniques
Static testing techniques
 
OLE Regional Workshop, Utah, Day One
OLE Regional Workshop, Utah, Day OneOLE Regional Workshop, Utah, Day One
OLE Regional Workshop, Utah, Day One
 
Software Analytics - Achievements and Challenges
Software Analytics - Achievements and ChallengesSoftware Analytics - Achievements and Challenges
Software Analytics - Achievements and Challenges
 
Using Agile Processes on Documentum Projects
Using Agile Processes on Documentum ProjectsUsing Agile Processes on Documentum Projects
Using Agile Processes on Documentum Projects
 
Anti Patterns Siddhesh Lecture1 Of3
Anti Patterns Siddhesh Lecture1 Of3Anti Patterns Siddhesh Lecture1 Of3
Anti Patterns Siddhesh Lecture1 Of3
 
Using Agile Processes on Documentum Projects
Using Agile Processes on Documentum ProjectsUsing Agile Processes on Documentum Projects
Using Agile Processes on Documentum Projects
 
Empirical Methods in Software Engineering - an Overview
Empirical Methods in Software Engineering - an OverviewEmpirical Methods in Software Engineering - an Overview
Empirical Methods in Software Engineering - an Overview
 
OLE Project Regional Workshop - University of Kansas - Day 1
OLE Project Regional Workshop - University of Kansas - Day 1OLE Project Regional Workshop - University of Kansas - Day 1
OLE Project Regional Workshop - University of Kansas - Day 1
 
15 object orienteddesign
15 object orienteddesign15 object orienteddesign
15 object orienteddesign
 
Collaborative Data Analysis with Taverna Workflows
Collaborative Data Analysis with Taverna WorkflowsCollaborative Data Analysis with Taverna Workflows
Collaborative Data Analysis with Taverna Workflows
 
Cross functional peer review preso 10-01-2013
Cross functional peer review preso 10-01-2013Cross functional peer review preso 10-01-2013
Cross functional peer review preso 10-01-2013
 
Cser13.ppt
Cser13.pptCser13.ppt
Cser13.ppt
 
DevOps for absolute beginners
DevOps for absolute beginnersDevOps for absolute beginners
DevOps for absolute beginners
 
Document Control
Document ControlDocument Control
Document Control
 
#DOAW16 - DevOps@work Roma 2016 - Testing your databases
#DOAW16 - DevOps@work Roma 2016 - Testing your databases#DOAW16 - DevOps@work Roma 2016 - Testing your databases
#DOAW16 - DevOps@work Roma 2016 - Testing your databases
 

More from 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

Team Transformation Tactics for Holistic Testing and Quality (NewCrafts Paris...
Team Transformation Tactics for Holistic Testing and Quality (NewCrafts Paris...Team Transformation Tactics for Holistic Testing and Quality (NewCrafts Paris...
Team Transformation Tactics for Holistic Testing and Quality (NewCrafts Paris...
Lisi Hocke
 

Recently uploaded (20)

Abortion Pill Prices Jane Furse ](+27832195400*)[ 🏥 Women's Abortion Clinic i...
Abortion Pill Prices Jane Furse ](+27832195400*)[ 🏥 Women's Abortion Clinic i...Abortion Pill Prices Jane Furse ](+27832195400*)[ 🏥 Women's Abortion Clinic i...
Abortion Pill Prices Jane Furse ](+27832195400*)[ 🏥 Women's Abortion Clinic i...
 
Test Automation Design Patterns_ A Comprehensive Guide.pdf
Test Automation Design Patterns_ A Comprehensive Guide.pdfTest Automation Design Patterns_ A Comprehensive Guide.pdf
Test Automation Design Patterns_ A Comprehensive Guide.pdf
 
Rapidoform for Modern Form Building and Insights
Rapidoform for Modern Form Building and InsightsRapidoform for Modern Form Building and Insights
Rapidoform for Modern Form Building and Insights
 
Community is Just as Important as Code by Andrea Goulet
Community is Just as Important as Code by Andrea GouletCommunity is Just as Important as Code by Andrea Goulet
Community is Just as Important as Code by Andrea Goulet
 
The mythical technical debt. (Brooke, please, forgive me)
The mythical technical debt. (Brooke, please, forgive me)The mythical technical debt. (Brooke, please, forgive me)
The mythical technical debt. (Brooke, please, forgive me)
 
Microsoft365_Dev_Security_2024_05_16.pdf
Microsoft365_Dev_Security_2024_05_16.pdfMicrosoft365_Dev_Security_2024_05_16.pdf
Microsoft365_Dev_Security_2024_05_16.pdf
 
Encryption Recap: A Refresher on Key Concepts
Encryption Recap: A Refresher on Key ConceptsEncryption Recap: A Refresher on Key Concepts
Encryption Recap: A Refresher on Key Concepts
 
Lessons Learned from Building a Serverless Notifications System.pdf
Lessons Learned from Building a Serverless Notifications System.pdfLessons Learned from Building a Serverless Notifications System.pdf
Lessons Learned from Building a Serverless Notifications System.pdf
 
Alluxio Monthly Webinar | Simplify Data Access for AI in Multi-Cloud
Alluxio Monthly Webinar | Simplify Data Access for AI in Multi-CloudAlluxio Monthly Webinar | Simplify Data Access for AI in Multi-Cloud
Alluxio Monthly Webinar | Simplify Data Access for AI in Multi-Cloud
 
Workshop - Architecting Innovative Graph Applications- GraphSummit Milan
Workshop -  Architecting Innovative Graph Applications- GraphSummit MilanWorkshop -  Architecting Innovative Graph Applications- GraphSummit Milan
Workshop - Architecting Innovative Graph Applications- GraphSummit Milan
 
OpenChain Webinar: AboutCode and Beyond - End-to-End SCA
OpenChain Webinar: AboutCode and Beyond - End-to-End SCAOpenChain Webinar: AboutCode and Beyond - End-to-End SCA
OpenChain Webinar: AboutCode and Beyond - End-to-End SCA
 
The Strategic Impact of Buying vs Building in Test Automation
The Strategic Impact of Buying vs Building in Test AutomationThe Strategic Impact of Buying vs Building in Test Automation
The Strategic Impact of Buying vs Building in Test Automation
 
Team Transformation Tactics for Holistic Testing and Quality (NewCrafts Paris...
Team Transformation Tactics for Holistic Testing and Quality (NewCrafts Paris...Team Transformation Tactics for Holistic Testing and Quality (NewCrafts Paris...
Team Transformation Tactics for Holistic Testing and Quality (NewCrafts Paris...
 
From Theory to Practice: Utilizing SpiraPlan's REST API
From Theory to Practice: Utilizing SpiraPlan's REST APIFrom Theory to Practice: Utilizing SpiraPlan's REST API
From Theory to Practice: Utilizing SpiraPlan's REST API
 
Evolving Data Governance for the Real-time Streaming and AI Era
Evolving Data Governance for the Real-time Streaming and AI EraEvolving Data Governance for the Real-time Streaming and AI Era
Evolving Data Governance for the Real-time Streaming and AI Era
 
Workshop: Enabling GenAI Breakthroughs with Knowledge Graphs - GraphSummit Milan
Workshop: Enabling GenAI Breakthroughs with Knowledge Graphs - GraphSummit MilanWorkshop: Enabling GenAI Breakthroughs with Knowledge Graphs - GraphSummit Milan
Workshop: Enabling GenAI Breakthroughs with Knowledge Graphs - GraphSummit Milan
 
[GeeCON2024] How I learned to stop worrying and love the dark silicon apocalypse
[GeeCON2024] How I learned to stop worrying and love the dark silicon apocalypse[GeeCON2024] How I learned to stop worrying and love the dark silicon apocalypse
[GeeCON2024] How I learned to stop worrying and love the dark silicon apocalypse
 
CERVED e Neo4j su una nuvola, migrazione ed evoluzione di un grafo mission cr...
CERVED e Neo4j su una nuvola, migrazione ed evoluzione di un grafo mission cr...CERVED e Neo4j su una nuvola, migrazione ed evoluzione di un grafo mission cr...
CERVED e Neo4j su una nuvola, migrazione ed evoluzione di un grafo mission cr...
 
Software Engineering - Introduction + Process Models + Requirements Engineering
Software Engineering - Introduction + Process Models + Requirements EngineeringSoftware Engineering - Introduction + Process Models + Requirements Engineering
Software Engineering - Introduction + Process Models + Requirements Engineering
 
Effective Strategies for Wix's Scaling challenges - GeeCon
Effective Strategies for Wix's Scaling challenges - GeeConEffective Strategies for Wix's Scaling challenges - GeeCon
Effective Strategies for Wix's Scaling challenges - GeeCon
 

Saner16a.ppt

  • 1. Do Code Smells Impact the Effort of Different Maintenance Programming Activities? Zephyrin Soh, AikoYamashita, Foutse Khomh, andYann-Gael Guéheneuc SANER - Osaka, March 2016
  • 2. CODE SMELLS AND ANTI-PATTERNS ➡ Long Method ➡ Large Class Bloaters Change preventers ➡ Divergent Change ➡ Shotgun Surgery https://sourcemaking.com/refactoring/smells https://xkcd.com/844/ Spaghetti monster
  • 3. STATE OF ART ON CODE SMELLS Empirical studies • Code smells have deterring effects on the introduction of defects ‣ Monden (2002), Li &Shatnawi (2007), Kapser (2006), Juergens (2009), Rahman (2011) • Larger maintenance effort ‣ Deligiannis (2004), Abbes (2011) • Larger and more frequent changes in the code ‣ Olbrich (2009), Khomh (2009) • The overall capacity of code smell analysis to explain or predict maintenance problems or maintenance effort is rather modest ‣ Yamashita (2012), Sjøberg (2013)
  • 4. Previous work: Multiple, controlled case study (Yamashita 2012, Sjøberg et al., 2013) • 4 Java Applications • Same functionality • Different design/code • Size: 7KLOC to 14KLOC Context Task 3. New Reporting functionality Task 1. Replacing external data source ✔ Task 2. New authentication mechanism System! Maintenance Tasks DCBA Developer System Study Design
  • 5. Previous work: Multiple, controlled case study (Yamashita 2012, Sjøberg et al., 2013) System Project context Tasks Source code Daily interviews Audio files/notes Subversion database Programming Skill Defects* Development Technology Change Size** Effort** Maintenance outcomes Think aloud Video files/notes Task progress sheets Eclipse activity logs Trac (Issue tracker), Acceptance test reports Open interviews Audio files/notes Variables of interest Data sources Moderator variables Code smells (num. smells** smell density**) ** System and file level * Only at system level Maintainability perception* Maintenance problems** Think aloud Video files/notes Study diary • 50,000 Euros • Sep-Dec, 2008 • 7 Weeks• 6 Developers • 2 Companies Paper by Sjøberg et al. (2013)
  • 6. • A model that includes file size and number of changes and code smells displayed a fit of R2 = 0.58 • Removing the smells from that model did not decrease the fit!! (R2 = 0.58) • Only smell that remained significant was Refused Bequest, which registered a decrease in effort (α < 0.01) • File size and number of changes remain the most significant predictors of effort (α < 0.001) Analysis done in previous work (Sjøberg et al., 2013) Dependent variable: Effort (time) Independent variables: 12 smells Control variables: • File size (LOC) • Number of revisions on a file • System • Developer • Round Analysis: Multiple Linear Regression Explanatory model for Effort Results
  • 7. • A model that includes file size and number of changes and code smells displayed a fit of R2 = 0.58 • Removing the smells from that model did not decrease the fit!! (R2 = 0.58) • Only smell that remained significant was Refused Bequest, which registered a decrease in effort (α < 0.01) • File size and number of changes remain the most significant predictors of effort (α < 0.001) Analysis done in previous work (Sjøberg et al., 2013) Dependent variable: Effort (time) Independent variables: 12 smells Control variables: • File size (LOC) • Number of revisions on a file • System • Developer • Round Analysis: Multiple Linear Regression Explanatory model for Effort Code smells are not better at explaining sheer-effort at file level, than size and number of revisions. Results
  • 8. Previous analysis considers sheer effort Programming (code-related) activities during Maintenance Reading Searching Navigating Editing Others
  • 9. Procedure for extracting activity effort • Selection of artifacts in the package explorer • Selection of Java elements in the editor window • Selecting Java elements in the file outline • Editing source files (Java files) • Scrolling the source code window • Switching between open files • Running Eclipse “commands” (copy, paste, go to line) Think aloud Video files/notes Task progress sheets Eclipse activity logs (Issue tracker), ceptance test reports Activity logs
  • 10. Annotation schema Procedure for extracting activity effortThink aloud Video files/notes Task progress sheets Eclipse activity logs (Issue tracker), ceptance test reports Think aloud Video files/notes Task progress sheets se ty s Activity logs Automated annotation Annotated activity logs Effort per activity Truncate consecutive events with same activity and calculate elapsing time
  • 11. Procedure for extracting activity effortThink aloud Video files/notes Task progress sheets Eclipse activity logs (Issue tracker), ceptance test reports Categorization Categorization of developers’ activities and sub-activities was adapted from previous work (Layman 2008)
  • 12. Analysis performed Only Java files considered Multiple linear regression - Forward stepwise -
  • 13. Results: Distribution of activity effort ➡ Mostly performed activities: Navigating (58.72%), Reading (28.27%), Editing (10.18%) and searching (2.47%) ➡ Distribution is consistent with Ko et al. 2006 (top four) ➡ Reading as most consuming activity in Ko et al. 2006. ‣ Definition of event/action belonging to an activity For our analysis, we only consider: Editing, Navigating, Searching and Reading
  • 14. Results: Editing Effort Model 0 + file size R2 = 0.11 Model 3 - smellsR2 = 0.59
  • 15. Results: Editing Effort Model 0 + file size R2 = 0.11 Model 3 - smellsR2 = 0.59 Compared to code smells, file size has limited impact Contrast with previous study by Sjøberg et al [2013] Effect of code smells vanishes when the revisions is included God Class, ISPViolation, and Use interface instead of implementation can indicate larger effort
  • 17. Results: Navigating Effort Revisions still impacts more than file size and code smells Only God Class remains significant after revisions
  • 19. Results: Reading Effort Revisions and file size explain more the effort than code smells Change size explains the effort more than the file size
  • 21. Results: Searching Effort Revisions impacts more than file size (magnitude and model fit) Only Feature Envy smell affects the searching effort
  • 22. Summary of Results Smells explain better Editing and Navigating effort than file size, but not for Reading and Searching Maintenance problems in previous work related to increased effort for editing, navigating and reading
  • 23. Threats to validity ‣ Learning effect (accounted with rounds) ‣ Instrumentation and log processing accuracy ‣ Choice of tools for code smells (inCode and Together) ‣ Generalization is limited to context ‣Think-aloud + Log analysis = how smells affect the activities ‣Taxonomies on programming problems during maintenance ‣ Explore GLM for better explanatory models ‣ More replications! Future work
  • 24. What to take home today... ‣Structural attributes represented in the form of different code smells do indeed have an effect on the developers’ effort for certain kinds of activities. ‣Different code smells significantly impact the effort of different activities. For example, we found that “Feature Envy” affects searching effort while “Data Clumps” affects editing effort. ‣The effect of code smells on editing and navigating effort is, in fact, larger than file size, whiles the opposite is the true for reading and searching effort ‣If the effect of code smells is contingent on the type of activity, this may mean that is contingent on the task at hand (e.g., some tasks may require more reading than others)