Диплом: Автоматизация учета и обработки заявок пользователей на ТО и ремонт оргтехники (Нelp Desk) в компании АО "РСК "МиГ"

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
32
Статистические использования и рыночная доля любого языка
программирования дают представление о его популярности среди масс. На рисунке
1.14 показаны наиболее широко применяемые серверные языки программирования.
Рисунок 1.14 – Популярность языков программирования
Уверенное лидерство у PHP.
Теперь представим сводную таблицу с преимуществами языков (таблица
1.6).
Таблица 1.6
Преимущества языков программирования
PHP
Ruby
Python
Бесплатное
программное
обеспечение по
лицензии PHP
Кроссплатформенность и
открытый исходный код
Лёгкий и быстрый в
изучении
Лёгкий в освоении
(высокая скорость
обучения)
Может быть встроен в
язык разметки
гипертекста
Поддерживается
множеством платформ и
операционных систем
Крупное сообщество
пользователей и
Язык программирования
сверхвысокого уровня
Читабельный и
организованный
33
разработчиков
(VHLL)
синтаксис
Расширенная
поддержка баз данных
Простой и понятный
синтаксис, позволяющий
начинающему
разработчику очень
быстро изучить язык
Обеспечение быстрого
прототипирования и
динамических
семантических свойств
Предоставляет
большое количество
доступных расширений
и исходных кодов
Простое подключение к
базам данных DB2,
MySQL, Oracle и Sybase
Огромное сообщество
поддержки
Разрешает исполнение
кода в ограниченных
средах выполнения
Созданные на Ruby
большие
масштабируемые
программы просты в
сопровождении
Простое построение
приложений путём
тестирования и импорта
необходимых функций
Предоставляется
возможность
управления нативными
сессиями и расширения
API
Наличие встроенного
отладчика и гибкого
синтаксиса
Реюзабилити
(возможность повторного
использования) за счёт
тщательной разработки
пакетов и модулей
Хорошая альтернатива
конкурентам, таким
как ASP (Active Server
Pages) от Microsoft
Возможность написания
внешних библиотек на
Ruby или C
Объектно-
ориентированный подход
к программированию
Работает практически
на любой
операционной системе
или платформе
Возможность написания
многопоточных
приложений с простым
API
В таблице 1.7 представлены недостатки сравниваемых языков веб-
программирования.
34
Таблица 1.7
Недостатки языков программирования
PHP
Ruby
Python
Не подходит для
разработки настольных
приложений
Возможны трудности в
изучении
Недостаточно
эффективная работа с
многоядерными и
многопроцессорными
вычислительными
системами
Традиционно скудный
функционал для
обработки ошибок
Нехватка
информационных
ресурсов
Ограниченный уровень
доступа к базам данных
Глобальные параметры
конфигурации могут
менять семантику
языка, осложняя
процессы внедрения и
совместимости
Большие затраты
процессорного времени
(CPU time) по сравнению
с другими языками
Отсутствие
коммерческой поддержки
даже для Open Source
проектов (однако, эта
ситуация начинает
меняться)
Обращение к объектам
по умолчанию
осуществляется
методом «вызова по
значению»
(CallByValue), что
противоречит
аналогичным
операциям для
большинства языков и
застаёт многих
программистов
врасплох
Сравнительно медленная
разработка обновлений
Небольшое количество
разработчиков Python по
сравнению с другими
языками, например с Java
35
В целом считается
менее защищённым по
сравнению с другими
языками
программирования
По отзывам более
медленный по сравнению
с языками типа Java
В результате сравнения языков программирования выбор пал на PHP.
Теперь перейдем к сравнению и выбору СУБД. Выполним сравнение
бесплатных и популярных СУБД:
MySql
Postgresql
Ниже представлены критерии и комментарии по данным критериям.
Хранение данных
MySQL – это реляционная база данных, для хранения данных в таблицах
используются различные движки, но работа с движками спрятана в самой системе.
На синтаксис запросов и их выполнение движок не влияет. Поддерживаются такие
основные движки MyISAM, InnoDB, MEMORY, Berkeley DB. Они отличаются
между собой способом записи данных на диск, а также методами считывания [11].
Postgresql представляет из себя объектно реляционную базу данных, которая
работает только на одном движке – storage engine. Все таблицы представлены в
виде объектов, они могут наследоваться, а все действия с таблицами выполняются
с помощью объективно ориентированных функций. Как и в MySQL все данные
хранятся на диске, в специально отсортированных файлах, но структура этих
файлов и записей в них очень сильно отличается [13].
Стандарт SQL
Независимо от используемой системы управления базами данных, SQL – это
стандартизированный язык выполнения запросов. И он поддерживается всеми
решениями, даже MySQL или Postgresql. Стандарт SQL был разработан в 1986 году
и за это время уже вышло нескольких версий.
MySQL поддерживает далеко не все новые возможности стандарта SQL.
Разработчики выбрали именно этот путь развития, чтобы сохранить MySQL
простым для использования. Компания пытается соответствовать стандартам, но не
36
в ущерб простоте. Если какая-то возможность может улучшить удобство, то
разработчики могут реализовать ее в виде своего расширения не обращая внимания
на стандарт.
Postgresql – это проект с открытым исходным кодом, он разрабатывается
командой энтузиастов, и разработчики пытаются максимально соответствовать
стандарту SQL и реализуют все самые новые стандарты. Но все это приводит к
ущербу простоты. Postgresql очень сложный и из-за этого он не настолько
популярен как MySQL.
Возможности обработки
Из предыдущего пункта выплывают и другие отличия postgresql от mysql,
это возможности обработки данных и ограничения. Естественно, соответствие
более новым стандартам дает более новые возможности.
При выполнении запроса MySQL загружает весь ответ сервера в память
клиента, при больших объемах данных это может быть не совсем удобно. В
основном по функциям Postgresql превосходит Mysql, дальше рассмотрим в каких
именно.
Postgresql поддерживает использование курсоров для перемещения по
полученным данным. Вы получаете только указатель, весь ответ хранится в памяти
сервера баз данных. Этот указатель можно сохранять между сеансами. Здесь
поддерживается построение индексов сразу для нескольких столбцов таблицы.
Кроме того, индексы могут быть различных типов, кроме hash и b-tree доступны
GiST и SP-GiST для работы с городами, GIN для поиска по тексту, BRIN и Bloom.
Postgresql поддерживает регулярные выражения в запросах, рекурсивных запросов
и наследования таблиц. Но тут есть несколько ограничений, например, вы можете
добавить новое поле только в конец таблицы.
Производительность
Базы данных должны обязательно быть оптимизированы для окружения, в
котором вы будете работать. Исторически так сложилось, что MySQL
ориентировалась на максимальную производительность, а Postgresql
разрабатывалась как база данных с большим количеством настроек и максимально
соответствующую стандарту. Но со временем Postgresql получил много улучшений
и оптимизаций.
37
В большинстве случаев для организации работы с базой данных в MySQL
используется таблица InnoDB, эта таблица представляет из себя B-дерево с
индексами. Индексы позволяют очень быстро получить данные из диска, и для
этого будет нужно меньше дисковых операций. Но сканирование дерева требует
нахождения двух индексов, а это уже медленно.
Все это значит, что MySQL будет быстрее Postgresql только при
использовании первичного ключа.
Вся заголовочная информация таблиц Postgresql находится в оперативной
памяти. Вы не можете создать таблицу, которая будет не в памяти. Записи таблицы
сортируются по индексу, а поэтому вы можете их очень быстро извлечь. Для
большего удобства вы можете применять несколько индексов к одной таблице.
В целом PostgreSQL работает быстрее, за исключениям использования
первичных ключей. Давайте рассмотрим несколько тестов с различными
операциями:
Типы данных
Один из основных моментов обоих баз данных это поддерживаемые типы
данных, которые вы можете использовать. Поскольку оба решения пытаются
соответствовать синтаксису SQL, то они имеют похожие наборы, но все же кое-чем
отличаются.
MySQL поддерживает такие типы данных:
TINYINT: очень маленькое целое.;
● SMALLINT: маленькое целое;
● MEDIUMINT: целое среднего размера;
● INT: целое нормального размера;
BIGINT: большое целое;
FLOAT: знаковое число с плавающей запятой одинарной точности;
DOUBLE, DOUBLE PRECISION, REAL: знаковое число с плавающей
запятой двойной точности
● DECIMAL, NUMERIC: знаковое число с плавающей запятой;
DATE: дата;
● DATETIME: комбинация даты и времени;
● TIMESTAMP: отметка времени;
38
TIME: время;
● YEAR: год в формате YY или YYYY;
● CHAR: строка фиксированного размера, дополняемая справа
пробелами до максимальной длины;
● VARCHAR: строка переменной длины;
● TINYBLOB, TINYTEXT: двоичные или текстовые данные
максимальной длиной 255 символов;
● BLOB, TEXT: двоичные или текстовые данные максимальной длиной
65535 символов;
MEDIUMBLOB, MEDIUMTEXT: текст или двоичные данные;
● LONGBLOB, LONGTEXT: текст или двоичные максимальной данные
длиной 4294967295 символов;
● ENUM: перечисление;
● SET: множества.
Поддерживаемые типы полей в Postgresql достаточно сильно отличаются, но
позволяют записывать точно те же данные:
● bigint: знаковое 8-байтовое целое;
● bigserial: автоматически увеличиваемое 8-байтовое целое;
● bit: двоичная строка фиксированной длины;
● bit varying: двоичная строка переменной длины;
● boolean: флаг;
● box: прямоугольник на плоскости;
byte: бинарные данные;
character varying: строка символов фиксированной длины;
character: строка символов переменной длины;
cidr: сетевой адрес IPv4 или IPv6;
circle: круг на плоскости;
● date: дата в календаре;
● double precision: число с плавающей запятой двойной точности;
inet: адрес интернет IPv4 или IPv6;
integer: знаковое 4-байтное целое число;
interval: временной промежуток;
39
line: бесконечная прямая на плоскости;
lseg: отрезок на плоскости;
macaddr: MAC-адрес;
● money: денежная величина;
● path: геометрический путь на плоскости;
● point: геометрическая точка на плоскости;
● polygon: многоугольник на плоскости;
● real: число с плавающей точкой одинарной точности;
smallint: двухбайтовое целое число;
serial: автоматически увеличиваемое четырехбитное целое число;
text: строка символов переменной длины;
time: время суток;
● timestamp: дата и время;
● tsquery: запрос текстового поиска;
tsvector: документ текстового поиска;
● uuid: уникальный идентификатор;
xml: XML-данные.
Как видно, типов данных в Postgresql больше и они более разнообразны, есть
свои типы полей для определенных видов данных, которых нет MySQL. Отличие
MySQL от Postgresql очевидно.
В качестве СУБД выбрана MySql, так как она обладает хорошим
быстродействием, простотой настройки, количество встроенных типов данных
соответсвует поставленной задаче автоматизации.
1.4.3. Обоснование проектных решений по техническому обеспечению
Так как проектируемое приложение имеет двухуровневую структуру, то для
ее работы необходима как клиентская, так и серверная часть.
В качестве сервера предлагается использовать IBM x3500M4 E5-2603v2
10MB 4GB 0HD (7383E7G).
Характеристики устройства представлены ниже:
● Процессор: Intel Xeon E5-2603 v2 (4 core, 10M Cache, 1.80 GHz)
● Количество ядер: 4
● Количество установленных процессоров: 1
40
● Количество слотов для процессоров: 2
● Количество процессоров установлено/максимально: 2
● Тип ОЗУ: DDRIII
● Объем установленной памяти: 4 Гб
● Количество слотов: 24
● Максимальный объем памяти: 384 Гб
● Интерфейс: SAS, SATA
● Форм-фактор: 3.5» (LFF)
● Максимальный объем дискового пространства: 32000 Гб
● Максимальное количество накопителей: 8
● Оптический накопитель: DVD-RW
● Мощность питания: 550 Вт
В качестве настольных ПК предлагается использовать моноблок Asus
V200IBGK-BC003M (90PT01J1-M01760) Black.
Характеристики устройства представлены ниже:
● Диагональ дисплея: 19,5»
● Тип процессора: Четырехъядерный Intel Pentium N3700 (1.6 – 2.4 ГГц)
● Оперативная память: 4 Гб
● Жесткий диск: 500 Gb
● Графический адаптер: nVidia GeForce 930M
Поскольку на сегодняшний день в компании используются компьютеры и их
характеристики либо соответствуют представленным выше, либо превышают их,
приобретение новых технических средств не является необходимостью.
41
II
ПРОЕКТНАЯ
ЧАСТЬ
2.1. Разработка проекта автоматизации
2.1.1. Процессы жизненного цикла проекта автоматизации
Под жизненным циклом (ЖЦ) проекта автоматизации подразумевается
период времени, начинающийся с момента принятия решения об автоматизации до
изъятия из эксплуатации автоматизированной системы [4].
Выделяют такие модели ЖЦ автоматизированных систем:
● каскадная модель;
● итерационная модель;
● спиральная модель.
Каскадная модель
Каскадная модель предусматривает последовательное выполнение всех
процессов проекта в строго фиксированном порядке. Переход на следующий
процесс означает полное завершение работ на предыдущем процессе (рисунок 2.1).
Рисунок 2.1 – Каскадная модель
Итерационная модель
Разработка ИС ведется итерациями с циклами обратной связи между
процессами. Межпроцессные корректировки позволяют учитывать реально
существующее взаимовлияние результатов разработки на различных процессах;
время жизни каждого из процессов растягивается на весь период разработки
(рисунок 2.2).

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

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