Научная статья на тему 'АВТОМАТИЗАЦИЯ ПОСТРОЕНИЯ ОТЧЁТОВ О РАБОТЕ КАФЕДРЫ'

АВТОМАТИЗАЦИЯ ПОСТРОЕНИЯ ОТЧЁТОВ О РАБОТЕ КАФЕДРЫ Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
105
24
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
отчёт / база данных / автоматизация / NoSQL / report / database / automation / NoSQL

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Курдаков Е.В., Панкратов И.А.

В работе построена информационная система для генерации отчётов по кафедре. Для хранения данных использован нереляционный подход. Разработанное веб-приложение позволяет частично автоматизировать работу вузовской кафедры.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

AUTOMATING THE CONSTRUCTION OF UNIVERSITY DEPARTMENTS REPORTS

The information system for generating reports on the university department is built in the paper. A non-relational approach is used for data storage. The web application developed in the paper allows partially automate the work of the university department.

Текст научной работы на тему «АВТОМАТИЗАЦИЯ ПОСТРОЕНИЯ ОТЧЁТОВ О РАБОТЕ КАФЕДРЫ»

Электронный научный журнал "Математическое моделирование, компьютерный и натурный эксперимент в естественных науках" http://mathmod.esrae.ru/ URL статьи: mathmod.esrae.ru/33-124 Ссылка для цитирования этой статьи:

Курдаков Е.В., Панкратов И.А. Автоматизация построения отчётов о работе кафедры // Математическое моделирование, компьютерный и натурный эксперимент в естественных науках. 2021. № 1_

АВТОМАТИЗАЦИЯ ПОСТРОЕНИЯ ОТЧЁТОВ О РАБОТЕ КАФЕДРЫ

Курдаков Е.В.1, Панкратов И.А.2 1 Саратовский национальный исследовательский государственный университет

им. Н.Г. Чернышевского, Россия, Саратов, e.kurdakov@yandex.ru 2Саратовский национальный исследовательский государственный университет им. Н.Г. Чернышевского, Россия, Саратов, pankratovia@info.sgu.ru

AUTOMATING THE CONSTRUCTION OF UNIVERSITY DEPARTMENTS

REPORTS

Kurdakov E.V.1, Pankratov I.A 2 1Saratov State University, Russia, Saratov, e.kurdakov@yandex.ru 2Saratov State University, Russia, Saratov, pankratovia@info.sgu.ru

Аннотация. В работе построена информационная система для генерации отчётов по кафедре. Для хранения данных использован нереляционный подход. Разработанное веб-приложение позволяет частично автоматизировать работу вузовской кафедры.

Ключевые слова: отчёт, база данных, автоматизация, NoSQL.

Abstract. The information system for generating reports on the university department is built in the paper. A non-relational approach is used for data storage. The web application developed in the paper allows partially automate the work of the university department.

Keywords: report, database, automation, NoSQL.

В настоящей работе было спроектировано и реализовано документо-ориентированное хранилище отчётов по кафедре [1, 2], а также создана информационная система (ИС) [3], которая будет генерировать большую часть отчётов, что в конечном итоге облегчит их написание. Сгенерированный отчёт представляет собой файл с расширением .tex, который будет необходимо скомпилировать, чтобы получить на выходе файл формата .pdf. ИС представляет собой NoSQL базу данных (БД) и графический пользовательский интерфейс в виде web-приложения. Главной отличительной особенностью подхода NoSQL от традиционно используемого принципа реляционных БД

УДК 004.65:004.91

DOI: 10.24412/2541 -9269-2021-1-08-16

является возможность работать с неструктурированными данными [4]. При этом web-приложение позволит работать с данными через браузер на компьютере.

При разработке ИС для работы с отчётами по кафедре были сформулированы следующие требования: качественная проработка; постоянная готовность к эксплуатации; устойчивость к большому количеству пользователей (одновременному использованию системы несколькими работниками); реализация ролевого доступа; понятная навигация и информативное меню; цветовая схема должна не утомлять пользователя. При разработке проекта следует учитывать, что любая система, в том числе ИС, более устойчива, если она состоит из наименьшего числа компонентов. Однако нельзя забывать, что на скорость работы системы влияет размер этих компонентов. Разработанная ИС была реализована в виде web-приложения. Его главное преимущество по сравнению с десктопным приложением заключается в отсутствии необходимости предустановки приложения (или другие предварительные манипуляции) на все машины, на которых планируется ведение работы. В случае с web-приложением нужно развернуть сервер лишь на одной машине, реализуя клиент-серверную архитектуру. К тому же опыт работы в браузере есть практически у каждого пользователя персонального компьютера.

