Understanding the Longevity of Code SmellsPreliminary Results of an Exploratory Survey<br />Roberta Arcoverde – rarcoverde...
why?<br />May 11<br />Roberta @ OPUS Group<br />2<br />codesmellsentailevidenceofbadqualitycode<br />harder to readandmain...
why?<br />May 11<br />Roberta @ OPUS Group<br />3<br />codesmellsentailevidenceofbadqualitycode<br />harder to readandmain...
objective<br />May 11<br />Roberta @ OPUS Group<br />4<br />perform a firstexploratorystudy to identify<br />which factors...
refactoring habits<br />howoftencode is refactored?<br />which refactorings are prioritized?<br />is refactoringapplied as...
which factors influence refactoring habits<br />natureof software beingdeveloped<br />reusableassets (frameworks, librarie...
survey setting - questionnaire<br />May 11<br />Roberta @ OPUS Group<br />7<br />
participants<br />May 11<br />Roberta @ OPUS Group<br />8<br />agiledevelopmentteams<br />framework developers<br />= 33 a...
participants distribution<br />May 11<br />Roberta @ OPUS Group<br />9<br />
participants distribution - TDD<br />May 11<br />Roberta @ OPUS Group<br />10<br />
most recurring smells<br />May 11<br />Roberta @ OPUS Group<br />11<br />duplicated code – 78% (26)<br />long methods – 78...
how often refactoring tools are used...<br />May 11<br />Roberta @ OPUS Group<br />12<br />
...and reasons for not using them<br />May 11<br />Roberta @ OPUS Group<br />13<br />tool does notsupportthedesiredrefacto...
classifying refactorings - difficulty<br />May 11<br />Roberta @ OPUS Group<br />14<br />
concluding remarks<br />May 11<br />15<br />Roberta @ OPUS Group<br />nature of the software being developed influences re...
concluding remarks<br />visualizationmechanismsimprovements are needed<br />testingwhetherthecodetransformationpreservedbe...
thank you<br />questions?<br />May 11<br />Roberta @ OPUS Group<br />17<br />
classifying refactorings - priority<br />May 11<br />Roberta @ OPUS Group<br />18<br />
classifying refactorings - frequency<br />May 11<br />Roberta @ OPUS Group<br />19<br />
Upcoming SlideShare
Loading in …5
×

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

553 views
490 views

Published on

my presentation at the 4th Workshop on Refactoring Tools, May 2011

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
553
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • 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
  • 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…
  • 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.
  • 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.
  • Understanding the Longevity of Code Smells - Preliminary Results of an Explanatory Survey

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

    ×