Hiding unnecessary implementation details.

Preliminary implementation used for evaluation.

Layer that adapts one interface to another.

Code analysis performed without executing it.

Dividing software into distinct responsibilities.

Officially distributed software version.

Generated file produced during development.

Analysis performed while software executes.

Principle that a component has one main responsibility.

Storage location for software packages or code.