Диплом: Автоматизация управления поставками для ООО «Альфа Тренд»

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
67
Таблица 15
Таблица Пользователи (user)
Наименование поля
Идентификатор поля
Тип поля
Длина
поля
Прочее
Код пользователя
id
int
4
AI, PK
ФИО
fio
varchar
120
Логин
login
varchar
120
Email
email
varchar
120
Администратор
caption
boolean
1
Пароль
password
varchar
120
Дата создания записи
createdat
datetime
10
Дата последнего
изменения записи
modifiedat
datetime
10
SQL-скрипт для создания базы данных приведен в приложении 1.
2.3.3. Структурная схема пакета (дерево вызова программных
модулей)
Популярность языка php обусловила появление большого числа
фреймворков для него. Фреймворк это программная платформа, определяющая
общую внутреннюю структуру программного обеспечения. Фреймворки создают
для того, чтобы облегчить разработку ПО, т.к. большая часть стандартных для
систем функций там в том или ином виде уже реализована.
Для написания программного использовался язык php. Для ускорения
разработки было решено использовать фреймворк Symfony 2. Данный
фреймворк работает с подходом к программированию, называемый Model-view-
controller (MVC, «модель-представление-контроллер», «модель-вид-
контроллер»).
Основная идея данного подхода заключается в разделении данных, их
представлениях и обработку действий пользователей на три больших группы:
Модель (англ. Model). Модель предоставляет знания: данные и
методы работы с этими данными, реагирует на запросы, изменяя своё состояние.
Объекты данной группы не содержит информации, как эти знания можно
визуализировать.
Представление, вид (англ. View). Отвечает за отображение
информации (визуализацию). Часто в качестве представления выступает форма
68
(окно) с графическими элементами. Главная задача представить информацию,
хранимой в модели в виде, воспринимаемым пользователем.
Контроллер (англ. Controller). Обеспечивает связь между
пользователем и системой: контролирует ввод данных пользователем и
использует модель и представление для реализации необходимой реакции.
Важно отметить, что как представление, так и контроллер зависят от
модели. Однако модель не зависит ни от представления, ни от контроллера. Тем
самым достигается назначение такого разделения: оно позволяет строить модель
независимо от визуального представления, а также создавать несколько
различных представлений для одной модели.
Общая схема архитектуры информационной системы согласно данной
парадигмы изображена на рисунке 20.
MODEL (Модель)
VIEW
(Представление)
CONTROLLER
(Контр ол ер)
USER
Отображение
Воз дейст вие
Управление
Об но вл ен ия
Рисунок 20Архитектура комплекса (Model-view-controller)
Каждый контролер обрабатывает запросы, отправляемые по
соответствующему маршруту, общая схема взаимодействия программных
модулей (дерево вызова программных модулей) приведена на рисунке 21.
69
GeneralController.php
ParentCntroller.php
SecurityController.php
ParentEnti ty.php
LoginForm.php
Delivery.php
Sp ravControll er.php
User.php
UserForm.php
DeliveryForm.php
Sp ravForm .php
Car.php
DeliveryT ableForm.php
CarType.php
CarDriver.php
Int erval.php
Рисунок 21Общая схема взаимодействия программных модулей
То есть при переходе по определенному адресу, принадлежащему
информационной системе, вызывается соответствующая функция-обработчик
вызванного маршрута. Если такого маршрута не существует, или пользователю
запрещен к нему доступ, то вызывается обработчик исключению, который
показывает пользователю сообщение об ошибке. Большинство функций-
обработчиков маршрутов выполняют действия по запросу информации из базы
данных (а точнее у классов модели данных), производят над ними необходимые
действия и отображают результат выполнения этих действий в виде страниц
сайта (представления).
В таблице 16 приведен список программных модулей, а также краткое
описание назначение класса, который этот модуль описывает (каждый класс
описывается в отдельном файле).
Таблица 16
Программные модули системы
Название
Описание
ParentEntity.php
Родительский класс для всех моделей
Car.php
Класс модели, содержащий атрибуты и методы для
работы с объектом автомобиля
Driver.php
Класс модели, содержащий атрибуты и методы для
работы с объектом водителя
Delivery.php
Класс модели, содержащий атрибуты и методы для
работы с объектом поставки
Cardriver.php
Класс модели, содержащий атрибуты и методы для
работы с объектом связи водителей и автомобилей
Cartype.php
Класс модели, содержащий атрибуты и методы для
работы с объектом типа втомобиля
User.php
Класс модели, содержащий атрибуты и методы для
работы с объектом пользователя
Interval.php
Класс модели, содержащий атрибуты и методы для
70
работы с объектом интервала поставки
ParentContoller.php
Родительский класс контроллера для всех остальных
контроллеров, содержит общие методы
SpravController.php
Класс контроллера для реализации работы со
справочниками
SecurityController.php
Класс контроллера для реализации авторизации и
выхода из системы, разделения прав пользователей
GeneralController.php
Класс контроллера для организации работы с
поставками
SpravForm.php.php
Форма работы со справочниками
UserForm.php
Форма работы с данными пользователем
LoginForm.php
Форма авторизации
DeliveryForm.php
Форма работы с поставкой
DeliveryTableForm.php
Форма для отображения расписания поставок
2.3.4. Описание программных модулей
Для разработки информационной системы автоматизации управления
поставками использован объектно-ориентированный подход.
Главная особенность объектно-ориентированного программирования
(ООП) заключается в том, что при использовании этого метода происходит
оперирование объектами. Под объектом в программировании понимается
совокупность свойств, методов их обработки и событий, на которые данные
объект может реагировать. Под свойствами объекта обычно понимают
структуры данных, характерные для данного объекта, или другими словами –
набор свойств характеризуют какой-либо объект. Метод это способ влияния на
свойства объекта, обычно используют два метода установка какому-то
свойству определенного значения, и считывание значения этого свойства.
Инкапсуляцией называют объединение данных и процедур в одном
объекте. Инкапсуляция один из ключевых принципов ООП.
Еще одним фундаментальным понятием ООП является класс.
Классом называют шаблон, на основе которого создается конкретный
программные объект. То есть в классе описаны все свойства и методы,
определяющие поведение каждого объекта, созданного на основе этого класса.
Также принято каждый объект, созданный на основе класса называть
экземпляром этого класса.
Следующими важнейшими принципами ООП являются наследование и
полиморфизм.
71
Наследование такая организация классов, которая подразумевает
создание новых классов на базе существующих и позволяет классу потомку
иметь (наследовать) все свойства класса – родителя.
Полиморфизм означает, что рожденные объекты обладают
информацией о том, какие методы они должны использовать в зависимости от
того, в каком месте цепочки (дерева классов) они находятся, иными словами это
концепция, реализующая «множество методов в одном интерфейсе».
Другим важнейшим принципом ООП является модульность.
Под модульностью понимают такую организацию объектов, при
которого каждый объект заключает в себе полное описание своих характеристик
(свойств, методов). Это позволяет свободное копирование объектов (модулей) и
внедрение одного объекта в другие.
На основе объектно-ориентированной парадигмы выросла объектно-
событийная парадигма (методология). Эта парадигма позволяет конструировать,
программировать распределенные вычислительные среды, в том числе среды
реального времени, SCADA и пр.
Событием в объектно-ориентированном программировании называют
сообщение, которое возникает в различных местах исполняемого программного
кода при выполнении определенных условий. Главное назначение события –
возможность предусмотреть реакцию создаваемого программного продукта. Для
решения такой задачи существуют обработчики событий. То есть, как только
программа попадает в предопределенное состояние (возникает событие), то
соответствующего обработчику отправляется сообщение. В общем случае в
обработчик не передаётся ничего, либо передаётся ссылка на объект,
инициировавший (породивший) обрабатываемое событие. В особых случаях в
обработчик передаются значения некоторых переменных или ссылки на какие-то
другие объекты, чтобы обработка данного события могла учесть контекст
возникновения события. Самое простое событие - это событие, сообщающее о
начале или о завершении некоторой процедуры.
Первый ряд примеров событий доставляет собственно сам жизненный
цикл объекта:
создание объекта;
72
уничтожение объекта.
Каждый программный модуль, представленный в таблице 15 описывают
определенные классы. Классы модели описывают модель данных, фактически
повторяя структуру соответствующих таблиц базы данных.
Каждому полю таблицы БД соответствует свойство класса. В методы
классов Model включают обычно по два метода на каждое свойство (методы get
и set).
Классы Контроллеры отвечают за обработку запросов, присылаемых к
ИС пользователями с помощью соответствующих форм пользовательского
интерфейса.
В качестве примера обработки запроса на рисунке 22 представлен
алгоритм обработки запроса авторизации пользователя в системе.
Начало
Создание экземпляра класса
Logi nFo rm
Проверка наличия у посетителя
активной сессии авторизации
Переадресация на главную
страницу ИС (маршрут Ind ex,
контроллер
GeneralController.php)
Сессия име ется
Сессии не имеется
Переадресация на главную страницу
ИС (маршрут I nd ex, контроллер
GeneralController.php)
Кон ец
Форма была отправлена?
Да
Отправ ка запроса к модели
данных на выборку
информации о пользоват еле,
чей логин совпадает с
введенным
Создание сессии авторизации
Соз дание
представления на
основе шаблона
login.html.twi g
Отображение
страницы
авторизации
пользователю
НЕТ
Пароль верный?
ДА
НЕТ
От обр аж ени е
сообщения об
ошибке
73
Рисунок 22Алгоритм обработки авторизации пользователя в системе
Процедура актуализации базы данных также периодически запускается в
автоматическом режиме.
Исходный код программных модулей приведен в приложении 2.
2.4. Контрольный пример реализации проекта и его описание
Для того, чтобы начать работу с информационной системой необходимо
пройти авторизацию с помощью специальной формы (Рисунок 23).
Рисунок 23 – Форма авторизации
После успешного прохождения авторизации открывается домашняя
страница ИС, на которой расположены элементы для перехода к
соответствующим разделам: справочники, поставки, маршрутные листы
(Рисунок 24).
Рисунок 24 – Домашняя страница
При переходе в раздел справочников предоставляется возможность
выбора справочника, с которым необходимо работать (Рисунок 25).
74
Рисунок 25 – Страница выбора справочника
Работа со всеми справочниками строит по одному сценарию. После
выбора справочника открывается список всех имеющихся записей в справочнике
в виде таблицы. Колонками в таблице являются характеристики записей, а
строками сами записи. Последняя колонка отведена под кнопки, нажатие на
которые позволяет управлять соответствующей записью: изменить или удалить
её. Кнопка добавления новой записи в справочник расположена над таблицей
(Рисунок 26).
Рисунок 26Страница работы со справочником
Для каждого справочникам форма работы с записью (добавление или
редактирование) имеет свой набор полей. Обязательные для заполнения поля
помечены символом «*». Форма для работы с данными водителя изображена на
рисунке 27.
75
Рисунок 27Форма для работы с данными водителя
Второй раздел информационной системы работа с поставками. После
перехода в данный раздел открывается расписание поставок на текущую неделю.
Над расписанием расположена кнопка для открытия формы добавления новой
поставки (Рисунок 28).
Рисунок 28 – Список поставок
При нажатии на кнопку «Добавить поставку» открывается форма для
добавления поставки (Рисунок 29).
76
Рисунок 29Форма для добавления поставки
Для того, чтобы начать формирование маршрутных листов необходимо
открыть соответствующий раздел. После перехода открывается форма для
выбора водителя и даты, на которую нужно сформировать маршрутный лист
(Рисунок 30).

Смотрите также:

"Автоматизация обработки заявок ООО "Проектно-Строительная Компания"
"Автоматизация процесса аттестации персонала для ООО "Нэт Бай Нэт Холдинг"
"Анализ интернет-активности конкурентов ( на примере конкурентов "Газпром нефть")
"Бухгалтерский учёт и аудит расчётов с подотчётними лицами в организации на примере ООО "ЛОЦ 10""
«Психологическое сопровождение персонала в организации на примере ООО «Крокус»
Cовершенствование деловой оценки персонала в организации (на примере ООО "Даймонд кейтеринг развитие")
IPO - инструмент финансирования деятельности организации. На примере ПАО «Нефтяная компания «Лукойл»
PR как средство продвижения организации (на примере ПАО "Тамбовский завод "Комсомолец им. Н.С. Артемова")
PR-коммуникации в сфере общественного питания (на примере кафе-кондитерской «Cream Cheese»)
SMM как средство повышения эффективности работы учреждений социокультурной сферы (на примере Малого театра)