Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Диссертация_Иванов.docx
Скачиваний:
9
Добавлен:
23.09.2019
Размер:
1.18 Mб
Скачать
  1. Контекстные ограничения

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

* Здесь и далее под ассоциацией мы будем понимать как собственно ассоциацию между классами, так и соответствующую ей связь между экземплярами этих классов.

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

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

Очевидно, что ограничения 1, 2, 3 и 5 являются кошскстными. В ограничении 4 ассоциации между адресом и районом и между адресом и улицей являются равноправными — можно переписать это ограничение, сделав его контекстным для любой из них. Вопрос о том, какую именно ассоциацию, входящую в ограничение, считать ограниченной этим ограничением, решается, обычно, исходя из соображений удобства и дальнейшего использования описанных ограничений. Если, например, они используются для проверки вводимых пользователем данных, то удобнее ограничивать ту ассоциацию, информацию о которой пользователь должен ввести последней.

На приведенных ниже диаграммах (рис.3.6-3.11) изображены ограниченные ассоциации вместе с их контекстами. При этом ограничиваемые ассоциации имеют стереотип «Limited».

Рисунок 3.6 Дищрнмма кооперации для oi раничении I

Рисунок 3.7 Нервам диаграмма кооперации для oi раннчеиия 2

Рисунок 3.8 Вторая диаграмма кооперации ял я окраничения 2

Рисунок 3.9 Диаграмма кооперации для ограничения 3

Рисунок 3.10 Первая диаграмма кооперации для ограничений 4 и 5

Рисунок 3.11 Вторая лиаграччя кооперации для ограничений 4 н 5

  1. Нотация

Каждая диаграмма ограничений представляет собой |раф. вершинам которою соответствуют классы в модели классов, на которую накладываются ограничения. При этом одному классу может соответствовать произвольное количество вершин. Ребрам графа соответствуют ассоциации между классами. При этом одно из ребер выделяется — оно соответствует ограничиваемой ассоциации. Как уже было сказано выше, предлагаемая нотация вкладывается в нотацию диаграмм кооперации UML. При этом используются два типа элементов диаграмм кооперации — объекты и связи, сообщения не используются. Для связей вводится стереотип «Limited» для обозначения

ограничиваемых ассоциаций. При этом считается, что диаграмма кооперации является диаграммой ограничений в том и только том случае, если на ней присутствует хотя бы одна связь со стереотипом «Limited» (в предлагаемой версии нотации такая связь на диаграмме может быть только одна). У всех объектов на диаграмме ограничений должны быть указаны их классы, а у связей

  • ассоциации.