Both Coupling and Cohesion are ranked from good to bad

For good software design, there should be a high cohesion and a low coupling.

5 coupling:

  • Data Coupling shares atomic data
  • Stamp Coupling shares complex data structures (actually using only a small part of the data structures)
  • Control coupling a small part of the invoked module that passes parameters to another
  • Common coupling can write global variables
  • Content coupling A module directly references another module

7 cohesion:

  • Each activity in information Cohesion has separate codes operating on the same data structure
  • All the activities in the Functional cohesion module are for the same task or function
  • Two activities in the Communicational Cohesion module are related to each other due to a process and operate on the same data structure (e.g Update the database information and send the database information to the printer)
  • The two activities of procedural cohesion are related due to a process
  • Temporal cohesion activities are related because of timing
  • Activities in the Logical Cohesion module are logically rather than functionally related
  • Some functions in coincidental Cohesion module are not relevant