Loose Coupling and High Cohesion
As we know, Coupling refers to the degree of interdependence between software modules. High coupling means that modules are closely connected and changes in one module may affect other modules. Low coupling means that modules are independent and changes in one module have little impact on other modules. It is of two types:
- Loose coupling
- Tight coupling
Similarly, Cohesion refers to the degree to which elements within a module work together to fulfill a single, well-defined purpose. High cohesion means that elements are closely related and focused on a single purpose, while low cohesion means that elements are loosely related and serve multiple purposes.
- Low cohesion
- High cohesion
Here while designing principles it is to make sure that coupling should be loose and cohesion should be high while designing flexible systems. With loose coupling, we are reducing dependencies between components by minimizing direct communication between them and especially relying on interfaces. Now with high cohesion, the functionality is confined within a module which ensures that components work together for a common goal ensuring reusability and understandability.
Design Principles in System Design
Design Principles in System Design are a set of considerations that form the basis of any good System. But the question now arises why use Design Principles in System Design? Design Principles help teams with decision-making, and is a multi-disciplinary field that involves trade-off analysis, balancing conflicting needs, and making decisions about design choices that will impact the overall system.
Some of the most common Design Principles in System Design are:
- Separation of Concerns
- Encapsulation and Abstraction
- Loose Coupling and High Cohesion
- Scalability and Performance
- Resilience to Fault Tolerance
- Security and Privacy
Let us explain each design principle to get a better understanding of the same as follows:
Contact Us