Моделирования uml


Download 1.84 Mb.
Pdf ko'rish
bet83/115
Sana16.06.2023
Hajmi1.84 Mb.
#1489923
1   ...   79   80   81   82   83   84   85   86   ...   115
Bog'liq
ivanov novikov unificirovannii jazik modelirovanija uml 2011

Событие сигнала (signal event) — это событие, возникающее 
при посылке сигнала.
Чтобы разъяснить, что такое событие сигнала в UML, нужно 
рассмотреть, прежде всего, саму концепцию сигнала. Здесь опять 
имеет место пересечение моделирования структуры и поведения: 
определяются сигналы в структурной части модели, а используются в 
поведенческой.
Синтаксически сигнал (в UML 1) — это экземпляр класса со 
стереотипом 
«signal»
. В UML 2 сигнал — это самостоятельный 
классификатор. 
Семантически сигнал — это именованный объект, который 
создается другим объектом (отправителем) и обрабатывается 
третьим объектом (получателем).
Сигнал может иметь атрибуты (параметры). Сигнал может 
иметь операции. Одна из них считается определенной по умолчанию. 
Она имеет стандартное имя 
send()
и параметр, являющийся 
множеством объектов, которым отправляется сигнал. Это операция — 
конструктор, который создает экземпляр классификатора, то есть 
сигнал. Объявлять эту операцию не нужно. Можно объявлять другие 
операции, которые служат для доступа к значениям атрибутов 
сигнала, но и это не обязательно.
Концепция сигнала в UML принадлежит к числу наиболее 
фундаментальных и имеет ясную и строго определенную семантику. 
Объект, являющийся отправителем, обращается к классификатору 
сигнала (вызывает операцию 
send()
), указывая аргументы сигнала 
(значения атрибутов) и целевое множество объектов, которым должен 


159
быть отправлен сигнал. После этого объект-отправитель продолжает 
свою работу — дальнейшее его не касается.
На диаграмме классов классификатор сигнал связывается с 
классом отправителем зависимостью со стереотипом 
«send»

Объекты, которым отправляется сигнал, обязаны иметь операцию для 
получения и обработки сигнала. Такая операция имеет стереотип 
«signal»
, ее имя совпадает с именем классификатора сигнала, а 
имена и типы параметров совпадают с именами и типами атрибутов 
сигнала. Операция получения сигнала не может возвращать 
результат. 
После 
того, 
как 
объект-отправитель 
передал 
классификатору сигнала все необходимые данные, тот создает новый 
объект — экземпляр сигнала и отправляет его копии всем объектам 
целевого множества, т. е. вызывает в объектах целевого множества 
операции приема сигнала с указанными значениями аргументов.
Сигналы 
подходят 
для 
описания 
асинхронных 
видов 
взаимодействия. Все получатели сигнала должны быть экземплярами 
активных классов, т. е. иметь свой поток управления.
В UML существует еще одно важное понятие, связанное с 
асинхронным взаимодействием — исключение (exception). В разных 
версиях UML исключения определены и используются по-разному.
Исключения в UML 1 во всем подобны сигналам (на уровне 
метамодели исключение определено как подкласс сигнала), в то 
время как в UML 2 от исключения осталось только действие, которое 
генерирует исключение (
RaiseExceptionAction
) и элемент 
(
ExceptionHandler
), который описывает действия для обработки 
исключения. Как видно, в UML 2 более сильно выражен тот факт, что 
для поддержки исключений используется встроенный механизм 
обработки, который имеется в большинстве современных объектно-
ориентированных систем программирования и состоит в том, что 
прерывается нормальный поток управления без помех для основной 
логики программы. 


160

Download 1.84 Mb.

Do'stlaringiz bilan baham:
1   ...   79   80   81   82   83   84   85   86   ...   115




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling