Перейти к содержанию

Процесс разработки программного обеспечения

Software Development Life Cycle (SDLC), или жизненный цикл разработки программного обеспечения — это пошаговый процесс разработки, который начинается с идеи и заканчивается готовым продуктом.

Учитывать жизненный цикл нужно, чтобы хотя бы примерно начертить план работ и распределить ресурсы сотрудников, иначе разработка превратится в хаос.

Этапы жизненного цикла разработки ПО

Жизненный цикл подразумевает деление разработки на этапы. Каждый из них базируется на результатах предыдущего, поэтому командам проще работать слаженно, ведь процессы становятся предсказуемыми. Ниже разобрали основные этапы:

Планирование и анализ требований

У инициатора работ собирают бизнес-требования к ПО. Это важно, чтобы каждый в команде точно знал, что нужно сделать, и избежать недопонимания в будущем. Вот какие работы включает этот этап:

  • Описание задач, которые должен решать продукт;
  • Опрос стейкхолдеров;
  • Выявление аудитории, которая будет пользоваться решением;
  • Оценка ресурсов, которые нужны для реализации: количество сотрудников, время, бюджет;
  • Согласование критериев, по которым будут оценивать успешность решения.

Кто участвует

руководитель проекта, владелец продукта, заказчик, бизнес-аналитик, стейкхолдеры.

Определение требований

Когда цель работ стала примерно понятной, нужно ее детализировать и задокументировать. Тут тоже несколько подзадач:

  • Оценка рисков;
  • Выбор методологии работы;
  • Описание пользовательских сценариев;
  • Подготовка SRS — документации с информацией о функциональных и нефункциональных требованиях;
  • Подготовка ИСР — иерархической структуры работ. Процесс разделяют на более мелкие элементы, чтобы упростить управление и понять, в каком порядке нужно выполнять проект, и какие задачи можно делать параллельно друг другу.

Кто участвует

руководитель проекта, владелец продукта, команда разработки, архитектор.

Проектирование

Чтобы разработчики понимали, как система будет работать, и чтобы избежать ошибок на этапе разработки, создают архитектуру системы. Для этого занимаются верхнеуровневым и низкоуровневым проектированием.

При верхнеуровневом создают общую структуру системы, а низкоуровневое проектирование отличается большей детализацией. В таблице показано, какие работы включает каждый вид проектирования:

Верхнеуровневое проектирование Низкоуровневое проектирование
Основные компоненты системы — например, модули, сервисы или подсистемы Принцип работы отдельных компонентов системы
Принцип взаимодействия этих компонентов между собой Алгоритмы, структуры данных и логика работы внутри каждого модуля
Общая архитектура системы — например, клиент-серверная архитектура или микросервисы Детали реализации — например, какие классы, методы или функции будут созданы
Зависимость решения от других систем Взаимодействие с базами данных, API или другими внешними системами
Прототип интерфейса

Результатом этапа будет проектная документация с информацией, которая необходима для реализации решения.

Кто участвует

архитектор, UX/UI-дизайнер, QA-инженер, команда разработки.

Разработка

Разработчики пишут код, интегрируют компоненты и проводят модульное тестирование. Итогом становится рабочее решение в соответствии с техническими спецификациями.

Кто участвует

Разработчики, техлид, DevOps-инженер, QA-инженер.

Тестирование

Теперь нужно убедиться, что продукт соответствует требованиям, работает без сбоев и решает задачи пользователей. Для этого готовую программу проверяют на ошибки. Проверка включает интеграционное, системное и пользовательское тестирование. Если находят ошибки, их передают разработчикам на исправление.

Кто участвует

QA-инженеры, разработчики, автоматизаторы тестирования, потенциальные пользователи в рамках User Acceptance Testing, аналитики в случае авторской приемки.

Развертывание

Программу передают заказчику и выпускают в «боевую среду» — устанавливают на серверы или выкладывают в магазины приложений, чтобы аудитория могла им пользоваться. Дополнительно готовят пользовательскую документацию.

Кто участвует

DevOps-инженер, разработчики, руководитель проекта.

Поддержка и сопровождение

Работа с ПО продолжается — его обновляют под запросы пользователей, устраняют ошибки при появлении и оказывают техническую поддержку пользователям.

Кто участвует

техническая поддержка.

«Смерть» ПО

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

Полезные ресурсы

Источники