Readable - can be understood
Independent - can change code in one place without it unknowingly changing behavior in another place
Efficient - if needed change in one place and one (no need to go through all code)

Internal characteristics:

Cohesion: how closely the operations in a routine or class are related.

Coupling: Strength of a connection between routines [or classes] in the code. Desirable loose coupling.

Redundancy: Repeated blocks of code

Portability: how easy to move on other environment

Leanness: No extra code.

High Fan-in,Low Fan-out


Answers and Comments