Системы можно конструировать на основе крупных элементов, созданных сторонними разработчиками
Раньше программные парадигмы были ориентированы на программирование (programming) как на основной вид деятельности, а проделанная работа измерялась в строках кода; архитектурно-ориентированная разработка во многих случаях направлена на компоновку (composing) и сборку (assembling) элементов, которые, вероятнее всего, разрабатывались отдельно, а может быть, даже независимо друг от друга. Возможность такой композиции появляется по той причине, что архитектура определяет те элементы, которые можно ввести в систему. В то же время она ограничивает проведение замен (или добавлений), исходя при этом из того, как они взаимодействуют со своей средой, как получают и передают управление, какие данные потребляют и производят, как обращаются к данным и при помощи каких протоколов они осуществляют обмен информацией и совместное использование ресурсов. Одним из наиболее важных аспектов архитектуры является организация структуры ее элементов, интерфейсов и рабочих понятий. Взаимозаменяемость (inter-changeability) считается самым важным принципом этой организации. Запущенное в 1793 году Эли Уитни (Eli Whitney) массовое производство мушкетов по принципу взаимозаменяемых частей положило начало эпохе промышленного производства. В отсутствие надежных физических измерений эта идея не внушала доверия. В контексте современного программного обеспечения, пока добиться надежного разграничения абстракций не удалось, принцип структурной взаимозаменяемости кажется не менее устрашающим, однако от этого он не теряет своей важности. Готовые компоненты, подсистемы, совместимые интерфейсы передачи данных — все они основываются на принципе взаимозаменяемости. При этом нерешенными остаются многие проблемы, связанные с разработкой программного обеспечения методом композиции. Когда в качестве компонентов, претендующих на внесение и многократное применение, выступают индивидуальные подсистемы, сконструированные на основе противоречащих друг другу архитектурных допущений, интеграция их функций может столкнуться с непредвиденными сложностями. Вслед за Дэвидом Гарланом (David Garlan) и некоторыми его коллегами эту ситуацию стали называть архитектурным несоответствием (architectural mismatch). Чем меньше, тем больше: ограничивать словарь проектных альтернатив выгодно По мере накопления полезных архитектурных образцов и образцов проектирования становится совершенно очевидно, что, несмотря на более или менее безграничные возможности комбинирования компьютерных программ, добровольное сведение вариантов к относительно небольшому количеству альтернатив в контексте взаимодействия между программами и их сотрудничества может принести определенные выгоды. Таким образом, проектная сложность конструируемой системы сводится к минимуму. Среди преимуществ этого принципа следует упомянуть повышенные возможности многократного применения, более стандартизированные и простые решения, которые легче понять и распространить, углубление анализа, сокращение длительности отбора и совершенствование способности к взаимодействию. Свойства программного проекта определяются выбранным архитектурным образцом. Те образцы, которые в наибольшей степени подходят для решения конкретной задачи, повышают качество реализации конечного проектного решения, а иногда и упрощают балансирование противоречащих проектных ограничений — этот эффект достигается путем углубления анализа плохо изученных проектных контекстов и/или формулирования противоречивости технических требований.
|