Диплом: Автоматизация управления проектами в студии APPCRAFT

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
79
Стоит отметить, что от модели зависят и представление, и контроллер.
Тогда как сама модель от них не зависит. По сути она зависит лишь от
предметной области, для которой создается ИС. Это позволяет строить модель
независимо от способа представления данных. То есть для одной и той же
модели можно создать сколь угодно разных представлений и контроллеров.
В таблице 21 приведен список программных модулей, содержащих
описание модели данных, а также краткое описание назначение данного класса.
Таблица 21
Программные модули Model
Номер
Название
Описание
1
Entity.php
Родительский класс для всех классов моделей
2
Project.php
Класс модели, содержащий атрибуты и методы для
работы с объектом проекта
3
Stage.php
Класс модели, содержащий атрибуты и методы для
работы с объектом этапа проекта
4
Task.php
Класс модели, содержащий атрибуты и методы для
работы с объектом задачи проекта
5
Comment.php
Класс модели, содержащий атрибуты и методы для
работы с объектом комментарий к проекту/задаче
6
File.php
Класс модели, содержащий атрибуты и методы для
работы с объектом загруженного файла
7
User.php
Класс модели, содержащий атрибуты и методы для
работы с объектом пользователя ИС
8
Staff.php
Класс модели, содержащий атрибуты и методы для
работы с объектом должности пользователя ИС
9
Role.php
Класс модели, содержащий атрибуты и методы для
работы с объектом роль
10
ProjectUser.php
Класс модели, содержащий атрибуты и методы для
работы с объектом роль пользователя в проекте
11
TypeTask.php
Класс модели, содержащий атрибуты и методы для
работы с объектом типа задачи
80
В таблице 22 приведен список программных модулей-контроллеров, реализующих
всю логику работы информационной системы.
Таблица 22
Программные модули Controller
Номер
Название
Описание
1
Contoller.php
Родительский класс контроллера для всех
остальных контроллеров, содержит общие методы
2
SpravController.php
Класс контроллера для реализации работы со
справочниками
3
ProjectController.php
Класс контроллера для реализации работы с
проектами
4
SecurityController.php
Класс контроллера для реализации авторизации
пользователей и управления профилем
5
ReportController.php
Класс контроллера для формирования отчета
В таблице 23 приведен список программных модулей, которые
реализуют формы работы с данными (представление).
Таблица 23
Программные модули View
Номер
Название
Описание
1
EntityForm.php
Родительский класс форм, предназначенных
для работы с сущностями модели
2
ProjectForm.php
Класс формы работы с проектом
3
StageForm.php
Класс формы работы со стадией
4
TaskForm.php
Класс формы работы с задачей
5
CommentForm.php
Класс формы работы с комментарием
6
FileForm.php
Класс формы работы с файлом
7
UserForm.php
Класс формы работы с пользователем
8
StaffForm.php
Класс формы работы с должностью
9
RoleForm.php
Класс формы работы с ролью
81
10
TypeTaskForm.php
Класс формы работы с типом задачи
11
LoginForm.php
Класс формы авторизации
2.3.4. Описание программных модулей
Главная особенность объектно-ориентированного программирования
(ООП) заключается в том, что при использовании этого метода происходит
оперирование объектами. Под объектом в программировании понимается
совокупность свойств, методов их обработки и событий, на которые данные
объект может реагировать. Под свойствами объекта обычно понимают
структуры данных, характерные для данного объекта, или другими словами –
набор свойств характеризуют какой-либо объект. Метод – это способ влияния
на свойства объекта, обычно используют два метода – установка какому-то
свойству определенного значения, и считывание значения этого свойства.
Инкапсуляцией называют объединение данных и процедур в одном
объекте. Инкапсуляция – один из ключевых принципов ООП.
Еще одним фундаментальным понятием ООП является класс.
Классом называют шаблон, на основе которого создается конкретный
программные объект. То есть в классе описаны все свойства и методы,
определяющие поведение каждого объекта, созданного на основе этого класса.
Также принято каждый объект, созданный на основе класса называть
экземпляром этого класса.
Следующими важнейшими принципами ООП являются наследование и
полиморфизм.
Наследование – такая организация классов, которая подразумевает
создание новых классов на базе существующих и позволяет классу потомку
иметь (наследовать) все свойства класса – родителя.
Полиморфизм – означает, что рожденные объекты обладают
информацией о том, какие методы они должны использовать в зависимости от
82
того, в каком месте цепочки (дерева классов) они находятся, иными словами это
концепция, реализующая «множество методов в одном интерфейсе».
Другим важнейшим принципом ООП является модульность.
Под модульностью понимают такую организацию объектов, при
которого каждый объект заключает в себе полное описание своих
характеристик (свойств, методов). Это позволяет свободное копирование
объектов (модулей) и внедрение одного объекта в другие.
На основе объектно-ориентированной парадигмы выросла объектно-
событийная парадигма (методология). Эта парадигма позволяет
конструировать, программировать распределенные вычислительные среды, в
том числе среды реального времени, SCADA и пр.
Событием в объектно-ориентированном программировании называют
сообщение, которое возникает в различных местах исполняемого программного
кода при выполнении определенных условий. Главное назначение события –
возможность предусмотреть реакцию создаваемого программного продукта.
Для решения такой задачи существуют обработчики событий. То есть, как
только программа попадает в предопределенное состояние (возникает событие),
то соответствующего обработчику отправляется сообщение. В общем случае в
обработчик не передаётся ничего, либо передаётся ссылка на объект,
инициировавший (породивший) обрабатываемое событие. В особых случаях в
обработчик передаются значения некоторых переменных или ссылки на какие-
то другие объекты, чтобы обработка данного события могла учесть контекст
возникновения события. Самое простое событие - это событие, сообщающее о
начале или о завершении некоторой процедуры.
Первый ряд примеров событий доставляет собственно сам жизненный
цикл объекта:
создание объекта;
уничтожение объекта.
83
Каждый программный модуль, представленный в таблицах 21-23
описывают определенные классы. Классы модели описывают модель данных,
фактически повторяя структуру соответствующих таблиц базы данных.
Каждому полю таблицы БД соответствует свойство класса. В методы
классов Model включают обычно по два метода на каждое свойство (методы get
и set).
Классы Контроллеры отвечают за обработку http-запросов,
присылаемых к ИС пользователями с помощью соответствующих форм
пользовательского интерфейса.
В качестве примера обработки запроса на рисунке 21 представлен
алгоритм обработки запроса авторизации пользователя в системе.
Начало
Создание экземпляра класса
LoginForm
Проверка наличия у посетителя
активной сессии авторизации
Переадресация на главную
страницу ИС (маршрут Tasks,
контроллер
ProjectController.php)
Сессия имеется
Сессии не имеется
Переадресация на главную страницу
ИС (маршрут Tasks, контроллер
ProjectController.php)
Конец
Форма была отправлена?
Да
Отправка запроса к модели
данных на выборку
информации о пользователе,
чей email совпадает с
введенным
Создание сессии авторизации
Создание
представления на
основе шаблона
login.html.twig
Отображение
страницы
авторизации
пользователю
НЕТ
Пароль верный?
ДА
НЕТ
Отображение
сообщения об
ошибке
84
Рисунок 21 – Алгоритм обработки авторизации пользователя в системе
Исходный код программных модулей приведен в приложении 2.
2.4. Контрольный пример реализации проекта и его описание
Работа в системе начинается с авторизации с помощью соответствующей
формы авторизации (Рисунок 22).
Рисунок 22 – Форма авторизации
После успешного прохождения авторизации открывается главная
страница, на которой в виде таблицы отображается список задач пользователя,
с указанием проекта, по которому её нужно сделать, а также сроков и пр.
информация (Рисунок 23).
85
Рисунок 23 – Список задач
При щелчке на какую-либо задачу открывается форма для загрузки
файла к ней или отправки комментария (Рисунок 24).
Рисунок 24 – Форма работы с задачей
Стоит также отметить, что форма работы с задачей для руководителя
проекта имеет дополнительные кнопки по смене ответственного за задачу,
приему это задачи или возврата в работу (в зависимости от текущего статуса).
Рисунок 25 – Форма работы с задачей для руководителя проекта
86
Навигация между разделами выполнятся с помощью навигационного
меню, которое находится в левой части экрана пользователя. Следует отметить,
что в зависимости от должности сотрудника ему доступны разные пункты
меню. При переходе в раздел «Проекты» открывается список всех проектов, в
которых участвует пользователь. Руководителю проекта также отображается и
кнопка создания нового проекта (Рисунок 26).
Рисунок 26 – Просмотр списка проектов
При клике на проект в списке открывается форма просмотра данных по
нему. Для более удобного просмотра все этапы располагаются в порядке их
прохождения, задачи каждого этапа группируются внутри проектов, а текущая
решаемая задача выделяется в общем списке (Рисунок 27).
87
Рисунок 27 – Форма просмотра проекта
Форма состоит из четырех вкладок:
общих данных по проекту со списком этапов и задач (представлена
на рисунке 27);
вкладка онлайн-чата для общения по проекту (Рисунок 28);
списка всех файлов по проекту в обратном хронологическом
порядке их загрузки (Рисунок 29);
списка участников команды проекта (Рисунок 30).
88
Рисунок 28 – Вкладка «Онлайн-чат»
Рисунок 29 – Вкладка «Файлы проекта»

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

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