Мы используем куки, чтобы пользоваться сайтом было удобно.
Хорошо
to the top
close form

Заполните форму в два простых шага ниже:

Ваши контактные данные:

Шаг 1
Поздравляем! У вас есть промокод!

Тип желаемой лицензии:

Шаг 2
Team license
Enterprise license
** Нажимая на кнопку, вы даете согласие на обработку
своих персональных данных. См. Политику конфиденциальности
close form
Запросите информацию о ценах
Новая лицензия
Продление лицензии
--Выберите валюту--
USD
EUR
RUB
* Нажимая на кнопку, вы даете согласие на обработку
своих персональных данных. См. Политику конфиденциальности

close form
Бесплатная лицензия PVS‑Studio для специалистов Microsoft MVP
* Нажимая на кнопку, вы даете согласие на обработку
своих персональных данных. См. Политику конфиденциальности

close form
Для получения лицензии для вашего открытого
проекта заполните, пожалуйста, эту форму
* Нажимая на кнопку, вы даете согласие на обработку
своих персональных данных. См. Политику конфиденциальности

close form
Мне интересно попробовать плагин на:
* Нажимая на кнопку, вы даете согласие на обработку
своих персональных данных. См. Политику конфиденциальности

close form
check circle
Ваше сообщение отправлено.

Мы ответим вам на


Если вы так и не получили ответ, пожалуйста, проверьте, отфильтровано ли письмо в одну из следующих стандартных папок:

  • Промоакции
  • Оповещения
  • Спам

Вебинар: Использование статических анализаторов кода при разработке безопасного ПО - 19.12

>
>
>
Software Development Lifecycle (SDLC)

Software Development Lifecycle (SDLC)

20 Мар 2024

Жизненный цикл разработки программного обеспечения (SDLC) — это эффективный процесс проектирования и разработки высококачественного ПО. Цель SDLC — минимизировать риски за счёт предварительного планирования, вследствие чего программное обеспечение будет соответствовать ожиданиям заказчика как во время производства, так и на других этапах.

Этапы SDLC

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

SDLC_TERM_ru/image1.png

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

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

Планирование и анализ

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

  • оценка необходимых ресурсов;
  • анализ стоимости, прибыльности, сроков реализации и рисков;
  • составляется график работ и т.д.

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

Дизайн/Проектирование

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

Результатом данного этапа являются два документа: высокоуровневый дизайн и низкоуровневый дизайн.

Высокоуровневый дизайн. Данный документ содержит:

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

Низкоуровневый дизайн. Данный документ содержит:

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

Разработка

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

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

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

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

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

Поддержка

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

А как же тестирования безопасности?

В стандартный SDLC тестирование безопасности не входит и выполняется отдельным процессом. Негативным следствием этого является то, что уязвимости обнаруживаются только после развёртывания программного обеспечения. Для устранения этого недостатка была разработана дополненная версия SDLC — SSDLC (Secure Software Development Lifecycle).

Модели SDLC

Этапы, описанные выше, не обязательно представляют собой строгую линейную последовательность. Они могут перекрываться, меняться местами, повторяться в зависимости от выбранной методологии SDLC. Ниже будут рассмотрены наиболее популярные модели SDLC.

Итеративная модель

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

Каскадная модель

Каскадная модель — жёсткий линейный подход, при котором каждый этап SDLC проходится только раз в определённом порядке. Например, чтобы перейти на этап тестирования, нужно обязательно завершить этап разработки. А перед тем, как перейти к разработке, проект должен быть полностью спроектирован в рамках предыдущего этапа и т.д. Этот подход предполагает, что вся информация о проекте может быть известна заранее, что нереально в мире, где во время разработки возникают неожиданности, и требования постоянно меняются. Однако каскадный подход имеет своё место в критически важных проектах, где нет места компромиссам в отношении требований или качества конечного продукта.

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

SDLC_TERM_ru/image2.png

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

Гибкая модель

SDLC_TERM_ru/image3.png

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

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

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

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

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


Комментарии (0)

Следующие комментарии next comments
close comment form