Вы находитесь на странице: 1из 11

Лабораторная работа № 2

Диаграмма классов описывает типы объектов системы и различного рода


статистические отношения, которые существуют между ними. На диаграмме классов
изображаются атрибуты классов, операции классов и ограничения, которые
накладываются на связи между классами. Она заполняется на основе составленных
вариантов использования информационной системы.
Используем архитектурный паттерн Model-View-Controller (MVC).
Класс «device» имеет стереотип «entity» (так как относится к модели данных), и
имеет следующие атрибуты –
– iddevice (Номер станка, тип: целый);
– modelDevice (Модель станка, тип: строка);
– typeDevice (Тип станка, тип: строка);
– beginofworkingDevice (Дата ввода в эксплуатацию, тип: дата);
– endofworkingDevice (Дата списания станка, тип: дата);
– operationallifeDevice (Эксплуатационный срок, тип: целый).
Так же класс имеет соответствующие геттеры (методы для считывания данных из
созданных атрибутов, так как атрибуты у класса обычно делают приватными, о чем
свидетельствует знак «-» напротив каждого атрибута. В результате в классе появятся
публичные операции, что показывает знак «+» перед каждым геттером) и конструкторы
(один из них без аргументов и инициализирующий атрибуты значениями по умолчанию,
другой с аргументами для каждого атрибута, они также являются публичными). Данный
класс представлен на рисунке 2.

Рисунок 2 – Класс «device»


Следуя такому же алгоритму, создадим ещё 8 классов со стереотипом «entity»:
«component», «warehouse», «Waybill», «Repairer», «User», «autorization» и «Database».
Также создадим класс «Role» cо стереотипом «enum» в котором будут перечислены роли
пользователя. Рассмотрим указанные класссы подробнее.
Класс «component» (Комплектующая к станку) имеет следующие атрибуты:
idcomponent (Номер комплектующей к станку, тип: целый);
modelComponent (Модель комплектующей к станку, тип: строка);
device (Станок, частью которого является комплектующая, тип: станок);
warehouse (Склад, на котором хранится комплектующая, тип: Склад);
statusComponent (Статус комплектующей (используется в станке=истина,
находится на складе = ложь), тип: логический);
Так же класс имеет соответствующие геттеры и конструкторы. Описанный класс
представлен на рисунке 3.

Рисунок 3 – Класс «component»


Класс «warehouse» (Склад) обладает следующими атрибутами:
idWarehouse (Номер склада; тип: целый);
addressWarehouse (Адрес склада, тип: строка);
areaWarehouse (Занимаемая площадь, тип: целый).
Также класс имеет соответствующие геттеры и конструкторы. Класс представлен
на рисунке 4.
Рисунок 4 – Класс «warehouse»
Класс «Repairer» (Ремонтник) имеет следующие атрибуты:
idRepairer (Номер ремонтника, тип: целый);
fioRepairer (Фамилия И.О. ремонтника).
Также класс имеет соответствующие геттеры и конструкторы. Класс представлен
на рисунке 5.

Рисунок 5 – Класс «Repairer»


Класс «Waybill» имеет следующие атрибуты –
idWaybill (номер накладной, тип: Целый);
warehouse (Склад, на котором хранится комплектующая, указанная в накладной,
тип: склад);
dateWaybill(Дата накладной, тип: дата);
component (Комплектующая деталь, указываемая в накладной, тип:
Комплектующая);
priceondate (Цена комплектующей детали на дату, указываемую в накладной; тип:
целый);
Repairer (Ремонтник, который будет ставить свою роспись в накладной, тип:
Ремонтник).
Также класс имеет соответствующие геттеры и конструкторы. Указанный класс
представлен на рисунке 6
Рисунок 6 – Класс «Waybill»
Класс «Role» (Роль) имеет стереотип перечисления, так как в нем перечислены
роли доступа для пользователя системы. Он содержит в себе два объекта:
Administrator(Администратор) и Checkman (Учётчик). Указанный класс представлен на
рисунке 7.

Рисунок 7 – Класс «Role»


Класс «User» (Пользователь системы) содержит в себе следующие атрибуты:
loginUser (Логин пользователя, тип: строка);
passwordUser (Пароль пользователя, тип: строка);
roleUser (Роль пользователя, тип: Роль);
idUser (Номер пользователя, тип: целый).
Также класс имеет соответствующие геттеры и конструкторы и представлен на
рисунке 8.

Рисунок 8 – Класс «User»


В классе «autorization» представлен атрибут «user» (Пользователь, проходящий
авторизацию; Тип: Пользователь).
Так же в нём представлена операция «authorization» (Проверка логина и пароля
пользователя, тип: логический). Данный класс представлен на рисунке 9.

Рисунок 9 – Класс «autorization»


