Вопрос 3. Инкрементальная разработка
Идея, лежащая в основе инкрементной разработки, состоит в том, что программную систему следует разрабатывать по принципу приращений, так, чтобы разработчик мог использовать данные, полученные при разработке более ранних версий (релизов) ПО. Новые данные получаются как в ходе разработки ПО, так и в ходе его использования, где это возможно. Ключевые этапы этого процесса - простая реализация подмножества требований к программе и совершенствование модели в серии последовательных релизов до тех пор, пока не будет реализовано ПО во всей полноте. В ходе каждой итерации организация модели изменяется, и к ней добавляются новые функциональные возможности.
Для организации инкрементной разработки обычно выбирается характерный временной интервал, например неделя. Затем в течение этого интервала происходит обновление проекта: добавляется новая документация как текстовая, так и графическая (например, новые диаграммы на UML), расширяется набор тестов, добавляются новые программные коды и т. д. Теоретически шаги разработки (increments) могут выполняться и параллельно, но такой процесс очень сложно скоординировать. Инкрементная разработка проходит лучше всего, если следующая итерация n+1 начинается после того, как обновление всех артефактов в итерации n закончено, и существенно хуже, если время, требуемое на обновление артефактов, значительно превышает выбранный интервал.
В результате каждой итерации получается работающее, но не полнофункциональное ПО, которое еще не является программным продуктом и не подлежит распространению. Результат каждой итерации в общем случае нельзя рассматривать и как прототип ПО. Точнее следует считать, что в результате каждой итерации создается версия некоторой части ПО. Необходимо заметить, хотя как правило на каждой итерации определяются и реализуются новые требования, некоторые итерации могут быть целиком посвящены усовершенствованию существующей программы, например с целью повышения ее производительности.
Вопрос 4.
Rational Unified Process (RUP) — методология разработки программного обеспечения, созданная компанией Rational Software
RUP использует итеративную модель разработки. В конце каждой итерации (в идеале продолжающейся от 2 до 6 недель) проектная команда должна достичь запланированных на данную итерацию целей, создать или доработать проектные артефакты и получить промежуточную, но функциональную версию конечного продукта. Итеративная разработка позволяет быстро реагировать на меняющиеся требования, обнаруживать и устранять риски на ранних стадиях проекта, а также эффективно контролировать качество создаваемого продукта.
Полный жизненный цикл разработки продукта состоит из четырех фаз, каждая из которых включает в себя одну или несколько итераций:
1. Начало (Inception)
В фазе «Начало»:
Формируются видение и границы проекта.
Создается экономическое обоснование (business case).
Определяются основные требования, ограничения и ключевая функциональность продукта.
Создается базовая версия модели прецедентов.
Оцениваются риски.
При завершении начальной фазы оценивается достижение вехи целей жизненного цикла (англ. Lifecycle Objective Milestone), которое предполагает соглашение заинтересованных сторон о продолжении проекта.