Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
компьютерная техника (конспектировать ).docx
Скачиваний:
69
Добавлен:
05.11.2018
Размер:
1.56 Mб
Скачать

4.2 Жизненные циклы связей

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

Модель состояний предписывает поведение типичного неопределённого экземпляра связи. Все экземпляры связи выполняют одну и ту же модель состояний. Как и в случае с объектом, мы используем термин "конечный автомат", чтобы указывать на выполнение модели состояний частным экземпляром связи.

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

Рис. 4.2.1. Информационная модель работы дистрибъютера.

В работе дистрибъютера каждый пункт заказа обрабатывается отдельно: оборудование, необходимое для выполнения пункта заказа, получают со склада и затем упаковывают, отправляют и выписывают счет. Эта стратегия изменяется, потому что некоторое оборудование имеется в свободном распоряжении и может быть отправлено почти немедленно, в то время как для отправки другого может потребоваться несколько недель ожидания, пока оно не будет получено от изготовителя.

Жизненный цикл пункта заказа представлен на рис.4.2.2. Обратите внимание, что, хотя Пункт Заказа изменился вследствии связи, его модель состояний формируется точно таким же способом, как и модель состояний для объекта.

4.3 Динамические связи вне жизненных циклов

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

Клиент - любой человек или организация, которые создали, по крайней мере, один счет.

Рис.4.2.2. Модель состояний для объекта Пункт Заказа.

Новые клиенты могут появляться в любое время.

Новые счета можно создавать в любое время.

Если клиент закрывает свой последний счет, он перестает быть клиентом.

Информационная модель представлена на рис.4.3.1.

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

Рис.4.3.1. Фрагмент информационной модели банка.

4.4 Конкурирующие связи: монитор Конкуренция в реальном мире

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

В противоположность этому рассмотрим ситуацию, в которой клиенты (пациенты, пассажиры и т.п.) конкурируют с целью овладеть вниманием ограниченного количества клерков (докторов, официанток или стюардесс). Когда клерк становится доступным, необслуживаемые клиенты пытаются завладеть вниманием клерка, чтобы сформировать экземпляр связи один-к-одному Клиент обслуживается Клерком. Поскольку клиенты, рассматриваемые теперь как экземпляры ООА, действуют одновременно, возможно, что два клиента обратятся к клерку в одно и то же время.

Проблемы конкуренции такого типа необходимо решать предоставлением одной контрольной точки, при проходе которой конкурирующие запросы преобразовываются в последовательную форму. В реальном мире это преобразование в последовательную форму может быть достигнуто различными механизмами: очередью клиентов (проявление стратегии, требующей, чтобы клиенты обслуживались в порядке их появления) или человеком, который определяет клиентов для клерков на основании какой-то другой стратегии (например, в комнате неотложной помощи больницы серьезность положения "клиента" должна, по всей вероятности, быть доминирующим соображением). В ООА преобразование в последовательную форму выполняется специальной моделью состояний для связи, в которой есть конкуренция.