Please enable Javascript in your browser and refresh the page to continue with registration.

This event is now over

Event Details

About

IEEE Computer Society One-Day Workshop

Abstract

Fred Brooks in his book “The Mythical Man Month” describes how the inherent properties of software (i.e. complexity, conformity, changeability, and invisibility) make its design an “essential” difficulty. Good design practices are fundamental requisites to address this difficulty. One such good design practice is identifying and addressing ‘smells’. Most practitioners know about identifying and refactoring code smells. However, there is a lack of awareness on refactoring design smells and architecture smells, which are also equally important for creating high quality software. In this 1-day workshop, we discuss important structural design smells based on how they violate the four key object oriented design principles (abstraction, encapsulation, modularization, and hierarchy). Each of these smells are illustrated through design smells found in OpenJDK 7.0 (Open source Java Development Kit) code base, with detailed discussions on refactoring strategies for addressing them. Participants are expected to have working knowledge in an object oriented programming language. The practical workshop includes extensive exercises (more than 2 hours) on refactoring. By attending this session, the participants will get a good understanding on design smells and how to refactor them in real-world projects.

The participant is expected to have knowledge in any OO programming language (such as C++, C#, Smalltalk, or Objective-C). Since the design smell examples are from Java library, it is preferable (but not required) for the participants to know Java. It is also preferable (but not mandatory) if the participant knows the fundamentals of UML, especially class diagrams. refactoring code smells. However, there is a lack of awareness on refactoring design smells and architecture smells, which are also equally important for creating high quality software.

Target Audience

Practitioners working as senior developers/designers, technical leads and architects, students pursuing masters/PHD in CS/IT/SE and faculty members.