Материал: Автоматизация управления проектами в студии 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
Отображение
страницы
авторизации
пользователю
НЕТ
Пароль верный?
ДА
НЕТ
Отображение
сообщения об
ошибке
Источник: https://baza.diplomsite.ru/previewfile/2299