Ensuring quality in software development is a challenging process. The concepts of anti-patterns and code smells utilize the knowledge of known problems to improve the quality of current and future software development. However, the knowledge and understanding of these indicators of low quality software is still insufficient to resolve many of the problems they represent. The identification and definition of anti-patterns is a heuristic process. Additionally, minimal research exists addressing the relationships between or among code smells and anti- patterns. Software quality issues such as understandability and maintainability can be improved by identifying and resolving anti-patterns associated with code smells as well as preventing code smells before coding begins. We present an ontological representation of the relationships between anti-patterns and code smells to enhance the understanding of these concepts with the goal of improving software quality.