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

Часть IV. Основы моделирования поведения Глава 15. Взаимодействия

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

Взаимодействия применяют для моделирования динамических аспектов ко­операций (Collaborations). Последние представляют собой сообщества играющих определенные роли объектов, совместное поведение которых более значимо, чем сумма его слагаемых. Роли (Roles) - экземпляры-прототипы классов, интерфей­сов, компонентов, узлов и прецедентов, динамические аспекты которых визуали-зируются, специфицируются, конструируются и документируются в виде потоков управления. Это могут быть простые последовательные вычислительные потоки или более сложные, включающие ветвления, циклы, рекурсию и параллелизм. Каж­дое взаимодействие можно моделировать двумя способами: акцентируя внимание на временной упорядоченности сообщений или на их последовательности в контек­сте некоей структурной организации объектов.

Хорошо структурированные взаимодействия похожи на хорошо структуриро­ванные алгоритмы - они эффективны, просты, понятны и пригодны для адапта­ции к различным задачам.

Введение

Каждое здание живет своей жизнью. Хотя дома конструируют из статичес­ких материалов (кирпичей, известкового раствора, дерева, пластика, стекла, стали), в процессе эксплуатации жилища совокупность этих объектов работает в дина­мике, реализуя поведение, призванное обеспечить удобство жильцов (см. главу 1). Двери и окна открываются и закрываются; свет включается и выключается; кон­диционеры, отопление, термостаты и вентиляционые отверстия поддерживают требуемую температуру. В некоторых помещениях устанавливаются даже специ­альные детекторы, регулирующие освещение, обогрев и громкость музыки в за­висимости от наличия или отсутствия людей. Дома строятся так, чтобы облегчить перемещение людей и вещей из одной комнаты в другую. При проектировании зданий учитываются суточные и сезонные перепады температур, из-за которых материалы сжимаются и расширяются. Хорошо спроектированные здания реаги­руют и на динамические нагрузки, так что при ветре, землетрясении или передви­жении жильцов строение сохраняет равновесие.

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

В UML статические аспекты системы (см. части 2 и 3 этой книги) моделируют­ся с помощью диаграмм классов или диаграмм объектов (см. главу 14). Они позво­ляют визуализировать, специфицировать, конструировать и документировать сущ­ности, входящие в состав системы, включая классы, интерфейсы, компоненты, узлы, прецеденты и их экземпляры, а также способы их взаимодействия друг с другом.

Динамические аспекты системы в UML моделируются с помощью взаимодей­ствий (а также с помощью автоматов - см. главу 21). Подобно диаграммам объек­тов, диаграммы взаимодействия (см. главу 18) готовят статическую сцену, на ко­торой затем будет «разворачиваться» некоторое поведение, выводя на эту сцену объекты, работающие совместно ради выполнения определенного действия. Но в диаграммах взаимодействия, помимо всего прочего, фигурируют и сообщения, передаваемые между объектами. Чаще всего сообщение (Message) сводится к вы­зову операции или посылке сигнала, но оно может также создавать и уничтожать другие объекты.

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

Графическое изображение сообщений в UML показано на рис. 15.1. Эта нотация позволяет визуализировать основные составные части сообщений: их имена, пара­метры (если таковые имеются) и последовательность. Сообщения представляют в виде линии со стрелкой и почти всегда добавляют название соответствующей операции.

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