Document: Design Smells book (sample)
The document contains the front matter and 2 sample smell descriptions from our “Refactoring for Software Design Smells” book.
Presentation: Refactoring for Design Smells – ICSE 2014 Tutorial
In this tutorial, we introduce a comprehensive catalog, classification, and naming scheme for design smells to the participants. We discuss important structural design smells based on how they violate the four key object-oriented design principles (abstraction, encapsulation, modularization, and hierarchy). Smells are illustrated through design smells found in OpenJDK (Open source Java Development Kit) code base, with discussions on refactoring strategies for addressing them.
Presentation: SOLID Principles and Design Patterns
Poster: Refactoring for Software Design Smells
This poster summarizes our design smells classification and catalog.
Paper: Towards a Principle-based Classification of Structural Design Smells
This is our paper published in JOT (Journal of Object Technology) based on our initial work. In this paper, we present our (early) catalog, classi.cation, and naming scheme for design smells and also highlight several interesting observations and insights that result from our work.
Poster: PHAME and corresponding Enabling Techniques
This poster describes four fundamental object-oriented principles and their corresponding enabling techniques to understand them better.
Document: Tools for Refactoring
This document provides a non-exhaustive list of commonly available tools – along with their categories, supported languages, license, and web-site link – that can help in the process of refactoring to repay technical debt.
Document: A Checklist for Design Reviews
Manual design reviews are effective in finding smells in design. Use this checklist when you are reviewing UML diagrams (mainly class diagrams) or code to find smells in your software.
Document: Why care about technical debt
This article was published in Open Source For You (Dec 2014 issue). It emphasizes the importance of technical debt, outlines the impact of technical debt, and offers a few tips on how to manage technical debt in a software system.
Presentation: Applying Design Principles in Practice – Tutorial in ISEC 15
The tutorial was presented in ISEC (India Software Engg Conference) on 18th Feb 2015 in Bengaluru by Tushar Sharma, Ganesh Samarthyam, and Girish Suryanarayana.
Infographic: Pragmatic Technical Debt Management
Here is an infographic that covers various aspects associated with technical debt and its management in pragmatic and diligent manner.
Presentation: Tools for Identifying and Addressing Technical Debt
This presentation catalogs a few tools that are useful for identifying and addressing technical debt.
Pragmatic Technical Debt Management
This presentation provides a brief overview about technical debt including its definition, types, and dimensions. Further, the presentation discusses a couple of ways to prevent technical debt to accumulate. Finally, the presentation reveals a few pragmatic strategies to repay technical debt in real-world settings.