Соединители
Вариантов отображения соединителей всего три. Решение о выборе одного из них, как и в предыдущем случае, следует принимать исходя из соотношения выразительности и семантического соответствия, с одной стороны, и сложности — с другой. ♦ Вариант 1: типы соединителя как ассоциации, экземпляры соединителей как связи. В рамках архитектурной блочно-линейной диаграммы системы линиями между компонентами изображаются соединители. Само собой напрашивается решение об изображении соединителей в виде ассоциаций между классами или связей между объектами. Этот метод отличается визуальным удобством, четким разграничением компонентов и соединителей, а также применением наиболее употребительного на диаграммах классов UML отношения — ассоциации. Кроме того, ассоциации в данном случае можно помечать, а направление соединителя обозначать стрелкой. К сожалению, у соединителей и ассоциаций разные значения. В рамках архитектурного описания система конструируется путем выбора компонентов, поведение которых раскрывается через интерфейсы, и их подключения к соединителям, ответственным за координацию вариантов их поведения. Поведением системы считается коллективное поведение набора компонентов, взаимодействие между которыми определяется и ограничивается установленными между ними соединениями. Несмотря на то что ассоциация, или связь, в UML обладает определенным потенциалом взаимодействия между соотносимыми элементами, механизм ассоциации в первую очередь ориентирован на описание концептуального отношения между двумя данными элементами. Кроме того, поскольку ассоциация представляет собой отношение между элементами UML, ее самостоятельность в рамках модели UML исключается. Следовательно, изолированное отображение типа соединителя невозможно. Выбор, таким образом, сужается до соглашений о присваивании имен и стереотипов, значения которых фиксируются описаниями объектного языка ограничений UM Вдобавок ко всему, рассматриваемая методика не позволяет специфицировать интерфейсы соединителя. ♦ Вариант 2: типы соединителя как классы-ассоциации. Один из способов компенсировать недостаток выразительности — квалифицировать ассоциацию классом - представителем типа соединителя. В этом случае тип и атрибуты соединителя можно зафиксировать как атрибуты класса или объекта. К сожалению, эта методика не предусматривает явного отображения интерфейсов соединителя. ♦ Вариант 3: типы соединителя как классы, экземпляры соединителя как объекты. Для того чтобы средствами UML придать соединителям первоклассный статус, типы соединителя следует отобразить как классы, а экземпляры соединителей — как объекты. Классы и объекты предусматривают те же четыре варианта отображения ролей, что характерны для интерфейсов: отказ от отображения, отображение в виде аннотаций, в виде интерфейсов, реализуемых классами, или в виде дочерних классов, вложенных в класс соединителя. Прикрепление интерфейсов компонента и соединителя в рамках схемы отображения интерфейсов можно выразить как ассоциацию или как зависимость.
|