Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Uml Book (Rus).doc
Скачиваний:
15
Добавлен:
11.08.2019
Размер:
58.74 Mб
Скачать

Термины и понятия

Автомат (State machine) описывает поведение в терминах последовательнос­ти состояний, через которые проходит объект в течение своего жизненного цикла отвечая на различные события, а также его реакций на эти события. Состояние (State) - это ситуация в жизни объекта, на протяжении которой он удовлетворяет некоторому условию, выполняет определенную деятельность или ожидает какого-то события. Событие (Event) - это спецификация существенного факта, имеющего место в пространстве и во времени. В контексте автоматов событие - это некий стимул, инициирующий переход из одного состояния в другое. Переход (transition) это отношение между двумя состояниями, показывающее, что объект, находящийся в первом состоянии, должен выполнить определенные действия и перейти во вто­рое состояние, как только произойдет указанное событие и будут удовлетворены определенные условия. Деятельность (Activity) - это протяженное во времени не­атомарное вычисление внутри автомата. Действие (Action) - это атомарное вычис­ление которое приводит к изменению состояния модели или возврату значения. Состояние изображается в виде прямоугольника с закругленными углами. Переход обозначается линией со стрелкой.

Контекст

У каждого объекта (см. главу 13) есть некоторое время жизни. Объект рождает­ся, когда его создают, и перестает существовать после уничтожения. В промежутке он может воздействовать на другие объекты (посылая им сообщения, см. главу 15) а также сам подвергаться воздействиям (являясь получателем сообщения). Во мно­гих случаях сообщения могут быть простыми синхронными вызовами. Например экземпляр класса Клиент может инициировать операцию получитьБалансСчета на экземпляре класса БанковскийСчет. Чтобы специфицировать поведение тако­го рода объектов, автомат не нужен, поскольку в любой момент времени их поведе­ние не зависит от прошлого.

В системах иного типа встречаются объекты, которые должны реагировать на сигналы (см. главу 20) - асинхронные стимулы, которыми обмениваются экземпля­ры. Например, сотовый телефон должен отвечать на вызовы от других телефонов, которые происходят в случайные моменты времени, на события нажатия клави­ши владельцем, набирающим номер, и на события сети (когда телефон перемеща­ется из одной ячейки сотовой связи в другую). Бывают также объекты, текущее поведение которых зависит от прошлого. Так, поведение системы наведения раке­ты «воздух-воздух» зависит от ее текущего состояния, например НеЛетит (вряд ли стоит запускать ракету с самолета, находящегося на земле) или Поиск (нельзя ее запускать, пока нет ясного представления, какую цель надо поразить).

Если объекты должны реагировать на асинхронные стимулы или их текущее поведение зависит от их прошлого, лучше всего описывать это поведение с помо­щью автомата. К этой категории относятся экземпляры классов, которые могут получать сигналы, включая и многие активные объекты (см. главу 22). фактичес­ки объект, который получает сигнал, но не имеет описывающего его автомата, по­просту проигнорирует этот сигнал. Автоматы применяются также для модели­рования систем в целом, в особенности реактивных (см. главу 24), то есть таких, которые должны отвечать на сигналы от внешних актеров (см. главу 16).

Примечание Обычно для моделирования поведения прецедента (см. главу 16) ис­пользуются взаимодействия (см. главу 15), но можно применять и автоматы. Последние пригодны также для моделирования поведе­ния интерфейса (см. главу 11). Хотя у интерфейса не может быть непосредственных экземпляров, их может иметь класс, реализующий этот интерфейс. Поведение такого класса должно соответство­вать поведению, специфицированному автоматом для интерфейса.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]