События


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

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

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

Различают два вида событий:

1. Внешние (системные) события. Вызываются некоторыми внешними по отношению к системе условиями (например, пользователем или датчиком). Внешние события передаются между системой и её актёрами. Сначала их следует искать в описании потоков событий, затем в диаграммах последовательности. Для особо важных внешних событий приводятся инициируемые ими системные операции. Например, прерывание от датчика.

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

2.1 Экземпляр класса (объект) может вести себя по-разному в зависимости от значений атрибутов. Особенно следует обращать внимание на классы, атрибутом которых является такой атрибут, как Статус. Необходимо проанализировать поведение объекта при различных значениях этого атрибута.

2.2 Поведение объекта может зависеть от его связей с другими объектами. Необходимо обратить внимание на отношения в диаграмме классов, мощность которых может принимать нулевое значение. Нули указывают на то, что данная ассоциация не является обязательной. Следует понять, ведёт ли себя объект по-разному при наличии и отсутствии связи. Если да, то он имеет несколько состояний. Например, связь между классами Сотрудники и Организации. Если между ними установлена связь (Синичкин – “Автосервис”), то это означает, что сотрудник нанят. Если нет, то он уволен или на пенсии.

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

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

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

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