Змеев О.А. Фаза проектирования. Часть 1

advertisement
«Введение в Унифицированный
процесс разработки ПО».
Лекция № 10.
Тщательное планирование – ключ
к безопасному и быстрому путешествию.
Одиссей.
Фаза Проектирование (Elaboration ).
Девиз фазы: Необходимо разобраться, а как мы это будем
разрабатывать?
Мы тут!
Начало
Проектирование
Реализация
Тестирование
Контрольная точка.
Архитектуры ЖЦ.
Во-первых, раз мы начали II фазу – значит мы полностью
закончили I. Следовательно:
 У нас есть полный набор результирующих артефактов первой
фазы, проработанных в необходимом объеме для данного
проекта.
 У нас есть план, как минимум на первую итерацию этой фазы,
учитывающий наши предположения.
 У нас есть цели, которые мы должны реализовать в ходе работ
на второй фазе.
Фаза Проектирование (Elaboration ).
Девиз фазы: Необходимо разобраться, а как мы это будем
разрабатывать?
Тоньше клиент, толще сервер
Клиент А
Приложение
Объектно-реляционная
служба
Клиент В
Приложение
Клиент С
Браузер WWW
Объектно-реляционная
служба
Объектно-реляционное
ядро
Web-сервер
Сервер бизнес-объектов
Сервер(ы) реляционной или
объектной базы данных
HTML
CGI
HTML
ISAPI
Java
Объектно-реляционный
ORB
Объектно-реляционная
служба
Объектно-реляционное
служба
Объектно-реляционное
ядро
Фаза Проектирование (Elaboration ).
Девиз фазы: Необходимо разобраться, а как мы это будем
разрабатывать?
Фаза проектирования демонстрирует ряд преимуществ
Унифицированного процесса:

Осуществление борьбы с основными рисками .

Создается начальный архитектурный каркас системы –
базовый уровень архитектуры.

Совершенствуются и развиваются планы проекта.
Фаза Проектирование (Elaboration ).
Девиз фазы: Необходимо разобраться, а как мы это
будем разрабатывать?
Фаза проектирования демонстрирует ряд преимуществ
Унифицированного процесса:

Осуществление борьбы с основными рисками .

Создается начальный архитектурный каркас системы –
базовый уровень архитектуры.

Совершенствуются и развиваются планы проекта.

Разрешение вопроса о степени формальности артефактов.

Ни одна из рекомендаций, никогда не должна заменять
здравого смысла.
Фаза Проектирование (Elaboration ).
Девиз фазы: Необходимо разобраться, а как мы это будем
разрабатывать?
Глобальная цель: выбор и создание базового уровня архитектуры
системы, которая должна обеспечить стабильный скелет для
основной массы работ по проектированию и реализации во
время фазы Реализация.
Эта глобальная цель второй фазы разделяется на четыре крупные
цели, каждая из которых обеспечивает работу с
определенной крупной группой рисков:
1.
Риски, связанные с функциональными требованиями (мы
действительно создаем то приложение. которое ждет
клиент?).
2.
Риски, связанные с самой архитектурой (мы действительно
создаем устойчивое технологическое решение?).
3.
Риски, связанные со сроками и стоимостью (мы вписываемся
в наши оценки по срокам и бюджету?)
4.
Риски, связанные с процессом и инструментальной средой
(нас устраивает та настройка процесса, которую мы
используем, и те инструменты, которые мы применяем?)
Фаза Проектирование (Elaboration ).
Девиз фазы: Необходимо разобраться, а как мы это будем
разрабатывать?
Такая интенсивная работа над потенциальными рисками проекта
на этой фазе гарантирует, что команда сможет прейти к фазе
Реализации с минимум рисков и проблем (а значит с точными
оценками бюджета и времени разработки). Для того, чтобы
реализовать перечисленные цели необходимо:
1.
2.
3.
4.
Более глубоко понять требования.
Спроектировать, реализовать и оттестировать базовый
уровень архитектуры.
Снизить существенные риски и дать более точную оценку
сроков и стоимости.
Уточнить процесс и установить среду разработки.
Фаза Проектирование (Elaboration ).
Девиз фазы: Необходимо разобраться, а как мы это будем
разрабатывать?
Базовый уровень архитектуры: исполняемый эволюционный
прототип. Наличие такого прототипа гарантировало
успешность спиралевидного процесса.
Фаза проектирования и итерации:

Матч на своем поле – одна итерация.

Матч на чужом поле – пара итераций.

Матч с заведомо сильным соперником – три итерации.
Предположим , что у нас абсолютно зеленый проект и
запланировано две итерации, тогда

Первая итерация - наиболее существенные.

Вторая итерация – технологические риски.
Фаза Проектирование (Elaboration ).
Девиз фазы: Необходимо разобраться, а как мы это будем
разрабатывать?
Первая итерация:





Проектируем, реализуем и тестируем как можно больше архитектурнозначимых сценариев для того, чтобы определить необходимый тип
архитектуры и архитектурных механизмов. Делаем это как можно раньше
и проверяем те предположения относительно архитектуры, которые мы
сделали в фазе Начало.
Определяем, реализуем и тестируем небольшой первоначальный набор
принципиальных архитектурных механизмов.
Выполняем предварительный логический дизайн уровня хранения.
Описываем последовательность действий для примерно половины из тех
вариантов использования, которые дальше будут задействованы в ходе
Проектирования, естественно, порядок того, что детализируем,
определяется приоритетами вариантов использования.
Тестируем, все что можно и все, что нужно, основная цель этой
деятельности подтвердить, что архитектурные риски снижаются.
Например, как там насчет скорости реагирования?
Фаза Проектирование (Elaboration ).
Девиз фазы: Необходимо разобраться, а как мы это будем
разрабатывать?
Вторая итерация:




Сначала исправляем все, что было не так при подведении итогов первой
фазы.
Проектируем, реализуем и тестируем архитектурно-значимые сценарии,
которые остались на этот момент. В рамках этой итерации необходимо
обеспечить широту рассмотрения проблемы (так называемый
архитектурный охват).
Прорабатываем и реализуем следующие моменты: параллельное
выполнение, распределенную обработку, процессы, потоки управления и
физическое распределение системы. Порядок работы определяется
технически наиболее рискованными для целевого проекта проблемами.
Тестируем так же производительность, загрузку и проверяем интерфейсы
между нашими подсистемами и внешними интерфейсами.
Определяем, реализуем и тестируем, оставшиеся архитектурные
механизмы.
Фаза Проектирование (Elaboration ).
Девиз фазы: Необходимо разобраться, а как мы это будем
разрабатывать?
Вторая итерация:
Проектируем и реализуем черновую версию уровня хранения.

Специфицируем второю половину вариантов использования, работа над
которыми была запланирована на эту итерацию.

Тестируем, совершенствуем и оцениваем архитектуру. основная задача
обеспечить ту самую архитектурную основу для разрабатываемого
приложения. Архитектурная основа означает, что принятые на этом этапе
решения в дальнейшем будут выступать в роли базиса системы. В
принципе в архитектуру могут быть внесены изменения, но при этом
желательно избежать коренной переработки архитектуры, если только
такая работа не связана с решением критических проблем.
Если не получается привести архитектуру к стабильному состоянию за то
количество итераций, которое было запланировано в начале фазы, то
нужно добавить в эту фазу еще одну итерацию. Такое решение,
естественно, замедлит выполнение проекта, но в случае продолжения
работ без прочного архитектурного скелета, можно получить гораздо
больше проблем, как временных, так и финансовых.

Download