SlideShare una empresa de Scribd logo
1 de 19
Understanding the Longevity of Code SmellsPreliminary Results of an Exploratory Survey Roberta Arcoverde – rarcoverde@inf.puc-rio.br Alessandro Garcia – afgarcia@inf.puc-rio.br Eduardo Figueiredo – figueiredo@dcc.ufmg.br ICSE.11
why? May 11 Roberta @ OPUS Group 2 codesmellsentailevidenceofbadqualitycode harder to readandmaintain some [patternsof] smellsseem to be “ignored”
why? May 11 Roberta @ OPUS Group 3 codesmellsentailevidenceofbadqualitycode harder to readandmaintain some [patternsof] smellsseem to be “ignored”  [1] How we refactor and how we know it. Murphy-Hill et al. [ICSE 2010]
objective May 11 Roberta @ OPUS Group 4 perform a firstexploratorystudy to identify which factors influence longevity of code smells, based on refactoring habits
refactoring habits howoftencode is refactored? which refactorings are prioritized? is refactoringapplied as anisolateactivity? which refactorings are considered to beharder to apply? howoftenandwhenrefactoringtools are used? May 11 Roberta @ OPUS Group 5
which factors influence refactoring habits natureof software beingdeveloped reusableassets (frameworks, libraries, software productlines) standalone applications use of TDD developer’sexperience May 11 Roberta @ OPUS Group 6
survey setting - questionnaire May 11 Roberta @ OPUS Group 7
participants May 11 Roberta @ OPUS Group 8 agiledevelopmentteams framework developers = 33 answers
participants distribution May 11 Roberta @ OPUS Group 9
participants distribution - TDD May 11 Roberta @ OPUS Group 10
most recurring smells May 11 Roberta @ OPUS Group 11 duplicated code – 78% (26) long methods – 78% (26) inadequate naming – 69% (23) god classes – 42% (14) same results for developers of reusable assets and standalone applications... 					...regardless of experience level
how often refactoring tools are used... May 11 Roberta @ OPUS Group 12
...and reasons for not using them May 11 Roberta @ OPUS Group 13 tool does notsupportthedesiredrefactoring – 41% theydidnotknowanyrefactoringtool – 37% tools do notallowthem to easilyfollowtheeffectsofrefactoring – 28% it’snoteasy to testwhetherthesystem’sbehaviourwaspreserved – 22%
classifying refactorings - difficulty May 11 Roberta @ OPUS Group 14
concluding remarks May 11 15 Roberta @ OPUS Group nature of the software being developed influences refactoring habits reusable assets developers consider the possibility of breaking APIs before refactoring refactoring prioritization is fairly different when we consider reusable assets versus standalone applications refactoring scope is considered
concluding remarks visualizationmechanismsimprovements are needed testingwhetherthecodetransformationpreservedbehaviour is noteasy specifictoolsorfeaturescouldbeinvestigated for refactorings oflibraries, frameworks and software productlines May 11 Roberta @ OPUS Group 16
thank you questions? May 11 Roberta @ OPUS Group 17
classifying refactorings - priority May 11 Roberta @ OPUS Group 18
classifying refactorings - frequency May 11 Roberta @ OPUS Group 19

Más contenido relacionado

Destacado

Mining the Modern Code Review Repositories: A Dataset of People, Process and ...
Mining the Modern Code Review Repositories: A Dataset of People, Process and ...Mining the Modern Code Review Repositories: A Dataset of People, Process and ...
Mining the Modern Code Review Repositories: A Dataset of People, Process and ...Norihiro Yoshida
 
Detecting Bad Smells in Source Code using Change History Information
Detecting Bad Smells in Source Code using Change History InformationDetecting Bad Smells in Source Code using Change History Information
Detecting Bad Smells in Source Code using Change History InformationFabio Palomba
 
Bright talk bringing back the love - final
Bright talk   bringing back the love - finalBright talk   bringing back the love - final
Bright talk bringing back the love - finalAndrew White
 
How to manage a time and beat a procrastination - azim tutorium 2016 by fir...
How to   manage a time and beat a procrastination - azim tutorium 2016 by fir...How to   manage a time and beat a procrastination - azim tutorium 2016 by fir...
How to manage a time and beat a procrastination - azim tutorium 2016 by fir...M Firdaus Harun
 
How to improve your system monitoring
How to improve your system monitoringHow to improve your system monitoring
How to improve your system monitoringAndrew White
 
The Refactoring Dilemma
The Refactoring DilemmaThe Refactoring Dilemma
The Refactoring DilemmaSteve Chepp
 
