Coupling and Cohesion are the two terms which very frequently occur together. Together they talk about the quality a module should have You might have got this advice n number of times that " cohesion is good and coupling is bad ", without actually going into the details as to what they mean and why one of them is bad and why the other one is good. Maybe because the one who is advising is not aware himself of the details and the one who is getting the advice is hesitant enough to ask, or may be they are not able to give good explanation. So in this post I am trying to give a good explanation on both, and hopefully good examples which you can co-relate with incidents and things in your daily life. As usual, lets start with checking what Wikipedia has to say on this On Coupling "In software engineering, coupling or dependency is the degree to which each program module relies on each one of the other modules." On Cohesion "Cohesion is a measur