When it provides a simplified view of a chunk of software, and it is expressed in the vocabulary of a user (where a “chunk” is normally a class or a tight group of classes, and a “user” is another developer rather than the ultimate customer).
- The “simplified view” means unnecessary details are intentionally hidden. This reduces the user’s defect-rate.
- The “vocabulary of users” means users don’t need to learn a new set of words and concepts. This reduces the user’s learning curve.