1. Principles
    1. Loose coupling
      1. Content coupling (high)
      2. Common coupling
      3. External coupling
      4. Control coupling
      5. Stamp coupling (Data-structured coupling)
      6. Data coupling
      7. Message coupling (low)
      8. No coupling
    2. Cohesion
      1. Coincidental cohesion (worst)
      2. Logical cohesion
      3. Temporal cohesion
      4. Procedural cohesion
      5. Communicational cohesion
      6. Sequential cohesion
      7. Functional cohesion (best)
  2. Features or Concepts
    1. Abstraction
    2. Encapsulation
    3. Inheritance
    4. Polymorphism