6 March 2024 by Phillip Johnston • Last updated 5 January 2026This page serves as top-level entry collecting the various software design principles that we have written about on the website. Architectural Principles The following principles apply to the internal architecture of a software system. They influence how code is organized, how responsibilities are distributed, and how the various components in a system interact. Information Hiding Coupling Cohesion Encapsulation Separation of Concerns Single Responsibility Principle Open-Closed Principle [OCP] Dependency Inversion Principle Interface Segregation Principle Avoid Mixed Metaphors Conway’s Law Usability Principles The Software Usability Principles page collects design principles that …
Continue reading “Software Design Principles”