Technical Debt
Technical DebtTechnical Debt
Technical DebtGary Short
 
Measure It, Manage It, Ignore It - Software Practitioners and Technical Debt
Measure It, Manage It, Ignore It - Software Practitioners and Technical Debt Measure It, Manage It, Ignore It - Software Practitioners and Technical Debt
Measure It, Manage It, Ignore It - Software Practitioners and Technical Debt Neil Ernst
 
Identifying and Managing Technical Debt
Identifying and Managing Technical DebtIdentifying and Managing Technical Debt
Identifying and Managing Technical Debtzazworka
 
Clean code and Code Smells
Clean code and Code SmellsClean code and Code Smells
Clean code and Code SmellsMario Sangiorgio
 
When, why and for whom do practitioners detect technical debts?: An experienc...
When, why and for whom do practitioners detect technical debts?: An experienc...When, why and for whom do practitioners detect technical debts?: An experienc...
When, why and for whom do practitioners detect technical debts?: An experienc...Norihiro Yoshida
 
How to Make Awesome SlideShares: Tips & Tricks
How to Make Awesome SlideShares: Tips & TricksHow to Make Awesome SlideShares: Tips & Tricks
How to Make Awesome SlideShares: Tips & TricksSlideShare
 
Getting Started With SlideShare
Getting Started With SlideShareGetting Started With SlideShare
Getting Started With SlideShareSlideShare
 

Destacado (13)

Mining the Modern Code Review Repositories: A Dataset of People, Process and ...
Mining the Modern Code Review Repositories: A Dataset of People, Process and ...Mining the Modern Code Review Repositories: A Dataset of People, Process and ...
Mining the Modern Code Review Repositories: A Dataset of People, Process and ...
 
Detecting Bad Smells in Source Code using Change History Information
Detecting Bad Smells in Source Code using Change History InformationDetecting Bad Smells in Source Code using Change History Information
Detecting Bad Smells in Source Code using Change History Information
 
Bright talk bringing back the love - final
Bright talk   bringing back the love - finalBright talk   bringing back the love - final
Bright talk bringing back the love - final
 
How to manage a time and beat a procrastination - azim tutorium 2016 by fir...
How to   manage a time and beat a procrastination - azim tutorium 2016 by fir...How to   manage a time and beat a procrastination - azim tutorium 2016 by fir...
How to manage a time and beat a procrastination - azim tutorium 2016 by fir...
 
How to improve your system monitoring
How to improve your system monitoringHow to improve your system monitoring
How to improve your system monitoring
 
The Refactoring Dilemma
The Refactoring DilemmaThe Refactoring Dilemma
The Refactoring Dilemma
 
Technical Debt
Technical DebtTechnical Debt
Technical Debt
 
Measure It, Manage It, Ignore It - Software Practitioners and Technical Debt
Measure It, Manage It, Ignore It - Software Practitioners and Technical Debt Measure It, Manage It, Ignore It - Software Practitioners and Technical Debt
Measure It, Manage It, Ignore It - Software Practitioners and Technical Debt
 
Identifying and Managing Technical Debt
Identifying and Managing Technical DebtIdentifying and Managing Technical Debt
Identifying and Managing Technical Debt
 
Clean code and Code Smells
Clean code and Code SmellsClean code and Code Smells
Clean code and Code Smells
 
When, why and for whom do practitioners detect technical debts?: An experienc...
When, why and for whom do practitioners detect technical debts?: An experienc...When, why and for whom do practitioners detect technical debts?: An experienc...
When, why and for whom do practitioners detect technical debts?: An experienc...
 
How to Make Awesome SlideShares: Tips & Tricks
How to Make Awesome SlideShares: Tips & TricksHow to Make Awesome SlideShares: Tips & Tricks
How to Make Awesome SlideShares: Tips & Tricks
 
Getting Started With SlideShare
Getting Started With SlideShareGetting Started With SlideShare
Getting Started With SlideShare
 

Similar a Understanding the Longevity of Code Smells - Preliminary Results of an Explanatory Survey

A Preliminary Field Study of Game Programming on Mobile Devices
A Preliminary Field Study of Game Programming on Mobile DevicesA Preliminary Field Study of Game Programming on Mobile Devices
A Preliminary Field Study of Game Programming on Mobile DevicesTao Xie
 
A Study on Code Smell Detection with Refactoring Tools in Object Oriented Lan...
A Study on Code Smell Detection with Refactoring Tools in Object Oriented Lan...A Study on Code Smell Detection with Refactoring Tools in Object Oriented Lan...
A Study on Code Smell Detection with Refactoring Tools in Object Oriented Lan...ijcnes
 
