Definition § Design smells are structures in the design that indicate violation of fundamental design principles and negatively impact design quality § The origin of the term design smell can be traced to the term code smell which was featured in the book “Refactoring: Improving the Design of Existing Code” by Martin Fowler.
General Rules 1. It is about You. Showcase what is yours (your classes) 2. KISS Design. Include one level of hierarchical relationships (do not showcase Java API unless it is needed) 3. DRY Design. If it looks complicated, it smells 4. Semantic. Apply the symbols correctly 5. Be sure diagram and code match