Mike,
The most incoherent program I ever came across used the names of the card deck for all memvars, and even field names (it was Fortran).
Yet the thing did work, so I guess it had some form of cohesion, even if it was of the 'coincidental' form < s >
>>Mike-
>>
>>>A first-order principle of software architecture is to reduce coupling and increase cohesion."
>>>
>>>A module must be coherent and it must reduce coupling.
>>
>>It's going to take a while to digest the essence of your question, but I have a maybe not insignificant quibble.
>>
>>Cohesion => cohesive ! coherent.
>
>Actually, both derive from the latin for stick together. There is much to be gained from the idea that a class or module is coherent and cohesive.
>
>
http://dictionary.reference.com/search?q=coherent>
>
http://dictionary.reference.com/search?q=cohesion