Моделирования uml
Download 1.84 Mb. Pdf ko'rish
|
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 более сильно выражен тот факт, что для поддержки исключений используется встроенный механизм обработки, который имеется в большинстве современных объектно- ориентированных систем программирования и состоит в том, что прерывается нормальный поток управления без помех для основной логики программы. |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling