| Object Oriented Techniques are prevalent in software design because of the effects that they have on the system. An object oriented system is easy to read and understand, easy to modify, reduces code duplication, and has reusable components. Improper use or negligence of the object-oriented techniques can lead to a badly designed system and loss of benefits of object orientation. Poor design will exert difficulties in maintaining the code as a change at one place may lead to changes throughout the system.;Refactoring can be a powerful tool to deal with such problems. Regular refactoring of the system will help ensure that the system is in good shape and has a cleaned up structure. Refactoring can be done manually but can be a time consuming process in larger systems. Therefore, concept of automated refactoring is being widely addressed in the market.;This thesis will implement ten refactorings to work automatically. Refactorings are implemented in a stepwise manner taking initial input then validating and asking for more input and then checking conditions and finally refactoring the code. |