Файл: Проектирование реализации операций бизнес-процесса. Планирование закупок и размещение заказов поставщикам.pdf
Добавлен: 31.03.2023
Просмотров: 70
Скачиваний: 1
Популярность языка в создании web-сайтов определяется наличием большого набора средств предназначенных на разработку web-приложений. Основные из них:
- автоматически извлекаемые GET и POST -параметров, а также переменных окружения веб-сервера в предопределённые массивы;
- взаимодействует с очень большим количеством разныхСУБД (MySQL, SQLite,MySQLi, Oracle (OCI8), PostgreSQL, Microsoft SQL Server и пр.);
- автоматическая отправка HTTP-заголовков;
- работает с HTTP-авторизацией;
- работает с сессиями и cookies;
- работает с удалёнными и локальными файлами, сокетами;
- обрабатывает файлы, загруженные на сервер;
В качестве системы управления базой данных была выбрана СУБД MySQL.
MySQL – разработка шведской компании MySQL AB. СУБД MySQL является программным обеспечением с открытым исходным кодом, распространяемым по лицензии GNU (GPL) и коммерческой лицензии для ситуаций, не подпадающих под действие лицензии GPL.
MySQL поддерживает реляционную модель данных, т. е. представляет собой реляционную СУБД.
Основные достоинства СУБД MySQL:
- Высокое качество – MySQL характеризуется устойчивой работой.
- Наряду с Oracle, MySQL считается одной из самых быстрых СУБД в мире.
- Открытый код доступен для просмотра и модернизации, что позволяет постоянно улучшать программный продукт.
- СУБД MySQL, разработанная с использованием языков C/C++, протестирована на многих платформах, среди которых Windows, Linux, FreeBSD, Mac OS X, OS/2, Solaris и др.
- MySQL поддерживает API (Application Programming Interface, программный интерфейс приложения) для С, C++, Eiffel, Java, Perl, PHP, Python, Ruby и Tcl. MySQL можно успешно применять как для построения Web-страниц с использованием Perl, PHP и Java, так и для работы прикладной программы, созданной с использованием Delphi, Builder C++ или платформы .NET.4
- СУБД MySQL предоставляет широкий выбор типов таблиц, в том числе и сторонних разработчиков, что позволяет реализовать оптимальную для решаемой задачи производительность и функциональность.
- Локализация в MySQL выполнена корректно. У пользователя, как правило, не возникает проблем при обработке русского содержимого БД
2 Глава. Проектная часть
2.1. Информационная модель и её описание
Информационной моделью называют схему движения входной, промежуточной и результативной информации и функций предметной области. Также с помощью информационной модели объясняется с помощью каких входных данных (документов) и какой нормативно-справочной информации происходит выполнение основных функций. Информационная модель проектируемой ИС представлена на рисунке 4.
Рисунок 4. Информационная модель
Согласно данной модели руководитель может управлять справочниками, создавать заказы для подбора поставщика менеджерами и формировать отчет. Менеджеры по закупкам могут работать с заказами, с данными поставщиков и оставлять комментарии к заказам. Выполнение функций системы выполняется с помощью специальных форм пользовательского интерфейса.
2.2. Характеристика нормативно-справочной, входной и оперативной информации
В информационной системе используются шесть справочников, характеристики которых приведены в таблице 2.
Таблица 2
Справочники информационной системы
№ пп |
Название справочника |
Ответственный за ведение |
Средний объём справочника в записях |
Среднюю частоту актуализации |
Средний объем актуализации, % |
1 |
Пользователи |
Администратор |
5 |
1 раз в месяц |
20 |
2 |
Роль |
- |
2 |
- |
- |
3 |
Статус заказов |
- |
4 |
- |
- |
4 |
Единица измерения |
Администратор |
4 |
1 раз в год |
25 |
5 |
Товар |
Администратор |
1500 |
1 раз в месяц |
2 |
6 |
Категория товаров |
Администратор |
10 |
1 раз в месяц |
10 |
Справочники ролей пользователей и статусов заказов носят нормативный характер, поэтому их актуализация не требуется. Остальные справочники время от времени необходимо актуализировать.
Реквизитный состав каждого справочника представлен в виде таблицы 3.
Таблица 3
Реквизитный состав справочников информационной системы
№ пп |
Название справочника |
Перечень реквизитов |
1 |
Пользователи |
ФИО логин пароль электронная почта телефон |
2 |
Роль |
наименование |
3 |
Статус заказов |
наименование |
4 |
Единица измерения |
наименование краткое наименование |
5 |
Товар |
наименование описание |
6 |
Категория товаров |
наименование |
Редактирование и ввод новых записей во все справочники осуществляется с помощью специальных форм.
На рисунке 5 изображена форма для работы с записями справочника «Пользователи».
Рисунок 5. Форма Пользователь
Поле для ввода пароля продублировано, это необходимо для того, чтобы исключить возможность опечатки при вводе пароля.
Перед сохранением данных проверяется наличие пользователей с таким же логином (каждый пользователь должен иметь уникальный логин), сложность введенного пароля (минимум одна цифра и один прописной знак).
Формы для работы с записями других справочников имеют аналогичный вид (Рисунок 6-8).
Рисунок 6. Форма Единица Измерения
Рисунок 7. Форма Товар
Рисунок 8. Форма Категория товара
В качестве входных данных для информационной системы выступают и данные о поставщиках, товарах, которые они поставляют, и заказах, для которых менеджеры по закупкам подбирают поставщиков и которые затем формируют. Также к входным данным следует отнести комментарии, которые пользователи оставляют к заказам. Эти данные вводятся в ИС с помощью специальных форм, приведенных на рисунках 9-12.
Рисунок 9. Форма для добавления поставщика
Рисунок 10. Форма для добавления товара поставщика
Рисунок 11. Форма для добавления заказа
Рисунок 12. Форма для добавления комментария
Данные, введенные в формы, которые приведены выше, сохраняются в базе данных и используются для формирования выходных данных.
2.3. Характеристика результатной информации
В качестве выходных данных выступают заказ поставщику и отчет о деятельности сотрудников отдела закупок.
Подробное описание выходных данных представлено в таблице 4.
Таблица 4
Описание результатной информации
Наименование |
Заказ поставщику |
Отчет о деятельности сотрудников |
Реквизиты |
Номер заказа поставщику Наименование поставщика Товары в заказе (наименование, количество, стоимость, общая сумма); Дата формирования; Ответственный сотрудник. |
ФИО сотрудника; Количество назначенных заказов; Количество выполненных заказов; Среднее время выполнения заказа. |
Таблицы, на основе которых формируется |
Заказы Поставщики Товары Категории Пользователи Товары поставщиков |
Заказ поставщику Пользователи Статусы заказа |
Частота формирования |
По мере необходимости |
По мере необходимости |
Способ доставки |
Файл в формате Word |
Таблица на html-странице |
2.4. Общие положения (дерево функций и сценарий диалога)
Базовый набор функций разработанной информационной системы можно изобразить в виде дерева, изображенного на рисунке 13.
Рисунок 13. Дерево функций
Функции ИС можно разделить на основные и служебные. К служебным относятся управление профилем пользователя, авторизация и проверка вводимых данных. К основным функциям системы относятся все функции, которые необходимы для автоматизации исследуемого процесса: от управления справочными данными до работы с заказами и отправки комментариев к заказам.
Выполнение функций разработанной информационной системы осуществляется с помощью ведения диалога с пользователем. То есть пользователь информационной системы выполняет какие-то действия, а программа соответствующим образом на них реагирует. Сценарий диалога с пользователем представлен на рисунке 14.
Рисунок 14. Сценарий диалога
После открытия ИС пользователю необходимо пройти авторизацию с помощью логина и пароля.
После авторизации на сайте пользователь переходит по разделам сайта с помощью навигационного меню. В зависимости от выбранного пункта в меню ему отображается содержимое соответствующего раздела.
2.5. Характеристика базы данных
В качестве системы управления базой данный для разрабатываемой информационной системы была выбрана СУБД Mysql.
Для хранения всех необходимых данных была спроектирована и создана база данных, состоящая из 6 таблиц. ER-модель спроектированной базы данных представлена на рисунке 15.
Рисунок 15. ER-модель базы данных
Описание всех таблиц базы данных представлено в таблице 5.
Таблица 5
Описание таблиц базы данных
Атрибут |
Поле таблицы |
Тип данных |
Размер |
Обязательность значений |
Таблица Product (Товар) |
||||
Идентификатор |
id |
integer |
4 |
Да |
Название |
caption |
varchar |
255 |
Да |
Описание |
description |
text |
65655 |
Нет |
Цена |
price |
decimal |
10 |
Да |
Категория |
categoryid |
integer |
4 |
Да |
Единица измерения |
measureid |
Integer |
4 |
Да |
Дата создания |
createdat |
datetime |
10 |
Да |
Дата изменения |
modifiedat |
datetime |
10 |
Да |
Удален |
deleted |
tinyint |
1 |
Нет |
Таблица Measure (Единица измерения) |
||||
Идентификатор |
id |
integer |
4 |
Да |
Наименование |
caption |
varchar |
255 |
Да |
Удален |
deleted |
tinyint |
1 |
Нет |
Дата создания |
createdat |
datetime |
10 |
Да |
Дата изменения |
modifiedat |
datetime |
10 |
Да |
Краткое название |
short |
varchar |
255 |
Да |
Таблица ProductCategory (Категории товаров) |
||||
Идентификатор |
id |
integer |
4 |
Да |
Наименование |
caption |
varchar |
255 |
Да |
Активна |
active |
tinyint |
1 |
Нет |
Таблица Users (Пользователи) |
||||
Идентификатор |
id |
integer |
4 |
Да |
ФИО |
userfio |
varchar |
255 |
Да |
Логин |
login |
varchar |
255 |
Да |
Пароль |
password |
varchar |
255 |
Да |
Телефон |
phone |
varchar |
255 |
Да |
Почта |
|
varchar |
255 |
Да |
Роль |
roleid |
int |
4 |
Да |
Дата создания |
createdat |
datetime |
10 |
Да |
Дата изменения |
modifiedat |
datetime |
10 |
Да |
Таблица Role(Роли) |
||||
Идентификатор |
id |
integer |
4 |
Да |
Название |
caption |
varchar |
255 |
Да |
Таблица Orders (Заказы) |
||||
Номер |
id |
integer |
4 |
Да |
Статус |
statusid |
integer |
4 |
Да |
Дедлайн |
plandate |
datetime |
10 |
Да |
Дата фактического завершения |
factdate |
datetime |
10 |
Да |
Комментарий |
description |
varchar |
255 |
Нет |
Удален |
deleted |
tinyint |
1 |
Нет |
Дата создания |
createdat |
datetime |
10 |
Да |
Дата изменения |
modifiedat |
datetime |
10 |
Да |
ВИП |
vip |
tinyint |
1 |
Нет |
Сжатые сроки |
shorttime |
tinyint |
1 |
Нет |
Таблица Orderproduct (Товары в заказах) |
||||
Идентификатор |
id |
integer |
4 |
Да |
Товар |
productid |
integer |
4 |
Да |
Заказ |
orderid |
integer |
4 |
Да |
Комментарий |
comment |
varchar |
255 |
нет |
Количество |
amount |
integer |
4 |
Да |
Дата создания |
createdat |
datetime |
10 |
Да |
Дата изменения |
modifiedat |
datetime |
10 |
Да |
Таблица Ordercomment (Комментарии к заказу) |
||||
Идентификатор |
id |
integer |
4 |
Да |
Автор |
authorid |
integer |
4 |
Да |
Заказ |
orderid |
integer |
4 |
Да |
Текст комментария |
description |
varchar |
255 |
Да |
Дата создания |
createdat |
datetime |
10 |
Да |
Дата изменения |
modifiedat |
datetime |
10 |
Да |
Таблица Provider (Поставщик) |
||||
Идентификатор |
id |
integer |
4 |
Да |
Название |
caption |
varchar |
255 |
Да |
Описание |
description |
varchar |
255 |
Нет |
Адрес |
address |
varchar |
255 |
Нет |
ФИО контактного лица |
fio |
varchar |
255 |
Нет |
Электронная почта |
|
varchar |
255 |
Нет |
Удален |
deleted |
tinyint |
1 |
Нет |
Активен |
active |
tinyint |
1 |
Нет |
Рейтинг |
rate |
double |
4 |
Нет |
Телефон |
phone |
Varchar |
255 |
Да |
Предоплата по умолч |
defaultprepay |
integer |
4 |
Да |
Срок доставки по умолч |
defaultdelivarytime |
integer |
4 |
Да |
Дата создания |
createdat |
datetime |
10 |
Да |
Дата изменения |
modifiedat |
datetime |
10 |
Да |
Таблица Providerproduct (Товары поставщика) |
||||
Идентификатор |
id |
integer |
4 |
Да |
Поставщик |
providerid |
integer |
4 |
Да |
Товар |
productid |
integer |
4 |
Да |
Комментарий |
comment |
varchar |
255 |
Нет |
Удален |
deleted |
tinyint |
1 |
Нет |
Активен |
active |
tinyint |
1 |
Нет |
Предоплата |
prepay |
integer |
4 |
Да |
Срок поставки |
delivarytime |
integer |
4 |
Да |
Дата создания |
createdat |
datetime |
10 |
Да |
Дата изменения |
modifiedat |
datetime |
10 |
Да |
Таблица OrderStatus (Статусы заказа) |
||||
Идентификатор |
id |
integer |
4 |
Да |
Название |
caption |
varchar |
255 |
Да |
Дата создания |
createdat |
datetime |
10 |
Да |
Дата изменения |
modifiedat |
datetime |
10 |
Да |
Таблица Notifiction (Уведомления) |
||||
Идентификатор |
id |
integer |
4 |
Да |
Пользователь |
userid |
integer |
4 |
Да |
Текст |
desctiption |
varchar |
255 |
Нет |
Новое |
new |
tinyint |
1 |
Нет |
Дата создания |
createdat |
datetime |
10 |
Да |
Дата изменения |
modifiedat |
datetime |
10 |
Да |
2.6. Структурная схема пакета (дерево вызова программных модулей)
Популярность языка php обусловила появление большого числа фреймворков, основанных на нем. Фреймворк – программная платформа, определяющая структуру программной системы; программное обеспечение, облегчающее разработку и объединение разных компонентов большого программного проекта.
Для написания информационной системы использовался фреймворк языка php Symfony 2.
Symfony 2 – самый популярный PHP-фреймворк в мире. Он включает в себя весь набор инструментов, используемый для быстрой разработки веб-приложений, и при этом абсолютно ничего не навязывает создаваемому приложению. Разработчик может быстро начать работу, используя дистрибутив Symfony2.
Данный фреймворк работает с подходом к программированию, называемый Model-view-controller (MVC, «модель-представление-контроллер», «модель-вид-контроллер»).
Основная идея данного подхода заключается в разделении данных, их представлениях и обработку действий пользователей на три больших группы:
- Модель (англ. Model). Модель предоставляет знания: данные и методы работы с этими данными, реагирует на запросы, изменяя своё состояние. Объекты данной группы не содержат информации, как эти знания можно визуализировать.
- Представление, вид (англ. View). Отвечает за отображение информации (визуализацию). Часто в качестве представления выступает форма (окно) с графическими элементами. Главная задача – представить информацию, хранимой в модели в виде, воспринимаемым пользователем.
- Контроллер (англ. Controller). Обеспечивает связь между пользователем и системой: контролирует ввод данных пользователем и использует модель и представление для реализации необходимой реакции.
Общая схема архитектуры ИС согласно данной парадигмы изображена на рисунке 16.
Рисунок 16. Архитектура ИС (Model-view-controller)
Список разработанных программных модулей и их назначений представлен в таблице 6.
Таблица 6
Программные модули.
Название |
Описание |
routing.yml |
Файл с настройками маршрутов для маршрутизатора Symfony |
InitializableController.php |
Класс контроллера, содержащий общие методы для всех контроллеров ИС, является родительским классов для всех остальных контроллеров |
DefaultContoller.php |
Класс контроллера, содержащий методы для отображения главной страницы системы |
MeasureController.php |
Класс контроллера, содержащий методы для отображения данных и форм о единицах измерения товаров, обработки отправленных форм |
OrderController.php |
Класс контроллера, содержащий методы для отображения данных и форм, предназначенных для создания, просмотра заказов и управления ими |
ProductCategoryController.php |
Класс контроллера, содержащий методы для отображения данных и форм о категориях товаров, обработки отправленных форм |
ProductsController.php |
Класс контроллера, содержащий методы для отображения данных и форм о товарах, обработки отправленных форм |
ProviderController.php |
Класс контроллера, содержащий методы для отображения данных и форм о поставщиках, обработки отправленных форм |
SecurityController.php |
Класс контроллера, содержащий методы и функции, необходимые для реализации функций авторизации, выхода из сайта, управления профилем пользователя |
UsersController.php |
Класс контроллера, содержащий методы для отображения данных и форм о пользователях, обработки отправленных форм |
AbstractEntity.php |
Класс модели, содержащий общие методы для всех классов модели данных ИС, является родительским классов для всех остальных классов модели |
Measure.php |
Класс модели, содержащий атрибуты и методы для работы с объектом единицы измерения |
Notification.php |
Класс модели, содержащий атрибуты и методы для работы с объектом уведомления пользователя |
Order.php |
Класс модели, содержащий атрибуты и методы для работы с объектом заказа покупателя |
OrderComment.php |
Класс модели, содержащий атрибуты и методы для работы с объектом комментария к заказу |
OrderProduct.php |
Класс модели, содержащий атрибуты и методы для работы с объектом товара в заказе |
OrderProvider.php |
Класс модели, содержащий атрибуты и методы для работы с объектом поставщика в списке поставщиков заказа |
OrderProviderComment.php |
Класс модели, содержащий атрибуты и методы для работы с объектом комментария к поставщику в списке поставщиков заказа |
OrderStatus.php |
Класс модели, содержащий атрибуты и методы для работы с объектом статуса заказа |
Product.php |
Класс модели, содержащий атрибуты и методы для работы с объектом товара |
ProductCategory.php |
Класс модели, содержащий атрибуты и методы для работы с объектом категории товара |
Provider.php |
Класс модели, содержащий атрибуты и методы для работы с объектом поставщика |
ProviderPhone.php |
Класс модели, содержащий атрибуты и методы для работы с объектом телефона поставщика |
ProviderProduct.php |
Класс модели, содержащий атрибуты и методы для работы с объектом товара поставщика |
Role.php |
Класс модели, содержащий атрибуты и методы для работы с объектом роли пользователя |
User.php |
Класс модели, содержащий атрибуты и методы для работы с объектом пользователя |
AbstractFormType.php |
Класс формы, родительский для всех классов форм ИС |
LoginFormType.php |
Класс формы авторизации |
MeasureFormType.php |
Класс формы управления единицами измерения |
OrderCommentFormType.php |
Класс формы для отправки комментария к заказу |
OrderEndFormType.php |
Класс формы для реализации завершения заказа |
OrderFilterFormType.php |
Класс формы для реализации фильтра в списке заказов |
OrderFormType.php |
Класс формы для создания и управления заказом |
OrderProviderCommentFormType.php |
Класс формы для отправки комментария к поставщику в списке поставщиков заказа |
ProductCategoryFilterFormType.php |
Класс формы для реализации фильтра в списке категорий товаров |
ProductCategoryFormType.php |
Класс формы управления данными категории товаров |
ProductFilterFormType.php |
Класс формы для реализации фильтра в списке товаров |
ProductFormType.php |
Класс формы управления товарами |
ProfileFormType.php |
Класс формы для реализации работы с профилем пользователя |
ProviderFilterFormType.php |
Класс формы для реализации фильтра в списке поставщиков |
ProviderFormType.php |
Класс формы управления поставщиками |
ProviderPhoneFormType.php |
Класс формы управления телефонами поставщика |
ProviderProductFormType.php |
Класс формы управления товарами поставщика |
ReportFormType.php |
Класс формы для ввода параметров отчета по заказам |
UserFilterFormType.php |
Класс формы для реализации фильтра в списке пользователей |
UserFormType.php |
Класс формы для реализации работы с данными пользователя |