50
• после завершения итерации I
n
может значительно измениться
представление о развитии продукта и вместо траектории A
→
B
→
C может быть выбрана траектория A
→
B
→
D
→
C. При этом
также может оказаться, что P
AB’
+ P
B’D
+ P
DC
>> P
AB
+ P
BD
+ P
DC
.
Поэтому, с точки зрения гибких технологий разработки программного
обеспечения, продукт всегда должен обладать максимально простым
дизайном, достаточным для реализации текущей функциональности. Гибкие
технологии рекомендуют выполнять усложнение дизайна только тогда, когда
без этого невозможно достижение ближайших целей проекта.
4.1.2. Выбор системной метафоры
Архитектура в проектах, разработанных с использованием гибких
технологий, менее формальна, чем в традиционных методологиях. В гибких
технологиях этап разработки архитектуры начинается с выбора метафоры.
Метафора представляет мощный способ описать сложное понятие из
незнакомой предметной области. Метафора обеспечивает глобальное
представление архитектуры проекта.
Метафора – это простая общедоступная и общеизвестная история,
которая коротко описывает
логику работы программного продукта.
Метафора играет роль концептуальной основы, определяющей ключевые
объекты и их интерфейсы. Она помогает каждому члену команды, как
заказчику, так и разработчикам, понимать базовые структуру системы.
Однако основное предназначение метафоры заключается не в том, чтобы
облегчить программистам понимание архитектуры системы, а в том, чтобы
усовершенствовать общение в
команде и сформировать общее представление
о системе. Метафоры особенно полезны, когда разработчиков из одной
предметной области привлекают к проекту из другой области.
Метафора может быть упрощенным представлением какой-либо
концепции или характерного свойства. Метафоры не задают точных
представлений, а предоставляют контекст для обсуждения проблем и их
решения. Метафора описывает, на что
похож определяемый объект или
свойство. По мере того, как идет работа над проектом, метафора развивается
и обрастает деталями. В процессе работы может оказаться, что выбранная
метафора оказалась ошибочной. В этом случае также следует от нее
отказаться и выбрать другую метафору.
В качестве метафоры может быть предложен контрпример.
Контрпример описывает черты,
которые нежелательно иметь в новом
программном продукте.
Приведем несколько советов, которые могут оказаться полезными при
выборе метафоры.
1. Для записи метафоры рекомендуется использовать
терминологию, хорошо сочетающуюся с предметной областью,
для которой разрабатывается программный продукт.
Например, при работе над проектом C3 для автомобильной компании
Daimler Chrysler для определения правил обработки платежей команда