Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Uml Book (Rus).doc
Скачиваний:
15
Добавлен:
11.08.2019
Размер:
58.74 Mб
Скачать

Архитектурные образцы

Образцы используются также для моделирования типичных архитектурных решений. При моделировании каркаса вы, собственно, моделируете инфраструк­туру, которую в дальнейшем планируете повторно использовать или адаптировать к некоторому контексту.

Каркас изображается в виде стереотипного пакета (см. главу 12). Будучи паке­том, каркас предоставляет ряд элементов, в частности (хотя этим все разнообразие не исчерпывается) классы, интерфейсы, прецеденты, компоненты, узлы, коопера­ции и даже другие каркасы. Иными словами, вы помещаете в каркас все абстрак­ции, которые, работая совместно, формируют расширяемый шаблон для приложе­ний в конкретной области. Некоторые из этих элементов будут являться открытыми и представлять ресурсы, которые надстраивает клиент. Это стыковочные элементы каркаса, которые вы можете подсоединить к абстракциям из своего контекста. Дру­гие открытые элементы будут являться образцами проектирования и соответство­вать ресурсам, с которыми связывается клиент. Это «разъемы» каркаса, заполняемые

При связывании с образцом проектирования. И наконец, некоторые элементы бу­дут закрытыми или защищенными; они соответствуют инкапсулированным элемен­там каркаса, невидимым снаружи.

При моделировании архитектурного образца помните, что каркас является, по сути дела, описанием архитектуры (см. главу 2), хотя неполным и, возможно, па­раметризованным. Следовательно, все, что вы знаете о моделировании хорошо структурированной архитектуры, в полной мере применимо и к хорошо структу­рированным каркасам. Самые лучшие каркасы не проектируются изолированно от остальной системы, - на практике такая попытка обречена на неудачу В основе каркасов лежат уже существующие архитектуры, доказавшие свою работоспособ­ность. Затем каркасы развиваются, чтобы найти те элементы управления и сты­ковки, которые необходимы и достаточны для применимости каркаса к новым

областям.

Моделирование архитектурного образца осуществляется следующим образом:

1. Положите в основу каркаса уже существующую, проверенную архитектуру.

2. Смоделируйте каркас в виде стереотипного пакета, содержащего все элемен­ты (и в особенности образцы проектирования), которые необходимы и до­статочны для описания различных представлений каркаса.

3. Раскройте те элементы управления и стыковки, которые нужны, чтобы адап­тировать каркас, представив их в виде образцов проектирования и коопера­ций. Это главным образом означает, что пользователь образца должен пони­мать, какие классы следует расширить, какие операции реализовать и какие сигналы обрабатывать.

На рис. 28.7 показана спецификация архитектурного образца КласснаяДоска (он рассматривается в книге Buschmann et al., "Pattern-Oriented Software Architecture", New York, New York: Wley, 1996). Как говорится в документации, этот образец «при­меним к задачам преобразования исходных данных в высокоуровневые структуры,

которые не имеют простого детерминированного решения». В основе архитектуры лежит образец проектирования КласснаяДоска, который определяет порядок со­вместной работы классов ИсточникЗнаний, КласснаяДоска и Контроллер. Еще каркас включает образец проектирования Процессор логического вывода, ко­торый определяет общий механизм работы класса ИсточникЗнаний. И наконец как видно из рисунка, каркас раскрывает один вариант использования Применить новые источники знаний, поясняющий клиенту, как можно его адаптировать.

Примечание Полное моделирование каркаса - задача отнюдь не более простая чем моделирование архитектуры всей системы. В некоторых отно­шениях она даже сложнее, поскольку для того, чтобы с каркасом можно было работать, вы должны раскрыть все его элементы управления и стыковки и, возможно, представить мета-прецеденты (типа Применить новые источники знаний, которые объясня­ют, как каркас настраивается, а также простые прецеденты, по­ясняющие его поведение.

Советы

При моделировании образцов в UML помните, что они работают на многих уровнях абстракции, начиная от отдельных классов и кончая системой в целом. Самые интересные виды образцов - это механизмы и каркасы. Хорошо структу­рированный образец обладает следующими свойствами:

  • решает типичную проблему типичным способом;

  • включает структурную и поведенческую составляющие;

  • раскрывает элементы управления и стыковки, с помощью которых его мож­но настроить на разные контексты;.

  • является атомарным, то есть не разбивается на меньшие образцы;

  • охватывает разные индивидуальные абстракции в системе.

Изображая образец в UML, руководствуйтесь следующими правилами:

  • раскрывайте те его элементы, которые необходимо адаптировать для приме­нения в конкретном контексте;

  • делайте образец доступным, приводя прецеденты его использования, а также способы настройки.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]