Содержание
- Основные этапы жизненного цикла программного обеспечения
Планирование
Аналитика (анализ требований)
Проектирование
Разработка (реализация)
Тестирование
Внедрение (развертывание)
Сопровождение (эксплуатация и поддержка)
- Модели жизненного цикла разработки ПО
Водопадная модель
V-образная
Прототипная модель
Спиральная
Итеративно-инкрементальная модель
Модель большого взрыва
Agile-модель
В разработке ИТ-продуктов участвуют заказчик и исполнитель. Заказчику нужен результат для достижения бизнес-целей. Разработчик заинтересован в технической реализации.
Создание программного обеспечения происходит в несколько этапов. У каждого из них есть четкая цель и результат. При этом, хотя этапы выполняются последовательно, к некоторым из них можно возвращаться для корректировок.
Что такое жизненный цикл разработки программного обеспечения
Жизненный цикл¹⁻² разработки ПО (SDLC, Software / System Development Life Cycle) — развитие программного обеспечения от концепции до вывода из эксплуатации.
SDLC подразумевает разделение процесса разработки программного обеспечения на этапы³. Модель жизненного цикла¹ (life cycle model²) описывает структуру процессов, связанных с жизненным циклом продукта.
Каждый новый программный продукт уникален. Тем не менее существует общий алгоритм процесса разработки, который позволяет проделать путь от идеи до готового продукта максимально быстро и эффективно. Основные этапы разработки ИТ-продукта — это планирование, аналитика, проектирование, дизайн, разработка, тестирование, запуск и поддержка. Разберем их подробнее.
Основные этапы жизненного цикла программного обеспечения
Каждый новый программный продукт уникален. Но этапы жизненного цикла разработки едины:
- планирование;
- аналитика;
- проектирование;
- реализация;
- тестирование;
- внедрение;
- поддержка и сопровождение.
С развитием искусственного интеллекта возник фреймворк AI-SDLC (Artificial Intelligence System Development Life Cycle). Это модельно-ориентированный подход (MDA), усовершенствованный благодаря использованию моделей машинного обучения. Жизненный цикл с ИИ (AI-SDLC) подразумевает следующие этапы:
- планирование релиза (Release Planning);
- определение требований (Definition);
- разработку (Development);
- валидацию (Validation);
- развертывание (Deployment).
Также существуют стадии разработки программного обеспечения. На старте работают с предварительной версией (пре-альфа), затем идут альфа, бета, версия-кандидат (Release candidate), готовая к выпуску версия (Release) и иные.
Планирование
На этом этапе клиент и исполнитель садятся и начинают разговаривать. Заказчик формулирует требования: выдвигает идеи, излагает пожелания и описывает, как он видит конечный продукт. Исполнитель, в свою очередь, внимательно слушает, отвечает на вопросы и корректирует ожидания клиента, сверяясь с техническими возможностями.
Аналитика (анализ требований)
Аутсорс-компания анализирует собранные от клиента данные на предмет реализации. Здесь важно продолжать вести открытый диалог с клиентом, рассказывая, что из его пожеланий невозможно реализовать.
Итог — ТЗ с функциональными и нефункциональными требованиями.
Проектирование
После обсуждения деталей с клиентом пора проектировать будущий продукт. Для этого необходимо:
1. Создать дорожную карту с ключевыми точками, в которых будет происходить контроль и оценка результатов.
2. Заложить архитектуру программного обеспечения.
3. Выбрать технологии и инструменты разработки. Это языки программирования, система управления базами данных, инфраструктура.
Проектирование может быть высокоуровневым или низкоуровневым. В первом случае закладывают общую архитектуру системы: модули, сервисы, прототипы. Во втором — работают со структурами данных, логикой каждого модуля, деталями реализации.
Разработка (реализация)
Один из ключевых этапов, но наиболее длительный и трудозатратный. Поэтому его необходимо выполнять пошагово.
Команды часто работают по спринтам — коротким периодам, в течение которых выполняется определенный объем работы.

Это позволяет прорабатывать все компоненты программного обеспечения с регулярными отчетами. Процесс разработки становится прозрачным и предсказуемым, повышается гибкость: чем больше спринтов (итераций), тем чаще можно вносить изменения под новые требования.
Тестирование
Здесь на сцену выходят QA-инженеры. В их арсенале много инструментов, которые помогут «сломать» продукт. Это нам и нужно. На этапе тестирования:
- выявляют критичные ошибки;
- проверяют функциональность приложения;
- проводят комплексный анализ работы программы.
В результате в идеале всё должно работать. В реальности инженеры формируют список ошибок и рекомендаций по улучшению ПО. Разработчики вносят изменения, функциональность проходит повторное тестирование.
Операции тестирования и доработки программного продукта можно проводить много раз. Но не стоит зацикливаться на бесконечной полировке приложения. Несущественные ошибки устраняют в процессе эксплуатации.
Внедрение (развертывание)
После успешного тестирования готовый продукт доставляют в рабочую среду. Здесь главное:
- настроить инструменты мониторинга для отслеживания поведения пользователей;
- собрать обратную связь;
- организовать возможность оперативной доработки продукта.
Разработчик передает права на программный продукт заказчику. Вместе с правами передается вся техническая документация и контроль над программной частью.
Сопровождение (эксплуатация и поддержка)
Поддержка программного продукта может осуществляться:
- компанией-разработчиком;
- инхаус-специалистами компании.
Раньше эти этапы жизненного цикла следовали друг за другом: в 1960–1970-х так последовательно разрабатывали ПО.
Но сегодня системы стали сложнее, доставлять обновления нужно чаще, а рабочие процессы должны быть более гибкими, адаптироваться под внешние и внутренние вызовы. Например, на этапе тестирования функциональности обнаруживаются ошибки: нужно «откатиться» на стадию разработки (или и вовсе на этап проектирования или уточнения требований). Так появились модели жизненного цикла: они помогают выстроить процесс работы над ПО.
Модели жизненного цикла разработки ПО
Модели жизненного цикла ПО (SDLC) описывают стадии работы над программным обеспечением.
Водопадная модель
Самая базовая и понятная концепция. В ней все этапы разработки ИТ-продукта выполняются последовательно. Концепция подойдет для проектов с неизменяемыми требованиями.
Методология негибкая, занимает много времени. Каждый последующий этап зависит от предыдущего.

V-образная
В отличие от водопадной модели V-образная методология SDLC подразумевает, что на каждом этапе параллельно выполняется тестирование. Концепция ориентирована на тестирование и проверку.

Прототипная модель
Заключается в создании прототипа. Просчитать сроки сложно: они могут изменяться при каждой доработке или выявлении проблемы.

Прототип дорабатывают, пока требования клиента не будут удовлетворены. Прототипная методология подразумевает максимальную вовлеченность заказчика.
Спиральная
Относится к риск-ориентированным. Методология состоит из четырех основных процессов:
1. Планирование.
2. Анализ рисков.
3. Разработка.
4. Оценка.