Модель ИС была создана с помощью унифицированного языка моделирования ЦМЬ [5, 6]. На рис. 1 приведена диаграмма вариантов использования ИС.

Рис.1. Диаграмма вариантов использования

На диаграмме USE-CASE отображены основные функциональные возможности участников системы. Они поделены на рядовых пользователей и на администраторов системы. При входе в систему каждый пользователь сначала должен пройти этап авторизации, то есть ввести личный логин и пароль, выданные администратором системы. Администратор системы может работать только с учётными записями: создавать, редактировать или удалять их. Рядовой пользователь системы сможет добавлять документы в следующие коллекции: преподаватели, группы, научные работы. Также он увидит выборку из соответствующих коллекций. Просмотрев список документов, например документов преподавателей, пользователь сможет получить более точную информацию о преподавателе. После выбора конкретного преподавателя перед пользователем открывается новый функционал. Теперь пользователь может удалить документ из коллекции с данными об этом преподавателе, редактировать данные, и добавлять данные о конференциях, повышениях квалификации и написанных курсах. Поскольку конференции, повышение квалификации и курсы - это массивы документов в документе, то они добавляются к каждому преподавателю отдельно._

=7"

Training Direction

cods: String degree: string direction: string id: Objectld

getCobe[): String getDegree[): String getDirect">on|): String getldl): Objectld setcode[string): void setDegree[stririg|: void setDirection[string): void ietld(Objectld): void

codeDirecton: String

farmofr raining: String id: object id numberofGroup: int specialty: String

+ getCodeDirection[): String

