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

Рубрика:

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

При подобном подходе в каждой итерации повторяется цикл, состоящий из четырех этапов: планирования, реализации, тестирования, анализа (англ. plan-do-check-act cycle). Преимущества итеративного подхода разработки состоят в следующих свойствах процесса разработки:

  1. Влияние глобальных рисков на ранних этапах проекта сведено к минимуму, что позволяет значительно снизить затраты на их устранение.

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

  3. На наиболее важные и критичные детали проекта делается особый акцент.

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

  5. Существование конфликтов между требованиями и моделью реализации проекта обнаруживается на начальном этапе;

  6. Обеспечивается равномерная загруженность всех участников проекта;

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

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

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

Временной период одной итерации по модели RUP составляет от 2 недель до 1,5 месяца. За это время команда разработчиков создает промежуточную версию продукта, в соответствии с поставленными в начале итерации целями. Применение методов итеративной разработки в методологии RUP позволяет с легкостью реагировать на изменение требований, устранять обнаруженные риски на начальном этапе проекта, повысить эффективность контроля качества.

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

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

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

На фазе построения (Construction) происходит непосредственная реализация требуемого функционала продукта. Построение завершается выпуском первого релиза системы.

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

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

При разработке программного обеспечения по данной методологии большое значение имеет четкое определение процесса. Для этого применяются различные стандарты моделирования процессов, например Unified Modeling Language (UML). 

 

Другие статьи по методам разработки программного обеспечения: