Диаграмма сотрудничества (collaboration diagram) 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Диаграмма сотрудничества (collaboration diagram)



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

Пример:

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

Диаграмма компонентов (component diagram)

Компонент — это физическая заменяемая часть системы, соответствующая некоторому набору интерфейсов и обеспечивающая их реализацию.

Диаграммы компонентов используются при физическом проектировании ИС и предназначены для описания распределения классов и других элементов по компонентам и взаимоотношений между компонентами. Иначе говоря, диаграммы компонентов описывают структуру программного кода. Данный тип диаграмм можно рассматривать как аналог диаграмм модулей, используемых в структурном программировании.

Пример:

Диаграмма развертывания (deployment diagram)

Этот вид диаграмм предназначен для анализа аппаратной части систе­мы и позволяет описать топологию аппаратных средств ИС.

Пример:

Основные элементы UML

Язык UML состоит из трех видов элементов:

1) сущности;

2) отношения;

3) диаграммы.

Сущности — это некоторые абстрактные объекты. Сущности являются основными элементами UML.

Связи между сущностями выражаются отношениями.

Диаграмма — это группа взаимосвязанных сущностей, характеризующих один из аспектов предметной области.

Если проводить параллели с естественным языком, то сущности — это существительные, пассивная составляющая, а отношения — глаголы, активные элементы.

Типы сущностей:

1) структурные;

2) поведенческие;

3) группирующие;

4) аннотационные.

Структурные сущности соответствуют концептуальным или физическим элементам системы.

Существует семь разновидностей структурных сущностей:

1. Класс (class) — описание совокупности объектов с общими атрибутами, методами, отношениями и семантикой. Данная абстракция соответствует понятию «класс» в языках программирования. Обозначение:

В верхней части прямоугольника записывается наименование класса, в средней перечисляются атрибуты, в нижней — методы (операции). Для атрибутов могут указываться тип и видимость. Для методов могут указываться видимость и тип возвращаемого значения. Видимость и типы соответствуют общепринятым в языках C++, Java, Ada. В зависимости от назначения модели, класс может отображаться с той или иной степени детальности, например, может указываться только наименование.

2. Интерфейс (interface) — описание совокупности методов, которые определяют набор услуг, предоставляемых классом или компонентом (см. ниже). Обозначение:

Интерфейс описывает «видимое» извне поведение элемента через спецификацию операций. Интерфейс содержит только декларативную часть, реализация методов заключена в классе или компоненте, на которые он ссылается.

3. Кооперация, или сотрудничество (collaboration), — совокупность классов, интерфейсов и других элементов, эффект от работы которых не сводится к сумме простых слагаемых. Обозначение:

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

4. Прецедент (use case) — описание последовательности выполняемых системой действий (в том числе вариантных), которые приводят к наблюдаемому результату, значимому для какого-либо пользователя системы (актера). Обозначение:

Прецедентыреализуются посредством кооперации.

5. Компонент (component) — физическая заменяемая часть системы, которой соответствует некоторому набору интерфейсов и обеспечивает их реализацию. Компонент — это «обертка» для классов, компонентов, коопераций. Обозначение:

6. Узел (node) —это элемент реальной системы. Это вычислительный элемент, который обладает машинной памятью некоторого объема и, обычно, способностью обработки.

Поведенческие сущности:

1. Взаимодействие (interaction) — поведение, состоящее в обмене сообщениями между объектами в рамках конкретного контекста для достижения определенной цели. Отдельное сообщение обозначается как

Здесь «2» — порядковый номер, «СозданиеСтроки()» — сообщение, стрелка определяет направление передачи сообщения и линия обозначает связь.

2. Автомат (state machine) — алгоритм поведения, определяющий последовательность состояний, через которые проходят объект или взаимодействие. Автомат определяется через диаграмму состояний. Отдельное состояние обозначается прямоугольником со скругленными углами:

Или:

Группирующие сущности:

Включают только одну разновидность — пакет.

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

В пакет могут входить классы, интерфейсы, компоненты, узлы, кооперации, другие пакеты и даже диаграммы. Элемент может принадлежать только одному пакету.

Аннотационные сущности:

Также только одна разновидность — примечание (note). Используется для словесного описания чего-либо на диаграмме. Обозначается прямоугольником с загнутым правым верхним углом:

Пример использования:

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

Основные классификаторы:

- класс;

- интерфейс;

- компонент;

- узел;

- прецедент;

- актер.

Отношения:

1. Зависимость (dependency) — семантическое отношение; показывает, что изменение спецификации независимой (или целевой) сущности влияет на зависимую, при этом обратное в общем случае неверно. Зависимость часто применяется для обозначения использования методами класса методов другого класса. Например, если в реализации класса Б используется операция А1 класса А, то зависимость Б от А обозначается следующим образом:

Зависимость показывается пунктирной стрелкой, направленной к независимой сущности (поэтому также называемой целевой).

2. Ассоциация (association) — структурное отношение, рассматривается ниже при описании диаграммы классов; в общем случае обозначается линией.

3. Обобщение (generalization) — структурное отношение типа «наследование», т.е. показывает, что объект-потомок наследует структуру и поведение родителя. Примеры:

Обобщение показывается стрелкой с незаштрихованным наконечником, направленной от потомка в сторону родительской сущности.

4. Реализация (realization) — семантическое отношение, показывающее такую зависимость, когда один из элементов определяет запрос, а другой обеспечивает его выполнение, например: интерфейс и класс, прецедент и кооперация. Если класс «Строка» реализует интерфейс «Сравнение строк», то это обозначается так:

Реализация указывается пунктирной стрелкой с незаштрихованным наконечником, направленной от реализующего элемента к определяющему запрос элементу.

Механизмы расширения языка

В UML заложены три механизма расширения семантики и синтаксиса языка:

- стереотипы (stereotypes), позволяющие вводить новые элементы моделей;

- помеченные значения (tagged values), позволяющие задавать новые атрибуты;

- ограничения (constraints), задающие новую семантику поведения.

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

Например, интерфейс можно изображать не только окружностью, но и как класс, помеченный стереотипом «Interface»:

Данный стереотип является стандартным для UML. Проектировщик может создавать свои стереотипы. Практический эффект от этого возможен в том случае, если генераторы кода или другие средства умеют распознавать соответствующие стереотипы и обрабатывать стереотипные элементы особым образом. Пример нестандартного стереотипа:

Стереотипы могут применяться не только к сущностям, но и к отношениям.

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

Помеченное значение представляется строкой, заключенной в фигурные кавычки и размещаемой под именем описываемого элемента. Например, с помощью помеченных значений можно указывать автора элемента и дату последнего изменения:

С помощью механизма ограничений можно создавать новые семантические правила или изменять существующие.

Ограничение изображается в виде строки в фигурных скобках, расположенной рядом с соответствующим элементом. Ограничение может быть записано как на естественном языке, так и с помощью некоторого формального языка. В качестве такого формального языка в стандарт UML входит язык объектных ограничений (Object Constraint Language, OCL).

Пример использования ограничения для указания условия существования ассоциации на естественном языке:



Поделиться:


Последнее изменение этой страницы: 2021-12-15; просмотров: 172; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.137.185.180 (0.018 с.)