A module has coincidental cohesion if its elements have no
meaningful relationship to one another.
The manager tells his chief programmer to restructure the FORTRAN program (which is a one large subprogram) into modules. He's gonna get those benefits.
The chief programmer, who thinks he has better uses for his time, decides the fastest way to make modules out of the program is to take a ruler, measure down every 6 inches in the program listing and draw a line. At each line, he inserts a call to a new subprogram, and after that call creates the header for the new subprogram.
These "modules" exhibit ultimate coincidental cohesion.
A logically cohesive module is one whose elements perform
similar activities and in which the activities to be executed
are chosen from outside the module.
A temporally cohesive module is one whose elements are functions
that are related in time.
A procedurally cohesive module is one whose elements are involved
in different activities, but the activities are sequential.
A communicationally cohesive module is one whose elements
perform different functions, but each function references the same
input information or output.
A sequentially cohesive module is one whose functions are
relaed such that output data from one function serves as input
data to the next function.
A functionally cohesive module is one in which all of the
elements contribute to a single, well-defined task.
Object-oriented languages tend to support this level of
cohesion better than earlier languages do.