Practical Taxonomy of Software Design

Understanding the differences between software architecture, architectural design, styles, patterns, design approaches, and principles is crucial for making thoughtful decisions. Unfortunately, these terms are often mixed up or used as if they mean the same thing. This article explains what each term means, where it fits in the design hierarchy,