Что такое жизненный цикл по
Перейти к содержимому

Что такое жизненный цикл по

  • автор:

Что такое жизненный цикл по

2.1. ЖИЗНЕННЫЙ ЦИКЛ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ

Значительное место среди информационных продуктов и услуг занимают компьютерные программные средства.

  • анализ требований,
  • проектирование,
  • кодирование (программирование),
  • тестирование и отладка,
  • эксплуатация и сопровождение.

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

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

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

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

Графическая модель жизненного цикла продукта или услуги, предложенная зарубежными специалистами в 1991 году, приведена на рис. 2.1.

Время

Упадок

Рис. 2.1. Графическая модель жизненного цикла продуктов и услуг.

Обычно, под термином “программный продукт” для компьютерных информационных технологий принято понимать необходимое им программное обеспечение (ПО).

Основной нормативный документ, регламентирующий ЖЦ ПО – международный стандарт ISO/IEC 12207 (ISO, International Organization of Standardization – Международная организация по стандартизации, IEC, International Electrotechnical Commission – Международная комиссия по электротехнике). Он определяет структуру ЖЦ, содержащую процессы, действия и задачи, выполняемые во время создания ПО.

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

Разработка ПО – это, как правило, анализ, проектирование и реализация (программирование). Она включает все работы по созданию ПО и его компонент в соответствии с заданными требованиями, в том числе оформление проектной и эксплуатационной документации, подготовку материалов, необходимых для проверки работоспособности и соответствующего качества программных продуктов, материалов, для организации обучения персонала и т.д.

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

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

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

Обеспечение качества проекта связано с проблемами верификации, проверки и тестирования ПО.

Верификация – это процесс определения насколько текущее состояние разработки, достигнутое на данном этапе, отвечает требованиям этого этапа.

  • планировании показателей качества ПС;
  • контроле качества на отдельных этапах разработки (техническое задание, технический проект, рабочий проект);
  • контроле качества в процессе производства ПС;
  • проверке эффективности модификации ПС в процессе сопровождения.

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

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

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

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

Управление конфигурацией позволяет организовать, систематически учитывать и контролировать внесение изменений в ПО на всех стадиях ЖЦ. Общие принципы и рекомендации конфигурационного учёта, планирования и управления конфигурациями ПО отражены в проекте стандарта ISO/IEC 12207.

Жизненный цикл информационных продуктов и услуг составляет основу жизненного цикла информационных технологий и, соответственно, информационных систем. Следовательно, всё сказанное выше относится и к информационным системам.

Одним из базовых понятий проектирования ИС является понятие жизненного цикла её программного обеспечения (ЖЦ ПО) – это непрерывный процесс, начинающийся с момента принятия решения о необходимости создания ПО и заканчивается в момент его полного изъятия из эксплуатации.

ИС входят в состав СУБД и являются специфическим инструментальным и прикладным (пользовательским) программным обеспечением.

Жизненный цикл ИС представляет собой модель её создания и использования. Модель отражает различные состояния ИС, начиная с момента возникновения необходимости в данной ИС и заканчивая моментом её полного выхода из употребления у всех пользователей.

Что такое SDLC?

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

Почему важен SDLC?

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

Ниже приведены некоторые преимущества SDLC.

  • Повышение наглядности процесса разработки для всех заинтересованных сторон
  • Эффективная оценка, планирование и составление графиков
  • Улучшенное управление рисками и оценка затрат
  • Систематическая поставка программного обеспечения и повышение удовлетворенности клиентов

Как работает SDLC?

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

Детали процесса SDLC различны для разных команд. Тем не менее ниже мы описываем некоторые общие этапы SDLC.

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

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

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

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

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

Внедрение

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

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

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

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

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

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

Обслуживание

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

Что такое модели SDLC?

Модель жизненного цикла разработки программного обеспечения (SDLC) концептуально представляет SDLC в организованном виде, чтобы помочь организациям внедрить его. Различные модели располагают фазы SDLC в разном хронологическом порядке для оптимизации цикла разработки. Ниже мы рассмотрим некоторые популярные модели SDLC.

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

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

Преимущества и недостатки

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

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

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

Преимущества и недостатки

