Опубликовано: 05.07.2024
Обновлено: 20.12.2025

SDLC Жизненный цикл разработки ПО

Технологии

Содержание

В разработке ИТ-продуктов участвуют заказчик и исполнитель. Заказчику нужен результат для достижения бизнес-целей. Разработчик заинтересован в технической реализации.

Создание программного обеспечения происходит в несколько этапов. У каждого из них есть четкая цель и результат. При этом, хотя этапы выполняются последовательно, к некоторым из них можно возвращаться для корректировок.

Что такое жизненный цикл разработки программного обеспечения

Жизненный цикл¹⁻² разработки ПО (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 подразумевает, что на каждом этапе параллельно выполняется тестирование. Концепция ориентирована на тестирование и проверку.

Этапы разработки - V-образная
Этапы разработки - V-образная

Прототипная модель

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

Этапы разработки - Прототипная модель
Этапы разработки - Прототипная модель

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

Спиральная

Относится к риск-ориентированным. Методология состоит из четырех основных процессов:

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 для эффективной ИТ-разработки полного цикла. Командам доступны возможности портфеля «Инструменты разработки» СберТеха. Среди них:

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