Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

3_Вимоги_1 / 09.10.12 / 2_Модели ЖЦ / Add / 1_Модели разработки программного обеспечения

.doc
Скачиваний:
142
Добавлен:
08.06.2015
Размер:
378.88 Кб
Скачать

Цикл разработки программного обеспечения

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

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

  1. Инженерный подход

  2. С учетом специфики задачи

  3. Современные технологии быстрой разработки

Теперь рассмотрим непосредственно существующие модели (подклассы) и оценим их преимущества и недостатки.

Давайте, более подробно рассмотрим подклассы моделей.

Модель кодирования и устранения ошибок

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

  • Шаг 1: постановка задачи

  • Шаг 2: создание программы

  • Шаг 3: тестирование

  • Шаг 4: анализ результата тестирования и возможный переход к шагу 1

Эта модель относится к первой группе и совсем не актуальна при профессиональной разработке программного обеспечения. По таким алгоритмам работали программисты 50-60 лет назад. Излишняя простота в данном случае не позволяет конкурировать с другими существующими моделями. Недостатки

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

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

Алгоритм каскадной модели

Преимущества:

  • Последовательное выполнение этапов проекта в строгом фиксированном порядке

  • Позволяет оценивать качество продукта на каждом этапе

Недостатки:

  • Отсутствие обратных связей между этапами

  • Не соответствует реальным условиям разработки программного продукта

  • Относится к первой группе моделей.

"Водоворот" или каскадная модель с промежуточным контролем

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

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

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

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

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

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

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

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

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

Модель на основе разработки прототипа

Данная модель основывается на разработки прототипов и прототипирования продукта и относится ко второй группе.

Прототипирование используется на ранних стадиях жизненного цикла программного обеспечения:

  • Прояснить не ясные требования (прототип UI)

  • Выбрать одно из ряда концептуальных решений (реализация сцинариев)

  • Проанализировать осуществимость проекта

Классификация протопипов:

  • Горизонтальные прототипы — моделирует исключительно UI не затрагивая логику обработки и базу данных.

  • Вертикальные прототипы — проверка архитектурных решений.

  • Одноразовые прототипы — для быстрой разработки.

  • Эволюционные прототипы — первое приближение эволюционной системы.

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

Данная модель прекрасно сочетает в себе постадийное прототипирование и проектирование. И из восходящей и нисходящей концепций в эту модель было взято все лучшее.

Преимущества модели:

  1. Результат достигается в кратчайшие сроки.

  2. Конкурентоспособность достаточно высокая.

  3. При изменении требований, не придется начинать все с "нуля".

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

Отдельного рассказа заслуживают модели экстремального программирования (ХР), SCRUM, инкриментальная модель (RUP). Это все модели, относятся к третьей группе, но для их анализ будет проведен в отдельной статье.

И в заключении

Несмотря на большой прогресс в области разработки программного обеспечения много проектов в наше время разрабатывается и будет разрабатываться по такой схеме: