This document proposes techniques for detecting and correcting design defects in object-oriented software. It discusses using design patterns as a reference to detect defects and class slicing to refactor code to meet design specifications. The detection process involves specifying quality goals, static program analysis, metric computation, and comparing the software design to an object-oriented design knowledge base containing design patterns and principles. Identified defects are then suggested for correction, which involves class slicing to modify the software design while preserving behavior. The goal is to develop tools that can automatically detect and correct design defects to improve software quality and reduce costs.