Resources

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