getFormOfTraining[): Strng getld[): Objectld getriumberofGroup[J: int getspecialty[): string setcodeDirection[string): void setCourse[int|: void set FormOfTrs i ning(5tring |: void setld|Objectld|: void setNumberOfGrouplint}: void setSpec~ialty[5tring): void

first tome: String last tome: String middle tome: String

getFirstNanve[}: String getLasttome[): String getMiddlerta rr.eQ: String setFirsttome[stringJ: void setLastria me[srtinj): void setMiddle№me[String): void

role: string use rto me: String

get Role [J: String getieerto nrve[>: String setRote(Stnng}: void setusertome(StringJ: void

academiCTitie: String

conference: A,rrayLiit<Canference>

course: ArrayLiit<Course>

degree: String

first Ha me: string

firstsemBud: int

firstsernvneeud: int

id: Objectld

lastto me: String

mifldleNa me: Stnrg

position: String

professions (Development: ArrayLisKProfessionalDevelopment>

scientificDegree: string

secondsemBud: int

secondSemVneBiid: int

yearSemVneBud: int

getAcademtTitte(|: String getConferencel): A rra у List<Confe re nce> gettourseQ: fi.rrayList<Course> getFirstrw me [J: string getFirCTSemBud[): int getFirstsemvrKBud[): im getldfl: Objectld getLasttome[): String getMiddletomeU: String getPos"tion[): String

getProfessiona Development!}: ftrrayLisKProfessionalDevelopmenb getsc"ientificDegree[): string

getsec-orcsenwreBuaQ: int getYearSemBud[): int getYearSemVne$iid[): int setAcdttem£Trtle[5tring): void £etConference[ArrayList<Conference>): void setCourse(ArraylisKCourse>J: void setFiraHame(stringj: void setFirstsemBudfini): void setFirstsernvneBud[im): void setldfobjectldj: void setLastto mefString): void setMiddleto nve(Stnng|: void setPo5ifon[String|: void

setProfessional[^elopment[intA.rTayList<profes5ionalDevelopmenT>>: void

setscientrficDegree[stringJ: void

setsecondsemBudnnt): void

setSecondSemVneBud[int^ void

setYed rSemBudpntj: void

setYea rSemVr>eBi»d[intj: void

Co life rente

dateofconference: LocalDate nameconference: string placeofconference: string ty peConference: String

getDateOfConferenceQ: LocalDate gettomeConference(J: String getPlaceOfConference(}: String getTypeconference[): string setDateofconference[L«alDate}: void ietna rrvKo nfe гегке [stri rig}: void ietPlaceOfConference[Strung): void setTy peConfe re nce[String): void

dateCourse: LocalDate narrecoura: string URLCourse: string

getDstecourse[|: LocalDate getto metourset): String getu RLCo urse[|: String setDateCourse(LocalDate}: void setH a meCo j rse(St ring): void setURLCourse[5tring): void

SdentifkWork

authorofSeientrficvvork: Array List<string> date: LocalDate id: Objectld

riameOfScientrftWork: String placeOfPubiiEiimg: String publishing Ho use: String

getA utho rofscientificwo rk (): ArrayList<STring> getDate[(: LocalDate getld[): Objectld

getHarneOfScieritrFicWork(|: String gEtPlacEOfPub ishingl |>: String getPnblishingHouse[|: String getsize[J: void

setAutherofsciervtrficW0rfc[ArrayLst<string>): void £etDate[ LocalDate): void setld[Objectld): void settomeOfScierrtTficWork[String): void ietPlaceOfPubfchirig[5tnng|: void setPublishingHouselString): void setSire[Stririg|: void

Professional Development

dateprofessionalDevelopment: LocalDate nameprofessi-ona Development: string organizater: string

placeProfessiona I Development: String

getDateProfessionalDevelopment[(: LocalDate gettomeProfessonalDevetopment[): String getOrgan'iratefl: String getPlaceprofessfc>nalDevelopment[): string setDateprofessionalDevelopri№nt[Local№te)r void settor№Profess~>onalDevelopment[string): void setOrganizater[Strii^j: void setplacep rofessic na I Deve lopment[Stri rig): void

Рис. 2. Диаграмма классов

Рассмотрим диаграмму классов для нашего проекта, показанную на рис. 2. Самый объёмный класс Teacher является сущностью одноименной коллекции в БД. Для вложенных документов созданы отдельные классы, которые связаны с классом Teacher связью композиции. Это указывает на жесткую связь между объектами (удаление объекта класса Teacher приведет к удалению экземпляров классов Conference, Course, ProfessionalDevelopment). Так же связаны классы Student и Group. Связь типа агрегация имеет место между классами Teacher и ScientificWork, Student и ScientificWork, а также TrainingDirection и Student. Это обозначает, что экземпляр первого класса из пары входит в экземпляр второго класса пары. Обработки данных в этих классах нет, так как вся обработка происходит на сервлетах [7] и во вспомогательном классе Connecter. Поэтому в каждом из классов есть только геттеры (getters) и сеттеры (setters).

Также были построены различные диаграммы последовательностей. Рассмотрим их на примере добавления преподавателя, показанного на рис. 3.

Рис. 3. Добавление преподавателя После заполнения пользователем данных на форме (на jsp) и отправки их на сервер вызывается соответствующий сервлет, а именно метод doPost(). Сервлет получает данные и вызывает нужный метод из класса-менеджера, используя полученные данные [8]. Этот метод обращается к БД и получает документы коллекции и создаёт объект типа MongoCollection на сервлет. Затем с сервлета отправляется запрос к БД на добавление записи. Затем происходит перенаправление на jsp с данными о только что созданном преподавателе.

Для работы с БД была выбрана свободная нереляционная система управления базами данных (СУБД) MongoDB [9]. Данная система поддерживается в самых крупных операционных системах: Linux, Microsoft

Windows, macOS и OpenBSD и по данным сайта [10] занимает первое место по популярности среди нереляционных СУБД. MongoDB; имеет собственный язык запросов. Для удобной работы с данной СУБД будем пользоваться графическим интерфейсом MongoDB Compass.

Сначала создадим такие коллекции, как коллекцию для направлений подготовки студентов «tramingDirections», для групп «Group», для научных работ «ScientificWork», для преподавателей «Teacher» и коллекцию для учётных записей «Users». Логинами в «Users» будут являться фамилии и инициалы преподавателей.

Логины администраторов системы представляют фамилию и инициалы преподавателя с припиской «admin». В будущем администратор системы сможет указывать любые логины для любых пользователей. Для хэширования пароля был применён алгоритм MD5 и метод языка Java DigestUtils.md5Hex(), где в качестве входного параметра указан пароль в явной форме. Например, для входного значения «password» результатом работы функции будет являться значение «5f4dcc3b5aa765d61d8327deb882cf99», которые мы можем поместить в коллекцию. Для системы предусмотрено две роли пользователей: рядовой пользователь «user» и администратор системы «admin». Остальные коллекции оставим незаполненными, так как они будут заполняться документами уже при использовании ИС.

После авторизации в системе пользователь попадает на страницу, показанную на рис. 4.

ПРЕПОДАВАТЕЛИ ГРУППЫ НАУЧНЫЕ ОТЧЕТЫ ВЫХОД

РАБОТЫ

Список преподавателей

| Добавить преподавателя |

Учебный год: 12020 у 11 Отобразить преподавателей |

Фамилия Имя Отчество Должность Ученая степень Ученое звание

Блинков Юрий Анатольевич зав.каф. д.ф.-м.н. доцент

Иванов Сергей Викторович доцент к.ф.-м.н.

Кальянов Леонтий Вениаминович профессор д.э.н. профессор

Кожанов Василий Сергеевич ст. преп.

Кондратов Дмитрий Вячеславович профессор д.ф.-м.н. доцент

Крылова Екатерина Юрьевна доцент к.ф.-м.н. доцент

Кузнецова Ольга Святославовна доцент к.ф.-м.н. доцент

Мельникова Юлия Владимировна доцент к.э.н

Панкратов Илья Атексеевич доцент к.т.н доцент

Плаксина Ирина Владимировна доцент к.ф.-м.н.

Шевырев Сергей Павлович доцент к.ф.-м.н. доцент

Рис. 4. Список преподавателей Вверху страницы пользователь видит меню, состоящее из пяти пунктов. Первые четыре пункта меню направляют пользователя на соответствующую

страницу со списком. Эти страницы похожи друг на друга и строятся по одному шаблону. Слева вверху находится заголовок страницы. Справа вверху находится кнопка для добавления преподавателя. Ниже располагается таблица с данными. При наведении на строку в таблице курсора мыши строка меняет цвет для удобства пользователя [11]. Последний пункт меню «Выход» завершает сессию пользователя, после чего он окажется на странице с авторизацией. Нажав на строку в таблице, пользователь перейдёт на страницу с данными о конкретном преподавателе. Нажав на строку в таблице, пользователь перейдёт на страницу с данными о конкретном преподавателе. Например, рассмотрим частично заполненную страницу с данными о заведующем кафедрой математического и компьютерного моделирования Блинкове Юрии Анатольевиче, показанную на рис. 5.

ПРЕПОДАВАТЕЛИ ГРУППЫ НАУЧНЫЕ ОТЧЕТЫ ВЫХОД

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

РАБОТЫ

Рис. 5. Редактирование данных о преподавателе

Вверху страницы находится заголовок страницы и три кнопки для добавления данных о конференциях, повышениях квалификации и новых читаемых курсах. Данная страница кроме показа данных о преподавателе по совместительству является страницей редактирования данных о преподавателе. В поля формы передаются актуальные данные из БД. Это сделано для того, чтобы пользователю не приходилось вводить данные в те поля, которые он не хочет изменять. Если изменить какие-либо данные и нажать кнопку «Сохранить», то произойдет обновление записи в БД. Ниже расположены таблицы со списком конференций, повышений квалификации и новых разработанных курсах. Строки в этих таблицах, так же как в строки в таблице со списком преподавателей, являются ссылками на страницы с редактированием. Данные таблицы были заполнены данными прошлых лет. Внизу страницы находится кнопка «Удалить преподавателя», которая удаляет запись из коллекции. При удалении преподавателя также удалятся все данные о конференциях, курсах и повышениях квалификации этого преподавателя за этот учебный год. В коллекции хранятся данные о преподавателях в рамках отдельных учебных лет. Таким образом, при наступлении нового учебного года необходимо будет создать записи преподавателей для этого учебного года, указав актуальную нагрузку и т.д.

ПРЕПОДАВАТЕЛИ ГРУППЫ НАУЧНЫЕ ОТЧЕТЫ ВЫХОД

РАБОТЫ

Редактирование данных о научной работе

Наименование научной работы | Волны деформации в двух соосных кубически нелинейных цилиндрических оболочках с вязкой жидкостью между ними

Автор | Блинков Юрий Анатольевич

Автор ¡Иванов Сергей Викторович Автор | Могилевич Лев Ильич | Добавить авгорэ(ов7] [ Удалить автора | Место издания ¡Саратов

Издательство | Известия высших учебных заведений, прикладная нелинейная динамика

Дата публикации 127.95.2020 О | Объем 119

| Сохранить данные"] | Удалить научную работу |

Рис. 6. Редактирование данных о публикации Аналогичные страницы были созданы для работы со студенческими группами и научными публикациями. Заметим, что при обработке библиографических данных одним из авторов и ранее применялся нереляционный подход [12-14]. Например, на рис. 6 показана форма для редактирования данных о научной публикации. Так как у статьи может быть несколько авторов, нужно отобразить всех авторов на страницу для редактирования. Также нужно сохранить возможность добавлять и удалять авторов. Необходимо отметить, что авторами могут являться не только

сотрудники кафедры, но и студенты кафедры. При добавлении авторов появляется выпадающий список с преподавателями и студентами, но пользователь может ввести любые данные.

Разработанная ИС используется для генерации отчётов по кафедре. На странице с отчётами пользователю нужно выбрать учебный год, за который он хочет построить годовой отчёт, и нажать на кнопку «Построить отчёт». В результате браузером будет скачан архив файлов. В архиве находятся файл со стилем gost.sty и построенный отчёт document.tex. Скомпилировав tex-файл, пользователь получит отчёт в формате pdf. Данные в отчёт выбираются по дате в документах. Введенный пользователем год передаётся на сервлет, где формируется ограничение по дате в рамках учебного года, т.е. от 01 сентября выбранного года до 31 августа следующего года. Данная проверка применяется к коллекциям с преподавателями и научными работами. В отчёте указан штатный состав кафедры; конференции, в работе которых участвовали сотрудники кафедры и их публикации; сведения о новых подготовленных и прочитанных курсах, а также о повышении квалификации преподавателей.

Наличие информационной системы для построения отчётов по кафедре имеет ряд преимуществ по отношению к созданию этих отчётов вручную. Во-первых, используя информационную систему, работники повысят эффективность своей деятельности. Это обусловлено удобным и приятным интерфейсом, подсказками пользователю и т.д. Во-вторых, пользователи информационной системы будут совершать меньшее количество ошибок оформления из-за автоматизации построения отчётов. БД была наполнена актуальными данными о работе кафедры. Разработанная в ходе работы информационная система может быть использована в работе кафедры математического и компьютерного моделирования как самостоятельный программный продукт.

Литература

1. Положение о кафедре | СГУ. URL: https://www.sgu.ru/sites/default/files/documents/2018/polozhenie o kafedre 2014

5.pdf (дата обращения: 15.01.2021).

2. Отчеты о работе кафедры | СГУ. URL: https://www.sgu.ru/structure/fi/enggum/7-otchety-o-rabote-kafedry (дата обращения: 19.01.2021).

3. Мацяшек Л.А., Лионг Б.Л. Практическая программная инженерия на основе учебного примера. М.: Лаборатория знаний, 2020. 958 с.

4. Фаулер М., Садаладж П. NoSQL. Новая методология разработки нереляционных баз данных. М.: ДМК-Пресс, 2013. 158 c.

5. Фаулер М. UML. Основы. М.: Символ-плюс, 2011. 192 c.

6. Киммел П. UML. Основы визуального анализа и проектирования. М.: НТ Пресс, 2008. 272 c.

7. Курняван Б. Создание web-приложений на языке Java с помощью сервлетов, JSP и EJB. М.: ЛОРИ, 2005. 880 c.

8. Холл М. Сервлеты и JavaServer Pages. С-Пб: Питер, 2001. 496 c.

9. Бэнкер К. MongoDB в действии. М.: ДМК-Пресс, 2012. 394 c.

10. DB-Engines Ranking. URL: https://db-engines.com/en/ranking (дата обращения: 20.01.2021).

11. Фримен Эр., Фримен Эл. Изучаем HTML, XHTML и CSS. М.: Питер, 2012. 656 c.

12. Блинков Ю.А., Панкратов И.А. Хранение и обработка библиографической информации с помощью NoSQL // Актуальные направления научных исследований XXI века: теория и практика. 2017. Т. 5. № 7, ч. 1 (33-1). С. 247249.

13. Блинков Ю.А., Панкратов И.А. Документоориентированное хранение и обработка библиографической информации // Актуальные направления научных исследований XXI века: теория и практика. 2017. Т. 5. № 8, ч. 1 (341). С. 63-66.

14. Блинков Ю.А., Панкратов И.А. Документо-ориентированное хранение и обработка научных публикаций // Математическое моделирование, компьютерный и натурный эксперимент в естественных науках. 2018. № 4. URL: mathmod.esrae.ru/20-81 (дата обращения: 22.01.2021).

i Надоели баннеры? Вы всегда можете отключить рекламу.