double arrow
Статическая модель предметной области

В статической модели отражаются статические отношения, существующие в системе управления лифтами. Для начала рассмотрим физические классы предметной области (рис.3). Лифт - это составной класс, содержащий один Мотор, одну Дверь, n Кнопок Лифта и n Лампочек Лифта. Этаж - это тоже составной класс, включающий Кнопку Этажа и Лампочку Этажа. Обычно имеется по два экземпляра каждого объекта (для двух направлений), но на нижнем и верхнем этажах есть лишь по одной лампочке и кнопке.

 

Рис.3. Концептуальная статическая модель системы управления лифтами

 

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


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

 

Рис.4. Диаграмма контекста классов для системы управления лифтами

Разбиение на объекты

Чтобы подготовиться к динамическому моделированию, рассмотрим программ­ные объекты в системе управления лифтами. Объект Лифт составлен из несколь­ких объектов. Поскольку он получает информацию от внешних объектов и управ­ляет внешними объектами, то некоторые его компоненты - это объекты интерфейса устройств ввода/вывода, а именно датчиков и приводов лифта.




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



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

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

 

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

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

 






Сейчас читают про: