Refatoração de sistemas Java utilizando padrões de projeto: um estudo de caso - Rapeli, Leide Rachel Chiusi (2005)
This dissertation presents a study case on object-oriented systems refactoring. Systems developed according to the object-oriented paradigm may contain reusable code, even though not always have been designed for it. Systems maintenance is not an easy task, even for object-oriented systems. Software design patterns favour the implementation of efficient solutions for recurrent problems, easing reusability and maintainability. In cases of systems not designed using design patterns, it is possible to refactor the system using them, without altering the system functionality. This prospective study refers to the search for guidelines to help the software engineer to conduct this type of refactoring. For that purpose, seven systems implemented in Java, that were available in the Web, have been used. The study has three phases: the first refers to existing system functionality and class model recovery; so that, in the second phase, applicable software design patterns can be implemented; and the class model previously obtained can be updated with the software design patterns applied. In the third phase, the new system functionality is verified by tests, to confirm that the conducted refactoring has not altered it. The refactored system usually presents an increase in the LOC number, but becomes more maintainable due to better structuring and cohesion. Reuse is also eased. One restriction of this research is that the case study has been conducted only for small-scale information systems.