Выявлять риски и управлять ими легко, поскольку требования могут меняться между итерациями. Однако повторяющиеся циклы могут привести к изменению объема работ и недооценке ресурсов.

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

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

Преимущества и недостатки

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

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

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

Преимущества и недостатки

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

Как в SDLC решается проблема безопасности?

В традиционных методах разработки программного обеспечения тестирование безопасности было отдельным процессом от жизненного цикла разработки программного обеспечения (SDLC). Команда безопасности обнаружила недостатки безопасности только после сборки программного обеспечения. В результате появилось большое количество ошибок, которые оставались скрытыми, а также увеличились риски безопасности.

Сегодня большинство команд признают, что безопасность является неотъемлемой частью жизненного цикла разработки программного обеспечения. Вы можете решить проблему безопасности в SDLC, следуя рекомендациям DevSecOps и проводя оценку безопасности в течение всего процесса SDLC.

DevSecOps

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

Каковы сходства и различия между SDLC и другими методологиями управления жизненным циклом?

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

Жизненный цикл разработки систем

Аббревиатура SDLC иногда может относиться к жизненному циклу разработки систем, процессу планирования и создания ИТ-системы. Система обычно состоит из нескольких аппаратных и программных компонентов, которые работают вместе для выполнения сложных функций.

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

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

Управление жизненным циклом приложения

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

Сравнение SDLC и ALM

SDLC подробно описывает этап разработки приложений. Это часть ALM. ALM охватывает весь жизненный цикл приложения и выходит за рамки SDLC. В ALM может входить несколько SDLC в течение жизненного цикла приложения.

Как AWS может помочь вам удовлетворить ваши требования к SDLC?

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

  • Инструмент для разработчиков Amazon CodeGuru предлагает интеллектуальные рекомендации для улучшения качества кода и определения самых дорогостоящих строк в приложении. Интегрируйте CodeGuru в существующий рабочий процесс разработки программного обеспечения для автоматизации проверки кода и постоянного мониторинга производительности приложения в производственной среде.
  • AWS CodePipeline – это полностью управляемый сервис, который помогает автоматизировать работу циклов выпуска для быстрого и надежного обновления приложений и инфраструктуры.
  • AWS CodeBuild – это полностью управляемый сервис, который компилирует исходный код, выполняет тестирование и формирует готовые к развертыванию пакеты программного обеспечения. CodeBuild непрерывно масштабируется и способен одновременно обрабатывать несколько сборок, поэтому сборки не будут ждать в очереди.
  • Эластичный контейнерный сервис Amazon (Amazon ECS) – это полностью управляемый сервис, который обеспечит удобное развертывание, администрирование и масштабирование упакованных в контейнер приложений.

Кроме того, Управляемая Amazon Grafana – это полностью управляемый сервис для программного обеспечения с открытым исходным кодом Grafana, разработанного совместно с Grafana Labs. Grafana – это популярная аналитическая платформа с открытым исходным кодом, которая позволяет опрашивать и визуализировать данные, отправлять предупреждения и разбираться в метриках независимо от того, где они хранятся.

Если вы воспользуетесь обновлением до Grafana Enterprise (необязательно), то получите доступ к большему числу сторонних модулей, которые предоставляют возможности мониторинга жизненного цикла разработки программного обеспечения, таких как ServiceNow и Atlassian Jira. Используя эти плагины, вы можете получить детали инцидента и результаты SDLC в Управляемой Amazon Grafana. Затем вы можете отслеживать статусы инцидентов, запросы на включение и фиксацию кода, а также контролировать выпуски программного обеспечения вместе с данными о состоянии и производительности приложений – и все это в одном месте.

Начните работу с SDLC на AWS, создав бесплатный аккаунт уже сегодня.

Модели жизненного цикла программного обеспечения

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

Собственно, что же такое жизненный цикл программного обеспечения — ряд событий, происходящих с системой в процессе ее создания и дальнейшего использования. Говоря другими словами, это время от начального момента создания какого либо программного продукта, до конца его разработки и внедрения. Жизненный цикл программного обеспечения можно представить в виде моделей.

  1. Инженерный подход
  2. С учетом специфики задачи
  3. Современные технологии быстрой разработки
Модель кодирования и устранения ошибок
  1. Постановка задачи
  2. Выполнение
  3. Проверка результата
  4. При необходимости переход к первому пункту
