4.3. ИТЕРАТИВНЫЕ МОДЕЛИ ЖИЗНЕННОГО ЦИКЛА
209
4.3.3. Параллельное выполнение итераций
Любой программный проект, заслуживающий привлечения менеджера для
поддержки разработки, — процесс, развиваемый коллективно. Следователь-
но, уместно ставить вопрос, как должна отражаться в модели жизненного
цикла одновременность деятельности исполнителей коллектива. По вполне
понятным причинам, это является одним из мотивов разработки моделей.
В модели, следующей гантеровской схеме ‘фазы — функции’, это каче-
ство процесса разработки программного изделия отражено с помощью функ-
ционального измерения, показывающего, какие технологические функции
выполняются одновременно. В рамках итеративного подхода явно выделяет-
ся еще один вид технологического параллелизма: одновременная разработ-
ка нескольких итераций разными группами исполнителей (словосочетание
«разные группы» не надо понимать буквально — по существу, это группо-
вые роли, и конкретная группа исполнителей вполне может одновременно
отвечать за разработку сразу нескольких итераций).
Технологический параллелизм означает принципиальную осуществимость
одновременной разработки нескольких итераций.Однако это не означает раз-
решения механического их слияния,поскольку итерации зависят одна от дру-
гой.К примеру,невозможно наращивание еще не построенной системы клас-
сов, нельзя использовать функцию с неизвестными условиями ее корректно-
го выполнения. Говоря о совмещении работ, нужно всегда знать подобные и
другие виды зависимостей. Следует различать:
• область недопустимого совмещения, когда выполнение одной работы
непосредственно зависит от результатов другой работы;
• область возможного совмещения,когда зависимость ослаблена тем,что
ожидаемые результаты предшествующей работы хорошо описаны (на-
пример, построены и проверены модели этапов конструирования, хотя
программирование еще не выполнено);
• область рационального совмещения, когда зависимость работ фактиче-
ски тем или иным способом экранирована (предшествующая работа
выполнена, хотя, быть может, не до конца проверена, составлен и про-
веряется протокол взаимодействия работ и др.).
Одновременность выполнения разных итераций можно представить в виде
схем, показанных на рис. 4.11. На рис. 4.11а) приведена расшифровка этапов
итераций.По сравнению с общей моделью (см. рис.4.10),здесь представлено