Для перехода от одного процесса к другому или повторения процесса должны быть определены критерии перехода, которые являются минимально достаточными условиями перехода к процессу. Только когда все эти условия будут удовлетворены, возможна инициализация нового процесса. Некоторые критерии перехода между процессами зависят от уровня, на которое претендует ПО.
В чем особенности процесса разработки ПО стандарта DO-178B? Разработка ПО состоит, в свою очередь, из четырех процессов: процесса создания требований, процесса дизайна, процесса кодирования и процесса интеграции. Целью процесса создания требований является разработка высокоуровневых требований, которые непосредственно исходят из требований системы и включают функциональные и операционные требования к ПО, критерии производительности, точности, правильности, безопасности, а также интерфейсы, протоколы и другое. Базируясь на высокоуровневых требованиях, процесс дизайна вырабатывает низкоуровневые требования и архитектуру ПО. Низкоуровневые требования - это требования, из которых исходный код может быть создан напрямую, без дополнительной информации. Результатом работы процесса дизайна являются описания: алгоритмов, структур данных, компонентов ПО, низкоуровневых интерфейсов, механизмов управления ресурсами и др. На основе этой информации в процессе кодирования разрабатывается исходный код, из которого в процессе интеграции создается выполняемый объектный код. Последовательность процессов, входящих в процесс разработки, не является строгой, поскольку не все процессы могут быть задействованы. Например, при сертификации уже разработанного ПО могут быть использованы только процессы создания требований и интеграции. Если необходимо добавить к уже разработанному ПО дополнительную функцию, которая не нарушает общей структуры и может быть закодирована непосредственно из требований, тогда последовательность процессов будет выглядеть как создание требований, кодирование, интеграция. Если используются методы разработки прототипов, тогда процессы создания требований, кодирования и интеграции могут повторяться многократно, до тех пор, пока не определится наилучший прототип, после чего будут иметь место процесс дизайна и финальные процессы кодирования и интеграции.
Есть ли ограничения по выбору языка программирования? Стандарт не дает каких бы то ни было рекомендаций по выбору языка программирования, но выбор высокоуровневого языка предпочтителен. Высокоуровневые языки считаются более надежными, поскольку код у них прозрачнее, в нем легче прослеживается связь с требованиями дизайна, он детерминирован, устойчив, и на нем можно реализовывать синтаксически сложные конструкции. До недавнего времени для бортового ПО использовался только язык Ada, сейчас более популярны С и С++. Существует бортовое ПО, написанное на языке Java.