Автор: Пользователь скрыл имя, 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. Список использованной литературы
С точки зрения структуры жизненного цикла такую модель называют итеративной (iterative). С точки зрения развития продукта – инкрементальной (incremental). Опыт индустрии показывает, что невозможно рассматривать, каждый из этих взглядов изолировано. Чаще всего такую смешанную эволюционную модель азывают просто итеративной (говоря о процессе) и/или инкрементальной (говоря о наращивании функциональности продукта).
Эволюционная модель подразумевает не только сборку работающей (с точки зрения результатов тестирования) версии системы, но и её развертывание в реальных операционных условиях с анализом откликов пользователей для определения содержания и планирования следующей итерации. «Чистая» инкрементальная модель не предполагает развертывания промежуточных сборок (релизов) системы и все итерации проводятся по заранее определенному плану наращивания функциональности, а пользователи (заказчик) получает только результат финальной итерации как полную версию системы. С другой стороны, Скотт Амблер, например, определяет эволюционную модель как сочетание итеративного и инкрементального подходов. В свою очередь, Мартин Фаулер пишет: «Итеративную разработку называют поразному: инкрементальной, спиральной, эволюционной и постепенной. Разные люди вкладывают в эти термины разный смысл, но эти различия не имеют широкого признания и не так важны, как противостояние итеративного метода и метода водопада.» Брукс пишет, что, в идеале, поскольку на каждом шаге мы имеем работающую систему:
полностью защищающую от перерасхода времени или средств (в частности, за счет сокращения второстепенной функциональности). Таким образом, Значимость эволюционного подхода на основе организации итераций особо проявляется в снижении неопределенности с завершением каждой итерации. В свою очередь, снижение неопределенности позволяет уменьшить риски. Рис. 3 иллюстрирует некоторые идеи эволюционного подхода, предполагая, что итеративному разбиению может быть подвержен не только жизненный цикл в целом, включающий перекрывающиеся фазы (формирование требований, проектирование,
конструирование и т. п.), но и каждая фаза может, в свою очередь, разбиваться на уточняющие итерации, связанные, например, с детализацией структуры декомпозиции проекта — например, архитектуры модулей системы.
Рис. 3. Снижение неопределенности и инкрементальное расширение функциональности при итеративной организация жизненного цикла
Наиболее известным и распространенным вариантом эволюционной модели является спиральная модель.
5.3Спиральная модель
Особенности спиральной модели
Спиральная модель (представлена на рис. 4) была впервые сформулирована Барри Боэмом (Barry Boehm) в 1988 году.
Рис. 4. Оригинальная спиральная модель жизненного цикла по Боэму.
Схема работы спиральной модели выглядит следующим образом. Разработка вариантов продукта представляется как набор циклов раскручивающейся спирали. Каждому циклу спирали соответствует такое же количество стадий, как и в модели каскадного процесса. При этом, начальные стадии, связанные с анализом и планированием представлены более подробно с добавлением новых элементов. В каждом цикле выделяются четыре базовые фазы:
«Раскручивание» проекта начинается с анализа общей постановки
задачи на разработку ПО. Здесь на первой фазе определяются общие цели, устанавливаются предварительные ограничения, определяются возможные альтернативы подходов к решению задачи. Далее проводится оценка подходов, устанавливаются их риски. На шаге разработки создается концепция (видение) продукта и путей его создания. Следующий цикл начинается с планирования требований и деталей жизненного цикла продукта для оценки затрат. На фазе определения целей устанавливаются альтернативные варианты требований, связанные с аранжировкой требований по важности и стоимости их выполнения. На фазе оценки устанавливаются риски вариантов требований. На фазе разработки — спецификация требований (с указанием рисков и стоимости), готовится демо- версия ПО для анализа требований заказчиком. Следующий цикл — разработка проекта — начинается с планирования разработки. На фазе определения целей устанавливаются ограничения проекта (по срокам, объему финансирования, ресурсам), определяются альтернативы проектирования, связанные с альтернативами требований, применяемыми технологиями проектирования, привлечением субподрядчиков. На фазе оценки альтернатив устанавливаются риски вариантов, и делается выбор варианта для дальнейшей реализации. На фазе
разработки выполняется проектирование и создается демо-версия, отражающая основные проектные решения.
Следующий цикл — реализация ПО — также начинается с планирования. Альтернативными вариантами реализации могут быть применяемые технологии реализации, привлекаемые ресурсы. Оценка альтернатив и связанных с ними рисков на этом цикле определяется степенью «отработанности» технологий и «качеством» имеющихся ресурсов.
Фаза разработки выполняется по каскадной модели с выходом — действующим вариантном (прототипом) продукта.
Отметим некоторые особенности спиральной модели:
Преимущества спиральной модели
Спиральный подход к разработке программного обеспечения позволяет преодолеть большинство недостатков каскадной модели и, кроме того, обеспечивает ряд дополнительных возможностей, делая процесс разработки более гибким.
Рассмотрим преимущества итерационного подхода более подробно.
Недостатки спиральной модели
Основная проблема спирального цикла — определение момента перехода на следующий этап: Для ее решения необходимо ввести временные ограничения на каждый из этапов жизненного цикла; Иначе процесс разработки может превратиться в бесконечное совершенствование уже сделанного. При итерационном подходе полезно следовать принципу «лучшее — враг хорошего». Поэтому завершение итерации должно производиться строго в соответствий с планом, даже если не вся запланированная работа закончена. Планирование работ обычно проводится на основе статистических данных, полученных в предыдущих проектах, и личного опыта разработчиков.
6. Список использованной литературы