Design for change coupling and cohesion
Coupling and cohesion are two often misunderstood terms in software engineering. These are terms that are used to indicate the qualitative analysis of the modularity in a system, and they help us to identify and measure the design complexity of object oriented systems.
However, a good knowledge of both is necessary to build systems that are scalable, manageable and can be extended over time. In this post, I'll discuss both of these; I'll present code examples in my future posts on this topic.
How do cohesion and coupling differ? How are concepts cohesion and coupling related to good or poor software designs? Before we explore cohesion and coupling and how they impact software designs, let's understand what each of these concepts is and their types