Жизненный Цикл Разработки ПО (SDLC)

21 июня, 2021

Жизненный цикл разработки ПО (System/Software Development Life Cycle, SDLC) — процесс, состоящий из конкретных этапов, который начинается в момент принятия решения о необходимости создания ПО и заканчивается в момент прекращения поддержки ПО разработчиками.


Применение SDLC позволяет:

  1. Визуализировать сложный процесс разработки
  2. Управлять проектом
  3. Предсказывать и планировать доставку рабочих продуктов в ходе всего процесса разработки
  4. Управлять рисками выхода за рамки бюджета / превышения срока реализации
  5. Быстро определять, на каком этапе находится разработка в данный момент

В статье рассмотрим основные этапы жизненного цикла разработки ПО (SDLC) и их предназначение.


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

Жизненный цикл ПО (SDLC)
SDLC — Жизненный Цикл Разработки ПО

Всего выделяют 7 основных этапов разработки [1]:

  1. Идея
  2. Определение требований
  3. Дизайн (архитектура) системы
  4. Разработка
  5. Тестирование
  6. Развертывание
  7. Поддержка

Этап закрытия представлен на изображении, но он не является обязательным и зависит от проекта.

Этап 1: Идея

Идея - первый этап SDLC
Идея / Задумка — первый этап SDLC

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

Этот процесс может быть формальным (например, brainstorming в компании) или не формальным (например, за барной стойкой с друзьями).

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

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

Разработка требований - самый важный этап SDLC
Определение требований к системе — самый важный этап SDLC

На этом этапе “идея” принимает более осмысленный и конкретный вид.

Для определения начальных требований к продукту привлекаются эксперты из разных областей: заказчики, клиенты, специалисты разных отделов (продаж, разработки, аналитики, тестирования и т.п.), эксперты по схожим продуктам.

Бизнес-аналитики (BA) прорабатывают полученную информацию, детализируют ее и преобразовывают в технические требования к системе. Эти требования называются Software Requirement Specification (SRS).

Кроме SRS на этом этапе:

  1. Определяются требования к качеству (SQA, Software Quality Attributes)
  2. Проводится анализ рисков (RA, Risk Analysis)
  3. Создаются планы валидации и верификации (V&V Plans, Test Plans)
  4. Определяются критерии приемки ПО (AC, Acceptance Criteria)

Этап 3: Дизайн (архитектура) системы

Дизайн - этап SDLC
Дизайн и архитектура системы в SDLC

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

В итоге определяется спецификация по дизайну (Design Document Specification, DDS) с описанием что и как нужно делать с технической точки зрения. 

DDS может состоять их двух частей — высокоуровневый дизайн (High-Level Design, HLD) и низкоуровневый дизайн (Low-Level Design, LLD).

Этап 4: Разработка

Разработка - этап SDLC
Этап разработки в SDLC

Разработчики получают требования (SRS), спецификацию по дизайну (DDS) и создают требуемое ПО. 

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

Этап 5: Тестирование

Тестирование - этап SDLC
Этап тестирования в SDLC

Тестировщики, основываясь на требованиях (SQA, SRS, DDS) и готовом продукте производят проверку качества ПО (Quality Control).

Если находятся отклонения от требований / ошибки — они оформляются в виде отчетов о дефектах, исправляются и перепроверяются. 

Процесс продолжается до тех пор, пока качество продукта не будет доведено до приемлемого уровня.

Этап 6: Развертывание

Развертывание и запуск - этап SDLC
Этап развертывания и запуска системы в SDLC

После успешного тестирования готовый продукт передается заказчику. 

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

Этап 7: Поддержка

Этап Поддержки в SDLC
Этап поддержки и работы системы в SDLC

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

Поддержку можно представить как повторяющуюся цепочку шагов “Определение новых требований” -> “Разработка” -> “Тестирование” -> “Развертывание”.

Эта часть жизненного цикла является самым длительным и важным этапом разработки ПО.

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

Именно на этом этапе умирает большинство стартапов.

Дополнительный этап: Закрытие

Закрытие - этап SDLC
Этап закрытия и остановки системы в SDLC

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

Как пример, можно вспомнить браузер Internet Explorer (был замен на Edge) или Windows XP (заменена на Windows 7).

Длительность разработки ПО

Для простых проектов разработка длится несколько месяцев (например, не “взлетевшие” стартапы, небольшие сайты, и т.п.).

Для сложных — более 15 лет (например, ПО для космических аппаратов).

Но, для большинства проектов, активная разработка продолжается на протяжении 6-8 лет. [2]

Учитывайте это, когда устраиваетесь на работу 🙂

Резюме

В статье мы разобрались, что такое жизненный цикл разработки ПО (SDLC), рассмотрели его этапы и их особенности. 

Мы поняли, что создание программного обеспечения — это не только написание кода. В этот процесс входит много подготовительной (анализ, создание требований) и дополнительной работы (тестирования, разворачивание), а самым важным этапом является поддержка.


Далее, можем рассмотреть методологии разработки ПО которые реализуют этапы жизненного цикла ПО.

FAQ

Что такое SDLC?

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

Какие основные этапы SDLC?

Основными этапами SDLC являются:
1. Идея
2. Определение требований
3. Дизайн (архитектура) системы
4. Разработка
5. Тестирование
6. Развертывание
7. Поддержка (самый важный этап)

🔥 Присоединяйся к 4,014
тестировщикам в Телеграм!