Сначала анализируется исходная задача. В ней выделяются подзадачи. Строится иерархия таких подзадач.Затем составляются алгоритмы (или программы), начиная с основного алгоритма (основной программы), далее — вспомогательные алгоритмы (подпрограммы) с последовательным углублением уровня, пока не получим алгоритмы, состоящие из простых команд.