Разработка представляет собой последовательный переход по спирали, витки которой проходят через все процессы. Количество витков зависит от масштаба проекта и степени проработки. Подходит для крупных проектов с фиксированными требованиями.
Итеративно-инкрементальная модель
Метод заключается в разбиении большой задачи на ряд маленьких подзадач и их выполнении с постепенным соединением частей в целый продукт. Подход удобен, но требует понимания требований и целей проекта.
Модель большого взрыва
В основе метода — переход к написанию кода без предварительных этапов аналитики и проектирования. Здесь нет четкого планирования, формирования требований или постановки задач. Концепция подойдет для маленьких проектов.
Гибкая (Agile) модель
Agile-модель — это комплексный подход, который основан на 12 принципах и четырех идеях гибкого манифеста5. Суть состоит в следующем:
1. Проект делится на небольшие сборки (билды).
2. На одну сборку выделяется период (спринт).
3. Длительность спринта составляет от одной до четырех недель.
4. В конце каждого спринта клиент может оценить результат и внести правки.
5. Постепенно билды собираются в единый продукт.
Команды могут работать по методологиям экстремального программирования (XP), системе организации Kanban и иным.
Как выбрать оптимальную модель SDLC для вашего проекта
Модель SDLC описана как законченный самостоятельный процесс. Но на реальных проектах команды используют комбинированный (гибридный) подход.
При выборе учитывают:
- доступ к заказчику;
- доверие в команде;
- критичность продукта;
- вероятность изменения требований;
- размер команды;
- уровень экспертизы в организации.
На крупных корпоративных проектах, где требования заранее утверждены и формализованы, можно использовать спиральные или каскадные модели. Если критично время выхода на рынок (Time-to-Market), стоит обратить внимание на модели быстрой разработки, большого взрыва или гибкие методологии. Команды могут комбинировать подходы: например, Kanban для поддержки, а гибкий фреймворк Scrum — для разработки функциональности.
Типичные ошибки и проблемы на этапах жизненного цикла
На разных этапах жизненного цикла команда сталкивается с вызовами. Среди них:
- накопление технического долга;
- сложность управления сроками и ресурсами, риск отклонения от плана проекта;
- затраты времени на поиск информации по проекту, отсутствие системы переиспользования накопленного опыта сотрудников;
- трудозатраты на создание сложных конвейеров;
- увеличение времени ожидания для подготовки тестовых данных;
- сложность и длительность обучения новых сотрудников и др.
Возможны ситуации, когда на этапе планирования время и ресурсы оценены неправильно. В результате бюджет увеличивается, сроки затягиваются. На стадии реализации разработчики могут столкнуться с проблемами вроде сложности масштабирования, использования неподходящих технологий или отсутствия единого стиля написания кода.
Инструменты и практики работы с SDLC — один из способов ускорить производственный цикл и снизить количество ошибок.
Лучшие практики и инструменты для управления жизненным циклом ПО
Системы управления жизненным циклом программного обеспечения предоставляют инструменты для управления проектами, знаниями, тестовыми данными. Среди них решения:
- управления жизненным циклом приложений (ALM, Application Lifecycle Management);
- управления жизненным циклом продукта (PLM, Product Lifecycle Management).
Системы управления включают компоненты для решения следующих задач:
- сборки и развертывания программного обеспечения;
- контрактного тестирования программных интерфейсов;
- аналитики и мониторинга производственного процесса;
- управления проектными пространствами и доступами;
- версионирования исходного кода и конфигураций.
Появились платформы, позволяющие построить независимый сквозной производственный процесс (SDLC‑сервисы). Например, платформенное решение Platform V Works для эффективной ИТ-разработки полного цикла. Командам доступны возможности портфеля «Инструменты разработки» СберТеха. Среди них:
- управление разработкой — Projects и TaskTracker;
- проектирование, работа с требованиями — Wiki, Architect;
- управление кодом — SourceControl, CodeScanner;
- настройка Low-code конвейера — Orchestra R, Artifactory;
- тестирование программного обеспечения — Test Data Management, Overload, а также другие.
Platform V Works решает задачи вендорозамещения и импортонезависимости. Платформа предоставляет возможность выстроить сквозной производственный процесс. Возможны разные варианты поставки: облачная версия, гибридный подход или развертывание на инфраструктуре заказчика. Чтобы узнать больше, запишитесь на демо или оставьте заявку на platformv@sbertech.ru.
Пример применения SDLC на практике
Команды могут использовать полноценные платформы SDLC или отдельные инструменты.
Например, крупная российская ИТ-компания с помощью Platform V Works настроила сквозной процесс безопасной разработки ПО с высоким уровнем автоматизации CI/CD-конвейера и ускорила вывод новых продуктов на рынок.
Другая компания выбрала один из инструментов — Platform V Works::Orchestra R. Решение позволило автоматизировать и визуализировать DevOps-конвейеры команд в едином пространстве и обеспечить доступ к ним из различных внутренних систем.
Итоги и ключевые выводы
Разработка ПО — долгий и кропотливый процесс. Для его качественной реализации нужен системный подход. Методологии позволяют формализовать процесс и повысить производительность.
Инструменты Platform V Works адаптируются к разным методологиям и ускоряют производственный цикл. Команда СберТеха поможет подобрать решение под задачи и потребности на конкретном проекте. Оставьте заявку.
Источники:
1. ГОСТ Р ИСО/МЭК 12207-2010. Информационная технология. Системная и программная инженерия. Процессы жизненного цикла программных средств. — URL: https://docs.cntd.ru/document/1200082859
2. ISO/IEC/IEEE 12207:2017(en) Systems and software engineering — Software life cycle processes. — URL: https://www.iso.org/obp/ui/en/#iso:std:iso-iec-ieee:12207:ed-1:v1:en:en%20ISO/IEC/IEEE%2012207:2017
3. ГОСТ Р 59793— 2021. Информационные технологии. Комплекс стандартов на автоматизированные системы Автоматизированные системы. Стадии создания. — URL: https://clck.ru/3QUqeA
4. The Gold Standard for Responsible AI Governance & Superintelligence Development AI-IRB AI-SDLC GATES. — URL: https://opensdlc.org/
5. Agile-манифест разработки программного обеспечения / K. Beck, M. Beedle et al.— URL: https://agilemanifesto.org/iso/ru/manifesto.html
