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

Автор: Пользователь скрыл имя, 19 Декабря 2012 в 05:45, курсовая работа

Краткое описание

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

Оглавление

1. Введение
2. Стандарты жизненного цикл
2.1 Стандарт ГОСТ 34.601-90
2.2 Стандарт ГОСТ Р ИСО/МЭК 12207 (ISO/IEC 12207)
3. Процессы жизненного цикла ПО
4. Стадии жизненного цикла ПО
5. Модели жизненного цикла ПО
5.1 Каскадная (Водопадная) модель
5.2 Итерационная модель
5.3 Спиральная модель
6. Список использованной литературы

Файлы: 1 файл

Курсовая БД.docx

— 303.63 Кб (Скачать)

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

Эволюционная модель подразумевает  не только сборку работающей (с точки зрения результатов тестирования) версии системы, но и её развертывание в реальных операционных условиях с анализом откликов пользователей для определения содержания и планирования следующей итерации. «Чистая» инкрементальная модель не предполагает развертывания промежуточных сборок (релизов) системы и все итерации проводятся по заранее определенному плану наращивания функциональности, а пользователи (заказчик) получает только результат финальной итерации как полную версию системы. С другой стороны, Скотт Амблер, например, определяет эволюционную модель как сочетание итеративного и инкрементального подходов. В свою очередь, Мартин Фаулер пишет: «Итеративную разработку называют поразному: инкрементальной, спиральной, эволюционной и постепенной. Разные люди вкладывают в эти термины разный смысл, но эти различия не имеют широкого признания и не так важны, как противостояние итеративного метода и метода водопада.» Брукс пишет, что, в идеале, поскольку на каждом шаге мы имеем работающую систему:

  • можно очень рано начать тестирование пользователями;
  • можно принять стратегию разработки в соответствии с бюджетом,

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

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

Рис. 3. Снижение неопределенности и инкрементальное расширение функциональности при итеративной организация жизненного цикла

Наиболее известным и  распространенным вариантом эволюционной модели является спиральная модель.

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

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

Спиральная модель (представлена на рис. 4) была впервые сформулирована Барри Боэмом (Barry Boehm) в 1988 году.

Рис. 4. Оригинальная спиральная модель жизненного цикла по Боэму.

 

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

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

 

«Раскручивание» проекта  начинается с анализа общей постановки

задачи на разработку ПО. Здесь на первой фазе определяются общие цели, устанавливаются предварительные ограничения, определяются возможные альтернативы подходов к решению задачи. Далее проводится оценка подходов, устанавливаются их риски. На шаге разработки создается концепция (видение) продукта и путей его создания. Следующий цикл начинается с планирования требований и деталей жизненного цикла продукта для оценки затрат. На фазе определения целей устанавливаются альтернативные варианты требований, связанные с аранжировкой требований по важности и стоимости их выполнения. На фазе оценки устанавливаются риски вариантов требований. На фазе разработки — спецификация требований (с указанием рисков и стоимости), готовится демо- версия ПО для анализа требований заказчиком. Следующий цикл — разработка проекта — начинается с планирования разработки. На фазе определения целей устанавливаются ограничения проекта (по срокам, объему финансирования, ресурсам), определяются альтернативы проектирования, связанные с альтернативами требований, применяемыми технологиями проектирования, привлечением субподрядчиков. На фазе оценки альтернатив устанавливаются риски вариантов, и делается выбор варианта для дальнейшей реализации. На фазе

разработки выполняется  проектирование и создается демо-версия, отражающая основные проектные решения.

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

Фаза разработки выполняется  по каскадной модели с выходом  — действующим вариантном (прототипом) продукта.

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

  • До начала разработки ПО есть несколько полных циклов анализа требований и проектирования.
  • Количество циклов модели (как в части анализа и проектирования, так и в части реализации) не ограничено и определяется сложностью и объемом задачи
  • В модели предполагаются возвраты на оставленные варианты при изменении стоимости рисков.

Преимущества  спиральной модели

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

Рассмотрим преимущества итерационного подхода более  подробно.

  • Итерационная разработка существенно упрощает внесение изменений в проект при изменении требований заказчика.
  • При использовании спиральной модели отдельные элементы ИС интегрируются в единое целое постепенно. При итерационном подходе интеграция производится фактически непрерывно. Поскольку интеграция начинается с меньшего количества элементов, то возникает гораздо меньше проблем при ее проведении (по некоторым оценкам, при использовании каскадной модели разработки интеграция занимает до 40% всех затрат в конце проекта).
  • Уменьшение уровня рисков. Данное преимущество является следствием предыдущего, так как риски обнаруживаются именно во время интеграции. Поэтому уровень рисков максимален в начале разработки проекта. По мере продвижения разработки ожидаемый уровень рисков снижается. Данное утверждение справедливо при любой модели разработки, однако при использовании спиральной модели снижение уровня рисков происходит с наибольшей скоростью. Это связано с тем, что при итерационном подходе интеграция выполняется уже на первой итерации и на начальных итерациях выявляются многие аспекты проекта, такие как пригодность используемых, инструментальных средств и программного обеспечения, квалификация разработчиков и т. п.
  • Итерационная разработка обеспечивает большую гибкость в управлении проектом, давая возможность внесения тактических изменений в разрабатываемое изделие. Например, можно сократить сроки разработки за счет снижения функциональности системы или использовать в качестве составных частей системы продукцию сторонних фирм вместо собственных разработок. Это может быть актуальным в условиях конкурентной борьбы, когда необходимо противостоять продвижению изделия, предлагаемого конкурентами.
  • Итерационный подход упрощает повторное использование компонентов (реализует компонентный подход к программированию). Это обусловлено тем, что гораздо проще выявить (идентифицировать) общие части проекта, когда они уже частично разработаны, чем пытаться выделить их в самом начале проекта. Анализ проекта после проведения нескольких начальных итераций позволяет выявить общие многократно используемые компоненты, которые на последующих итерациях будут совершенствоваться.
  • Спиральная модель позволяет получить более надежную и устойчивую систему. Это связано с тем, что по мере развития системы ошибки и слабые места обнаруживаются и исправляются на каждой итерации. Одновременно могут корректироваться критические параметры эффективности, что в случае каскадной модели доступно только перед внедрением системы.
  • Итерационный подход дает возможность совершенствовать процесс разработки — анализ, проводимый в конце каждой итерации, позволяет проводить оценку того, что должно быть изменено в организации разработки, и улучшить ее на следующей итерации.

Недостатки спиральной модели

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

                  6. Список использованной литературы

 

  • Братищенко В.В. Проектирование информационных систем. — Иркутск: Изд-во БГУЭП, 2004. — 84 с.
  • Вендров А.М. Проектирование программного обеспечения экономических информационных систем. — М.: Финансы и статистика, 2000.
  • Грекул В.И., Денищенко Г.Н., Коровкина Н.Л. Проектирование информационных систем. — М.: Интернет-университет информационных технологий - ИНТУИТ.ру, 2005.
  • Мишенин А.И. Теория экономических информационных систем. — М.: Финансы и статистика, 2000. — 240 с.
  • Орлик С., «Модели жизненного цикла»
  • http://www.coolreferat.com/%D0%96%D0%B8%D0%B7%D0%BD%D0%B5%D0%BD%D0%BD%D1%8B%D0%B9_%D1%86%D0%B8%D0%BA%D0%BB_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BE%D0%B1%D0%B5%D1%81%D0%BF%D0%B5%D1%87%D0%B5%D0%BD%D0%B8%D1%8F
  • http://www.excode.ru/art6057p1.html

 

 

 

 

 

 

 

 

 

 

 

 

 


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