Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Интерфейсы




Компоненты

Отношение «тип-экземпляр» в архитектурных описаниях близко соответствует отношению «класс-объект» в модели UML. Подобно типам компонентов в архитектурных описаниях, классы UML — это сущности первого класса, обогащенные структуры, предназначенные для фиксации программных абстракций. Для описания структуры, свойств и поведения класса пригодны все описательные механизмы UML, что обеспечивает возможность серьезной детализации и применения инструментов анализа на основе UML. Свойства архитектурных компонентов можно преподнести в виде свойств класса или посредством ассоциаций; поведение описывается при помощи поведенческих моделей UML; представлять отношения между типами компонентов удобно при помощи компонентов. Эффект уточнения семантики экземпляра или типа достигается путем добавления к нему одного из стандартных стереотипов; к примеру, для того чтобы указать на исполнение компонента в качества отдельного процесса, к компоненту можно добавить стереотип «process». Следует также иметь в виду, что отношение между MergeAndSort и его субструктурой обозначается отношением зависимости.

Способов изображения интерфейсов для компонентов (их иногда называют портами) всего пять (рис. 9.11). Их описания ниже приводятся в последовательности, соответствующей повышению выразительности. Впрочем, с увеличением выразительности повышается сложность; таким образом, остановиться следует на первой же стратегии, отвечающей сформулированным вами требованиям.

♦ Вариант 1: Без явного отображения. Отказ от изображения интерфейсов, с одной стороны, значительно упрощает диаграммы, но с другой — лишает возможности обозначить в рамках первичного отображения их (интерфейсов) имена и свойства. Таким образом, означенное решение следует считать приемлемым лишь в трех случаях: 1) если на каждый компонент приходится по одному интерфейсу; 2) если интерфейсы можно вывести из топологии системы; 3) если уточненную диаграмму предполагается разместить где-то в другом месте.

♦ Вариант 2: Интерфейсы как аннотации. Отображение интерфейсов в виде аннотаций решает задачу размещения связанной с ними информации, но, с другой стороны, в силу отсутствия у аннотаций UML семантического значения их применение в качестве основы для проведения анализа становится невозможным. Такое решение, опять же, допустимо лишь при том условии, что описание детальных свойств интерфейса не является приоритетной задачей.

♦ Вариант 3: Интерфейсы в виде атрибутов классов/объектов. Рассматривая интерфейсы как атрибуты класса/объекта, мы инкорпорируем их и формальную структурную модель, однако и таких условиях их отображение на диаграмме классов ограничивается указанием имени и типа. Указанное ограничение снижает выразительность данного варианта.

♦ Вариант 4: Интерфейсы как интерфейсы UML Нотация «кружок-палочка» в UML предусматривает возможность компактного описания интерфейса в рамках диаграммы классов, изображающей тип компонента. Что касается диаграммы экземпляров, то здесь ассоциативная роль UML, соответствующая экземпляру интерфейса и квалифицируемая именем типа интерфейса, обеспечивает компактность выражения взаимодействия экземпляра компонента через тот или иной экземпляр интерфейса. Такой подход предполагает визуальные различия между компонентами и интерфейсами, благодаря которым очевидной становится подчиненная роль интерфейсов.

С другой стороны, эта стратегия не предусматривает изображения служб, требуемых от среды компонента, хотя таковые во многих случаях оказываются в качестве основных элементов интерфейса. Кроме того, у типа компонента может быть несколько экземпляров одного и того же типа интерфейса, однако реализация одним классом нескольких версий одного интерфейса UML бессмысленна. К примеру, в рамках этой методики крайне сложно определить тип-фильтр Splitter с двумя выходными портами одного и того же типа. Наконец, в отличие от классов, интерфейсы UML не имеют ни атрибутов, ни субструктуры.

♦ Вариант 5: Интерфейсы как классы. Описывая интерфейсы как классы в составе типа компонента, мы обеспечиваем выразительность, не свойственную тем предыдущим альтернативам. Появляется возможность ото-,Сражения субструктуры интерфейса и обозначения наличествующих у типа компонента нескольких однотипных интерфейсов. Экземпляр компонента моделируется как объект, содержащий ряд интерфейсных объектов. С другой стороны, отображая интерфейсы в виде классов, мы не только «засоряем» диаграмму, но и лишаем читателя возможности проводить зрительное различие между интерфейсами и компонентами. В нижней части варианта 5 на рис. 9.11 используется одна из разновидностей рассматриваемой нотации, согласно которой интерфейсы изображаются в виде вложенных классов. Впрочем, не следует забывать, что обозначение точек взаимодействия затрудняет восприятие, — связано это с тем, что вложенность обычно предполагает принадлежность одних классов другому классу; при этом вопрос о доступности экземпляров дочерних классов через экземпляры класса родительского не раскрывается.




Поделиться с друзьями:


Дата добавления: 2015-04-25; Просмотров: 493; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.011 сек.