Software engineering Principles of Good Software Design Modularity, cohesion, low coupling, abstraction/information hiding, and good separation of concerns collectively form the bedrock good software design.December 13, 2023