Некоторые отечественные и зарубежные источники предлагают выделять следующие этапы:
анализ требований, предъявляемых к системе (системный анализ). (Обычно проводится на основе первичного исследования потоков информации при традиционном проведении работ с фиксацией видов этих работ и их последовательности);
определение целей, достигаемых разрабатываемыми программами;
выявление аналогов, обеспечивающих достижение подобных целей, их достоинств и недостатков;
постановка задачи на разработку новых программ, определение внешних спецификаций (то есть описаний входной и выходной информации, а иногда и их форм) и способов (алгоритмов, методов) обработки информации;
оценка достижения целей разработки. (Далее, при необходимости, этапы 1-5 могут быть итеративно повторены до достижения удовлетворительного облика изделия с описанием выполняемых им функций и некоторой ясностью реализации его функционирования);
рассмотрение возможных вариантов структурного построения программного изделия: или в виде нескольких программ, или нескольких частей одной программы; результатом этой работы являются варианты архитектуры программной системы и (или) требования к структуре отдельных программных компонент; организация файлов для межпрограммного обмена данными;
разработка окончательного варианта архитектуры системы и разработка окончательной структуры программных компонент;
составление и проверка спецификаций модулей;
составление описаний логики модулей;
составление окончательного плана реализации программ;
кодирование и тестирование отдельных модулей и совокупности готовых модулей до получения готовой программы;
комплексное тестирование;
разработка эксплуатационной документации на программу;
проведение приёмо-сдаточных и других испытаний;
корректировка программ по результатам испытаний;
окончательная сдача программного изделия заказчику;
тиражирование программного изделия;
сопровождение программы.
Современные технологии проектирования программного обеспечения (ПО) направлены на частичную автоматизацию этапов и на совмещение их во времени с целью сокращения сроков выполнения проектов.
В литературных источниках применяются наименования этапов, которые охватывают ряд приведенных этапов и по времени охватывают даже несколько стадий. Например, этап разработки программы.