Главная » UML » Особенности итеративного подхода

0

По сравнению с традиционным водопадным процессом, итеративный подход имеет следующие преимущества.

•       Последствия от реализации рисков смягчаются быстрее.

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

•       Выше уровень повторного использования.

•       Команда, работающая над проектом, может обучаться в процессе.

•       Высокое качество проекта.

Смягчение последствий от реализации риска

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

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

•       Интеграционные риски

•       Архитектурные риски

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

Интеграция в Rational Unified Process — это не совсем "большой взрыв" в конце, а скорее постепенная сборка элементов. Такой итеративный подход — это процесс практически непрерывной интеграции. То, что раньше составляло длительный этап (и занимало до 40% работ в конце проекта), теперь разбито на 6-9 меньших составляющих, в каждую из которых требуется объединить уже значительно меньшее число компонентов.

Адаптация к изменениям

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

Изменения требований

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

 

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

Тактические изменения

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

Технологические изменения

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

Обучение "по ходу дела"

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

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

Повышенная возможность повторного использования

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

 

Более высокое общее качество

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

Резюме

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

•       Итеративный   процесс   разбивает   цикл   разработки   на   последовательность
итераций. Каждая итерация подобна "мини-водопаду" и включает следующие
виды деятельности: управление требованиями, проектирование, реализацию и
оценку.

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

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

По теме:

  • Комментарии