Over the past few years, we are experiencing a surge of evolution problems related to legacy object-oriented systems. Object orientation provides means for systems to be well-designed to meet numerous non-functional quality requirements. However, mismanagement of the maintenance process and ill-planned modifications usually are amplified in an object-oriented context. The paper presents a re-engineering framework that defines and categorizes a collection of source code transformations that aim to introduce design patterns in an ill-structured object-oriented system due to excessive maintenance process. The framework allows for five categories of transformations to be defined and associated through soft-goal dependency graphs for the target system. A case study that illustrates the use of the framework for the restructuring and introducing of design patterns to the GNU AVL Library is presented.