Improving the design quality of large object-oriented systems during maintenance and evolution is widely regarded as a high-priority objective. Furthermore, for such systems that are subject to frequent modifications, detection and correction of design defects may easily become a very complex task that is even not tractable for manual handling. Therefore, the use of automatic or semi-automatic detection and correction techniques and tools can assist reengineering activities. This paper proposes a framework whereby object-oriented metrics can be used as indicators for automatically detecting situations for particular transformations to be applied in order to improve specific design quality characteristics. The process is based both on modeling the dependencies between design qualities and source code features, and on analyzing the impact that various transformations have on software metrics that quantify the design qualities being improved. He is also a Visiting Scientist with the Centre for Advanced Studies at the IBM Toronto Laboratory. He received his PhD degree from McGill University in 1996. Together with his research group, he investigates technologies to migrate legacy software to object-oriented and network-centric platforms. His specific topics of interest include techniques and tools for source code representation, quality preserving source code transformations, and techniques for the integration of Web services. He was the recipient of the