Класс «Database» имеет атрибут conn (Подключение к базе данных, тип:
подключение к базе данных).
Указанный класс содержит в себе операции
добавления/удаления/изменения/получения списка комплектующих, станков,
пользователей, складов. Также данный класс имеет операцию
добавления/удаления/получения списка ремонтников и операцию создания накладной.
Данный класс представлен на рисунке 10.
Рисунок 10 – Класс «Database»
Так как в качестве архитектурного паттерна используется MVC, создадим
граничные классы со стереотипом «boundary»: «LoginView» (представление авторизации),
«AdminView» (представление администратора), «CheckmanView» (представление
учётчика), «deviceView» (представление станков), componentView (представление
комплектующих к станкам), repairerView (представление ремонтников), «warehouseView»
(представление складов) и «GenerateWaybillView» (представление генерации накладной).
Также создадим класс контроллера со стереотипом «control» «Controller», который
представляет собой связующее звено между представлением и моделью. Рассмотрим
указанные классы детальнее.
Граничный класс «LoginView» имеет следующие атрибуты: Кнопка авторизации,
поле ввода для логина и пароля. Данный класс представлен на рисунке 11.

Рисунок 11 – Граничный класс «LoginView»


Граничный класс «AdminView» содержит в себе атрибуты: Таблица со всеми
пользователями системы, поля ввода для логина, пароля и роли пользователей, кнопки
добавления, изменения и удаления пользователя. Данный класс представлен на рисунке
12.
Рисунок 12 – Граничный класс «AdminView»
Граничный класс «CheckmanView» содержит в себе атрибут виджета вкладок,
отображающий в каждой вкладке соответствующие представления («deviceView»,
«componentView», «repairerView», «warehouseView»). Указанный класс представлен на
рисунке 13.

Рисунок 13 – Граничный класс «CheckmanView»


Граничный класс «deviceView» содержит следующие атрибуты: Таблица для
станков; Поля ввода для номера, модели, типа, эксплуатационного срока станка; Поля
выбора даты для дат ввода в эксплуатацию и списания станка; Кнопки добавления,
изменения, удаления станков. Указанный класс представлен на рисунке 14.

Рисунок 14 – Граничный класс «deviceView»

Граничный класс «warehouseView» содержит следующие атрибуты: Таблица


складов; Поля ввода для номера, адреса, занимаемой площади, а также кнопки
добавления, изменения, удаления склада. Указанный класс представлен на рисунке 15.
Рисунок 15 – Граничный класс «warehouseView»
Граничный класс «componentView» содержит следующие атрибуты: Таблица для
комплектующих к станкам; Поля ввода для номера, модели, станка и склада
комплектующих к станкам; Кнопки добавления, изменения, удаления комплектующих к
станкам; Кнопка для перехода в представление генерации накладной. Указанный класс
представлен на рисунке 16.

Рисунок 16 – Граничный класс «componentView»

Граничный класс «repairerView» содержит следующие атрибуты: Поля ввода для


номера, ФИО, а также кнопки для добавления/удаления ремонтник. Указанный класс
представлен на рисунке 17.

Рисунок 17 – Граничный класс «repairerView»


Граничный класс «GenerateWaybillView» имеет следующие атрибуты: Поля ввода
для склада, ремонтника, комплектующей к станку, цены на дату формирования
накладной; Поле выбора даты формирования накладной; Кнопка формирования
накладной. Данный класс представлен на рисунке 18.

Рисунок 18 – Граничный класс «GenerateWaybillView»


Класс контроллера «Controller» имеет следующие атрибуты: db, login_v, admin_v,
checkman_v, genway_b, dev_v, comp_v, wareh_v, rep_v связывают контроллер с моделью и
представлениями. Model – предоставляет редактируемую модель данных для одной
таблицы базы данных.
Операторы класса: все операторы вида slot*() являются обработчиками событий
нажатия на соответствующие кнопки в представлениях, оператор initialize() отвечает за
инициализацию контроллера.
Данный класс представлен на рисунке 19.
Рисунок 19 – Класс контроллера «Controller»
После создания всех элементов классовой диаграммы расставляем отношения
между классами.
Между классами Controller и Databese, Controller и LoginView, AdminView,
CheckmanView, GenerateWaybillView, deviceView, warehouseView, repairerView,
componentView отношения направленной ассоциации, поскольку в классе контроллер
присутствуют атрибуты типа Datebase, LoginView, AdminView, CheckmanView,
GenerateWaybillView, deviceView, warehouseView, repairerView, componentView.
Отношение зависимости указано между классами Database и device, component,
authorization, warehouse, waybill, user, repairer и между классами Controller и device,
component, authorization, warehouse, waybill, user, repairer – поскольку в методах классов
Database, Controller будут использованы классы authorization, warehouse, waybill, user,
repairer. Отношение композиции: User и Role, множественность: * к 1.

Вам также может понравиться