Design
A program follows an algorithm, which is a step-by-step process for solving a problem
The design specifies the algorithms and data needed
In object-oriented development, it establishes the classes, objects, and methods that are required
The details of a method may be expressed in pseudocode, which is code-like, but does not necessarily follow any specific syntax