SlideShare uma empresa 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

Mais conteúdo relacionado

Destaque

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
 

Destaque (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
 

Semelhante 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
 

Semelhante 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

Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesZilliz
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 

Último (20)

Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector Databases
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 

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 do 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.