Feature Mining From a Collection of Software Product Variants
Feature Mining From a Collection of Software Product VariantsFeature Mining From a Collection of Software Product Variants
Feature Mining From a Collection of Software Product VariantsRa'Fat Al-Msie'deen
 
SciForge Workshop@Potsdam Institute for Climate Impact Reserach; Nov 2014
SciForge Workshop@Potsdam Institute for Climate Impact Reserach; Nov 2014SciForge Workshop@Potsdam Institute for Climate Impact Reserach; Nov 2014
SciForge Workshop@Potsdam Institute for Climate Impact Reserach; Nov 2014dreusser
 
An efficient tool for reusable software
An efficient tool for reusable softwareAn efficient tool for reusable software
An efficient tool for reusable softwareprjpublications
 
Aliens in Your Apps! Are You Using Components With Known Vulnerabilities?
Aliens in Your Apps! Are You Using Components With Known Vulnerabilities?Aliens in Your Apps! Are You Using Components With Known Vulnerabilities?
Aliens in Your Apps! Are You Using Components With Known Vulnerabilities?Sonatype
 
Advantages and Disadvantages of a Monolithic Repository
Advantages and Disadvantages of a Monolithic RepositoryAdvantages and Disadvantages of a Monolithic Repository
Advantages and Disadvantages of a Monolithic Repositorymustafa sarac
 
A Model To Compare The Degree Of Refactoring Opportunities Of Three Projects ...
A Model To Compare The Degree Of Refactoring Opportunities Of Three Projects ...A Model To Compare The Degree Of Refactoring Opportunities Of Three Projects ...
A Model To Compare The Degree Of Refactoring Opportunities Of Three Projects ...acijjournal
 
A MODEL TO COMPARE THE DEGREE OF REFACTORING OPPORTUNITIES OF THREE PROJECTS ...
A MODEL TO COMPARE THE DEGREE OF REFACTORING OPPORTUNITIES OF THREE PROJECTS ...A MODEL TO COMPARE THE DEGREE OF REFACTORING OPPORTUNITIES OF THREE PROJECTS ...
A MODEL TO COMPARE THE DEGREE OF REFACTORING OPPORTUNITIES OF THREE PROJECTS ...acijjournal
 
Code-Review-COW56-Meeting
Code-Review-COW56-MeetingCode-Review-COW56-Meeting
Code-Review-COW56-MeetingMasud Rahman
 
Approaches and Challenges of Software Reusability: A Review of Research Liter...
Approaches and Challenges of Software Reusability: A Review of Research Liter...Approaches and Challenges of Software Reusability: A Review of Research Liter...
Approaches and Challenges of Software Reusability: A Review of Research Liter...IRJET Journal
 
Rankingtherefactoring techniques
Rankingtherefactoring techniquesRankingtherefactoring techniques
Rankingtherefactoring techniquesijseajournal
 
software development methodologies
software development methodologiessoftware development methodologies
software development methodologiesUTeM
 
Research software identification - Catherine Jones
Research software identification - Catherine JonesResearch software identification - Catherine Jones
Research software identification - Catherine JonesJisc RDM
 
GoOpen 2010: Sandro D'Elia
GoOpen 2010: Sandro D'EliaGoOpen 2010: Sandro D'Elia
GoOpen 2010: Sandro D'EliaFriprogsenteret
 
2014 IEEE JAVA SOFTWARE ENGINEERING PROJECT Repent analyzing the nature of id...
2014 IEEE JAVA SOFTWARE ENGINEERING PROJECT Repent analyzing the nature of id...2014 IEEE JAVA SOFTWARE ENGINEERING PROJECT Repent analyzing the nature of id...
2014 IEEE JAVA SOFTWARE ENGINEERING PROJECT Repent analyzing the nature of id...IEEEBEBTECHSTUDENTSPROJECTS
 

Similar a Understanding the Longevity of Code Smells - Preliminary Results of an Explanatory Survey (20)

A Preliminary Field Study of Game Programming on Mobile Devices
A Preliminary Field Study of Game Programming on Mobile DevicesA Preliminary Field Study of Game Programming on Mobile Devices
A Preliminary Field Study of Game Programming on Mobile Devices
 
A Study on Code Smell Detection with Refactoring Tools in Object Oriented Lan...
A Study on Code Smell Detection with Refactoring Tools in Object Oriented Lan...A Study on Code Smell Detection with Refactoring Tools in Object Oriented Lan...
A Study on Code Smell Detection with Refactoring Tools in Object Oriented Lan...
 
Feature Mining From a Collection of Software Product Variants
Feature Mining From a Collection of Software Product VariantsFeature Mining From a Collection of Software Product Variants
Feature Mining From a Collection of Software Product Variants
 
SciForge Workshop@Potsdam Institute for Climate Impact Reserach; Nov 2014
SciForge Workshop@Potsdam Institute for Climate Impact Reserach; Nov 2014SciForge Workshop@Potsdam Institute for Climate Impact Reserach; Nov 2014
SciForge Workshop@Potsdam Institute for Climate Impact Reserach; Nov 2014
 
An efficient tool for reusable software
An efficient tool for reusable softwareAn efficient tool for reusable software
An efficient tool for reusable software
 
Aliens in Your Apps! Are You Using Components With Known Vulnerabilities?
Aliens in Your Apps! Are You Using Components With Known Vulnerabilities?Aliens in Your Apps! Are You Using Components With Known Vulnerabilities?
Aliens in Your Apps! Are You Using Components With Known Vulnerabilities?
 
Advantages and Disadvantages of a Monolithic Repository
Advantages and Disadvantages of a Monolithic RepositoryAdvantages and Disadvantages of a Monolithic Repository
Advantages and Disadvantages of a Monolithic Repository
 
Adopting Open Source Software for Longer-term Reuse
Adopting Open Source Software for Longer-term ReuseAdopting Open Source Software for Longer-term Reuse
Adopting Open Source Software for Longer-term Reuse
 
A Preliminary Study of Android Refactorings
A Preliminary Study of Android RefactoringsA Preliminary Study of Android Refactorings
A Preliminary Study of Android Refactorings
 
A Model To Compare The Degree Of Refactoring Opportunities Of Three Projects ...
A Model To Compare The Degree Of Refactoring Opportunities Of Three Projects ...A Model To Compare The Degree Of Refactoring Opportunities Of Three Projects ...
A Model To Compare The Degree Of Refactoring Opportunities Of Three Projects ...
 
A MODEL TO COMPARE THE DEGREE OF REFACTORING OPPORTUNITIES OF THREE PROJECTS ...
A MODEL TO COMPARE THE DEGREE OF REFACTORING OPPORTUNITIES OF THREE PROJECTS ...A MODEL TO COMPARE THE DEGREE OF REFACTORING OPPORTUNITIES OF THREE PROJECTS ...
A MODEL TO COMPARE THE DEGREE OF REFACTORING OPPORTUNITIES OF THREE PROJECTS ...
 
Code-Review-COW56-Meeting
Code-Review-COW56-MeetingCode-Review-COW56-Meeting
Code-Review-COW56-Meeting
 
Approaches and Challenges of Software Reusability: A Review of Research Liter...
Approaches and Challenges of Software Reusability: A Review of Research Liter...Approaches and Challenges of Software Reusability: A Review of Research Liter...
Approaches and Challenges of Software Reusability: A Review of Research Liter...
 
Rankingtherefactoring techniques
Rankingtherefactoring techniquesRankingtherefactoring techniques
Rankingtherefactoring techniques
 
software development methodologies
software development methodologiessoftware development methodologies
software development methodologies
 
Research software identification - Catherine Jones
Research software identification - Catherine JonesResearch software identification - Catherine Jones
Research software identification - Catherine Jones
 
Ready, Set, Refactor
Ready, Set, RefactorReady, Set, Refactor
Ready, Set, Refactor
 
GoOpen 2010: Sandro D'Elia
GoOpen 2010: Sandro D'EliaGoOpen 2010: Sandro D'Elia
GoOpen 2010: Sandro D'Elia
 
Mouna Abidi
Mouna AbidiMouna Abidi
Mouna Abidi
 
2014 IEEE JAVA SOFTWARE ENGINEERING PROJECT Repent analyzing the nature of id...
2014 IEEE JAVA SOFTWARE ENGINEERING PROJECT Repent analyzing the nature of id...2014 IEEE JAVA SOFTWARE ENGINEERING PROJECT Repent analyzing the nature of id...
2014 IEEE JAVA SOFTWARE ENGINEERING PROJECT Repent analyzing the nature of id...
 

Último

Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 

Último (20)

Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 