Каскадная модель жизненного цикла программного обеспечения (водопад)

Алгоритм данного метода, который я привожу на схеме, имеет ряд преимуществ перед алгоритмом предыдущей модели, но также имеет и ряд весомых недостатков.

  • Последовательное выполнение этапов проекта в строгом фиксированном порядке
  • Позволяет оценивать качество продукта на каждом этапе
  • Отсутствие обратных связей между этапами
  • Не соответствует реальным условиям разработки программного продукта
Каскадная модель с промежуточным контролем (водоворот)

Данная модель является почти эквивалентной по алгоритму предыдущей модели, однако при этом имеет обратные связи с каждым этапом жизненного цикла, при этом порождает очень весомый недостаток: 10-ти кратное увеличение затрат на разработку. Относится к первой группе моделей.

V модель (разработка через тестирование)

Данная модель имеет более приближенный к современным методам алгоритм, однако все еще имеет ряд недостатков. Является одной из основных практик экстремального программирования.

image

Модель на основе разработки прототипа
  1. Прояснить не ясные требования (прототип UI)
  2. Выбрать одно из ряда концептуальных решений (реализация сцинариев)
  3. Проанализировать осуществимость проекта
  1. Горизонтальные и вертикальные
  2. Одноразовые и эволюционные
  3. бумажные и раскадровки

Модель принадлежит второй группе.

Спиральная модель жизненного цикла программного обеспечения

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

  • Быстрое получение результата
  • Повышение конкурентоспособности
  • Изменяющиеся требования — не проблема
  • Отсутствие регламентации стадий

Большое спасибо за внимание!

  • программирование
  • программное обеспечение
  • модели
  • алгоритмы

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

Жизненный цикл программного обеспечения (Software Life Cycle Model) — это период времени, который начинается с момента принятия решения о создании программного продукта и заканчивается в момент его полного изъятия из эксплуатации. Этот цикл — процесс построения и развития ПО.

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

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

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

Каскадная модель (англ. waterfall model ) — модель процесса разработки программного обеспечения, жизненный цикл программного обеспечения которой выглядит как поток, последовательно проходящий фазы анализа требований, проектирования. реализации, тестирования, интеграции и поддержки.

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

Жизненный цикл традиционно разделяют на следующие основные этапы :

  1. Анализ требований,
  2. Проектирование,
  3. Кодирование (программирование),
  4. Тестирование и отладка,
  5. Эксплуатация и сопровождение.
  • стабильность требований в течение всего жизненного цикла разработки;
  • на каждой стадии формируется законченный набор проектной документации, отвечающий критериям полноты и согласованности;
  • определенность и понятность шагов модели и простота её применения;
  • выполняемые в логической последовательности этапы работ позволяют планировать сроки завершения всех работ и соответствующие ресурсы (денежные. материальные и людские).

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

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

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

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

Область применения Каскадной модели

Ограничение области применения каскадной модели определяется её недостатками. Её использование наиболее эффективно в следующих случаях:

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

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

(поэтапная модель с промежуточным контролем)

Инкрементная модель ( англ . increment — увеличение, приращение) подразумевает разработку программного обеспечения с линейной последовательностью стадий, но в несколько инкрементов (версий), т.е. с запланированным улучшением продукта за все время пока Жизненный цикл разработки ПО не подойдет к окончанию.

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

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

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

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

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

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

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

Жизненный цикл програмного обеспечения для Спиральной модели

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

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

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

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

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

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

Область применения спиральной модели

Применение спиральной модели целесообразно в следующих случаях:

  • при разработке проектов, использующих новые технологии;
  • при разработке новой серии продуктов или систем;
  • при разработке проектов с ожидаемыми существенными изменениями или дополнениями требований;
  • для выполнения долгосрочных проектов;
  • при разработке проектов, требующих демонстрации качества и версий системы или продукта через короткий период времени;
  • при разработке проектов. для которых необходим подсчет затрат, связанных с оценкой и разрешением рисков.
Все о тестировании и качестве ПО
  • Тестирование чисел
  • Критичность и приоритет дефектов
  • Тестирование-QC-QA разбираемся в вопросе
  • Модель качества программного обеспечения
  • Техники тест-дизайна

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *