
- •Изучение объектно-ориентированного подхода к проектированию информационных систем
- •1.1 Методологии разработки и проектирования ис
- •1.3 Основы языка uml
- •1.3.1 Диаграмма вариантов использования
- •1.3.2 Диаграмма классов
- •1.3.3 Диаграммы кооперации и последовательности
- •1.3.4 Диаграммы состояний и деятельности
- •1.3.5 Диаграммы компонентов и развертывания
- •2.1 Глоссарий
- •2.2 Концептуальная модель системы
- •2.2.1 Диаграмма вариантов использования
- •2.2.2 Диаграмма классов
- •2.3 Анализ поведения системы
- •2.3.1 Диаграммы кооперации и последовательности
- •2.3.2 Диаграммы состояний и деятельности
- •2.4 Физическая модель
2.2.2 Диаграмма классов
Для построения диаграммы классов создадим их иерархию.
За координацию действий других классов системы управления турникетом отвечает управляющий класс «Контроллер турникета».
Выделим так называемые пограничные классы – устройства турникета, которые непосредственно взаимодействуют с пассажиром: «Устройство чтения карточки», «Устройство индикации прохода», «Устройство подачи звуковых сигналов», «Датчики движения», «Устройство перекрывания доступа», «Таймер». Перечислим их атрибуты и опреации (Таблицы 5-14).
Таблица 5 - Операции класса «Устройство чтения карточки»
прочитать идентификатор карточки() |
Каждая карточка метрополитена имеет уникальный идентификатор. Устройство чтения считывает идентификатор, передает на контроллер метро, где устанавливается действительность карточки. |
вернуть карточку() |
Возвращает карточку пассажиру как в случае успешного прохода через турникет, так и в случае недействительности карты. |
Таблица 6 - Операции класса «Устройство индикации прохода»
зажечь индикатор «Проход»() |
Загорается, когда пассажиру открывается доступ в метро. |
зажечь индикатор «Стоп»() |
Горит, когда турникет находится в обычном состоянии (закрытый доступ). |
Таблица 7 - Операции класса «Устройство подачи звуковых сигналов»
подать предупредительный звуковой сигнал() |
Подает звуковой сигнал, когда открывается доступ в метро. |
Таблица 8 - Операции класса «Датчики движения»
определить проход пассажира() |
Все три датчика движения регистрируют проход пассажира через турникет. |
послать сигнал о проходе() |
Датчики посылают сигнал о проходе(принимается сигнал только от одного датчика). |
Таблица 9 - Операции класса «Устройство перекрывания доступа»
открыть доступ() |
Открывает доступ в метро в случае успешной транзакции. |
перекрыть доступ() |
Перекрывает доступ в случае истечения 5 секунд или прохода пассажира (обычное состояние турникета). |
Таблица 10 - Операции класса «Таймер»
отсчитывать 5 секунд() |
После списания единицы с карты открывается доступ в метро и запускается таймер, отсчитывающий 5 секунд (время, отведенное на проход пассажира). |
фиксировать время прохода() |
Таймер фиксирует время прохода каждого пассажира, чтобы в конце дня передать информацию в АСУ метрополитена. |
Нам понадобится класс-сущность «Транзакция турникета», который создается классом «Контроллер турникета», в нем в течение всего времени работы турникета хранится необходимая информация.
Таблица 11 - Атрибуты класса «Транзакция банкомата»
идентификатор карточки |
Уникальный номер карточки метрополитена, по которому устанавливается ее действительность. |
Integer |
количество единиц |
Личный баланс пассажира, с которого за каждый проход списывается одна единица. |
Integer |
срок годности |
Каждая каточка действительна только в определенный период времени. |
Date |
время прохода |
Фиксируется таймером для учетности, передается в АСУ метрополитена. |
Date |
Таблица 12 - Операции класса «Транзакция банкомата»
создать новую транзакцию() |
Создает новую транзакцию. |
закрыть транзакцию() |
Закрывает транзакцию. |
Так как каждый турникет связан с главной программой управления метро, добавим два класса типа интерфейс: «Контроллер метрополитена» и «АСУ метрополитена».
Таблица 13 - Операции класса «Контроллер метрополитена»
проверить идентификатор карточки(идентификатор карточки : Integer) |
Идентификатор карточки проверяется на подлинность. |
проверить количество единиц(количество единиц : Integer) |
Проверяет, остались ли единицы на балансе клиента. |
проверить срок годности(срок годности : Date) |
Проверяет, не вышел ли срок действия карты. |
уменьшить количество единиц на 1(количество единиц : Integer) |
За каждый проход через турникет с пассажира взимается плата в 1 единицу. |
Таблица 14 - Операции класса «АСУ метрополитена»
принять информацию о времени проходов за день (время прохода : Date) |
В конце дня турникет отправляет информацию о всех проходах пассажиров. |
После добавления всех классов на диаграмму и установления связей между ними диаграмма будет иметь вид, представленный на рисунке 2
Рисунок 2 - Диаграмма классов для модели управления турникетом