Stages involved in programming.