- •Введение
- •1. Анализ проблем управления строительными работами в ооо «Энком Кабельные системы мегаполиса»
- •1.1 Описание процесса управления строительными работами
- •1.2 Проблемы управления строительными работами
- •1.3 Формирование цели и задач проекта
- •2. Разработка концепции автоматизации управления строительными работами в ооо «Энком Кабельные системы мегаполиса»
- •2.1 Проектирование схемы движения информационных, материальных и финансовых потоков
- •2.2 Определение автоматизированных рабочих мест
- •2.3 Описание функций выявленных арм
- •3. Разработка структуры информации асу ооо «Энком Кабельные системы мегаполиса»
- •3.1 Проектирование логической структуры данных
- •3.2 Разработка физической структуры данных
- •3.3 Структура таблиц
- •3.4 Реализация контрольного примера
- •4. Разработка программного обеспечения асу ооо «Энком Кабельные системы мегаполиса»
- •4.1 Анализ и выбор систем программирования
- •4.2 Разработка оконных форм для взаимодействия системы и пользователя
- •4.3 Листинги алгоритмов
- •Выводы и результаты
- •Источники информации
- •Приложение 7. Коды процедур добавления в таблицы новых данных
- •Приложение 8. Коды с примерами использования процедур для добавления данных
- •Приложение 9. Коды создания представлений
- •Приложение 10. Вывод представлений
3.4 Реализация контрольного примера
Для демонстрации разработаем первоначальный пример, предполагающий тестовый запуск АСУ в компании, вследствие чего база данных в текущий момент имеет низкий уровень заполненности данными.
На рисунке 7 представлен пример хранения информации о должностях в компании.
Рисунок 7 - Таблица "Position"
Должности распределяются между сотрудниками по принципу, что у одного сотрудника может быть только 1 должность, но при этом несколько сотрудников могут иметь совпадающие должности. Пример хранения информации о сотрудниках представлен на рисунке 8.
Рисунок 8 - Таблица "Employee"
Для выполнения ряда работ строительная компания заказывает услуги субподрядчиков, информация о них представлена на рисунке 9. Субподрядчик, это юридическое лицо, у которого есть ИНН, КПП и номер телефона представителя, а также название.
Рисунок 9 - Таблица "Subcontractor"
Компания является также подрядчиком, вследствие чего выполняет заказы клиентов данной компании. Заказчиками, как правило, выступают какие-либо организации, либо юридические лица. Информация о них представлена в таблице 10.
Рисунок 10 - Таблица "Customer"
Для обозначения места ведения строительных работ используют понятие «строительный объект». Это физически существующее место, имеющее адрес, и как правило, название, хотя бы на уровне подрядчика. Информация об объекте строительства представлена в таблице 11.
Рисунок 11 - Таблица "Object"
Помимо этого, согласно законодательству, у строительных объектов обязаны быть паспорта, как правило это вывески рядом со строительными объектами. Таким образом, любой желающий может узнать: что строится, кем строится, когда строительство началось, и когда предполагается его окончание. Пример информации о паспорте объекта представлен на рисунке 12.
Рисунок 12 - Таблица "Passport"
Строительные работы принято подразделять на виды для облегчения процесса управления ими. Они имеют свою цену и единицы измерения, а также имя. Подобная хранящаяся в системе информация представлена на рисунке 13.
Рисунок 13 - Таблица "Type_Work"
Для выполнения каких-либо строительных работ между подрядчиком и субподрядчиком заключаются акты на проведение работ. Пример хранения информации об актах работ представлен на рисунке 14.
Рисунок 14 - Таблица "Act_Work"
Акты выступают формой отчётности о проделанной работе, затраченных деньгах и времени.
Таким образом, в данном разделе были приведены примеры реализации хранения обрабатываемой компанией информации.
4. Разработка программного обеспечения асу ооо «Энком Кабельные системы мегаполиса»
4.1 Анализ и выбор систем программирования
Операционная система, это программное обеспечение, с которым любой сотрудник работает на протяжении рабочего дня, и от которого зависит стабильность и качество работы автоматизированной системы, так как хранилища данных располагаются также на компьютерах, которые управляются и поддерживаются операционными системами, установленными на них.
Учитывая важность данного инструмента, были разработаны критерии, по которым были выбраны операционные системы, на которых будут работать сервер и АРМы.
Таким образом, критерии для операционной системы сервера:
высокая производительность. Так как на сервере будет развёрнута база данных, он должен быть в состоянии справляться с высокими нагрузками, учитывая тот факт, база данных предоставляет не только возможности по хранению данных, но и по их возврату по запросам. Помимо этого, выполнение самих запросов требует определённых ресурсов от системы. Исходя из перечисленного, использование систем, ориентированных на работу с однопроцессорными устройствами, недопустимо. Также, общий уровень производительности сервера зависит от того, сколько ресурсов тратит операционная система на своё собственное обслуживание. Это значит, что системы, требующие для работы меньше оперативной памяти и дискового пространства, при прочих равных будут иметь значительное преимущество над более перегруженными неиспользуемым в последствие функционалом операционными системами;
высокая гибкость настройки. В серверных операционных системах довольно важной является возможность очень тонко настраивать сервер, поэтому данный критерий хоть и не является самым важным, но остается предпочтительным;
высокий уровень экономической эффективности использования. Довольно серьёзным экономическим вопросом при выборе операционной системы является вопрос об экономической эффективности использования. Серверные ОС можно разделить на те, которые являются проприетарной собственностью, и ОС со свободной лицензией. Основное различие в уровне поддержки от производителя;
высокий уровень безопасности. На сервере развёрнута база данных, которая хранит информацию о текущих делах компании; попадание данной информации в чужие руки является довольно нежелательным событием, из-за чего соблюдение безопасности является необходимым критерием.
На основании указанных критериев в качестве операционной системы был выбран Linux дистрибутив CentOS.
Это обусловлено несколькими факторами. CentOS – дистрибутив, распространяющийся по лицензии GPL, что делает его весьма экономически выгодным, также, данный дистрибутив функционально совместим с Red Hat Enterprise Linux и разрабатывается в этой же компании, что указывает на его высокие показатели гибкости настройки и безопасности. Данный дистрибутив, как и многие дистрибутивы Linux, имеет высокий уровень производительности, так как количество функциональных возможностей по умолчанию сведено к необходимому минимум.
Критерии для операционной системы АРМов были выбраны следующие:
легкость в освоении. АРМами пользуются не сетевые администраторы со специальными знаниями в области работы с конкретными операционными системами, а обычные сотрудники с разным уровнем компьютерной грамотности, поэтому ОС должна быть очень «дружелюбной» к людям, не знакомым с ней, и как можно более интуитивно понятной;
по возможности, отсутствие необходимости в дополнительной настройке после установки ОС. Система должна быть максимально простой в развёртывании, а также время от момента установки до введения в полную дееспособность должно быть минимальным;
удобство в использовании. Операционная система должна предоставлять удобный и просто в использовании функционал для осуществления рабочих заданий.
Исходя из критериев, в качестве операционной системы АРМов была выбрана Windows 10. Данная операционная система является самой распространённой операционной системой домашнего использования, и в то же время, самой просто и дружелюбной к пользователю. Используя данную операционную систему, следует ожидать, что новый сотрудник уже будет знаком с частью её функционала, из-за чего время обучения будет значительно снижено, в следствие чего сотрудник раньше приступит к выполнению должностных обязанностей.
Следующее важное программное решение для поддержки системы, это система управления базой данных. СУБД представляют собой комплекс программ, позволяющих манипулировать базой данных и данными. Выбор СУБД также во многом влияет на стабильность и производительность системы в целом, так как СУБД бывают разными и для разных целей. Определимся с критериями выбора СУБД:
должна использоваться или хотя бы поддерживаться реляционная модель данных;
база данных должна быть рассчитана на малый и средний бизнес;
база данных должна быть надёжной. Под надёжностью подразумевается как сохранность информации независимо от любых сбоев и в любых условиях, так и защита от несанкционированного доступа, но в меньшей степени;
база данных должна быть масштабируемой. При выборе СУБД необходимо учитывать, сможет ли данная система соответствовать росту информационной системы, причем рост может проявляться в увеличении числа пользователей, объема хранимых данных и объеме обрабатываемой информации;
база данных должна иметь высокую производительность;
база данных должна отделять серверную и клиентскую часть. Под этим пунктом подразумевается то, что должна быть возможность установить БД на один компьютер, после чего через сеть подключаться к ней;
производитель должен предоставлять коннектор к базе данных для прикладных программ.
В качестве СУБД была выбрана Oracle Database. Выбор именно такой исходя из нескольких причин: данная СУБД поддерживает самые большие базы данных, хорошо обрабатывает транзакции, имеет высокий уровень надёжности.
Предоставлять сотрудникам АРМов прямой доступ к СУБД для выполнения задач нельзя по нескольким причинам:
сложный интерфейс взаимодействия;
тяжело контролировать и ограничивать действия пользователя;
устаревшие инструменты создания форм взаимодействия;
ограниченность функционала форм.
Решением данных проблем является разработка клиентских приложений с графическим интерфейсом. Данный подход обладает следующими преимуществами:
множество доступных решений, делающих разработку быстрой и комфортной;
лёгкость изменения интерфейса при необходимости;
легко ограничить пользователя;
легко отслеживать действия пользователя;
функциональные возможности практически ничем не ограничены.
Языков программирования существует великое множество, однако для удобными для разработки приложений с графическим пользовательским интерфейсом являются не все. Можно выделить следующие стеки технологий, на данный момент считающимися приемлемыми для выполнения поставленной задачи:
С#/WPF;
Java/JavaFX;
JS/Electron;
С++/QT.
После анализа достоинств и недостатков каждой технологии был выбран стек Java/JavaFX/JDBC(Hibernate). Данное решение принято вследствие следующих факторов:
в отличие от C#, язык Java изначально ориентировался на кроссплатформенность. Хотя в последнее время C# тоже развивается в этой сфере, однако всё ещё значительно уступает в этом Java, который изначально разрабатывался с учётом данного критерия;
Electron, по сути, является запускаемым браузером, что приводит к тому, что он потребляет неоправданно много ресурсов системы, помимо этого технология ещё достаточно новая, из-за этого не может считаться надёжным решением. Java/JavaFX куда менее требователен к ресурсам, предоставляя в замен те же функциональные возможности;
основная проблема C++/QT, это большой размер получаемых в итоге приложений. Помимо этого, сам по себе язык С++ является достаточно сложным для изучения и применения, и специалистов по нему найти сложнее, в дополнение к этому, они будут дороже стоить.
Таким образом, для разработки приложения в данном проекте будет использоваться язык программирования Java версии 16 сборки OpenJDK от Eclipse Temurin. Для создания графического интерфейса будет использоваться кроссплатформенный фреймворк JavaFX, для доступа к базе данных стандарт взаимодействия с БД JDBC и коннектор, предоставляем Oracle.