The Repository @ St. Cloud State

Open Access Knowledge and Scholarship

Date of Award


Culminating Project Type

Starred Paper

Degree Name

Computer Science: M.S.


Computer Science and Information Technology


School of Science and Engineering

First Advisor

Ramnath Sarnath

Third Advisor

Dennis Guster

Keywords and Subject Headings

Design Flaws, Object Oriented, System Design, Detection, Correction


As the object oriented systems evolve, the original design is distorted and bad smells or deviation from good design heuristics are observed in the source code. Presence of design flaws in the software distorts the original design pattern realization and affects maintainability and flexibility of the code. In this paper, we study software evolution, design flaw detection and correction strategies. We focus on two design flaws and demonstrate their detection and correction. To detect design flaws we refer multiple strategies, define our own strategies and apply those to sample java software. A set of metric values are measured for the source code and probable flawed entities of the software are detected. Detection of design flaws helps in selecting the appropriate refactoring activities. For correcting design flaws or refactoring, we use refactoring techniques from the literature and demonstrate step by step refactoring of a god class and a long method. We conclude that software systems should be monitored whenever changes are made so that potential flaws can be predicted; systems should also be checked for code smells or design flaws and appropriate refactoring be applied to improve the design of the system. This will increase the maintainability of the code as well as the life span of a system.



To view the content in your browser, please download Adobe Reader or, alternately,
you may Download the file to your hard drive.

NOTE: The latest versions of Adobe Reader do not support viewing PDF files within Firefox on Mac OS and if you are using a modern (Intel) Mac, there is no official plugin for viewing PDF files within the browser window.