Two parts may have no explicit dependence between them, but they may nevertheless be coupled because they are required to satisfy a constraint together.
For example: two class Read, which reads files, and Write, which writes files. If the files read by Read are the same files written by Write, there will be a constraint that the two parts agree on the file format.
To avoid this kind of coupling, you have to try to localize functionality associated with any constraint in a single part.
Copyright © 1998-2009 Dilvan Moreira