Диплом: Автоматизация учета рабочего времени сотрудников ООО "Центр Плюс"

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
57
2.3. Программное обеспечение задачи
2.3.1. Общие положения (дерево функций и сценарий диалога)
Дерево функций необходимо для того, чтобы показать на одной схеме
(или чертеже) перечень выполняемых системой функций, их классификацию и
иерархию [20].
Дерево функций информационной системы представлено на рисунке 14.
Основные
Управление
справочниками
Оставить комментарий к
поданной заявке
Сформировать отчет по
заявкам
Подать новую заявку
Просмотреть
результаты
выполнения
поданных ранее
заявок
Добавить
комментарий к
поданной ранее
заявке
Функции ИС
Изменить статус заявки
Служебные
Авторизация
пользователя
Управление
профилем
пользователя
Рисунок 14 – Дерево функций информационной системы
Сценарий диалога необходим для отображения того, как пользователь
будет взаимодействовать с проектируемой системой [9]. Кроме того, с помощью
сценария диалога иногда отображают структуру интерфейса создаваемого
программного продукта.
На основании дерева функций разработан сценарий диалога, который
представлен на рисунке 15.
58
Работа с
заявками
Посмотреть
заявки
Формирование
отчетов
Главная страница
Управление
справочниками
Пользователи
Типы
неисправностей
Отделы
Статусы заявок
Прокомментирова
ть заявку
Завершить заявку
Управление
профилем
Авторизация
Создать новую
заявку
Рисунок 15 – Сценарий диалога информационной системы
После открытия сайта пользователю необходимо пройти авторизацию с
помощью логина и пароля. После того, как пользователь выполнит функцию
«Авторизация» – он становится либо сотрудником компании-клиента, либо
сотрудником ООО «Центр Плюс», либо администратором (в зависимости от
данных, которые он введет на соответствующей форме).
После авторизации на сайте, пользователь сотрудник компании-клиента
получает доступ в раздел работы с заявками. В данном разделе пользователю
доступны три функции – подать новую заявку, просмотреть результаты
выполнения поданных ранее (перечитать комментарии, проверить статус) и
оставить комментарий к какой-либо заявке.
Следующий уровень доступа в иерархии групповой политики – сотрудник
отдела технической поддержки ООО «Центр Плюс». После авторизации у
данного пользователя также открывается раздел работы с заявками.
В любой заявке сотрудник ООО «Центр Плюс» может оставить
комментарий, а также закрыть эту заявку при решении всех заявленных
проблем.
Пользователь с уровнем доступа Администратор имеет доступ к
функциям управления справочниками информационной системы и
формирования отчёта по заявкам.
59
2.3.2. Характеристика базы данных
В качестве системы управления базой данный для разрабатываемой
информационной системы была выбрана СУБД MySQL.
Для хранения всех необходимых данных была спроектирована и создана
база данных, состоящая из 8 таблиц. ER-модель спроектированной базы данных
представлена на рисунке 16.
Рисунок 16 ER-модель базы данных
Описание все таблиц базы данных представлены в таблицах 8-15.
Таблица 8
Таблица users
Наименование поля
Идентификатор
поля
Тип поля
Длина
поля
Прочее
Код пользователя
id
int
11
AI
ФИО пользователя
userfio
varchar
255
Логин пользователя
username
varchar
255
unique
Код отделения пользователя
departmentid
varchar
255
Пароль пользователя (в
зашифрованном виде)
password
varchar
255
60
Наименование поля
Идентификатор
поля
Тип поля
Длина
поля
Прочее
Ключ для расшифровки
пароля
salt
varchar
255
Email пользователя
email
varchar
255
Телефон
phone
varchar
255
Удален
deleted
tinyint
1
Дата создания
createat
datetime
Дата изменения
modifiedat
datetime
Таблица 9
Таблица user_roles
Наименование поля
Идентификатор
поля
Тип поля
Длина
поля
Прочее
Код пользователя
userid
int
11
Код роли
roleid
int
11
Таблица 10
Таблица roles
Наименование поля
Идентификатор
поля
Тип поля
Длина
поля
Прочее
Код роли
id
int
11
AI
Наименование роли
caption
varchar
255
Наименование роли для
фреймворка
role
varchar
255
Дата создания
createat
datetime
Дата изменения
modifiedat
datetime
Таблица 11
Таблица department
Наименование поля
Идентификатор
поля
Тип поля
Длина
поля
Прочее
Код компании
id
int
11
AI
Наименование компании
caption
varchar
255
Дата создания
createat
datetime
Дата изменения
modifiedat
datetime
61
Таблица 12
Таблица ticket
Наименование поля
Идентификатор
поля
Тип поля
Длина
поля
Прочее
Номер заявки
id
int
11
AI
Текстовой комментарий к
заявке (описание проблемы)
description
longtext
65655
Код пользователя – автора
заявки
authorid
int
11
Код пользователя –
сотрудника ТО
userid
int
11
Дата создания
createat
datetime
Дата изменения
modifiedat
datetime
Код статуса
statusid
int
11
Код типа неисправности
typeid
int
11
Таблица 13
Таблица status
Наименование поля
Идентификатор
поля
Тип поля
Длина
поля
Прочее
Код статуса
id
int
11
AI
Наименование статуса
caption
varchar
120
Дата создания
createat
datetime
Дата изменения
modifiedat
datetime
Таблица 14
Таблица typeticket
Наименование поля
Идентификатор
поля
Тип поля
Длина
поля
Прочее
Код типа неисправности
id
int
11
AI
Наименование типа
неисправности
caption
varchar
255
Отображать на форме
добавления заявки?
active
tinyint
1
Дата создания
createat
datetime
Дата изменения
modifiedat
datetime
62
Таблица 15
Таблица comment
Наименование поля
Идентификатор
поля
Тип поля
Длина
поля
Прочее
Код комментария
id
int
11
AI
Текст комментария
texts
varchar
255
Код пользователя (автора
комментария)
userid
int
11
Код заявки
ticketid
int
11
Ссылка на файл
image
varchar
255
Дата создания
createat
datetime
Дата изменения
modifiedat
datetime
SQL-скрипт для создания базы данных приведен в приложении 1.
2.3.3. Структурная схема пакета
Популярность языка php обусловила появление большого числа
фреймворков, основанных на нем. Фреймворк – программная платформа,
определяющая структуру программной системы; программное обеспечение,
облегчающее разработку и объединение разных компонентов большого
программного проекта.
Для написания информационной системы использовался фреймворк языка
php Symfony 2.
Symfony 2 – самый популярный PHP-фреймворк в мире. Он включает в
себя весь набор инструментов, используемый для быстрой разработки веб-
приложений, и при этом абсолютно ничего не навязывает создаваемому
приложению. Разработчик может быстро начать работу, используя дистрибутив
Symfony2.
Сильные стороны Symfony 2:
Высокая скорость работы за счет использования шаблонизатора под
именем Twig, который использует оптимизированный PHP-код;
Гибкость в настройке - Symfony позволяет конфигурировать
приложения в трех различных форматах: аннотации, XML, YML. Есть
возможность использовать все конфигурации одновременно;
Расширяемость – поскольку Symfony основан на концепции DI
(слабая связанность), программист может в любое время расширять приложение
63
за счет подключения новых бандлов, которые минимально влияют на работу
других бандлов, но зато возможна конфигурация их совместной работы;
Стабильность – длительное время поддержки версий;
Ориентированность на разработчика - Symfony имеет очень
удобную консоль и для того, чтобы программист не выполнял рутинную работу,
консоль Symfony делает генерацию определенного кода вместо программиста с
помощью определенных команд.
Symfony 2 – это набор компонентов, таких как:
HttpFoundation – данный компонент Symfony отвечает за обработку
запросов и ответов приложения (Request и Response соответвенно). Также он
содержит в себе классы, которые позволяют программисту заниматься работой с
файлами и сессией;
Routing – компонент, который занимается маршрутизацией в
приложении и позволяет конфигурировать, каким именно образом должны
обрабатываться URL;
Form – компонент, который позволяет программисту легко и удобно
генерировать, а также управлять формами: простыми или загрузочными;
Validator набор классов, который позволяет программисту
проверять данные на корректность. Содержит в себе множество правил для
проверок: начиная простой проверкой на пустоту объекта, заканчивая
различными сложными правилами.
ClassLoader – библиотека, которая позволяет подключать в систему
PHP-классы без использования явного require.
Templating – тулкит для загрузки/рендеринга шаблонов. Также
поддерживается множественное наследование шаблонов (шаблонизатор Twig);
Security – библиотека, которая создана для решения вопросов,
которые касаются различных типов безопасности, при создании приложения;
Translation компонент, которые позволяет реализовать
многоязычность сайта.
Данный фреймворк работает с подходом к программированию,
называемый Model-view-controller (MVC, «модель-представление-контроллер»,
«модель-вид-контроллер»).
64
Основная идея данного подхода заключается в разделении данных, их
представлениях и обработку действий пользователей на три больших группы:
Модель (англ. Model). Модель предоставляет знания: данные и
методы работы с этими данными, реагирует на запросы, изменяя своё состояние.
Объекты данной группы не содержат информации, как эти знания можно
визуализировать.
Представление, вид (англ. View). Отвечает за отображение
информации (визуализацию). Часто в качестве представления выступает форма
кно) с графическими элементами. Главная задача – представить информацию,
хранимой в модели в виде, воспринимаемым пользователем.
Контроллер (англ. Controller). Обеспечивает связь между
пользователем и системой: контролирует ввод данных пользователем и
использует модель и представление для реализации необходимой реакции.
Важно отметить, что как представление, так и контроллер зависят от
модели. Однако модель не зависит ни от представления, ни от контроллера. Тем
самым достигается назначение такого разделения: оно позволяет строить модель
независимо от визуального представления, а также создавать несколько
различных представлений для одной модели.
В таблице 16 приведен список разработанных программных модулей-
контроллеров, в таблице 17 – модели, в таблице 18 – представления.
Таблица 16
Программные модули Controller
Номер
Название
Описание
1
DefaultContoller.php
Класс контроллера, обрабатывающий маршрут
главной страницы информационной системы
2
AbstractController.php
Родительский класс контроллера, содержащий
методы для отображения данных и форм,
обработки отправленных форм
3
SecurityController.php
Класс контроллера, содержащий методы и
функции, необходимые для реализации
функций авторизации, выхода из сайта,
управления профилем пользователя
4
TicketsController.php
Класс контроллера, содержащий методы для
реализации работы с заявками всеми
пользователями ИС
5
SpravController.php
Класс контроллера, содержащий методы для
реализации работы со справочниками
65
Таблица 17
Программные модули Model
Номер
Название
Описание
1
AbstractEntity.php
Родительский класс модели, содержащий
базовые методы и свойства для реализации
классов модели
2
User.php
Класс модели, содержащий атрибуты и методы
для работы с объектом пользователя
3
Company.php
Класс модели, содержащий атрибуты и методы
для работы с объектом компании
4
Ticket.php
Класс модели, содержащий атрибуты и методы
для работы с объектом заявки
5
Comment.php
Класс модели, содержащий атрибуты и методы
для работы с объектом комментария к заявке
6
Status.php
Класс модели, содержащий атрибуты и методы
для работы с объектом статуса заявки
7
Role.php
Класс модели, содержащий атрибуты и методы
для работы с объектом роли пользователя
8
TypeTicket.php
Класс модели, содержащий атрибуты и методы
для работы с видом неисправности
Таблица 18
Программные модули View
1
AbstractFormType.php
Класс формы управления данными
2
LoginFormType.php
Класс формы авторизации
3
FilterFormType.php
Класс формы для реализации фильтров
4
UserFormType.php
Класс формы для реализации работы с
данными пользователя
5
TicketFormType.php
Класс формы для реализации работы с
данными заявки
6
SpravFormType.php
Класс формы для реализации работы с
записью справочника
Дерево вызова программных модулей приведено на рисунке 17.
66
DefaultCntroller.php
AbstractCntroller.php
SeurityController.php
SpravController.php
AbstractEntity.php
Comment.php
FilterFormType.php
AbstractFormType.php
LoginFormType.php
SpravFormType.php
TicketsController.php
User.php
Ticket.php
ProfileFormType.php
Role.php
Company.php
Status.php
TypeTicket.php
TicketFormType.php
Рисунок 17 – Дерево вызова программных модулей
2.3.4. Описание программных модулей
Главная особенность объектно-ориентированного программирования
(ООП) заключается в том, что при использовании этого метода происходит
оперирование объектами. Под объектом в программировании понимается
совокупность свойств, методов их обработки, а также событий, на которые
объект должен реагировать определенным образом. Под свойствами объекта
обычно понимают структуры данных, характерные для данного объекта, или
другими словами – набор свойств характеризуют какой-либо объект. Метод –
это способ влияния на свойства объекта, обычно используют два метода –
установка какому-то свойству определенного значения, и считывание значения
этого свойства.
Единство данных и процедур их обработки в одном объекте в
терминологии ООП называют инкапсуляцией. Инкапсуляция является одним из
важнейших принципов ООП.
Еще одним фундаментальным понятием ООП является класс.
Классом называют шаблон, на основе которого создается конкретный
программный объект. То есть в классе описаны все свойства и методы,
определяющие поведение каждого объекта, созданного на основе этого класса.

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

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