Студопедия — Динамическая модель
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Динамическая модель






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

 

5.1. Диаграмма кооперации для прецедента «Выбор Этажа Назначения»

Диаграмма кооперации для прецедента Выбор Этажа Назначения изображена на рис.5. Поскольку Запрос Кнопки Лифта может поступить в момент, ког­да лифт (точнее, объект Управление Лифтом) занят обслуживанием предыдуще­го запроса, то ответственность за его обработку возлагается на объект Диспетчер Лифта. Последовательность сообщений описывается следующим образом:

Е1: Поступил Запрос Кнопки Лифта объекту Интерфейс Кнопки Лифта.

Е2: Интерфейс Кнопки Лифта посылает Запрос Лифта объекту Диспетчер Лифта.

Е3: Диспетчер Лифта просит объект Состояние и План Движения Лифта добавить запрос в список этажей, которые нужно посетить.

Е4: Обновляется план движения лифта. Объекту Диспетчер Лифта возвра­щается подтверждение.

Е5: Объект Диспетчер Лифта отправляет Планировщику сообщение Обя­зательство Лифта, информирующее о том, что лифт собирается заехать на данный этаж.

Е5а: Если лифт стоит, то Диспетчер Лифта посылает сообщение Вверх (или Вниз) объекту Управление Лифтом, извещающее, в каком направлении ехать. Этот случай обрабатывается в абстрактном прецеденте Отправить Лифт.

 

Рис.5. Диаграмма кооперации для прецедента Выбор Этажа Назначения

 

5.2. Диаграмма кооперации для прецедента «Вызов Лифта»

Диаграмма кооперации для прецедента Вызов Лифта изображена на рис.6. Поскольку вызов поступает от кнопки этажа, нужно решить, какой лифт обслу­жит запрос. Решение принимается Планировщиком, у которого есть информация о состоянии (месте нахождения и направлении движения каждого лифта) и план (список этажей, которые каждый лифт обязан посетить). Вот описание последовательности сообщений:

F1: Поступил Запрос Кнопки Этажа объекту Интерфейс Кнопки Этажа.

F2: Объект Интерфейс Кнопки Этажа посылает Запрос на Обслуживание объекту Планировщик.

F3: Планировщик выбирает лифт и передает Запрос Планировщика объекту Диспетчер Лифта, входящему в состав выбранного Лифта.

F4: Объект Диспетчер Лифта отправляет сообщение Обновить объекту Со­стояние и План Движения Лифта, чтобы тот добавил новый запрос в список этажей, которые должен посетить лифт.

F5: Объекту Диспетчер Лифта возвращается подтверждение, где, в частно­сти, содержится информация о том, стоит лифт или движется.

F6: Объект Диспетчер Лифта посылает Планировщику сообщение Обяза­тельство Лифта.

F6a: Если лифт стоит, то Диспетчер Лифта посылает сообщение Вверх (или Вниз) объекту Управление Лифтом, извещающее, в каком направлении ехать. Этот случай обрабатывается в абстрактном прецеденте Отправить Лифт.

 

Рис.6. Диаграмма кооперации для прецедента Вызов Лифта

5.3. Диаграмма кооперации для прецедента «Остановка Лифта на Этаже»

Поскольку прецедент Остановка Лифта на Этаже зависит от состояния, он изображается одновременно на диаграмме кооперации (рис.7) и на диаграм­ме состояний (рис.8). Состояния, в которые переходит объект, перечислены в описании последовательности сообщений ниже; предусловие состоит в том, что лифт находится в состоянии Лифт Движется:

А1: Объект Интерфейс Датчика Прибытия получает информацию от внешнего устройства.

А2: Интерфейс Датчика Прибытия посылает номер этажа в сообщении Подходит к Этажу объекту Управление Лифтом.

A3: Объект Управление Лифтом отправляет сообщение Проверить Этот Этаж объекту Состояние и План Движения Лифта, который проверяет, дол­жен ли лифт остановиться на этаже, к которому он подходит.

А4: При подходе лифта к этажу, где надо сделать остановку, объект Состояние и План Движения Лифта передает сообщение Приближаюсь к Нужному Этажу объекту Управление Лифтом. В сообщении содержится номер этажа и направление дальнейшего движения. Получив такое сообщение, объект Управ­ление Лифтом переходит из состояния Лифт Движется в состояние Лифт Останавливается.

 

Рис.7. Диаграмма кооперации для прецедента Остановка Лифта на Этаже

Рис.8. Прецедент Остановка Лифта на Этаже: диаграмма состояния объекта Управление Лифтом

 

А5: В результате перехода в состояние Лифт Останавливается объект Управление Лифтом отдает объекту Интерфейс Мотора команду Стоп.

А5а (параллельная последовательность): Объект Управление Лифтом посы­лает объекту Интерфейс Лампочки Направления сообщение Включить Лампочку Направления (с параметром «вверх» или «вниз»), которое зажи­гает лампочку (А5а.1).

А6: Объект Интерфейс Мотора приказывает физическому мотору Остано­вить Мотор.

А7: Объект Интерфейс Мотора передает команду Лифт Остановлен объек­ту Управление Лифтом, который переходит в состояние Открывается Дверь Лифта.

А9: При переходе в состояние Открывается Дверь Лифта объект Управле­ние Лифтом посылает объекту Интерфейс Двери команду Открыть Дверь.

А9а (параллельная последовательность, так как с изменением состояния свя­зано четыре команды): Объект Управление Лифтом дает команду Выключить Лампочку Лифта объекту Интерфейс Лампочки Лифта, который посылает физической лампочке сообщение Вывод на Лампочку Лифта (А9а.1). Объект Управление Лифтом отправляет сообщение Прибыл объектам Состояние и План Движения Лифта (А9b, третья параллельная последовательность) и Планировщик (А9с, четвертая параллельная последовательность).

А10: Объект Интерфейс Двери командует физической двери Открыть Дверь.

А11: Объект Интерфейс Двери получает Ответ Двери.

А12: Объект Интерфейс Двери посылает сообщение Дверь Открыта объек­ту Управление Лифтом, который переходит в состояние Лифт на Этаже.

А13: Объект Управление Лифтом запускает таймер.

А14: По прошествии тайм-аута таймер генерирует сообщение, которое переводит объект Управление Лифтом в состояние Проверить Следующий Этаж Назначения.

А15: В результате перехода объект Управление Лифтом передает сообщение Проверить Следующий Этаж Назначения объекту Состояние и План Дви­жения Лифта. Его цель - выяснить, куда нужно ехать в случае изменения пла­на движения. Если у лифта нет невыполненных запросов, то он переходит в состояние Лифт Стоит (событие А16), в противном случае выполняется пре­цедент Отправить Лифт.

Заметим, что А9, А9а, А9b и А9с - параллельные последовательности, выпол­няемые в результате четырех выходных событий для одного и того же перехода. Порядок их реализации не детерминирован. Так, событие А9а.1 (следующее за А9а) может произойти как до, так и после события А10 (которое следует за А9). Обрати­те внимание, что главной последовательности суффикс (к примеру, A9d) не при­сваивается, поскольку это усложнило бы последующую нумерацию событий.

 

5.4. Абстрактный прецедент «Отправить Лифт»

На диаграмме кооперации для абстрактного прецедента Отправить Лифт на­чальные предусловия различаются в зависимости от того, в какой конкретный пре­цедент он включен. Сначала рассмотрим, как данный прецедент исполняется в со­ставе прецедента Остановка Лифта на Этаже. При входе в состояние Проверка Следующего Этажа Назначения объект Управление Лифтом посылает сообще­ние Проверить Следующий Этаж Назначения объекту Состояние и План Дви­жения Лифта (событие А16 на рис.8), который, в свою очередь, передает со­общение Запрос Вверх (или Запрос Вниз) объекту Управление Лифтом, информируя его о направлении, в котором собирается двигаться лифт. Это и есть первое событие в абстрактном прецеденте Отправить Лифт.

Во втором случае объект Управление Лифтом находится в состоянии Лифт Стоит. Диспетчер Лифта получает сообщение либо от планировщика (рис.6), либо от Интерфейса Кнопки Лифта (рис.5) с запросом посетить определен­ный этаж. Диспетчер Лифта посылает сообщение объекту Состояние и План Движения Лифта с просьбой обновить план. Если лифт занят обслуживанием запроса, то объект Состояние и План Движения Лифта возвращает сообщение Подтвердить с нулевым параметром. Если же лифт стоит, то объект Состояние и План Движения Лифта возвращает то же сообщение Подтвердить, но с пара­метром «вверх» (или «вниз»). В таком случае Диспетчер Лифта отправляет со­общение Запрос Вверх (или Запрос Вниз) объекту Управление Лифтом.

Поскольку сообщения Вверх и Вниз приходят объекту Управление Лифтом из разных источников, то в нижеследующем описании последовательности сооб­щений мы называем отправителя объектом-источником. Этот объект можно считать входным параметром для модели кооперации. В сценарии, изображенном на диаграмме кооперации, Запрос Вверх приходит от объекта Состояние и План Движения Лифта (рис.9).

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

Предусловие. Лифт находится в состоянии Лифт Стоит либо в состоянии Проверка Следующего Этажа Назначения.

D1: {Объект-источник} отправляет сообщение Запрос Вверх объекту Управление Лифтом, который переходит в состояние Дверь Закрывается перед Движением Вверх.

D2: В результате такого перехода возникают два параллельных выходных со­бытия. Объект Управление Лифтом посылает команду Закрыть Дверь объекту Интерфейс Двери. На диаграмме состояний событие Закрыть Дверь (как и другое выходное событие) показано в виде действия при выходе, посколь­ку событие Запрос Вверх может поступить либо из состояния Лифт Стоит, либо из состояния Проверка Следующего Этажа Назначения. Диаграмма состояний получится короче, если изобразить одно, а не два действия при вхо­де (по одному на каждый переход).

Рис.9. Диаграмма кооперации для прецедента Отправить Лифт

Рис.10. Прецедент Отправить Лифт: диаграмма состояния объекта Управление Лифтом

 

D2a (параллельная последовательность): Объект Управление Лифтом дает команду Выключить Лампочку Этажа «Вверх» объекту Интерфейс Лампоч­ки Этажа, который выключает физическую лампочку (D2a.l).

D3: Объект Интерфейс Двери командует физической двери Закрыть Дверь.

D4: Когда дверь закроется, она передаст Ответ Двери.

D5: Интерфейс Двери отправляет сообщение Дверь Закрыта объекту Управление Лифтом, который переходит в состояние Лифт Начинает Движение.

D6: Объект Управление Лифтом посылает команду Вверх объекту Интер­фейс Мотора.

D6a: Объект Управление Лифтом направляет запрос Выключить Лампочку Направления «Вверх» объекту Интерфейс Лампочки Направления, кото­рый выключает физическую лампочку (D6a.l).

D7: Объект Интерфейс Мотора приказывает реальному мотору Запустить Мотор.

D8: Как только лифт начинает движение вверх, мотор выдает сообщение От­вет Мотора.

D9: Объект Интерфейс Мотора посылает сообщение Лифт Поехал объекту Управление Лифтом, который переходит в состояние Лифт Едет.

D10: Объект Управление Лифтом отправляет сообщение Отбыл объектам Состояние и План Движения Лифта (D10) и Планировщик (Dl0a).

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

 







Дата добавления: 2015-09-19; просмотров: 945. Нарушение авторских прав; Мы поможем в написании вашей работы!



Шрифт зодчего Шрифт зодчего состоит из прописных (заглавных), строчных букв и цифр...

Картограммы и картодиаграммы Картограммы и картодиаграммы применяются для изображения географической характеристики изучаемых явлений...

Практические расчеты на срез и смятие При изучении темы обратите внимание на основные расчетные предпосылки и условности расчета...

Функция спроса населения на данный товар Функция спроса населения на данный товар: Qd=7-Р. Функция предложения: Qs= -5+2Р,где...

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

Сущность, виды и функции маркетинга персонала Перснал-маркетинг является новым понятием. В мировой практике маркетинга и управления персоналом он выделился в отдельное направление лишь в начале 90-х гг.XX века...

Разработка товарной и ценовой стратегии фирмы на российском рынке хлебопродуктов В начале 1994 г. английская фирма МОНО совместно с бельгийской ПЮРАТОС приняла решение о начале совместного проекта на российском рынке. Эти фирмы ведут деятельность в сопредельных сферах производства хлебопродуктов. МОНО – крупнейший в Великобритании...

Менадиона натрия бисульфит (Викасол) Групповая принадлежность •Синтетический аналог витамина K, жирорастворимый, коагулянт...

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

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

Studopedia.info - Студопедия - 2014-2024 год . (0.014 сек.) русская версия | украинская версия