Tracking_Smells_for_Effective_Maintainability_Improvements.pdf

 Tracking_Smells_for_Effective_Maintainability_Improvements.pdf

Detecting smells is only the first step towards improving code quality. The talk aim to emphasize the importance of tracking smells once detected and how it can be easily achieved by using Designite.

16a26342d4ff4724dfe59b0dc947dead?s=128

Tushar Sharma

October 06, 2018
Tweet

Transcript

  1. Tushar Sharma Tracking Smells for Effective Maintainability Improvements

  2. Tracking Smells for Effective Maintainability Improvements Software Evolution Technical Debt

    Code Smells
  3. Tracking Smells for Effective Maintainability Improvements

  4. Tracking Smells for Effective Maintainability Improvements

  5. http://www.tusharma.in I am in job market …

  6. • Continuing Growth • All in-use software systems will grow

    • Increasing Complexity • As a software system evolves, the complexity increases unless efforts are made to contain the complexity • Declining Quality • The quality of the software will decline unless it is rigorously maintained Lehman’s laws of software evolution
  7. Evolution of JUnit 3.7 4.0 4.5 4.11

  8. Which one is easy to work with?

  9. Courtesy: CMU SEI

  10. Technical Debt

  11. Why care about Technical Debt?

  12. What Technical Debt Constitutes

  13. None
  14. What is a smell? …certain structures in the code that

    suggest (sometimes they scream for) the possibility of refactoring. - Kent Beck 20 Definitions of smells: http://www.tusharma.in/smells/smellDefs.html
  15. Types of smells • Code smells • Implementation smells •

    Architecture smells • Design smells • Test smells • Performance smells • Configuration smells • Database smells • Models smells • Usability smells • Web smells • …
  16. Smells: Types http://www.tusharma.in/smells/

  17. Granularity of code smells - Implementation - Design - Architecture

  18. Implementation smells

  19. Design Smells

  20. Architecture Smells

  21. Demo http://www.designite-tools.com

  22. Designite is a software design quality assessment tool for C#.

    Key features • Detects 7 architecture smells • Detects 19 design smells • Detects 11 implementation smells • Computes various object-oriented code metrics • Provides smell trend analysis of Git repositories • Many visualization aids including smell treemap, and smell sunburst • Detects code duplication • Allows customization of analysis • Smart tracking of detected smells http://www.designite-tools.com Academic license is free!
  23. Detection is only the first step towards maintainability improvement.

  24. Life-cycle of a Smell

  25. Detecting smells is not enough; track smells for better maintainability!!

  26. Let’s see it in practice

  27. Let us conclude

  28. A Hack

  29. T E C H N II C A L D

    E B T Structure in code that suggest the possibility of refactoring I A E
  30. T E C H N II C A L D

    E B T A tool to detect smells I A S M E L L S
  31. T E C H N II C A L D

    E B T ____ is required for effective maintainability improvements D E S I G N I T E A S M E L L S
  32. T E C H N II C A L D

    E B T D E S I G N I T E T R A C K I N G S M E L L S
  33. Tushar Sharma tusharsharma@ieee.org http://www.tusharma.in Thank you!! Courtesy: spikedmath.com