Understanding the Longevity of Code Smells - Preliminary Results of an Explanatory Survey

  • 1. Understanding the Longevity of Code SmellsPreliminary Results of an Exploratory Survey Roberta Arcoverde – rarcoverde@inf.puc-rio.br Alessandro Garcia – afgarcia@inf.puc-rio.br Eduardo Figueiredo – figueiredo@dcc.ufmg.br ICSE.11
  • 2. why? May 11 Roberta @ OPUS Group 2 codesmellsentailevidenceofbadqualitycode harder to readandmaintain some [patternsof] smellsseem to be “ignored”
  • 3. why? May 11 Roberta @ OPUS Group 3 codesmellsentailevidenceofbadqualitycode harder to readandmaintain some [patternsof] smellsseem to be “ignored”  [1] How we refactor and how we know it. Murphy-Hill et al. [ICSE 2010]
  • 4. objective May 11 Roberta @ OPUS Group 4 perform a firstexploratorystudy to identify which factors influence longevity of code smells, based on refactoring habits
  • 5. refactoring habits howoftencode is refactored? which refactorings are prioritized? is refactoringapplied as anisolateactivity? which refactorings are considered to beharder to apply? howoftenandwhenrefactoringtools are used? May 11 Roberta @ OPUS Group 5
  • 6. which factors influence refactoring habits natureof software beingdeveloped reusableassets (frameworks, libraries, software productlines) standalone applications use of TDD developer’sexperience May 11 Roberta @ OPUS Group 6
  • 7. survey setting - questionnaire May 11 Roberta @ OPUS Group 7
  • 8. participants May 11 Roberta @ OPUS Group 8 agiledevelopmentteams framework developers = 33 answers
  • 9. participants distribution May 11 Roberta @ OPUS Group 9
  • 10. participants distribution - TDD May 11 Roberta @ OPUS Group 10
  • 11. most recurring smells May 11 Roberta @ OPUS Group 11 duplicated code – 78% (26) long methods – 78% (26) inadequate naming – 69% (23) god classes – 42% (14) same results for developers of reusable assets and standalone applications... ...regardless of experience level
  • 12. how often refactoring tools are used... May 11 Roberta @ OPUS Group 12
  • 13. ...and reasons for not using them May 11 Roberta @ OPUS Group 13 tool does notsupportthedesiredrefactoring – 41% theydidnotknowanyrefactoringtool – 37% tools do notallowthem to easilyfollowtheeffectsofrefactoring – 28% it’snoteasy to testwhetherthesystem’sbehaviourwaspreserved – 22%
  • 14. classifying refactorings - difficulty May 11 Roberta @ OPUS Group 14
  • 15. concluding remarks May 11 15 Roberta @ OPUS Group nature of the software being developed influences refactoring habits reusable assets developers consider the possibility of breaking APIs before refactoring refactoring prioritization is fairly different when we consider reusable assets versus standalone applications refactoring scope is considered
  • 16. concluding remarks visualizationmechanismsimprovements are needed testingwhetherthecodetransformationpreservedbehaviour is noteasy specifictoolsorfeaturescouldbeinvestigated for refactorings oflibraries, frameworks and software productlines May 11 Roberta @ OPUS Group 16
  • 17. thank you questions? May 11 Roberta @ OPUS Group 17
  • 18. classifying refactorings - priority May 11 Roberta @ OPUS Group 18
  • 19. classifying refactorings - frequency May 11 Roberta @ OPUS Group 19

Notas del editor

  1. Good afternoon. Thank you for coming to my presentation. My name is Roberta, I’m a MSc student at PUC-Rio and I will present an exploratory study towards understanding the longevity of code smells
  2. The first question comes to our mind is why investigating codesmellslongevity?As we all know, Code smells are symptoms in the source code that possibly indicates a deeper maintainability problem – making code harder to read and to maintain. And yet, some patterns of smells seem to be, either deliberately or not, ignored (or not dealt with as promptly as others), so they linger in code longer than others. There is, however, little knowledge about the factors that are likely to influence this longevity. Understanding which and why those refactoring candidates are neglected can help us identify improvements for refactoring tools and IDEs.1st thing comes to mind whyAs we know, code smells are..And yet, some patterns of smells seems to be, deliberately, or not, ignored..There is little knowledge about factors that are likely to influenceUnderstanding which and why those refactoring candidates are neglected…
  3. Previous studies were dedicated to understanding the state of practice of refactoring, identifying how and when they are commonly applied. Our investigation wants to complement such studies, by revealing recurring factors which lead developers to not worry about certain code smells, and we do so based on their refactoring habits.
  4. We sent the questionnaire to companies and colleagues in order to diversify the answers.This study was carried out in october 2010, and we had 33 answers from different groups of developers, from Academy, agile development teams, software factories and also from open source framework developers.