Созданию программного продукта обычно рассматривается как «жизненный цикл разработки программного обеспечения» или (software development life cycle (SDLC), также известный как «жизненный цикл разработки приложений» или просто «процесс разработки программного обеспечения». Поскольку построение программного обеспечения по своей сути является сложным и требует от команды разработчиков много навыков, существует множество различных SDLC для решения проектов различного масштаба и сложности. [2]
Ключевые слова: жизненный цикл разработки программного обеспечения, SDLC, модель.
По сути, жизненный цикл разработки программного обеспечения — это дорожная карта для работы над цифровым решением. Другими словами, SDLC — это схема, предназначенная для команды по созданию, обслуживанию и исправлению цифровых продуктов. Этапы жизненного цикла разработки программного обеспечения зависят от размера проекта и его целей. Каждый шаг также предоставляет общую карту того, как он должен быть завершен. В большинстве случаев каждая команда разработчиков создает свой собственный цикл разработки программного обеспечения или принимает одну из моделей, которые мы рассмотрим далее. [4]
Хотя циклы SDLC предоставляют обзор задач для проекта, они не являются готовым к использованию руководством. SDLC не высечен на камне: существуют различные модели и примеры жизненного цикла разработки программного обеспечения. Последние зависят от сложности проекта, как и многие методологии жизненного цикла разработки программного обеспечения. Тем не менее, основная идея жизненного цикла разработки программного обеспечения остается — это последовательность задач, направленных на создание цифрового решения. [1]
Ключевой причиной принятия SDLC является контроль над процессом разработки. Рабочий план, управление конфликтами между участниками и управление бюджетом — это еще одно большое преимущество жизненного цикла разработки программного обеспечения.
Таким образом, жизненный цикл разработки программного обеспечения позволяет:
– Обладание всеобъемлющим контролем над процессом разработки программного обеспечения
– Повышение эффективности управления ресурсами и затрат
– Дает командам четкий план действий
– Улучшает сотрудничество между участниками
Важно помнить, что все преимущества жизненного цикла разработки программного обеспечения не будут работать для команд самостоятельно. Если менеджерам проекта не хватает опыта или некоторые участники отказываются следовать этому процессу, цикл распадается, что влияет на качество конечного продукта. [1]
Модели Жизненного Цикла Разработки Программного Обеспечения
Жизненный цикл можно представить в виде моделей. Существует множество различных моделей SDLC, которые помогают в различных типах проектов разработки программного обеспечения, даже в тех случаях, когда клиент не имеет четкого представления о том, что ему нужно. [3]
Каскадная модель
Каскадная модель — модель процесса разработки программного обеспечения, жизненный цикл которой выглядит как поток, последовательно проходящий фазы анализа требований, проектирования. реализации, тестирования, интеграции и поддержки. В каскадной моделиSDLC все шаги должны быть завершены до начала разработки. Одним из основных предварительных условий каскадной модели является получение одобрения на каждом этапе, прежде чем команда сможет перейти к следующему. Этот подход может быть эффективным в снижении рисков в жизненном цикле разработки программного обеспечения. Здесь каскадная модель использует спецификацию бизнес-требований (BRS), которая помогает командам оценивать каждый шаг. В то время как некоторые компании — разработчики программного обеспечения все еще предлагают эту модель сотрудничества, этот тип жизненного цикла разработки программного обеспечения она менее популярна, чем другие, более гибкие модели в нашем списке. [6]
V-Образная Модель
Данная модель имеет более приближенный к современным методам алгоритм, однако все еще имеет ряд недостатков. Является одной из основных практик экстремального программирования. V-образная модель похожа на каскадную модель и может рассматриваться как его продолжение. Поэтому методологической основой V-образной модели является гарантия выполнения задач на одном этапе перед переходом к следующему. Эта модель также делит процесс разработки на различные задачи. Еще одной особенностью V-образной модели SDLC является постоянное тестирование, что выделяет ее среди некоторых других моделей жизненного цикла разработки. [5]
Итеративная Модель
Итеративная модель имеет много циклов разработки программного обеспечения, которые сегментированы на более мелкие циклы. Кроме того, эта модель обеспечивает надежный старт для программного продукта с помощью опробования. Среди конкретных примеров моделей жизненного цикла разработки программного обеспечения здесь рациональный унифицированный процесс позволяет избежать ограничений некоторых других моделей жизненного цикла разработки программного обеспечения. Поскольку метод разработки динамических систем, используемый в этой модели, делит цикл на несколько более мелких, что позволяет осуществлять микроменеджмент, итеративная модель SDLC это один из самых надежных подходов к процессу разработки. [3]
Спиральная Модель
Спиральная модель является универсальной моделью жизненного цикла разработки программного обеспечения. Подобно итерационной модели, она подчеркивает значение меньших циклов в рамках больших циклов SDLC. Как же так? спиральная модель SDLC тесно объединяет все ключевые этапы процесса разработки. Эта модель жизненного цикла разработки программного обеспечения исключает сложности любого традиционного жизненного цикла разработки программного обеспечения. Жизненный цикл — на каждом витке спирали выполняется создание очередной версии продукта, уточняются требования проекта, определяется его качество и планируются работы следующего витка. Особое внимание уделяется начальным этапам разработки — анализу и проектированию, где реализуемость тех или иных технических решений проверяется и обосновывается посредством создания прототипов.
Модель Большого Взрыва
Модель Большого Взрыва не имеет никаких руководящих принципов вообще. Эта модель жизненного цикла разработки программного обеспечения была задумана для того, чтобы помочь ориентироваться в проектах, где клиент не знает, как будет выглядеть конечный программный продукт. Более конкретно, модель Большого Взрыва строится для проектов, если исходная информация настолько расплывчата, что сама модель не включает в себя конкретный процесс, выходящий за рамки ее концепций или какого-либо планирования: команда должна понять проект по ходу его реализации. Где бы его применить? Модель Большого Взрыва SDLC подходит для небольших усилий по разработке, небольших команд разработчиков, а также может быть пригоден для краткосрочных экспериментов. [2]
Гибкая Модель
Гибкая методология разработки — серия подходов к разработке программного обеспечения, ориентированных на использование интерактивной разработки, динамическое формирование требований и обеспечение их реализации в результате постоянного взаимодействия внутри самоорганизующихся рабочих групп, состоящих из специалистов различного профиля. Гибкие подходы к разработке гибкой модели помогают обеспечить оптимизированный процесс разработки программного обеспечения, позволяющий быстро вносить коррективы. Гибкая модель SDLC включает в себя подходы XP и Scrum, которые охватывают циклы SDLC с двухнедельными спринтами разработки. Команда показывает результаты клиенту после каждого спринта, так как клиент также оставляет комментарии о том, что было создано за две недели. [6]
Одна из самых популярных моделей жизненного цикла разработки программного обеспечения Agile нацелена на более частые релизы и видимые результаты. В Agile программный продукт появляется постепенно, и клиент дает обратную связь на каждом этапе пути. Модели также помогают собирать обратную связь и измерять различные аспекты процесса разработки [1].
Литература:
- Б. У. Боэм «Инженерное проектирование программного обеспечения». М.: Радио и связь. 2015.
- Ю. В. Иванов «Программы и их жизненные циклы». 2008.
- Гагарина Л. Г. «Основы технологии и разработки программных продуктов».
- Соммервилл И. «Инженерия программного обеспечения».
- Буч Г. Объектно-ориентированное проектирование с примерами применения. -- М.: Конкорд, 2010.
- Электронный ресурс: https://qaevolution.ru/