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

Термины и понятия

Кооперация (Collaboration) - это сообщество классов, интерфейсов и других элементов, которые работают совместно для обеспечения кооперативного поведе­ния, более значимого, чем сумма его составляющих. Кооперация также специфи­цирует то, как некий элемент, допустим классификатор (класс, интерфейс, компо­нент, узел или прецедент) либо операция, реализуется с помощью классификаторов и ассоциаций, каждая из которых играет свою роль. Изображается кооперация в виде эллипса с пунктирной границей. (Эта нотация отнюдь не случайно подоб­на нотации прецедента - см. главу 16.)

Имена

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

Примечание Имя кооперации может состоять из любого числа букв, цифр и некоторых знаков препинания (за исключением таких, как двоеточие, которое применяется для отделения имени кооперации от имени объемлющего пакета). Имя может занимать несколько строк. На практике для именования коопераций используют одно или несколь­ко коротких существительных, взятых из словаря моделируемой системы. Обычно первая буква имени заглавная, например: Транз­акция, ЦепочкаОтветственности.

Структуры

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

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

все обычные отношения (см. главы 5 и 10), имеющиеся в UML, в том числе ассоци­ации, обобщения и зависимости. На самом деле для описания структурных элемен­тов кооперации можно применять весь спектр средств структурного моделирова­ния, которыми располагает UML.

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

Например, система розничной продажи через Internet описывается примерно десятком прецедентов (см. главу 16): Покупка Товаров, Возврат Товаров, Про­смотр Заказа и т.д., и каждый из них реализован отдельной кооперацией. Кроме того, все эти кооперации разделяют одни и те же структурные элементы (такие, как классы Клиент и Заказ), но организованы по-разному. На более глубоких уровнях системы также обнаружатся кооперации, представляющие архитектурно значимые механизмы. Так, в системе розничной торговли вполне может быть ко­операция Межузловые сообщения, которая описывает детали защищенной пере­дачи сообщений между узлами.

Если имеется кооперация, именующая концептуальный фрагмент системы, вы можете раскрыть ее, чтобы посмотреть на скрытые внутри структурные детали. Например, на рис. 27.2 показано, что при раскрытии кооперации Межузловые

сообщения обнаруживается набор классов, изображенных на диаграмме классов (см. главу 8).

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