
- •Оглавление
- •Унифицированный процесс: управляемый вариантами использования, архитектурно- ориентированный, итеративный и инкрементный
- •Введение
- •Унифицированный процесс в двух словах
- •Унифицированный процесс управляется вариантами использования
- •Унифицированный процесс ориентирован на архитектуру
- •Унифицированный процесс является интеративным и инкрементным
- •Жизненный цикл Унифицированного процесса
- •Продукт
- •Разделение цикла на фазы
- •Интегрированный процесс
- •Процесс, направляемый вариантами использования
- •Введение в разработку управляемую вариантами использования
- •Необходимость вариантов использования
- •Определение вариантов использования
- •Анализ, проектирование и разработка при реализации варианта использования
- •Создание по вариантам использования аналитической модели
- •Тестирование вариантов использования
- •Архитектурно-центрированный процесс
- •Введение в архитектуру
- •Необходимость архитектуры
- •Варианты использования и архитектура
- •Описание архитектуры
- •Интеративный и инкрементный процесс
- •Введение в итеративность и инкрементность
- •Необходимость использования итеративной и инкрементной разработки
- •Итеративный подход управляемый рисками
- •Обобщенная итерация
- •Заключение
- •Список использованной литературы
-
Унифицированный процесс является интеративным и инкрементным
Разработка коммерческих программных продуктов — это серьезное предприятие, которое может продолжаться от нескольких месяцев до года и более. Практично было бы разделить работу на небольшие куски или мини-проекты. Каждый мини-проект является итерацией, результатом которой будет приращение. Итерации относятся к шагам рабочих процессов, а приращение — к выполнению проекта. Для максимальной эффективности итерации должны быть управляемыми, то есть они должны выбираться и выполняться по плану. Поэтому их можно считать мини-проектами.
Разработчики выбирают задачи, которые должны быть решены в ходе итерации, под воздействием двух факторов. Во-первых, в ходе итерации следует работать с группой вариантов использования, которая повышает применимость продукта в ходе дальнейшей разработки. Во-вторых, в ходе итерации следует заниматься наиболее серьезными рисками. Последовательные итерации используют артефакты разработки в том виде, в котором они остались при окончании предыдущей итерации. Это мини-проекты, поскольку для выбранных вариантов использования проводится последовательная разработка — анализ, проектирование, реализация и тестирование, и в результате варианты использования, которые разрабатывались в ходе итерации, представляются в виде исполняемого кода. Разумеется, приращение не обязательно аддитивно. Разработчики могут заменять предварительный дизайн более детальным или зрелым, особенно на ранних фазах жизненного цикла. В течение более поздних фаз приращение обычно аддитивно.
На каждой итерации разработчики определяют и описывают уместные варианты использования, создают проект, использующий выбранную архитектуру в качестве направляющей, реализуют проект в компоненты и проверяют соответствие компонентов вариантам использования. Если итерация достигла своей цели — а так обычно и бывает — процесс разработки переходит на следующую итерацию. Если итерация не выполнила своей задачи, разработчики должны пересмотреть свои решения и попробовать другой подход.
Для получения максимальной экономии команда, работающая над проектом, должна выбирать только те итерации, которые требуются для выполнения цели проекта. Для этого следует расположить итерации в логической последовательности. Успешный проект будет выполняться в соответствии с правильным курсом, изначально запланированным разработчиками, лишь с небольшими отклонениями. Разумеется, до определенного предела, так, незамеченные ранее проблемы приведут к добавлению итераций или изменению их последовательности, и процесс разработки потребует больших усилий и времени. Минимизация незамеченных проблем является одной из целей снижения рисков.
Управляемый итеративный процесс имеет множество преимуществ:
-
Управляемая итерация ограничивает финансовые риски затратами на одно приращение. Если разработчикам нужно повторить итерацию, организация теряет только усилия, затраченные на одну итерацию, а не стоимость всего продукта.
-
Управляемая итерация снижает риск непоставки продукта на рынок в запланированные сроки. При раннем обнаружении соответствующего риска время, которое тратится на его нейтрализацию, вносится в план на ранних стадиях, когда сотрудники менее загружены, чем в конце планового периода. При традиционном подходе, когда серьезные проблемы впервые проявляются на этапе тестирования системы, время, требуемое для их устранения, обычно превышает время, оставшееся по плану для завершения всех работ, что почти всегда приводит к задержкам поставок.
-
Управляемая итерация ускоряет темпы процесса разработки в целом, поскольку для более эффективной работы разработчиков и быстрого получения ими хороших результатов короткий и четкий план предпочтительнее длинного и вечно сдвигающегося.
-
Управляемая итерация признает часто отвергаемый факт — что желания пользователей и связанные с ними требования не могут быть определены в начале разработки. Они обычно уточняются в последовательных итерациях. Такой образ действий облегчает адаптацию к изменениям требований.
Эти концепции — управляемая вариантами использования, архитектурно-ориентированная и итеративная и инкрементная разработка — одинаково важны. Архитектура предоставляет нам структуру, направляющую нашу работу в итерациях, в каждой из которых варианты использования определяют цели и направляют нашу работу. Удаление одной из этих трех ключевых идей сильно уменьшит ценность Унифицированного процесса. Это как треножник. Без одной ножки треножник сразу же опрокинется.
Теперь, когда мы познакомились с основными ключевыми концепциями, настало время рассмотреть весь процесс, его жизненный цикл, артефакты, рабочие процессы, фазы и итерации.