В данной статье рассматривается система форума для начинающих программистов, требования, предъявляемые к системе, создается функциональная модель в нотации IDEF0, выделяются необходимые подсистемы.
Ключевые слова: декомпозиция, моделирование, IDEF0, форум, требования, информационная система
Сфера информационных технологий постоянно меняется, появляются новые библиотеки, наборы инструментов, языки программирования. В настоящий момент начинающие разработчики часто не могут определиться, в каком направлении хотят работать, какие языки и библиотеки им нужно изучать, чтобы быстро найти работу. Большинство информации представлено на множестве разрозненных платформ в небольшом количестве или в закрытых чатах, о которых мало информации. В данной работе рассматривается информационная система, представленная в виде мобильного приложения, которая решает основную цель начинающего разработчика — поиск направления, дорожной карты для того, чтобы быть востребованным на рынке труда. Система позволит программистам публиковать свои статьи, дорожные карты, изучать аспекты разработки программного обеспечения.
Исходя из представленной проблемы, в ходе изучения возможных вариантов решения задачи было принято решение разделить систему на две основные части — форум, соответствующий методике проектирования систем Web 2.0, когда систему наполняют контентом рядовые пользователи, и справочная система, которая соответствует методике проектирования Web 1.0, где основную информацию размещают владельцы и модераторы системы.
На основе проблемы были определены функциональные требования для выбранной системы.
1) Гость должен иметь возможность:
а) зарегистрироваться, заполнив форму с именем пользователя, электронной почтой и паролем или с помощью протокола “OAuth2” с сервисом “GitHub”;
б) войти в систему, указав имя пользователя и пароль или с помощью протокола “OAuth2” с сервисом “GitHub”.
2) Гость и пользователь должны иметь возможность:
а) просматривать и копировать теоретические статьи в системе, список топиков, записи в топиках, комментарии под записями, список модераторов и администраторов топика, информацию о записи и ее создателе, профили зарегистрированных пользователей;
б) использовать поиск в соответствующих категориях с использованием фильтра: либо по топикам, либо по пользователям, либо по записям.
3) Система должна предоставить возможность фильтровать и сортировать записи по названию, дате публикации, автору, ключевым словам. Фильтр должен скрывать записи, не подходящие под критерии.
4) Система должна оставлять записи и комментарии пользователя в системе, если он удалил аккаунт.
5) Пользователь должен иметь возможность:
а) выйти из системы и удалить учетную запись;
б) изменить пароль. Для выполнения этого пользователь должен указать текущий пароль и новый пароль;
в) создать и удалить комментарий под записями, если он имеет доступ к данному топику;
г) создать топик. Для создания пользователь должен указать название, описание и обложку;
д) создать публикацию, если ему разрешен доступ к выбранному топику;
е) добавить к создаваемой публикации файлы формата.pdf,.docx,.jpg,.png,.gif;
ж) редактировать записи и комментарии, принадлежащие ему, если с момента публикации прошло не более 5 суток;
з) добавить записи, топики и теоретическую информацию в избранное;
и) просматривать избранный контент.
6) Система должна:
а) показывать окно о предложении войти в систему, если гость пытается выполнить функцию, доступную только пользователям;
б) предоставить выдает роль администратора топика пользователю, создавшему данный топик.
7) Администратор топика должен иметь возможность
а) изменять обложку и название топика, а также удалить топик;
б) назначать и снимать модераторов топика.
8) Администратор и модератор топика могут
а) удалять и редактировать записи в топике;
б) ограничивать и давать доступ к публикации записей в топике пользователям.
9) Администратор информационной системы должен иметь возможность создавать и удалять аккаунты модераторов топика;
10) Администратор и модератор информационной системы должны иметь возможность удалять топики и записи.
Для разработки системы необходимо построить модель с помощью методологии функционального моделирования IDEF0. Процесс использования сервиса будет рассмотрен на основе самого частого варианта использования — публикации данных. Процесс «Публикация контента», изображенный на Рисунке 1, разделяется на 3 подпроцесса: «Авторизация в системе», «Создание контента» и «Прохождение модерации».
Для авторизации в системе на вход в первую очередь необходимы электронная почта, пароль, имя пользователя, так как необходимо создать учетную запись и войти в нее. Электронная почта необходима только для регистрации, тогда как пароль и имя пользователя для аутентификации. На выход с авторизации поступает токен пользователя, который дает возможность пользователю осуществлять все действия, поэтому он поступает на управление подпроцессом создания контента. Данные пользователя подаются на выход и используются в подпроцессе создания контента для установления автора записи, и подпроцессе прохождения модерации для отправки оповещения о нарушениях.
Подпроцесс авторизации выполняют пользователь, заполняющий данные, база данных пользователей для проверки существования профиля с такими данными и система форума, предоставляющая все формы регистрации и аутентификации.
Управляют подпроцессом политика конфиденциальности, и ограничения данных для входа (минимальные размеры паролей и имени пользователя и типы символов в них) и правила пользования системой, которые должен изучить и принять пользователь, прежде чем зарегистрироваться.
Создание контента требует текст для публикации, включающий название, файлы для публикации, которые могут отсутствовать, данные пользователя для того, чтобы указать автора записи. На выход поступает созданная запись, отправленная на проверку и ссылки на файлы, прикрепленные к записи.
Подпроцесс создания контента выполняется пользователем, а система форума отправляет созданную запись модераторам и контролирует типы данных, которые загружает пользователь.
Управляют данным подпроцессом правила пользования системой, которые регулируют этапы создания контента, орфография, которая ограничивает то, что пишет пользователь, ограничения текстового редактора, которые дают форматировать текст в определенном стиле и ограничения загрузки файлов, дающий доступ к загрузке файлов только одного из представленных типов.
Подпроцесс прохождения модерации принимает на вход запись на проверку в соответствии с правилами модерации контента, файлы к записи, которые необходимо проверить на вредоносность и данные пользователя для вынесения предупреждения в случае несоответствия правилам. На выход подается опубликованная запись, если все прошло успешно, предупреждение и черновик записи, если возникли нарушения. Черновик передается обратно в подпроцесс создания контента, чтобы пользователь не терял созданные изменения и мог отредактировать запись в соответствии с правилами.
Проверку проводят модераторы топика и система форума, которая необходима для публикации и отправки предупреждения. Управляют данным процессом правила пользования системой, правила модерации контента и статься об авторском праве, в соответствии с которыми проходит проверка. Также учитывается тема топика, чтобы чистить контент, не относящийся к тематике топика. Модераторы работают в соответствии с графиком работы, поэтому на диаграмме он тоже представлен.
Рис. 1.Декомпозиция процесса «Публикация контента»
Разрабатываемая система должна иметь 3 уровня иерархии:
— уровень централизованной базы данных;
— уровень серверной части системы;
— уровень клиентской части системы.
В состав системы должны включаться подсистемы, которые выполняют задачи, связанные с функционированием системы:
— подсистема файлового хранения;
— подсистема хранения данных;
— подсистема операционного управления;
— подсистема обмена электронными письмами;
— подсистема обработки внешних запросов;
— подсистема фильтрации контента.
Подсистема файлового хранения предназначена для хранения отчетов, создаваемых в системе, документов, прикрепленных к записям. Подсистема хранения данных необходима для хранения данных текстового формата в табличном виде. Система операционного управления автоматизирует процессы публикации, получения, отправки данных на устройства пользователей. Подсистема обмена электронными письмами необходима для отправки и получения сообщений через протокол SMTP, используемый для передачи писем в сети. Подсистема обработки внешних запросов получает запросы с клиентских приложений, обращается в подсистему операционного управления и возвращает ответы по запросу. Подсистема фильтрации контента необходима для проверки публикуемого контента по критериям. Подсистемы, входящие в состав всей системы, могут обмениваться сведениями о записях, топиках, пользователях, файлами с расширениями.pdf,.docx,.jpg,.gif,.png, заявками на рассмотрение модерацией, электронными письмами. Подсистема фильтрации контента должна взаимодействовать с подсистемой операционного управления для получения записи и возвращения результата. Системе необходимо выдавать информацию о процессах, происходящих в ней, чтобы производить мониторинг и просмотр происходящих событий. При возникновении ошибок сохранять полную информацию об ошибке в том числе состояние памяти и загруженность процессора.
Таким образом, в данной работе были определены функциональные требования для форума начинающих программистов. Разработана функциональная модель в нотации IDEF0, продуманы подсистемы разрабатываемого сервиса.
Литература:
- Миндалев, И. В. Моделирование бизнес-процессов с помощью IDEF0, DFD, BPMN за 7 дней: учеб. пособие / И. В. Миндалев. — Красноярск: Краснояр. гос. аграр. ун-т, 2018. — 123 c. — Текст: непосредственный.
- Долганова, О. И. Моделирование бизнес-процессов: учебник и практикум для академического бакалавриата / О. И. Долганова, E. В. Виноградова, А. М. Лобанова. — Москва: Юрайт, 2017. — 289 c. — Текст: непосредственный.
- Рочев, К. В. Информационные технологии. Анализ и проектирование информационных систем: учебное пособие / К. В. Рочев. — СПб: Лань, 2019. — 128 c. — Текст: непосредственный.
- Гвоздева, Т. В. Проектирование информационных систем: технология автоматизированного проектирования. Лабораторный практикум / Т. В. Гвоздева, Б. A. Баллод. — СПб: Лань, 2018. — 156 c. — Текст: непосредственный.