Диаграмма классов описывает типы объектов системы и различного рода
статистические отношения, которые существуют между ними. На диаграмме классов изображаются атрибуты классов, операции классов и ограничения, которые накладываются на связи между классами. Она заполняется на основе составленных вариантов использования информационной системы. Используем архитектурный паттерн 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.
Простой подход к фундаментальному инвестиционному анализу: Вводное руководство по методам фундаментального анализа и стратегиям предвидения событий, которые движут рынками
Руководство по рекламе Google: Вводный путеводитель по самой известной и популярной рекламной программе в сети: основная информация и ключевые моменты, которые необходимо знать
Простой подход к техническому анализу инвестиций: Как построить и интерпретировать графики технического анализа, чтобы улучшить вашу активность в онлайн-торговле