Please use this identifier to cite or link to this item:
https://er.chdtu.edu.ua/handle/ChSTU/9027| Title: | Інформаційна система "Кафедра ПЗАС". Програмна реалізація функції "Методична робота" |
| Authors: | Куницька, Світлана Юріївна Кравцов, Максим Русланович |
| Keywords: | WEB-ЗАСТОСУНОК;ОРГАНІЗАЦІЯ;РОБОЧІ ПРОЦЕСИ;REACT;БАЗА ДАНИХ;АУТЕНТИФІКАЦІЯ;АВТОРИЗАЦІЯ;ІНТЕРФЕЙС КОРИСТУВАЧА;API;ТЕСТУВАННЯ |
| Issue Date: | 20-Jun-2025 |
| Abstract: | АНОТАЦІЯ Кравцов М.Р., кваліфікаційна робота бакалавра на тему «Інформаційна система "Кафедра ПЗАС". Програмна реалізація функції "Методична робота». Напрям підготовки 121 «Інженерія програмного забезпечення», ЧДТУ, Черкаси, 2025. Мета виконання кваліфікаційної роботи бакалавра: проектування та конструювання web-застосунку, як платформи для візуалізації та управління завданнями, що сприяє підвищенню продуктивності шляхом оптимізації робочих потоків та мінімізації проектних затримок. Завдання при проектуванні інформаційної системи: провести аналіз існуючих рішень, визначити їхні переваги та недоліки; розробити архітектуру програмної системи та відобразити взаємодію її компонентів побудувавши діаграми; визначити функціональні та нефункціональні вимоги; обґрунтувати інтеграції API інструментів розробки; описати додаток за допомогою структурних і функціональних схем; спроектувати базу даних та інтерфейс; провести тестування програмної системи; створити інструкцію користувача. Об'єкт роботи: процес розробки web-застосунку для організації робочих процесів. Предмет розробки: методи та засоби створення WEB-застосунку для організації робочих процесів, включаючи архітектуру системи, алгоритми управління завданнями та інтерфейс користувача. Вирішено наступні поставлені задачі: 1. Проаналізовано існуючі аналоги web-застосунку. 2. Розроблено архітектуру програмної системи та її взаємопов’язаних компонентів та створено діаграми моделювання поведінки системи. 3. Спроектовано базу даних автоматизованої інформаційної системи. 4. Розроблено інтерфейс користувача спроектованого web-застосунку ReactJS та Styled-Components.5. Проведено тестування розробленого програмного забезпечення, аутентифікація та авторизація інформаційної системи. |
| URI: | https://er.chdtu.edu.ua/handle/ChSTU/9027 |
| Appears in Collections: | 121 Інженерія програмного забезпечення (Інженерія програмного забезпечення) |
Files in This Item:
| File | Description | Size | Format | |
|---|---|---|---|---|
| Кваліфікаційна робота бакалавра Кравцов Максим Русланович.pdf Restricted Access | 2.19 MB | Adobe PDF | View/Open Request a copy |
Items in DSpace are protected by copyright, with all rights reserved, unless otherwise indicated.
Extracted text
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
ЧЕРКАСЬКИЙ ДЕРЖАВНИЙ ТЕХНОЛОГІЧНИЙ УНІВЕРСИТЕТ
Факультет інформаційних технологій і систем
Кафедра програмного забезпечення автоматизованих систем
ПОЯСНЮВАЛЬНА ЗАПИСКА
до кваліфікаційної роботи
бакалавра
на тему: «Інформаційна система "Кафедра ПЗАС". Програмна реалізація
функції "Методична робота»
Виконала: студентка 4 курсу, групи ПЗС-2144
спеціальності
121 «Інженерія програмного забезпечення»
Студент Кравцов М.Р.
(прізвище та ініціали)
Керівник Куницька С. Ю.
(прізвище та ініціали)
Рецензент Захарова М. В.
(прізвище та ініціали)
Черкаси 2024
Черкаський державний технологічний університет
Факультет інформаційних технологій і систем
Кафедра програмного забезпечення автоматизованих систем
Освітній рівень бакалавр
Спеціальність 121 «Інженерія програмного забезпечення»
Освітня програма Інженерія програмного забезпечення
ЗАТВЕРДЖУЮ
Зав. кафедри ПЗАС,
д.т.н., професор
__________________Сергій ГОЛУБ
«___» _______________ 2025 року
З А В Д А Н Н Я
НА КВАЛІФІКАЦІЙНУ РОБОТУ СТУДЕНТУ
Кравцову Максиму Руслановичу
1. Тема роботи: «Інформаційна система "Кафедра ПЗАС". Програмна реалізація функції
"Методична робота"
Керівник роботи к.т.н., доцент Куницька Світлана Юріївна_____________________________
Затверджені наказом Черкаського державного технологічного університету №_53/03-03____
від «25» 02 2025 року
2. Строк подання студентом роботи 10.06.2025_______________________________________
3. Вхідні дані до роботи: серверна платформа Node.js, мова програмування JavaScript, веб-
фреймворк Express.js, бібліотека React, NoSQL база даних MongoDB, бібліотека для Node.js
Mongoose, набір інтерфейсів API____________________________________________________
4. Зміст розрахунково-пояснювальної записки (перелік питань, які потрібно розробити):
1 Існуючі методи та засоби розв’язання поставлених завдань;___________________________
2 Впровадження результатів досліджень у практику проектування програмного забезпечення
інформаційних систем;____________________________________________________________
3 Розробка та тестування програмного забезпечення;___________________________________
Висновки;_______________________________________________________________________
Список використаних джерел;______________________________________________________
Додатки.________________________________________________________________________
5. Перелік графічного матеріалу (з точним зазначенням обов’язкових робіт проекту):
Додаток А - Специфікація___________________________________________________
Додаток Б – Текст програми розробки_________________________________________
Додаток В – Інструкція користувачеві_________________________________________
Додаток Г – Графічні матеріали_______________________________________________
6. Консультанти розділів роботи
7. Дата видачі завдання «_02_»_грудня_2024р.
КАЛЕНДАРНИЙ ПЛАН
Строк виконання
№ етапів
Назва етапів випускної роботи Примітки
п/п кваліфікаційної
роботи
1 Постановка задачі 03.12.2024 виконано
2 Формування рішень задач 11.12.2024 виконано
3 Погодження завдання 22.12.2024 виконано
Основна стадія
1 Підбір матеріалів 12.02.2025 виконано
2 Аналіз шляхів вирішення поставлених 20.02.2025 виконано
задач
3 Розробка діаграм, як проектного рішення 24.03.2025 виконано
4 Визначення вимог 30.03.2025 виконано
5 Проектування додатку. Розробка 28.04.2025 виконано
інтерфейсної частини
Заключна стадія
1 Узгодження прийнятих проектних 05.05.2025 виконано
рішень з керівником
2 Оформлення пояснювальної записки 16.05.2025 виконано
роботи в кінцевій редакції
3 Попередній захист роботи 19.05.2025 виконано
4 Затвердження роботи 10.06.2025 виконано
5 Рецензування роботи 17.06.2025 виконано
6 Захист роботи 20.06.2025 виконано
Студент _____________________ Кравцов М.Р.
Керівник роботи _____________________ Куницька С. Ю.
АНОТАЦІЯ
Кравцов М.Р., кваліфікаційна робота бакалавра на тему «Інформаційна
система "Кафедра ПЗАС". Програмна реалізація функції "Методична робота».
Напрям підготовки 121 «Інженерія програмного забезпечення», ЧДТУ, Черкаси,
2025.
Мета виконання кваліфікаційної роботи бакалавра: проектування та
конструювання web-застосунку, як платформи для візуалізації та управління
завданнями, що сприяє підвищенню продуктивності шляхом оптимізації робочих
потоків та мінімізації проектних затримок.
Завдання при проектуванні інформаційної системи: провести аналіз
існуючих рішень, визначити їхні переваги та недоліки; розробити архітектуру
програмної системи та відобразити взаємодію її компонентів побудувавши
діаграми; визначити функціональні та нефункціональні вимоги; обґрунтувати
інтеграції API інструментів розробки; описати додаток за допомогою структурних
і функціональних схем; спроектувати базу даних та інтерфейс; провести
тестування програмної системи; створити інструкцію користувача.
Об'єкт роботи: процес розробки web-застосунку для організації робочих
процесів.
Предмет розробки: методи та засоби створення WEB-застосунку для
організації робочих процесів, включаючи архітектуру системи, алгоритми
управління завданнями та інтерфейс користувача.
Вирішено наступні поставлені задачі:
1. Проаналізовано існуючі аналоги web-застосунку.
2. Розроблено архітектуру програмної системи та її взаємопов’язаних
компонентів та створено діаграми моделювання поведінки системи.
3. Спроектовано базу даних автоматизованої інформаційної системи.
4. Розроблено інтерфейс користувача спроектованого web-застосунку
ReactJS та Styled-Components.
5. Проведено тестування розробленого програмного забезпечення,
аутентифікація та авторизація інформаційної системи.
Ключові слова: WEB-ЗАСТОСУНОК, ОРГАНІЗАЦІЯ, РОБОЧІ
ПРОЦЕСИ, REACT, БАЗА ДАНИХ, АУТЕНТИФІКАЦІЯ, АВТОРИЗАЦІЯ,
ІНТЕРФЕЙС КОРИСТУВАЧА, API, ТЕСТУВАННЯ.
ЗМІСТ
ВСТУП .................................................................................................................. 5
РОЗДІЛ 1 ІСНУЮЧІ МЕТОДИ ТА ЗАСОБИ РОЗВ’ЯЗАННЯ ПОСТАВЛЕНИХ
ЗАВДАНЬ ............................................................................................................. 8
1.1 Існуючі методи до розв’язання поставленого завдання ............................ 8
1.2 Огляд аналогів ............................................................................................. 9
1.3 Сформовані задачі для проектування ....................................................... 13
1.4 Використання сучасних технологій для розв’язання поставленної задачі
.................................................................. Ошибка! Закладка не определена.
ВИСНОВОК ДО ПЕРШОГО РОЗДІЛУ......................................................... 17
РОЗДІЛ 2 ВПРОВАДЖЕННЯ РЕЗУЛЬТАТІВ ДОСЛІДЖЕНЬ У ПРАКТИКУ
ПРОЕКТУВАННЯ ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ ІНФОРМАЦІЙНИХ
СИСТЕМ ............................................................................................................. 18
2.1 Моделювання предметної області ............................................................ 18
2.1.1 Предметна область моделювання. Модель предметної області. Словник
предметної області ....................................................................................... 19
2.1.2 Елементи моделювання предметної області .... Ошибка! Закладка не
определена.
2.1.3 Робоча область моделювання ............................................................. 29
2.2 Формування та аналіз вимог ..................................................................... 29
2.2.1 Формування вимог до програмного забезпечення. Первинні і детальні
вимоги. Вимоги замовника і розробника. Функціональні та нефункціональні
вимоги. .......................................................................................................... 30
2.2.2 Формування вимог за допомогою діаграми прецедентів ...... Ошибка!
Закладка не определена.
2.3 Проектування логічної структури ............................................................ 37
2.3.1 Діаграми класів.................................................................................... 38
2.3.2 Діаграми пакетів .................................................................................. 42
ЧДТУ 252241.002 ПЗ
Змн. Арк. № докум. Підпис Дата
Розроб. Кравцов М.Р «Інформаційна система "Кафедра ПЗАС". Літ. Лист Листів
Перевір. Куницька С.Ю. Програмна реалізація функції 3
Реценцезнт Захарова М.В "Методична робота»
Н. Контр. Півень О.Б. ФІТІС, кафедра ПЗАС, ПЗС-2144
Пояснювальна записка.
Затверд. Голуб С.В.
2.4 Архітектурне проектування
…………………………………………………Ошибка! Закладка не определена.
2.4.1 Діаграма компонентів ................. Ошибка! Закладка не определена.
2.4.2 Розгортання програмної системи на апаратних засобах. Діаграма
розгортання .......................................... Ошибка! Закладка не определена.
2.5 Моделювання поведінки системи .... Ошибка! Закладка не определена.
2.5.1 Діаграма діяльності ..................... Ошибка! Закладка не определена.
2.5.2 Діаграма послідовності ....................................................................... 49
2.5.3 Діаграма комунікації ................... Ошибка! Закладка не определена.
2.5.4 Діаграма скінченого автомату .... Ошибка! Закладка не определена.
ВИСНОВОК ДО ДРУГОГО РОЗДІЛУ .......................................................... 57
РОЗДІЛ 3 РОЗРОБКА ТА ТЕСТУВАННЯ ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ
............................................................................................................................. 60
3.1 Розробка програмного комплексу ............................................................ 60
3.1.1 Обґрунтування вибору засобів реалізації .......................................... 60
3.1.2 Опис структурної (функціональної) схеми ........................................ 62
3.1.3 Опис логічної схеми системи ............................................................. 63
3.1.4 Розробка бази даних ............................................................................ 65
3.1.5 Розробка інтерфейсу користувача ...................................................... 72
3.1.6 Опис розробки програмних компонентів ........................................... 84
3.2 Тестування системи................................................................................... 87
3.2.1 Модульне тестування .......................................................................... 87
3.2.2 Інтеграційне тестування ...................................................................... 89
3.2.3 Системне тестування........................................................................... 91
3.2.4 Приймальне тестування ...................................................................... 93
3.3 Приклади впровадження програмного комплексу .................................. 94
3.3.1 Розгортання системи ........................................................................... 94
ВИСНОВОК ДО ТРЕТЬОГО РОЗДІЛУ ........................................................ 96
ВИСНОВКИ ....................................................................................................... 97
СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ ........................................................... 98
ДОДАТКИ ........................................................................................................ 100
ЧДТУ 252241.002 ПЗ
Змн. Арк. № докум. Підпис Дата
ВСТУП
Актуальність теми
Актуальність теми визначається потребою створення програмного
забезпечення методичної роботи кафедри, тому що згідно проведеного аналізу у
сучасному світі інформаційних технологій програмне забезпечення методичної
роботи кафедри автоматизованих систем відіграє ключову роль у підготовці
висококваліфікованих фахівців. У сучасних умовах стрімкого розвитку
інформаційних технологій та зростання вимог до якості освіти, ручне або
частково автоматизоване ведення документації, планів, навчальних програм і
методичних матеріалів вже не відповідає реаліям часу. Зі сторони розробника, це
означає наявність конкретної задачі — розробити програмне рішення, яке
закриває потреби викладачів і адміністрації у зручному, надійному та
функціональному інструменті для організації освітнього процесу.
Зважаючи на складність і динамічність освітніх процесів, необхідність у
цифрових рішеннях, що підтримують гнучке оновлення навчальних програм,
генерацію супровідної документації, контроль за виконанням методичної роботи
та інтеграцію з іншими системами, є не лише доцільною, а й критично важливою.
Саме тому створення такого програмного забезпечення становить інженерний
інтерес: воно поєднує аналіз бізнес-процесів у сфері освіти з прикладною
реалізацією сучасних технологій. У результаті, подібні системи не просто
спрощують рутинні задачі, а й стають основою для розвитку цифрової
інфраструктури навчального закладу.
Однією з головних переваг використання сучасного програмного забезпечення в
методичній роботі є інтеграція теоретичних знань і практичних навичок. Завдяки
йому забезпечується тісна співпраця з IT-компаніями, оперативне залучення
практиків до викладання, організація інтерактивних семінарів, майстер-класів та
тренінгів, що дозволяє студентам знайомитися з новітніми технологіями галузі
безпосередньо через навчальні цифрові платформи.
Важливим аспектом є і підтримка дистанційного навчання — програмне
забезпечення дозволяє розгортати онлайн-курси, проводити заняття, тестування,
аналіз успішності та забезпечувати доступ до якісного контенту незалежно від
місця перебування студента. Таким чином, цифрова платформа методичної
роботи розширює доступ до освіти та підвищує її гнучкість. Кафедра програмного
забезпечення автоматизованих систем також використовує відповідне програмне
забезпечення для підтримки науково-дослідної діяльності. Воно дозволяє
викладачам ефективно управляти дослідженнями у сфері автоматизації,
впроваджувати алгоритмічні розробки, аналізувати результати і синхронізувати їх
із навчальними модулями. Таким чином, навчання завжди базується на
актуальному науковому підґрунті.
Окрім цього, цифрові інструменти методичної роботи активно
використовуються у міжнародній співпраці кафедри: участь у грантових проєктах,
конференціях, семінарах, спільне створення освітніх ресурсів з університетами та
дослідницькими установами інших країн. Це сприяє інтеграції української освіти
в глобальний простір через якісну цифрову методичну інфраструктуру.
Мета розробки
Метою розробки є забезпечення сучасних інформаційних технологій та
інноваційних методик навчання у навчальний процес, задля сприяння
підвищенню його ефективності, адаптації навчальних програм до індивідуальних
потреб студентів та забезпечення гнучкості у плануванні навчального процесу.
Завдання розробки
Завданням є розробка програмного забезпечення, яке буде відповідати
сучасним стандартам. Розробка системи для планування викладачам робого часу
та комунікації викладачів зі студентами. Розробка алгоритму для інтеграції
навчальних курсів для покращення викладацького досвіду. Програмна реалізація
системи оцінювання студентів, що забезпечить можливість зберігати оцінки
студентів у електронному вигляді.
Об’єкт розробки
Об’єктом розробки є процеси створення програмного забезпечення та
інфраструктури, що забезпечують ефективність навчального процесу для
студентів та викладачів.
Методи проєктування та конструювання
Для досягнення поставленої мети застосовувались такі методи як
порівняння і спостереження — під час вивчення існуючих підходів задля
покращення навчального процесі та визначення, яка модель программного
забезпечення краще підійде для інтеграції у навчальний процес.
Практичне значення отриманих результатів
Методична робота кафедри програмного забезпечення автоматизованих
систем виступає комплексним та багатогранним процесом, спрямованим на
забезпечення високої якості освіти, розвиток наукових досліджень та підготовку
конкурентоспроможних фахівців у сфері програмного забезпечення.
Впровадження новітніх методів навчання, активна співпраця з провідними
компаніями та науковими установами, а також інтеграція сучасних технологій у
навчальний процес дозволяють кафедрі досягати високих результатів та
забезпечувати постійний розвиток освітніх програм.
РОЗДІЛ 1 ІСНУЮЧІ МЕТОДИ ТА ЗАСОБИ РОЗВ’ЯЗАННЯ
ПОСТАВЛЕНИХ ЗАВДАНЬ
Актуальні проблеми, що виникають в процесі виконання завдань
Стрімкий розвиток інформаційних технологій та загальне збільшення
впливу на повсякденне життя та освітній процес спонукають до постійного
розвитку. Створюються нові вимоги до методичної роботи в навчальних закладах
які потребують постійного вдосконалення та впровадження підходів до
викладання, адаптації нових технологій і вирішення виникаючих проблем, адже
інновації (як в сфері інформаційних технологій, так і в методах навчання)
розвиваються дуже швидко, і кафедра повинна встигати адаптувати нові
технології до навчального процесу. Це включає використання сучасних засобів
розробки програмного забезпечення, платформ для дистанційного навчання та
інструментів для аналізу даних. Важливо забезпечити гнучкість і швидкість
адаптації, щоб відповідати потребам студентів і викладачів. У разі відсутності
достатного рівня навичок навчального персоналу для професійної роботи з
програмним забезпеченням можливе зниження якості навчального процесу і
невідповідності сучасним вимогам ринку праці. Порівняльний аналіз та розгляд
методик навчання для зрозумілості, під які потреби розробляти програмний засіб
описані у підрозділі 1.2.
Однією з основних проблем є стандартизація програмного забезпечення, яке
буде використоватись на кафедрі, тому що відсутність єдиних стандартів і
платформ ускладнює інтеграцію різних систем і додатків, а також ускладнює
процесс розробки кроссплатформенного программного забезпечення. Наприклад,
різні програми для взаємодії у навчальному процесі можуть не підтримувати
спільне використання даних, що призводить до дублювання інформації та
додаткового навантаження на викладачів, студентів та адміністративний
персонал. Тому бажано розробити таке програмне забезпечення, яке б поєднувало
максимально багато можливостей для комфортної роботи як викладачам, так і
студентам. Також можливі проблеми, пов’язані з кібербезпекою. Це є ще однією
важливою проблемою, з якою стикається кафедра програмного забезпечення та
автоматизованих систем, адже збільшення обсягів зберігання та обробки
персональних даних студентів і викладачів підвищує ризики несанкціонованого
доступу та кібератак з певною метою серед хакерів. І така ситуація вимагає
впровадження сучасних засобів захисту даних, а також максимально високого
рівня кваліфікаціїї адміністраторів згідно питань кібербезпеки. До того ж,
недостатнє тестування програмного забезпечення може призвести до помилок і
збоїв у роботі програмного засобу, а це дуже критично може вплинути на
навчальний процес, особливо з методикою перевернутого навчання, яке
передбачає самостійне ознайомлення з навчальними матеріалами вдома. Крім
того, у разі оновлення програми потрібно узгодити оновлення з персоналом
університету та уважно пройти контроль якості заради запобігання нових багів чи
інших проблем. Для цього необхідно ефективно планувати проєкт та правильно
розподіляти ресурси, не перевищуючи можливостей, на які здатні параметри
комп’ютера.
Методи та засоби, які вже використовуються для усунення проблем та
виконання завдань
Впровадження інноваційних методик навчання є одним із ключових
напрямів вдосконалення освітнього процесу на кафедрі програмного забезпечення
автоматизованих систем. Ці методики дозволяють підвищити рівень залучення
студентів до навчального процесу, розвинути їхні практичні навички та
підготувати до реальних викликів у професійній діяльності. Нижче наведено
детальний аналіз основних інноваційних методик, які можуть бути ефективно
застосовані в освітньому процесі.
1 Проектно-орієнтоване навчання (Project-Based Learning, PBL) — це
одна з сучасних методик, суть якої полягає в тому, щоб давати змогу студентам
набувати знання та навички через виконання реальних проектів. Цей підхід
сприяє інтеграції теоретичних знань з практичними завданнями, розвиває
критичне мислення, навички вирішення проблем та командну роботу. Переваги
проектно-орієнтованого навчання полягають у практичному застосуванні знань:
студенти отримують можливість застосовувати теоретичні знання на практиці, що
сприяє кращому засвоєнню матеріалу. Також даний метод сприяє розвитку
навичків роботи в команді, адже виконання проектів у групах сприяє розвитку
комунікативних навичок та вмінню працювати в колективі. Більше того, це також
й підготовча робота до реальних викликів, адже проекти, що базуються на
реальних задачах, готують студентів до майбутньої професійної діяльності та
комунікації з робочим колективом.
Основними принципами проектно-орієнтованого навчання є:
1 Реальні проекти: Студенти виконують завдання, які мають реальне
практичне значення. Це можуть бути проекти, пов’язані з розробкою
програмного забезпечення, аналізом даних, створенням веб-додатків
тощо. Завдання базуються на реальних проблемах, що дозволяє
студентам відчути зв’язок між навчанням і майбутньою професійною
діяльністю.
2 Командна робота: Проекти зазвичай виконуються в групах, що сприяє
розвитку комунікативних навичок, вмінню працювати в колективі,
розподіляти обов’язки та відповідальність. Робота в команді допомагає
студентам навчитися взаємодіяти з іншими, вирішувати конфлікти і
досягати спільних цілей.
3 Інтердисциплінарний підхід: Проекти часто включають елементи з
різних дисциплін, що дозволяє студентам застосовувати знання з кількох
областей одночасно. Наприклад, розробка програмного забезпечення
може вимагати знань з програмування, дизайну інтерфейсу, управління
проектами та маркетингу.
4 Практичні навички: Виконуючи реальні проекти, студенти здобувають
практичні навички, необхідні для роботи у сфері IT. Це включає
розробку та тестування програмного забезпечення, управління
проектами, документування процесів, роботу з клієнтами та
користувачами.
5 Зворотний зв’язок: Важливим елементом проектно-орієнтованого
навчання є регулярний зворотний зв’язок від викладачів та менторів.
Студенти отримують коментарі та рекомендації щодо виконаних
завдань, що дозволяє їм покращити свої навички та краще зрозуміти
матеріал.
Етапи реалізації проектно-орієнтованого навчання
Етапи реалізації проектно-орієнтованого навчання розглянемо більш
детально:
− визначення теми проекту: Спільно з викладачем студенти обирають
тему проекту, яка відповідає їхнім інтересам та професійним цілям. Тема
має бути актуальною та значущою, що стимулює студентів до глибшого
вивчення матеріалу;
− планування та розподіл завдань: Студенти складають план роботи над
проектом, розподіляють завдання між членами команди, встановлюють
терміни виконання та визначають ресурси, необхідні для реалізації
проекту;
− виконання проекту: На цьому етапі студенти виконують практичні
завдання, співпрацюють з іншими членами команди, використовують
набуті знання та навички. Викладачі та ментори надають підтримку та
консультації, допомагають вирішувати виникаючі проблеми;
− презентація результатів: Після завершення роботи над проектом
студенти презентують свої результати перед викладачами,
одногрупниками та іншими зацікавленими сторонами. Це може бути
презентація, демонстрація створеного програмного забезпечення,
публічний захист проекту тощо;
− оцінка та зворотний зв’язок: Викладачі оцінюють виконані проекти,
враховуючи якість виконання, інноваційність, практичну значущість та
командну роботу. Студенти отримують детальний зворотний зв’язок, що
дозволяє їм врахувати свої помилки та вдосконалити навички.
Переваги проектно-орієнтованого навчання:
− реалістичність: Студенти працюють над завданнями, які мають реальне
практичне значення, що сприяє кращому засвоєнню знань та підготовці
до професійної діяльності;
− мотивація: Реальні проекти стимулюють студентів до активної роботи,
підвищують їхню зацікавленість та мотивацію до навчання;
− практичні навички: Проекти дозволяють студентам здобувати практичні
навички, які є необхідними для роботи у сфері IT;
− розвиток м’яких навичок: Проектно-орієнтоване навчання сприяє
розвитку комунікативних навичок, вмінню працювати в команді,
критичному мисленню та вирішенню проблем;
Впровадження проектно-орієнтованого навчання на кафедрі програмного
забезпечення автоматизованих систем забезпечує підготовку
висококваліфікованих фахівців, готових до викликів сучасного ринку праці. Цей
підхід сприяє інтеграції теоретичних знань з практичними завданнями, робить
навчання більш цікавим та ефективним, а також підвищує
конкурентоспроможність випускників на ринку праці.
2 Інтерактивні лекції. Метод інтерактивних лекцій є інноваційним
підходом до проведення традиційних лекційних занять. Використання такого
методу дозволяє залучити студентів до активної участі у навчальному процесі,
зробити лекції більш цікавими та динамічними.
Інтерактивні лекції бувають у вигляді інтерактивних опитувань, групових
дискусій, рольових ігор та стимуляцій, або гейміфікації (обидва останніх метода є
найбільш дієвими та більше всього мотивують студентів працювати на результат).
В інтерактивних опитуваннях використовуються такі популярні платформи
для онлайн-опитувань, такі як Kahoot чи Mentimeter, візуально привабливі
інтерактивні ігри-вікторини, де можна створити свою вікторину, та надати
можливість студентам конкурувати між собою (хто набере більше всіх очок за
правильні відповіді). Підійде для будь-якої кафедри у будь-яких навчальних
закладах або просто розважальних заходах.
Переваги Kahoot
Kahoot робить навчальний процес більш захоплюючим і інтерактивним,
перетворюючи його на гру (див. рисунок 1.1). Студенти активно беруть участь у
вікторинах, що сприяє кращому засвоєнню матеріалу. Викладачі можуть
отримувати миттєвий зворотний зв'язок про рівень засвоєння матеріалу
студентами. Це дозволяє швидко ідентифікувати слабкі місця і скоригувати
подальше навчання. Kahoot досить легкий у використанні, адже його інтерфейс
інтуїтивно зрозумілий як для викладачів, так і для студентів, а створення вікторин
і опитувань не вимагає спеціальних навичок програмування чи глибоких
технічних знань. Kahoot можна використовувати для різних типів занять,
включаючи вікторини, опитування, дискусії та ігри. Платформа підтримує різні
формати запитань, такі як багатоваріантні, істина/хибність, відкриті запитання
тощо. Тим паче, Kahoot доступний на різних платформах: комп'ютери, планшети,
смартфони.
Студенти можуть приєднуватися до вікторини з будь-якого пристрою, лише
маючи доступ до інтернету. Насамперед, мотиваційний важіль: елементи гри та
змагання стимулюють студентів до активної участі і підвищують їхню мотивацію
до навчання, а система нагород і рейтингові таблиці додають елемент змагання,
що заохочує студентів старатися краще.
Рисунок 1.1 – Вікторина в Kahoot
Недоліки Kahoot
Недоліки полягають у обмеженій глибині навчання, бо вікторини та
опитування Kahoot часто орієнтовані на перевірку знань фактичного матеріалу, а
не на глибоке розуміння концепцій програмування. Але в більшості випадків ця
платформа може слугувати розминкою для поверхового засвоєння матеріалу без
належного критичного аналізу.
Ще одним недоліком слугує залежність від інтернету, так як для проведення
вікторин і участі в них потрібен стабільний інтернет-зв'язок. Сумнівний недолік,
тому що стабільний інтернет-зв’язок присутній майже в усіх корпусах
університета.
Занадто часте використання платформи може знизити її ефективність як
навчального інструменту, та не завжди підходить для дуже великих груп: чим
більше студентів знаходиться в аудиторії одночасно, тим важче забезпечити
залучення всіх студентів одночасно. До того ж, можливі технічні проблеми при
одночасному підключенні великої кількості учасників. Також враховую такий
аспект, як обмежені можливості для індивідуалізації, бо вікторини зазвичай
орієнтовані на загальні питання, що може не враховувати індивідуальні потреби і
рівень підготовки студентів. Необхідно створювати завдання, які б відповідали
загальному темпу навчання студентів.
В цілому, простота у використанні, доступність і можливості для миттєвого
зворотного зв'язку роблять його корисним для викладачів і студентів. Проте
важливо враховувати його обмеження та використовувати як додатковий засіб у
поєднанні з іншими методами навчання, щоб забезпечити глибоке та комплексне
засвоєння матеріалу.
Огляд платформи Mentimeter
Mentimeter – це інтерактивна платформа для проведення презентацій,
опитувань та вікторин, яка дозволяє залучати аудиторію до активної участі в
процесі обговорення та навчання. Викладачі можуть створювати різноманітні
інтерактивні слайди, на які студенти відповідають у режимі реального часу з
допомогою своїх мобільних пристроїв або комп'ютерів.
Рисунок 1.2 – Платформа Mentimeter
Переваги Mentimeter
Mentimeter перетворює пасивні презентації на активний діалог,
стимулюючи студентів до участі. Викладачі можуть створювати опитування,
вікторини, мозкові штурми, де кожен студент має можливість висловити свою
думку. Mentemeter підтримує широкий спектр інтерактивних слайдів, такі як:
опитування з багатоваріантними відповідями, відкриті запитання, рейтингові
таблиці, слова-хмари, шкали оцінки тощо. Такі елементи дозволяють викладачам
обирати найкращий формат для конкретного завдання або теми. Так як і в Kahoot,
відповіді студентів відображаються в режимі реального часу, що дозволяє
викладачам одразу бачити результати та реагувати на них, що сприяє активній
взаємодії між викладачем і студентами, підвищуючи динаміку навчального
процесу. І, так як і в Kahoot, інтерфейс платформи Mentimeter досить простий і
інтуїтивно зрозумілий, що робить його доступним для викладачів без технічних
знань, а студенти можуть приєднуватися до сесій за допомогою коду, що займає
лише кілька секунд.
Отримані дані відповідей студентів можна аналізувати, та використовувати
для подальшого вдосконалення навчального процесу.
Mentimeter має таку ж саму кросплатформеність, працюючи на будь-яких
пристроях, як і Kahoot.
Недоліки Mentimeter
Безкоштовна версія Mentimeter має обмежений функціонал, що може бути
недостатнім для деяких навчальних потреб, а для доступу до всіх можливостей
платформи необхідно придбати платний план.
А залучення студентів до інтерактивних сесій може відволікати їх від
основного матеріалу, якщо не підтримується баланс між інтерактивністю та
традиційним викладом, бо опитування та вікторини цієї платформи здебільшого
спрямовані на швидку перевірку знань, що може не забезпечувати глибокого
розуміння складних тем, так як платформа більше підходить для оцінки
загального рівня розуміння, ніж для детального аналізу. Також інтерфейс
платформи переважно англійською мовою, що може створювати певні труднощі
для користувачів, які не володіють цією мовою, хоча англійська мова насамперед
є основною для вивчення мов програмування та роботи з автоматизованими
системами.
Тим не менш, Mentimeter є потужним інструментом для підвищення
залученості студентів та інтерактивності навчального процесу. Його переваги,
такі як різноманітність форматів слайдів, миттєвий зворотний зв'язок і легкість у
використанні, роблять його корисним доповненням до традиційних методів
навчання. Проте важливо враховувати залежність від інтернету та обмеження
безкоштовної версії, щоб максимально ефективно інтегрувати Mentimeter в
освітній процес.
3 Групові дискусії. Це метод навчання, який передбачає активне
обговорення певної теми або питання групою студентів. Організація дискусій у
малих групах сприяє обміну ідеями та поглибленому розумінню теми. Цей підхід
спрямований на розвиток критичного мислення, комунікативних навичок та
глибокого розуміння обговорюваного матеріалу. Групові дискусії можуть
проходити в різних формах, таких як круглі столи, дебати, мозкові штурми або
дискусійні групи. Переваги групових дискусій полягають у тому, щоб розвивати
критичне мислення студента, спонукання до аналізу інформаціїї, висловлюванню
та аргументації свої думок. Обговорення різних точок зору сприяє більш
глибокому розумінню теми та розвитку аналітичних здібностей, а також сприяє
розвитку комунікативних навичок, вдосконалення навичок усного мовлення,
слухання та взаємодїї з іншими завдяки участі у таких дискусіях. Завдяки такому
методу студенти вчаться чітко висловлювати свої думки, ставити запитання та
відповідати на них, навчальний процес робиться більш інтерактивним, мотивація
студентів до навчання підвищується, адже студенти відчувають себе навіть не
тільки частиною навчального процесу, а й цілим двигуном розумних думок.
Також групові дискусії сприяють розвитку навичок роботи в команді, взаємодії з
іншими членами групи, розподілу ролей і відповідальності, у процесі такої роботи
здобувачі освіти вчаться співпрацювати, знаходити компроміси і досягати
спільних цілей, а IT-галузь, насамперед — це командна робота. До того ж , метод
сприяє розвитку творчого мислення, адже регулярні обговорення та обмін ідеями
стимулюють студентів до генерації нових ідей, пошуку нестандартних рішень та
творчого підходу до вирішення проблем, знаходження нових винаходів тощо, бо
мозкові штурми, як одна з форм дискусій, сприяють виникненню інноваційних
ідей та рішень, а ще це можливість почути різні точки зору, досвід інших людей
та підходи до розв'язання проблем у роботі.
Це сприяє розширенню їхнього світогляду, толерантності до інших думок та
культурному обміну. Але є й недоліки групових дискусій. Наприклад, теоретична
можливість домінування окремих учасників, адже у деяких групах може виникати
ситуація, коли один або декілька учасників домінують у обговоренні, не даючи
можливості іншим висловитися, та це може призвести до дисбалансу в участі та
зниження ефективності дискусії. Також групові дискусії можуть інколи
відхилятися від основної теми, особливо якщо учасники не мають чіткого плану
або модератора. Така трата фокусу може знизити ефективність обговорення і
призвести до витрати часу.
В процесі дискусій можуть виникати конфлікти та суперечки, особливо
якщо учасники мають протилежні точки зору. Важливо, щоб викладач або
модератор вмів ефективно керувати дискусією, запобігаючи ескалації конфліктів.
Оцінювання внеску кожного учасника в групову дискусію може бути
складним завданням. Викладачам важко об'єктивно оцінити активність, якість
аргументів та внесок кожного студента в обговорення. Також важливо, щоб
дискусії були добре структурованими і мали чітко визначені цілі та час для
обговорення. Вониможуть займати значну кількість часу, що може бути
недоцільним у контексті обмеженого навчального плану.
В цілому групові дискусії є потужним інструментом для активізації
навчального процесу, розвитку критичного та творчого мислення,
комунікативних та командних навичок. Їх використання дозволяє зробити
навчання більш інтерактивним і цікавим, сприяє глибокому засвоєнню матеріалу
та розвитку соціальних навичок студентів. Проте, для досягнення максимального
ефекту важливо враховувати можливі недоліки цього методу та забезпечувати
ефективне модераторство і структурованість дискусій.
4 Рольові ігри та симуляції. Такий метод дозволяє студентам краще
зрозуміти складні концепції через моделювання реальних ситуацій. Це
педагогічна методика, яка передбачає моделювання реальних або уявних
ситуацій, в яких учасники виконують певні ролі. При правильній постановці
таких ситуацій, де викладач враховує складні концепцій підвищується залученість
студентів до праці. Учасники рольових ігор можуть виступати в ролях, які
імітують професійні, соціальні або історичні ситуації, що дозволяє їм зануритися
у певні контексти і набути новий досвід, якщо б вони були на реальній праці у IT-
сфері. В ролі таких певних симуляцій може виступати імітація професійних
переговорів із замовником, прийняття складних рішень, виправлення
заготовленого викладачем, але неправильного коду. вирішення конфліктів та інші
робочі ситуації. На практиці студенти краще розуміють матеріал, коли вони
можуть застосовувати його на практиці в умовах рольової гри, та коли вчаться
ефективно спілкуватися, співпрацювати та вирішувати конфлікти. Рольові ігри
стимулюють творчий підхід до вирішення проблем, заохочуючи студентів думати
нестандартно, сприяють генерації нових ідей та рішень, занурюють початківців у
контекст, що допомагає краще зрозуміти проблеми в обставинах роботи в IT-
компаніях на будь-яких посадах чи рівнях. Моделювання реальних ситуацій
дозволяє студентам зануритися у контекст, що допомагає краще зрозуміти складні
концепції та проблеми і також допомагає підготуватися до реальних викликів у
професійному житті.
Присутній нюанс: для ефективного проведення рольових ігор необхідна
ретельна підготовка з боку викладача. Потрібно створити сценарії, забезпечити
необхідні матеріали та інструкції для учасників. А деякі студенти можуть бути
менш активними або менш залученими у процес, що може призвести до
нерівномірного розподілу навантаження. А також важливо, щоб викладач міг
ефективно керувати цими ситуаціями і запобігати ескалації конфліктів. І хоча
рольові ігри намагаються моделювати реальні ситуації, вони можуть не завжди
точно відображати всі аспекти реального життя. Задля досягнення максимального
ефекту необхідно враховувати можливі недоліки та забезпечити ретельну
підготовку і ефективне керівництво процесом рольових ігор.
5 Гейміфікація — це використання ігрових елементів та механік у
неігрових контекстах з метою підвищення залученості, мотивації та задоволення
від процесу. У сфері освіти гейміфікація застосовується для створення більш
інтерактивного і захоплюючого навчального середовища, де студенти відчувають
задоволення від навчання та досягнення поставлених цілей.
Складова ігрових елементів концептуально примитівна, наприклад бали,
рівні, значки та нагороди. Але такі елементи теоретично можуть стимулювати
студентів до активного навчання та досягнення поставлених цілей. Гейміфікація
сприяє внутрішній мотивації, де студенти відчувають задоволення від самого
процесу навчання, а ігрові механіки роблять навчання більш динамічним і
захоплюючим, що сприяє кращій концентрації та участі. Студенти вчаться
працювати разом, ділитися знаннями та досвідом, а також змагатися в дружньому
середовищі, проте гейміфікація також дозволяє адаптувати навчальний процес під
індивідуальні потреби та інтереси майбутніх програмістів. Використання різних
рівнів складності, додаткових завдань і персоналізованих маршрутів навчання
допомагає кожному студенту досягати успіху.
Але гейміфікація дуже залежна від технологій, так як ефективна
гейміфікація часто вимагає використання спеціальних програмних засобів і
платформ, що може створювати технічні бар'єри, до того ж присутній ризик
надмірного фокусування на нагородах, і, як наслідок, студенти можуть
зосередитися на отриманні нагород, а не на самому процесі навчання та розумінні
матеріалу, а створення ефективної гейміфікованої системи вимагає ретельного
балансу між складністю завдань і винагородами. Неправильно підібраний баланс
може призвести до втрати інтересу або, навпаки, до надмірного навантаження
студентів, та звести навчальний процес до класичної накопичувальної системи
балів. При створенні такої системи важливо враховувати індивідуальні
відмінності в мотивації та навчальних потребах, враховувати складність
реалізації, яка потребує значних ресурсів, часу та зусиль з боку викладача.
Потрібно створити ігрові сценарії, розробити відповідні інструменти та постійно
підтримувати систему в актуальному стані, тим паче у віртуальному. Важливо
врахувати, щоб ігрові елементи доповнювали, а не замінювали основний
навчальний матеріал. Саме з таким підходом гейміфікація є потужним
інструментом для підвищення мотивації, залученості та ефективності навчального
процесу, тому що допомагає створити більш динамічне, жваве і захоплююче
навчальне середовище, а використання відкритих освітніх ресурсів (Open
Educational Resources, OER) дозволяє забезпечити студентам доступ до якісних
навчальних матеріалів з усього світу. Це можуть бути онлайн-курси, відеолекції,
інтерактивні підручники та інші ресурси, які доступні безкоштовно або на умовах
відкритих ліцензій.
6 Віртуальні лабораторії. Вони є сучасними інструментами, які
дозволяють студентам проводити експерименти та дослідження у віртуальному
середовищі. Це особливо важливо для дисциплін, що вимагають доступу до
дорогого або складного в обладнанні. Вони спрямовані на розвиток навичок
програмування, проектування програмного забезпечення, тестування, управління
проектами та інших аспектів інженерії програмного забезпечення. Такі завдання
можуть включати симуляції, віртуальні проекти, практичні завдання та
лабораторні роботи. Використовуються такі кодинг-платформи як HackerRank,
LeetCode та CodeSignal, дозволяють студентам розвивати та перевіряти свої
навички програмування через вирішення завдань різної складності.
Існує стандартна практика використання систем управління версіями
(репозиторії), таких як Git та GitHub, дозволяє студентам навчатися працювати з
реальними проектами. Студенти можуть створювати репозиторії, вносити зміни,
створювати гілки та вирішувати конфлікти. Із віртуальних середовищ розробки
використовують IDE (інтегровані середовища розробки) в хмарних платформах,
таких як AWS Cloud9, це дозволяє студентам працювати над проектами в будь-
який час і з будь-якого місця.
Віртуальні платформи для навчання DevOps, такі як, наприклад, Katacoda,
дозволяють моделювати процеси розробки, тестування та деплою програмного
забезпечення. Студенти можуть практикувати автоматизацію, контейнеризацію та
інші сучасні методики DevOps.
А для тестування програмного забезпечення використовуються платформи,
типу Selenium чи JUnit, які дозволяють студентам навчатися автоматизованого
тестування.
Студенти можуть створювати та виконувати тести, аналізувати результати
та оптимізувати процеси тестування.
7 Методика перевернутого навчання (або ж фліппед-класрум) — це
аналог традиційної форми навчання на нашій кафедрі, де викладач пояснює новий
матеріал на лекціях, а студенти виконують домашні завдання самостійно. Але в
перевернутій методиці навпаки — передбачається самостійне вивчення нового
матеріалу вдома за допомогою відеолекцій, підручників та інших ресурсів, а в
аудиторії займаються практичними завданнями, дискусіями та проектами під
керівництвом викладача. Переваги такої методики полягають в приділенні
активному навчанню більше часу в аудиторії, викладач має більше можливостей
для комунікації та індивідуальної роботи зі студентами та швидке та ефективне
розв’язання проблемних питань у роботі, більше часу виділяється на
персоналізований підхід до кожного студента через збільшення взаємодії. Замість
пасивного слухання лекцій студенти беруть активну участь у навчальному
процесі під час занять у класі. Так само як в традиційній формі навчання, ця
методика розвиває самостійність здобувачів освіти до розв’язання складних
питань, та покращує навички самоменеджменту, що є важливим атрибутом для
подальшої професійної діяльності.
Для найкращої ефективності цього методу викладачеві потрібно
підготувати свої відеолекції та розробляти інтерактивні завдання та активності
для класних занять.
Елементи застосування перевернутого навчання:
− онлайн-курси та відеолекції. Викладачі записують відеолекції,
які студенти переглядають вдома, а під час занять у класі виконують
практичні завдання та обговорюють матеріал;
− інтерактивні платформи. використання платформ, таких як
Coursera, edX, Khan Academy, дозволяє студентам вивчати теоретичний
матеріал онлайн, а на заняттях фокусуватися на практичних аспектах;
− мікронавчання. Викладачі поділяють навчальний матеріал на
невеликі сегменти, які студенти опрацьовують вдома, а під час занять
зосереджуються на поглибленому вивченні та застосуванні знань;
− проектне навчання. Студенти працюють над проектами, які
потребують застосування теоретичних знань, вивчених вдома, під
керівництвом викладача під час занять;
− групові дискусії та семінари. Після вивчення матеріалу вдома
студенти беруть участь у групових обговореннях та семінарах, де вони
аналізують та обговорюють вивчений матеріал;
Для подальших дій необхідно було провести підготовчу нараду серед
представників викладацького колективу. Визначено дату, час та місце
проведення організаційного заходу, сповіщено усіх викладачів заздалегідь. Мета
наради полягала у обговоренні з викладачами планів щодо впровадження
сучасних методик навчання, визначенні поточних цілей, та обговоренні
важливості у підвищенні кваліфікації серед викладачів кафедри. Порядок денний
наради включав в себе презентацію та опис усіх методик, які були проаналізовані
в розділі 1.2.
У процесі обговорення та анкетного опитування, було визначено, що
найпривабливішим методом навчання серед викладачів є метод перевернутого
навчання, комбінуючи з елементами інтерактивних занять в аудиторії. 65%
викладацього складу проголосувало саме за цю методику. Було вирішено
застосувати цю методику навчання в подальшому як основну для кафедри
програмного забезпечення та автоматизованих систем. Викладачі зазначили, що
такий метод дозволяє їм враховувати індивідуальні потреби здобувачів освіти,
обираючи зручний для них час та темп засвоєння матеріалу, а самим викладачам
зручно використовувати аудиторний час для проведення інтерактивних вікторин,
індивідуальної перевірки знань та надання консультації, а також розгляду
проектної діяльності студентів, яку можна виконувати безпосередньо під час
занять, а не в якості домашньої роботи.
Ніхто не був скептично налаштований до інтеграції такого підходу до
навчання, тому не передбачається ніякого опору новим змінам на користь
консерватизму. Викладачі колективно проявляли ентузіазм, та були готові
спробувати новий підхід. Така готовність до новаторства є потужним стимулом
для розвитку кафедри. Основна більшість викладацького складу була зацікавлена
у створенні власних відеолекцій як одного з основних видів подачі лекційного
матеріалу на домашнє опрацювання студентам.
Також на нараді викладачі запропонували розробити та інтегрувати аналог
системи Moodle у навчальний процес та в цілому у роботу Черкаського
Державного Технологічного університету, тому що, на їх думку, це зручний
спосіб зберігати свої навчальні матеріали, або надавати посилання на них до
інших джерел, завдяки наявній можливості зберігати матеріали в різноманітних
форматах. Параллельно в цій системі є змога оцінювати діяльність студентів в
електроному вигляді (див. рисунок 1.3), та надавати змогу студентам
відслідковувати свою успішність у певних предметних областях, а також
підтримувати з ними зв’язок через чат-листування. Система прозора та може
відслідковуватися в деканаті. Дана система була інтегрована та вже багато років
успішно використовується в Черкаському Державному бізнес-коледжі, у тому
числі на IT-спеціальностях.
Рисунок 1.3 – інтерфейс оцінювання у системі Moodle
Також систему “мудл” можна інтегрувати у засіб для проведення веб-
конференцій “Zoom”, на випадок повторного переведення на дистанційну форму
навчання.
На сьогоднішній день освітній процес не стоїть на місці та постійно
перебуває на етапі значних змін, які обумовлені стрімким розвитком
інформаційних технологій та зростанням IT-експорту. За останні п'ять років в
Україні спостерігався “бум” стартапів. У 2023 році Україна увійшла до списку
топ-50 країн світу за їх кількістю, посівши 49-е місце (див. рисунок 2.1). Серед
прикладів таких стартапів, створених українськими розробниками існують такі як
Grammarly, GitLab, Reface, тощо. Вище названі стартапи стали глобально
відомими і отримали значні інвестиції, а це свідчить про високий рівень
інноваційного потенціалу українських розробників.
Рисунок 1.4 – Рейтинг країн за кількістю IT-стартапів у 2023 році
Якісна освіта — це запорука подальшого успіху роботи кафедри та
успішного розвитку IT-сфери. Тож з метою покращення якості освіти потрібно
впровадити інноваційні методи навчання.
Необхідно розробити розклад навчальних заходів, враховуючи ступінь
навантаженності кожного викладача. Важливо спланувати послідовність занять
таким чином, щоб забезпечити поступове освоєння нових методик. Були надані
рекомендації пройти навчальний сертифікаційний курс "Flipped Learning
Certification Level I" від Flipped Learning Global Initiative, тривалість проходження
якого залежить від власного темпу кожного викладача. Курс охоплює в собі
ресурси для опанування принципів перевернутого навчання та вивченню нових
педагогіцьких стратегій (головна сторінка на рис. 1.5).
Рисунок 1.5 – головна веб-сторінка курсу від Flipped Learning Global
Initiative
Після завершення цього курсу викладач отримає сертифікат про
проходження навчання (див. рисунок 1.6)
Рисунок 1.6 – сертифікат, що свідчить про проходження курсу перевернутого
навчання “Flipped Learning Certification Level I”
В якості корисного курсу для роботи з вікторинами на платформі “Kahoot!’
було рекомендовано викладачам пройти курс від розробників платформи під
назвою “Kahoot! Certified for Schools” (див. рисунок 1.7). Такий курс допомагає
освоїти використання вікторин у навчальному процесі. Тривалість проходження
такого курса також залежить від власного темпу кожного викладача, що виступає
компромісом у плануванні свого особистого часу.
Рисунок 1.7 – головна веб-сторінка курсу “Kahoot! Certified for schools”
Після завершення цього курсу викладач отримає сертифікат про
проходження навчання (див. рисунок 1.8)
Рисунок 1.8 – сертифікат, що свідчить про проходження курсу для освоєння
роботи з вікторинами “Kahoot”!
Опціонально, для створення якісних відеолекцій викладачам запропоновано
пройти півторигодинний курс під назвою “How to Create Video Lessons For
Educators” на платформі Udemy (див. рис. 1.9). Пройти такий курс рекомендує
університет Дьюка, що знаходиться в північній Кароліні, США. В основний зміст
курса входить вивчення основ відеопродукції, підготовка сценарію, та, головний
аспект — монтаж відео з метою максимального утримання уваги студента на
перегляді лекційного матеріалу.
Рисунок 1.9 – веб-сторінка курсу для створення відеолекції, Udemy
Постановка задачі
Для досягнення поставленої мети необхідно виконати наступні завдання:
1 Визначення вимог до системи: формулювання функціональних та
нефункціональних вимог до системи управління навчальними
матеріалами, а також визначення того, які системні вимоги повинні бути
для стабільної роботи програми на фізичному пристрої;
2 Моделювання предметної області: створення компонентів, що
відображають структуру та взаємодію компонентів системи. Елементи
моделювання включають в собі розробку діаграм прецедентів, класів,
компонентів, розгортання, послідовності та комунікації;
3 Розробка архітектури системи: проектування архітектури програмного
забезпечення, що включатиме визначення основних компонентів
системи, їхні функції та взаємозв'язки. Особлива увага буде приділена
забезпеченню безпеки даних та надійності системи.
4 Розробка інтерфейсу користувача: створення зручного та інтуїтивно
зрозумілого інтерфейсу для різних категорій користувачів
(адміністратори, викладачі, студенти). Інтерфейс повинен забезпечувати
легкий доступ до всіх функцій системи та підтримувати високу
продуктивність роботи.
5 Реалізація функціоналу системи: програмування основних компонентів
системи згідно з визначеними вимогами та моделями. Це включатиме
розробку функцій для управління користувачами, освітніми
матеріалами, тестуванням та оцінюванням, а також забезпечення
взаємодії між користувачами.
6 Тестування та впровадження системи: проведення комплексного
тестування для перевірки коректності роботи системи, виявлення та
виправлення помилок. Після успішного тестування система буде
впроваджена в експлуатацію на кафедрі програмного забезпечення
автоматизованих систем.
Висновок до розділу 1
По-перше, сучасні методи управління навчальним процесом активно
використовують новітні інформаційні технології та новітні методи навчання.
Розглянуті системи управління навчанням демонструють широкий спектр
функцій, включаючи можливості для створення, зберігання, організації та
розповсюдження освітніх матеріалів, а також інструменти для моніторингу та
оцінювання успішності студентів.
По-друге, було виявлено, що сучасні підходи для роботи з освітньою
системою включають інтеграцію різноманітних технологій, таких як веб-додатки,
мобільні платформи, хмарні сервіси та інші інноваційні рішення для гнучкості та
доступності навчальних матеріалів. Також було визначено, що однією з ключових
вимог до таких систем є забезпечення безпеки даних та захисту конфіденційної
інформації.
По-третє, використання сучасних бібліотек та фреймворків для розробки
інтерфейсів дозволяє створювати привабливі та функціональні додатки, які
сприяють підвищенню мотивації та залученості студентів у навчальний процес.
РОЗДІЛ 2 ВПРОВАДЖЕННЯ РЕЗУЛЬТАТІВ ДОСЛІДЖЕНЬ У
ПРАКТИКУ ПРОЕКТУВАННЯ ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ
ІНФОРМАЦІЙНИХ СИСТЕМ
2.1 Моделювання предметної області
2.1.1 Предметна область моделювання. Модель предметної області. Словник
предметної області
Предметна область моделювання охоплює всі сутності та процеси, які є
актуальними для контексту кафедри програмного забезпечення. Основні цілі
полягають у визначенні ключових об'єктів кафедри та їх взаємозв'язків, а також
опис функціональних елементів для розуміння суті контексту, щоб створити
основу для подальшого проектування впровадження методів освітнього процесу
у практичну реалізацію та розробки власного програмного забезпечення.
Модель предметної області є графічним або текстовим представленням
ключових сутностей предметної області та слугує основою для розробки власного
програмного забезпечення та впровадження інноваційних методик для
покращення навчального процесу, дозволяючи зрозуміти структуру та поведінку
системи. У якості моделі було обрано модель канонічної моделі даних, яка
визначає загальні формати та структури даних для інтеграції систем. Канонічні
моделі забезпечують єдину схему або формат даних, які використовуються для
всіх систем, що беруть участь в обміні інформацією, але не змінюють суті цього
процесу. Канонічна модель забезпечує узгодженість даних між різними
системами, і це дозволяє уникнути конфліктів та неточностей.
Діяльність кафедри програмного забезпечення включає в себе такі основні
процеси, такі як:
− навчальний процес — це планування та проведення занять,
оцінювання знань студентів, управління навчальними планами, оцінювання
рівня знань студентів;
− наукова діяльність: проведення досліджень, публікація
результатів, участь у наукових конференціях;
− адміністративна діяльність: полягає в плануванні робочого часу
викладачів, управління ресурсами кафедри, комунікації з іншими
підрозділами університету;
У контексті методичної роботи кафедри програмного забезпечення та
автоматизованих систем, елементами предметної області є:
− об'єкти: викладачі, студенти, навчальні курси, методичні
матеріали, лабораторні роботи;
− процеси: планування навчального процесу, проведення занять,
оцінювання знань, оновлення методичних матеріалів;
− взаємозв'язки: відносини між викладачами та студентами,
взаємодія між навчальними курсами і методичними матеріалами, залежність
результатів оцінювання від виконаних лабораторних робіт.
Словник предметної області
Представлений нижче словник предметної області вмістить основні поняття
та терміни, що використовуються в контексті програмної системи в
кваліфікаційній роботі бакалавра:
1 Академічний курс — це сукупність навчальних матеріалів, завдань,
тестів та інших елементів, що складають програму навчання з певної
дисципліни;
2 Адміністратор — це користувач системи з повним доступом до
налаштувань та функцій, відповідальний за підтримку та управління
системою, включаючи створення, редагування та видалення облікових
записів, курсів та інших компонентів;
3 Відстеження успішності — це процес моніторингу та аналізу успіхів
студентів у навчанні, включаючи перегляд оцінок, результатів тестів та
виконаних завдань;
4 Викладач — це користувач системи, який має право публікувати
навчальні матеріали, створювати контрольні тести, оцінювати студентів та
вести обговорення на форумах курсів;
5 Декан — користувач системи з широкими адміністративними
повноваженнями, який має доступ до всіх налаштувань та функцій системи,
подібно до адміністратора;
6 Діаграма класів — UML-діаграма, яка описує структуру системи,
включаючи класи, їх атрибути, методи та взаємозв’язки між ними;
7 Діаграма комунікації — UML-діаграма для відображення взаємодії
об’єктів у системі з акцентом на обмін повідомленнями між ними;
8 Діаграма компонентів — UML-діаграма яка показує організацію та
залежності між програмними компонентами системи;
9 Діаграма діяльності — UML-діаграма яка описує потік роботи або
алгоритм діяльності в системі;
10 Діаграма розгортання — UML-діаграма, ілюструє фізичне
розташування та конфігурацію програмних компонентів на апаратних
засобах;
11 Інтеграції з сервісами — процес налаштування та підтримки взаємодії
програмної системи з іншими сервісами або програмами для обміну даними
чи функціональності;
12 Керування користувачами — адміністративна функція, що включає
створення, редагування, видалення облікових записів користувачів та
призначення їм ролей і прав доступу;
13 Контрольний тест — набір питань або завдань, розроблених для оцінки
знань та навичок студентів з певного предмету;
14 Методичні матеріали — навчальні ресурси, створені викладачами для
підтримки та доповнення навчального процесу, включаючи лекції,
презентації, практичні завдання тощо;
15 Оцінювання студентів - процес виставлення оцінок студентам за їхні
роботи, тести, участь у навчальних заходах та інші академічні досягнення;
16 Програмна система — Комплекс програмного забезпечення,
призначеного для підтримки освітнього процесу, включаючи управління
курсами, користувачами, матеріалами тощо;
17 Створення облікового запису — це процес реєстрації нового
користувача в системі з призначенням йому відповідної ролі (студент,
викладач, адміністратор);
18 Студент — користувач системи, що має доступ до курсів, на які він
записаний, може виконувати завдання, здавати тести, брати участь в
обговореннях на форумах та переглядати свої оцінки;
19 Технології навчання — сукупність методик, інструментів та засобів, що
використовуються для підтримки та покращення навчального процесу;
20 Форуми курсів — Інтерактивні платформи в рамках курсу, де студенти
та викладачі можуть обговорювати навчальні матеріали, завдання та інші
питання, пов'язані з курсом;
21 Управління навчальними курсами — Процес створення, редагування та
видалення курсів, а також організація їх змісту та структури.
2.1.2 Елементи моделювання предметної області
Для побудови моделі предметної області використувалась класична мова
PlantUML (або ж Unified Modeling Language), тому що UML є простим та
надійним стандартом у галузі програмної інженерії для візуального моделювання
систем і процесів. Ця мова досить стандартна, є міжнародним стандартом для
моделювання різних програмних систем, взагалом зрозуміла для всіх учасників
проекту, завдяки простому та зрозумілому візуальному представленню у вигляді
діаграм, які підійдуть навіть до складних систем, і таким чином можна легко
розуміти структуру і взаємозв'язки між елементами системи. Її застосування в
контексті методичної роботи кафедри якнайкраще підходить до предметної
області кваліфікаційної роботи бакалавра. З її допомогою, в кваліфікаційній
роботі бакалавра розроблені такі діаграми, як діаграма класів, діаграма пакетів,
діаграма компонентів, діаграма діяльності, діаграма послідовності, діаграма
комунікації та діаграма скінченного автомату. Тобто, якщо казати загальними
словами, то використання UML для моделювання предметної області методичної
роботи кафедри дозволяє створити детальну, зрозумілу та ефективну модель, що
сприяє покращенню організації та управління навчальним процесом у контексті
методичної роботи кафедри.
Рисунок 2.4 – Елементи мови UML
Рисунок 2.5 – Зв’язки мови UML
2.1.3 Робоча область моделювання
У роботі UML-діаграми створювались за допомогою хмарного онлайн-
сервісу “Lucidchart” (див. рис. 2.6). “Lucidchart” широко використовується для
моделювання, візуалізації та документування складних систем та має змогу
підтримувати різноманітні типи діаграм. Ідеальний вибір для розробників
програмного забезпечення. Ще одна з переваг — це велика кількість готових
шаблонів для різних типів діаграм, включаючи UML діаграми класів, випадків
використання, послідовностей та діяльності, які потрібні для написання
кваліфікаційної роботи бакалавра, а ще можна легко та зручно інтегрувати свої
діаграми у Google Drive, Microsoft Office, Atlassian Confluence та Jira. А у разі
командної роботи розробники мають змогу спільно редагувати та коментувати
діаграми в реальному часі, ніби вони працюють з документами в Google Drive.
В якості альтернативи можна обрати програмний засіб “Rational Rose”, але
він більше підходить для об’єктно-оріентованого аналізу, а також там, де потрібна
глибока інтеграція з іншими інструментами IBM.
Рисунок 2.6 – Інтерфейс робочої області “Lucidchart”
2.2 Формування та аналіз вимог
2.2.1 Формування вимог до програмного забезпечення. Первинні і детальні
вимоги. Вимоги замовника і розробника. Функціональні та нефункціональні
вимоги
Формування вимог до програмного забезпечення
Для стабільної роботи програмного додатку повністю вистачає наступних
параметрів комп’ютера, який є в наявності (можна слабкіше ніж вказані у
конфігурації нижче), або їх аналоги:
− процесор Ryzen 5 5600х 4.5 GHz;
− оперативна пам’ять DDR4 32 GB, з частотою 3200 MhZ;
− відеокарта RTX 4060, 8 GB оперативної пам’яті;
− SSD з 500 GB вільного місця на ньому.
Такої специфікації більше ніж достатньо підійде для нашого програмного
забезпечення, а також для хостингу серверу для зберігання даних.
Первинні вимоги
Насамперед, програмний засіб повинен мати систему користувачів, а саме
містити в собі можливість створювати і зберігати облікові записи. Тобто має бути
присутня реєстрація та аутентифікація користувачів. Кожен тип облікового запису
матиме свої привілеї та можливості, відповідні ролі та завдання користувачів у
системі. Облікові записи мають бути з типом “Студент”, з типом “Викладач”, з
типом “Декан” та з типом “Адміністратор”.
Привілегії облікового запису типу “Викладач” будуть полягати в
можливості публікувати свої навчальні матеріалі, контрольні тести та запитання,
та мати право на відслідковування успішності та виставлення оцінок студентам, а
також він може створювати форуми курсів та вести на них обговорення.
Детальні вимоги
Декан та адміністратор мають повний доступ до всіх налаштувань системи,
наприклад, управління користувачами (створення, редагування, видалення
облікових записів при відрахуванні або випуску здобувача освіти чи звільнення
викладача з роботи). Тобто, вони можуть призначати ролі та права доступу
користувачам, перед цим створивши їм обліковий запис. Також вони можуть
створювати, редагувати та видаляти навчальні курси. Адміністратор може
підтримувати та налаштовувати систему у разі технічних проблем, та
застосовувати інтеграції з іншими сервісами. Тобто, головне завдання
адміністратора — забезпечення безперебійної роботи системи, підтримка
користувачів та вирішення технічних питань.
Можливості студента полягають у отриманні доступу до курсів, на які вони
записані. Методика перевернутого навчання надасть їм змогу переглядати,
завантажувати та вивчати курси у цій системі. Студенти можуть виконувати і
надсилати завдання та здавати тести безпосередньо у системі, з отриманням
допуску від облікового запису зі статусом “Викладач”. Також студент має
можливість проходити участь в обговореннях на форумах курсів, та переглядати
оцінки та коментарі від викладачів.
Функціональні вимоги замовника:
Функціональні вимоги замовника приблизно сходяться з первинними
вимогами і приблизно наступні: система має підтримувати прив’язку
електроної пошти до облікового запису (для отримання сповіщень на
електрону пошту окрім самої програми). Ролі користувачів включають
адміністратора, викладача, та студента, тобто як і в первинних вимогах.
Повинна бути можливість редагування профілів користувачів, включаючи
зміну особистих даних та паролю, і це можуть робити усі ролі, не тільки
адміністратор. Ясна річ, створення, редагування та видалення курсів є
важливими функціями та мають бути в програмі. Можливість призначення
адміністратором викладачів, завантаження та організація навчальних
матеріалів (тексти, відео, аудіо, документи) також необхідні.
Створення та управління модулями та темами курсу повинні бути
можливими.
Оцінювання знань включає створення завдань та тестів з різними
типами питань (вибір відповіді, есе, відповідність). Автоматична (у разі
створення тестів) та ручна оцінка завдань і надання зворотного зв'язку та
коментарів до оцінок мають бути наявними. Відстеження прогресу студентів
має бути обов’язковим.
Повинна бути створена можливість комунікації між користувачами, яка
має створення та модерацію форумів для обговорень в рамках курсу,
приватне листування між користувачами в особистому чаті та система
сповіщення про нові матеріали, завдання та дедлайни.
Аналітика та звітність передбачають відстеження активності студентів у
курсі, генерацію звітів про успішність та активність студентів, а також
логування входів користувачів, переглядів матеріалів та виконання завдань.
Нефункціональні вимоги замовника:
Безпека включає захист даних користувачів за допомогою шифрування,
регулярне оновлення системи безпеки, моніторинг системних журналів для
виявлення підозрілої активності та опціональну підтримку двофакторної
аутентифікації.
Продуктивність системи повинна підтримувати одночасну роботу
великої кількості користувачів без зниження продуктивності. Швидке
завантаження сторінок та навчальних матеріалів, оптимізація бази даних для
швидкого доступу до даних також є важливими. Тож надійність забезпечує
безперебійну роботу системи, регулярне резервне копіювання даних та
механізми відновлення після збоїв. Масштабованість дозволяє додавати нові
курси та користувачів без зниження продуктивності, підтримку розподіленої
архітектури для забезпечення масштабованості.
Функціональні вимоги розробника:
Архітектура системи повинна бути модульною для полегшення оновлення
та додавання нових функцій, використовуючи сучасні фреймворки та мови
програмування (наприклад, Python, або JavaScript);
Інтерфейс користувача має бути інтуїтивним та простим у використанні, та
підтримувати багатомовність;
База даних має бути надійною та масштабованою (наприклад, MySQL,
PostgreSQL), щоб забезпечувати швидкий доступ до даних та мати оптимізований
процес для виконання запитів.
Нефункціональні вимоги розробника:
Розробка та тестування включає використання сучасних методологій
розробки (наприклад, Agile, Scrum), регулярне тестування функціональності та
продуктивності системи, автоматизацію тестування для забезпечення якості
програмного забезпечення;
Документація має включати детальну документацію для розробників, опис
архітектури, API, бази даних та інтерфейсу, створення користувацької
документації та інструкцій для кінцевих користувачів;
Підтримка та обслуговування передбачають регулярні оновлення системи
для виправлення помилок та додавання нових функцій, забезпечення технічної
підтримки користувачів через різні канали (електронна пошта, телефон, онлайн-
чат);
Продуктивність та масштабованість включають оптимізацію коду та бази
даних для забезпечення високої продуктивності, використання методів кешування
для зменшення навантаження на сервери, можливість горизонтального та
вертикального масштабування для підтримки зростання кількості користувачів та
курсів;
Безпека передбачає регулярні аудити безпеки для виявлення та усунення
вразливостей, використання протоколів SSL/TLS для захисту даних, що
передаються, реалізацію механізмів захисту від атак типу SQL-ін'єкції, XSS,
CSRF.
2.2.2 Формування вимог за допомогою діаграми прецедентів
Діаграма прецедентів потрібна для візуального документування вимог до
программного забезпечення. Вона візуалізує взаємодію між користувачами та
системою через певні дії, які ще називаються прецедентами (див. назву
підрозділу 2.2.2). Для створення діаграми спочатку необхідно визначити
акторів. Актори – це користувачі, які взаємодіють з розроблюваною
системою. У контексту навчального процесу актори виступають студентами,
викладачами, адміністраторами. Далі треба визначити прецеденти. Це
функціональні вимоги, які описують дії, які ж в свою чергу
використовуються акторами для того, щоб досягти конкретної мети.
Наприклад, таким прецедентом може бути така дія, як оцінювання студентів,
чи реєстрація на курси. Після визначення акторів та прецедентів створюємо
діаграму, яка відображає взаємозв’язки, на основі тих вимог, що описані в
підрозділі 2.2.1. Така дія забезпечить спільне розуміння між розробником та
замовником, для уникання непорозумінь у процесі розробки та після
розробки програмного забезпечення.
Діаграму прецедентів можна розглянути нижче (див. рис 2.7):
Рисунок 2.7 – Діаграма прецедентів (UML)
2.3 Проектування логічної структури програмного комплексу
2.3.1 Діаграми класів
Діаграма класів потрібна для відображення структуру розроблюваної
програми, включаючи основні класи, їх атрибути, методи та зв'язки між
ними. Нижче приведена діаграма класів (див. рис. 2.8)
Рисунок 2.8 – Діаграма класів (UML)
Використано основні класи:
⎯ Account, де містяться атрибути username (ім'я користувача) і password
(пароль) і методи login() (вхід до системи) і logout() (вихід з системи) ,
наслідує усі наступні класи;
⎯ StudentAccount, яку наслідує попередній Account, включає в себе
accessCourses() (доступ до курсів), viewMaterials() (перегляд та
завантаження матеріалів), submitAssignments() (надсилання завдань),
takeTests() (проходження тестів), participateInForums() (участь в
обговореннях), viewGradesAndComments() (перегляд оцінок і
коментарів);
⎯ TeacherAccount, яку також наслідує Account, містить в собі
publishMaterials() (публікація матеріалів), publishTestsAndQuestions()
(публікація тестів і запитань), assignGrades() (виставлення оцінок),
trackStudentProgress() (відслідковування успішності),
createCourseForums() (створення форумів);
⎯ DeanAccount, де додаткові методи включають manageUsers()
(управління користувачами), assignRolesAndPermissions() (призначення
ролей і прав доступу), createEditDeleteCourses() (створення, редагування
та видалення курсів);
⎯ AdminAccount, містить manageUsers(), assignRolesAndPermissions(),
createEditDeleteCourses(), maintainSystem() (це все підтримка системи),
ensureSystemStability() (забезпечення стабільності системи),
integrateWithOtherServices() (інтеграція з іншими сервісами),
supportUsers() (підтримка користувачів).
2.3.2 Діаграми пакетів
Діаграма пакетів візуалізує структурованну модель програми на логічні
частини у прямокутниках-блоках, які називаються пакетами. Пакети
групують взаємопов'язані класи. Для поєднання класів у пакеті було
використану діаграму класів з підрозділу 2.3.1.
Нижче представлена діаграма пакеті програмного забезпечення методичної
роботи (рис.2.9)
Рисунок 2.9 — Діаграма пакетів
Пакет “User Management” відповідає за управління обліковими записами
користувачів, має батьківський клас “Account”, від якого наслідуються класи
користувачів: “StudentAccount”, “TeacherAccount”, “DeanAccount” та
“AdminAccount”. Пакет “Course Management” містить класи для управління
навчальними курсами: “Course”, “Material”, “Assignment”, “Test” та “Forum”.
2.4 Архітектурне проектування
2.4.1 Діаграма компонентів
Діаграма компонентів відображає взаємодію сервісів між собою для
регулювання повного циклу управління освітнім процесом, включаючи
управління курсами та управління системою оцінювання. Нижче наведено таку
діаграму, представлену через PlantUml (рис. 2.10).
Рисунок 2.10 — Діаграма компонентів (UML)
Діаграма розподілена на три сервіси: сервіс управління користувачами,
сервіс управління курсами та сервіс оцінювання та тестування.
2.4.2 Розгортання програмної системи на апаратних засобах. Діаграма
розгортання
Діаграма розгортання служить для подання фізичних компонентів складової
системи на апаратних засобах, показу їх розміщення та для отримання уявлення
замовника про фізичну структуру системи. Тут представлена єдина база даних,
MySQL. Вона зберігає всі дані користувачів, курсів та оцінок. Користувач
користується системою через програмний засіб на своєму пристрої. Кліентом
виступає пристрій користувача. Сам програмний засіб) є клієнтською частиною
системи, яка взаємодіє з сервером додатків. Сервер додатків обробляє логіку і
містить сервіси, представлені у підрозділі 2.4.1. Нижче представлена діаграмма
розгортання, розроблена через PlantUML (рис. 2.11):
Рисунок 2.11 — Діаграма розгортання (UML)
2.5 Моделювання поведінки системи
2.5.1 Діаграма діяльності
Ця діаграма ілюструє потік даних в системі. Показує, як виконуються
різні процеси та як ці процеси взаємодіють між собою. Мета такої діаграми —
змоделювати послідовність дій, які виконуються для досягнення конкретної мети.
У випадку поточної теми кваліфікаційної роботи проілюстровно послідовність дій
користувача під час роботи з програмною системою, вона приблизно наступна:
спочатку відбувається вхід до системи, коли користувач починає взаємодію з
системою з входу до неї, вводячи свої облікові дані. Клієнтська частина програми
перевіряє ці дані для аутентифікації. Якщо аутентифікація успішна, користувач
отримує доступ до системи і може продовжувати роботу. У випадку невдалої
аутентифікації, користувачу відмовляється в доступі до системи.
Після успішного входу, користувач вибирає курс чи певний розділ програми
для перегляду. Сервер додатків перевіряє права доступу користувача до обраного
курсу. Якщо доступ дозволено, користувач отримує доступ до курсу. Якщо ж
доступ відмовлено, користувачу не надається доступ до курсу і процес
завершується. При успішному наданні доступу до певного розділу користувач
може переглядати цей розділ та робити з ним певні дії, які залежать від статуса
облікового запису. Сервер додатків отримує необхідні матеріали з бази даних
MySQL і передає їх користувачу, а користувач завантажує ці матеріали (чи
навпаки, загружає їх у програму) і взаємодіє з ними, так завершуючи загальний
процес взаємодії з системою.
Діаграма представлена нижче (див. рис. 2.12):
Рисунок 2.12 — Діаграма діяльності (UML)
2.5.2 Діаграма послідовності
Така діаграма моделює взаємодію між об'єктами та подіями у певній
хронологічній послідовності, відображає те, як ці об'єкти взаємодіють між собою
безпосередньо шляхом обміну повідомленнями для виконання конкретної функції
чи сценарію. Також корисна тим що допомагає як замовнику, так і розробнику
зрозуміти динамічні аспекти системи, типу порядка виконання методів, взаємодія
між об'єктами, потоку інформації тощо. Нижче представлена така діаграма (рис.
2.13):
Рисунок 2.13 — Діаграма послідовності
Тут моделюються різні сценарії взаємодії користувача з системою
управління курсами, оцінюванням студентів тощо, після успішної аутентифікації
та в залежності від того, під якими певними правами був користувач.
2.5.3 Діаграма комунікації
На рисунку 2.14 діаграма комунікації показує взаємодію між
користувачем, системою, сервером додатків та базою даних MySQL під час
процесу вхідного контролю в систему, аутентифікації, перевірки доступу до
курсу та обробки матеріалів з бази даних.
Рисунок 2.14 — Діаграма комунікації
2.5.4 Діаграма скінченного автомату
Діаграма скінченного автомату моделює роботу системи через переходи
між станами. Основні стани будуть відображати різні стадії взаємодії користувача
з системою. Зображення діаграми приведено нижче у рисунку 2.15:
Рисунок 2.15 — Діаграма скінченного автомату
Тут переходи між станами показують, як користувач просувається через
систему, від введення облікових даних та аутентифікації до вибору курсу чи
розділу, перевірки прав доступу, отримання матеріалів та обробки відмови в разі
неуспішної аутентифікації або відмови в доступі.
Висновки до розділу 2
Розділ 2 полягав у створенні моделювання предметної області для
візуального представлення того, як майбутній програмний засіб буде працювати.
У цьому розділі були розглянуті основні елементи моделювання, а також створені
необхідні діаграми для візуалізації структури та взаємодії компонентів системи
між собою. Були визначені основні компоненти системи та їх взаємодія між
собою. Діаграми класів дали змогу деталізувати структуру системи, визначивши
основні класи, їхні атрибути та методи. Діаграми компонентів та розгортання
показали фізичну реалізацію системи, архітектуру та способи розгортання на
апаратних засобах. Були створені діаграми послідовності та комунікації, щоб
детально розглянути процеси обміну повідомленнями між різними компонентами
системи під час виконання різних операцій, для наглядного розуміння динаміки
системи та виявлення можливих проблемних місць у взаємодії компонентів.
Також таким чином вдалося зменшити ризики помилок та недоліків на етапі
розробки та стабілізувати більш високу якість та надійність кінцевої системи.
РОЗДІЛ 3 РОЗРОБКА ТА ТЕСТУВАННЯ ПРОГРАМНОГО
ЗАБЕЗПЕЧЕННЯ
3.1 Розробка програмного комплексу
3.1.1 Обґрунтування вибору засобів реалізації
Програмний код буде створюватись на мові програмування Python тому що
він є високорівневою парадигмальною мовою програмування з простим
синтаксисом, що дозволяє зручним способом розробляти і підтримувати код.
“Пайтон” має велику спільноту користувачів і розробників, що забезпечує велику
кількість сторонніх бібліотек і модулів для різних завдань, до того ж підтримує як
об'єктно-орієнтований так і функціональний та структурний стилі програмування,
і така гнучкість у виборі робить його дуже гнучкою мовою для розробки
програмного забезпечення. Його висока читабельність сприяє зрозумінню коду
командою і спрощує його підтримку та модифікацію в майбутньому. Для
створення бази даних використовувався MySQL, тому що він є однією з
найпопулярніших реляційних баз даних у світі, що забезпечує надійність,
швидкість і простоту використання, та є досить відомим стандартом для роботи з
базами даних.
3.1.2 Опис структурної (функціональної) схеми
Структура програмного забезпечення поділяється на три частини:
⎯ користувацький інтерфейс, якій є вхідною точкою для користувача для
взаємодії з системою, дозволює інтуїтивно та легко взаємодіяти з матеріалами
програми. З функцій наявні аутентифікація користувача, відображення інформації
про курси та розділи та доступ до матеріалів;
⎯ cерверна частина, яка обробляє запити користувачів, взаємодіє з базою
даних і забезпечує бізнес-логіку застосунку, обробка запитів на аутентифікацію,
перевіряє права доступу до курсів і розділів, та звісним чином отримує
інформацію з бази даних;
⎯ база даних MySQL — реляційна база даних, яка забезпечує
зберігання і керування даними програмного комплексу, наприклад,
інформацію про користувачів, курси, розділи чи матеріали, та обробляє
запити на вибірку та зміну даних.
Взаємозв'язки між компонентами приблизно такі: база даних забезпечує
постійний доступ до даних і здійснює їхню обробку відповідно до запитів, які
надходять від серверної частини, серверна частина в свою чергу взаємодіє з базою
даних MySQL для отримання необхідної інформації та зберігання нових даних, а
користувацький інтерфейс взаємодіє з серверною частиною через HTTP запити,
передаючи дані про користувача та його дії.
3.1.3 Опис логічної схеми системи
У цьому підрозділі описана логічна схема системи, її функціональні
компоненти програмного комплексу та їх взаємодію. У даному випадку
розглянуто програмний комплекс, розроблений на Python із використанням бази
даних MySQL. Основні компоненти системи включають: користувацький
інтерфейс, серверну частину, базу даних та API для взаємодії між компонентами.
Ось детальний опис логічної схеми системи:
1 Користувацький інтерфейс (UI) — це графічний інтерфейс,
через який користувачі взаємодіють із системою. В якості функцій наявні
вхід до системи, введення облікових даних для аутентифікації, навігація по
курсам та розділам , вибір і перегляд доступних курсів і розділів, та
взаємодія з матеріалами, можна завантажувати і переглядати матеріали
курсу;
2 Серверна частина (Backend) — це логіка системи, що
обробляє запити від користувацького інтерфейсу і взаємодіє з базою даних.
З функцій наявні перевірка облікових даних користувачів, перевірка прав
доступу користувачів до різних курсів та матеріалів, обробка запитів
користувачів, пов'язаних із доступом до курсів та матеріалів, та створенням
та управлінням запитів до бази даних для створення, читання, оновлення та
видалення (CRUD) даних;
3 База даних (MySQL) — це реляційна база даних для зберігання
інформації про користувачів, курси, розділи та матеріали. Постійно зберігає
структуровані дані, та обробляє SQL-запити для оновлення даних;
4 API (Application Programming Interface) — це інтерфейс для
взаємодії між користувацьким інтерфейсом і серверною частиною, а також
між серверною частиною і базою даних. Повинен передавати результати
запитів від сервера до клієнта.
Деталізована логічна схема:
1 Користувацький інтерфейс (UI):
⎯ вхід до системи: форма введення облікових даних;
⎯ навігація: інтерфейс для перегляду курсів і розділів;
⎯ взаємодія з матеріалами: інтерфейс для перегляду та завантаження
матеріалів.
2 Серверна частина (Backend):
⎯ Контролери: обробка HTTP-запитів від UIl;
⎯ Сервіси: бізнес-логіка для аутентифікації, авторизації, обробки запитів;
⎯ Репозиторії: взаємодія з базою даних для CRUD операцій.
3 База даних (MySQL):
Складається з ось таких таблиць:
⎯ користувачі: зберігання інформації про користувачів (ім'я, електронна
пошта, хеш паролю тощо);
⎯ курси: зберігання інформації про курси (назва, опис, автор тощо);
⎯ розділи: зберігання інформації про розділи курсів;
⎯ матеріали: зберігання навчальних матеріалів;
4 API:
⎯ Ендпойнти:
⎯ /login: для аутентифікації користувачів.
⎯ /courses: для отримання інформації про курси.
⎯ /sections: для отримання інформації про розділи.
⎯ /materials: для отримання навчальних матеріалів.
3.1.4 Розробка бази даних
Розробка бази даних для програмного комплексу почата зі створення
таблиць для зберігання користувачів, курсів, розділів та матеріалів та оцінок. Далі
треба створити визначення зв'язків між ними. Така структура бази даних є
необхідньою для функціонування системи. Було створено п’ять таблиць: з
користувачами, курсами, розділами, матеріалами та оцінками. Нижче наведено
таблицю 1.1, яка відображає структуру користувачів
Таблиця 3.1
Структура таблиці з користувачами (Users)
№ п/п Назва поля Тип поля Ключ Опис
Унікальний
1 user_id Int PK Ідентифікатор
користувача
Ім'я (ПІБ)
2 username Varchar(255) U
користувача
Електронна пошта
3 email Varchar(255) —
облікового запису
Хеш пароля
4 password_hash Varchar(255) —
користувача
Дата та час
5 created_at TS
створення
облікового запису
Таблиця 3.2
Структура таблиці з курсами (Courses)
№ п/п Назва поля Тип поля Ключ Опис
Унікальний
1 course_id int PK Ідентифікатор
курсу
2 Title Varchar(255) U Назва курсу
3 description Text — Опис курсу
Дата та час
4 created_at TS —
створення курсу
Таблиця 3.3
Структура таблиці з розділами (Sections)
№ п/п Назва поля Тип поля Ключ Опис
Унікальний
1 section_id int PK Ідентифікатор
курсу
2 course_id int FK Назва курсу
NOT Опис курсу
3 title Text
NULL
Дата та час
4 created_at TS —
створення курсу
Таблиця 3.4
Структура таблиці з матеріалами (Materials)
№ п/п Назва поля Тип поля Ключ Опис
Унікальний
1 material_id int PK Ідентифікатор
матеріалу
2 section_id Varchar(255) FK Назва курсу
NOT
3 title
NULL
NOT Опис курсу
4 content Text
NULL
Дата та час
5 created_at TS —
створення курсу
Таблиця 3.5
Структура таблиці з матеріалами (Grades)
№ п/п Назва поля Тип поля Ключ Опис
Унікальний
1 grade_id int PK Ідентифікатор
матеріалу
2 user_id Varchar(255) FK Назва курсу
NOT
3 course_id
NULL
4 section_id Text NOT Опис курсу
NULL
Дата та час
5 grade TS —
створення курсу
6 created_at
Спроектована база даних складається з п’яти, логічно пов’язаних між собою
таблиць (рисунок 3.1) на основі вищеописаних таблиць (3.1, 3.2, 3.3, 3.4, 3.5)
Рисунок 3.1 – Модель бази даних
3.1.5 Розробка інтерфейсу користувача
У цьому підрозділі реалізовано графічний інтерфейс користувача на мові
програмування Python, за допомогою відомою бібліотеки ttkbootstrap, яка
зроблена під Python — це така сучасна бібліотека для створення графічних
інтерфейсів користувача (або ж GUI) на основі бібліотеки tkinter, яка є
стандартною класичною бібліотекою для створення цього самого GUI в Python.
Ця біболтека надає сучасний вигляд та відчуття для додатків, використовуючи
популярні теми та стилі, подібні до тих, що використовуються у сучасному веб-
дизайні епохи web 3.0. Бібліотека ttkbootstrap забезпечує кілька готових тем, які
можна легко змінювати, створювати різноманітні інтерфейси з різними виглядами
для різних додатків. Це особливо корисно для розробників, які хочуть створювати
професійні та естетично привабливі додатки без глибоких знань у дизайні
інтерфейсів.
Рисунок 3.2 – Форма авторизації
Рисунок 3.3 – Сторінка для створення курсу
На рисуноку 3.2 зображена форма авторизації користувача, де розміщені
обов’язкові для заповнення поля: електронна пошта та пароль зареєстрованого
користувача. Так як реєструвати облікову запис може тільки адміністратор, то тут
немає кнопки “зарєєструватися”. Для створення нового курсу, необхідно
натиснути на кнопку «створити курс» (рисунок 3.3).
Далі, той же викладач може завантажити файли за допомогою кнопки
“Завантажити матеріали”, після чого відкриється вікно огляду диску користувача
(викладача), котрий може обрати будь-який файл та завантажити його сюди (рис.
3.4)
Рисунок 3.4 – Інтерфейс завантаження навчальних матеріалів
Далі завантажений файл можна побачити у програмі (рис 3.5):
Рисунок 3.5 – Завантажений файл у програму (png-картинка)
Вбудований у програму месенджер та приклад листування зображений на
рисунку 3.6
Рисунок 3.6 – Вбудований месенджер для листування з користувачем
В рисунку 3.7 представлена вікторина з курсу.
Рисунок 3.7 – Інтерфейс вікторини користувача
3.1.6 Опис розробки програмних компонентів
Для початку, для завантаження бібліотеки ttkbootstrap було прописано у
CMD команду pip install ttkbootstrap. Далі, вигляд створення
інтерфейсу авторизації описан наступним чином: для цього спочатку були
імпортовані бібліотеки tkinte та ttkbootstrap, а далі створено клас AuthApp:
class AuthApp: def __init__(self, root): self.root = root
self.root.title("Авторизація")
Функція створення
def create_login_form(self):
self.login_username_label = style.Label(self.login_frame,
text="Логін:")
self.login_username_label.pack(pady=5)
self.login_username_entry =
style.Entry(self.login_frame)
self.login_username_entry.pack(pady=5)
self.login_password_label =
style.Label(self.login_frame, text="Пароль:")
self.login_password_label.pack(pady=5)
self.login_password_entry =
style.Entry(self.login_frame, show="*")
self.login_password_entry.pack(pady=5)
self.login_button = style.Button(self.login_frame,
text="Увійти", command=self.login)
self.login_button.pack(pady=20)
Код для адміністрування написан таким чином:
import tkinter as tk
from tkinter import messagebox
from ttkbootstrap import Style
import json
users_data = [
{"username": "admin", "password": "admin123", "role": "admin"},
{"username": "student1", "password": "pass123", "role": "student"},
{"username": "student2", "password": "pass456", "role": "student"}
]
class AdminApp:
def __init__(self, root):
self.root = root
self.root.title("Адміністрування")
style = Style(theme="cosmo")
# Створення фреймів
self.manage_users_frame = style.Frame(self.root)
self.manage_users_frame.pack(pady=10, padx=10, fill='both',
expand=True)
self.create_user_management_interface()
def create_user_management_interface(self):
self.users_listbox = tk.Listbox(self.manage_users_frame, height=10)
self.users_listbox.pack(pady=10)
self.update_users_listbox()
self.view_button = style.Button(self.manage_users_frame,
text="Переглянути", command=self.view_user)
self.view_button.pack(pady=5)
self.edit_button = style.Button(self.manage_users_frame,
text="Редагувати", command=self.edit_user)
self.edit_button.pack(pady=5)
self.delete_button = style.Button(self.manage_users_frame,
text="Видалити", command=self.delete_user)
self.delete_button.pack(pady=5)
def update_users_listbox(self):
self.users_listbox.delete(0, tk.END)
for user in users_data:
self.users_listbox.insert(tk.END, user["username"])
def view_user(self):
selected_index = self.users_listbox.curselection()
if selected_index:
user = users_data[selected_index[0]]
messagebox.showinfo("Перегляд користувача", f"Логін:
{user['username']}\nРоль: {user['role']}")
else:
messagebox.showwarning("Помилка", "Виберіть користувача для
перегляду.")
def edit_user(self):
selected_index = self.users_listbox.curselection()
if selected_index:
user = users_data[selected_index[0]]
self.edit_user_window(user, selected_index[0])
else:
messagebox.showwarning("Помилка", "Виберіть користувача для
редагування.")
def edit_user_window(self, user, index):
edit_window = tk.Toplevel(self.root)
edit_window.title("Редагування користувача")
tk.Label(edit_window, text="Логін:").pack(pady=5)
username_entry = tk.Entry(edit_window)
username_entry.pack(pady=5)
username_entry.insert(0, user["username"])
tk.Label(edit_window, text="Пароль:").pack(pady=5)
password_entry = tk.Entry(edit_window, show="*")
password_entry.pack(pady=5)
password_entry.insert(0, user["password"])
tk.Label(edit_window, text="Роль:").pack(pady=5)
role_entry = tk.Entry(edit_window)
role_entry.pack(pady=5)
role_entry.insert(0, user["role"])
save_button = style.Button(edit_window, text="Зберегти",
command=lambda: self.save_user_changes(index, username_entry.get(),
password_entry.get(), role_entry.get(), edit_window))
save_button.pack(pady=10)
def save_user_changes(self, index, username, password, role, window):
users_data[index] = {"username": username, "password": password,
"role": role}
self.update_users_listbox()
window.destroy()
messagebox.showinfo("Редагування", "Зміни збережено успішно!")
def delete_user(self):
selected_index = self.users_listbox.curselection()
if selected_index:
del users_data[selected_index[0]]
self.update_users_listbox()
messagebox.showinfo("Видалення", "Користувача видалено
успішно!")
else:
messagebox.showwarning("Помилка", "Виберіть користувача для
видалення.")
if __name__ == "__main__":
root = tk.Tk()
app = AdminApp(root)
root.mainloop()
В цьому коді клас AdminApp інкапсулює логіку адміністрування
користувачів, включаючи перегляд, редагування та видалення користувачів.
Метод edit_user відкриває нове вікно для редагування даних користувача, метод
save_user_changes зберігає зміни користувача, а метод delete_user видаляє акаунт
зі списку.
3.2 Тестування системи
3.2.1 Модульне тестування
Модульне тестування системи потрібно для ретельної перевірки окремих
модулів програми на правильність їх роботи, з метою виявлення небажаних
дефектів на рівні модулів для забезпечення високої якості програмного
забезпечення та зниження витрат на виправлення помилок на більш пізніх етапах
розробки.
Деякі принципи вже перевірялись у підрозділі 3.1.5, де листування,
інтерфейс завантаження навчальних файлів та розділ створення курсу працюють
коректно. Було вирішено перевірити, чи працюватиме коректно программа з
декількома курсами одночасно.
Рисунок 3.8 – Перевірка модуля, завантаживши декілька курсів
На рисунку 3.8 видно, що курси успішно завантажуються, ніякого
завантаження серверів не спостерігається. Модуль працює успішно.
Перевіримо модуль можливостей адміністратора,. Він має доступ до усіх
прав для функціонування (див. рис. 3.9). Кожна з дій успішно працює.
Рисунок 3.9 – Адміністративна панель керування
3.2.2 Інтеграційне тестування
Для початку зазначу, що інтеграційне тестування слідує після модульного
тестування. Основна мета інтеграційного тестування є перевірка взаємодії між
окремими модулями або компонентами системи, щоб переконатися, що вони
працюють разом належним чином. Для цього, після створення двох курсів,
параллельно було завантажено по одному файлу на кожний курс. І програма
також успішно працює (див. рис. 3.10)
Рисунок 3.10 – робота двух модулів одночасно
Отже, будь який сценарий успішно виконується в розробленій програмній
системі.
3.2.3 Системне тестування
Є завершальним етапом тестування. Знову ж таки, основні процедури
описані у розділах 3.2.1 та 3.1.5. Перевіримо процедуру створення курсів, як саму
основну у програмі (рис. 3.11)
Рисунок 3.11 – інтерактивна форма створення навчального курсу
викладачем
Тут викладач може обрати групу, тему, ввести текст, завантажити файл та
відправити це на головну сторінку.
На головній сторінці відображені курси, доступні для перегляду (зелений
колір) (рис. 3.12)
Рисунок 3.12- список курсів для огляду
3.2.4 Приймальне тестування
Останній етап тестування. Перед цим етапом завантажуємо розроблений
додатоку на сервер. Спочатку користувач по стандартній схемі авторизується,
заповнивши поля логін та пароль. Далі користувачу відображено головну сторінку
програми, де він може обрати курс для перегляду, будучи викладачем може
створювати курси. Для адміністратора буде виняток, його головне меню виглядає
ось таким чином (зображення на рисунку 3.13)
Рисунок 3.13 – головна сторінка адміністратора
Користувачі за бажанням можуть листуватися між собою, обравши друг
друга в Месенджері (рисунок 3.14)
Рисунок 3.14 – обирання користувача перед листуванням
ВИСНОВКИ
В кваліфікаційній роботі бакалавра було виконано аналіз усіх існуючих
проблем, методик, технологій та інструментів, які використовуються в
програмуванні навчанні, з метою оцінки їхньої ефективності та доцільності
впровадження в освітній процес. Виявлено актуальні проблеми, які виникають у
процесі виконання завдань, та запропоновано шляхи їх вирішення для успішного
виконання поставлених завдань.
Розроблена система надає можливість викладацькому складу та студентам
працювати по останнім сучасним методикам навчання, переважно системі
перевернутого навчання. Під час розробки системи були створені діаграми
прецедентів, класів, компонентів, розгортання та послідовності, що дозволило
детально спроектувати та візуалізувати структуру та поведінку системи.
Модельне тестування системи забезпечило перевірку функціональності, зручності
та надійності системи, виявлення та виправлення усіх теоретично та практично
можливих помилок. Результати тестування показали, що розроблена система
відповідає вимогам, дозволяє ефективно вирішувати задачі керування освітніми
матеріалами та забезпечує зручний та інтуїтивно зрозумілий інтерфейс для
користувачів. Подальший розвиток системи може включати розширення
функціоналу, інтеграцію з іншими освітніми платформами та підвищення рівня
безпеки даних.
Загалом, виконана робота продемонструвала свою практичну цінність
запропонованих рішень та їхню доцільність для покращення якості освітнього
процесу та вдосконалення методичної роботи кафедри програмного забезпечення
автоматизованих систем.
СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ
1. Лега, Ю. Г., Донець, О. М., Куницька, С. Ю. Управління якістю в
проектах: навчальний посібник. – Черкаси: ЧДТУ, 2013. – 356 с.
2. Куницька, С. Ю., Голуб, С. В., Метелап, В. В. Бази даних:
лабораторний практикум для здобувачів освітнього ступеня «бакалавр» зі
спеціальності 121 Інженерія програмного забезпечення усіх форм навчання.
Частина 1. – Черкаси: ЧДТУ, 2024. – 52 с.
3. Донець, О. М., Куницька, С. Ю. Методичні вказівки до виконання
лабораторних робіт з дисципліни «Управління проектами» для студентів
спеціальностей 7.03050401 і 8.03050401 - “Економіка підприємства” усіх форм
навчання. – Черкаси: ЧДТУ, 2011. – 62 с.
4. Голуб, С. В., Заспа, Г. О., Куницька, С. Ю., Півень, О. Б., Катаєва, Є.
Ю., Салапатов, В. І., Метелап, В. В., Олексюк, В. В. Методичні рекомендації до
підготовки кваліфікаційної роботи для здобувачів освітнього ступеня
«бакалавр» зі спеціальності 121 Інженерія програмного забезпечення усіх форм
навчання. – Черкаси: ЧДТУ, 2023. – 100 с.
5. Метелап, В. В., Куницька, С. Ю., Немченко, В. В. Методичні
рекомендації до лабораторних робіт з дисципліни «WEB-програмування» для
здобувачів освітнього ступеня «бакалавр» зі спеціальності 121 Інженерія
програмного забезпечення усіх форм навчання. Частина 1. – Черкаси: ЧДТУ,
2024. – 68 с.
6. Бойко, А. М. Основи розробки веб-застосунків. – Київ: Видавництво
Ліра-К, 2021. – 240 с.
7. Паламарчук, В. І. Технології розподілених інформаційних систем:
навчальний посібник. – Київ: КНУ, 2020. – 198 с.
8. Дьяків, О. І. Проєктування інтерфейсів користувача: навчальний
посібник. – Львів: ЛНУ ім. І. Франка, 2022. – 142 с.
9. Гринчук, С. О. Системи управління проєктами та командна робота //
Електронне наукове фахове видання "Інформаційні технології і засоби
навчання", №3 (85), 2022. – https://journal.iitta.gov.ua
10. Шевченко, М. В. Організація командної роботи за методологією
Kanban // "Вісник НТУУ КПІ. Інформатика, управління та обчислювальна
техніка", №1, 2021.
11. Chacon, S., Straub, B. Pro Git (2nd ed.) – Apress, 2014. – https://git-
scm.com/book/en/v2
12. GitHub Docs. GitHub REST API documentation –
https://docs.github.com/rest
13. Node.js Documentation – https://nodejs.org/en/docs
14. React Documentation – Meta – https://react.dev/
15. MDN Web Docs. JavaScript Guide – Mozilla Developer Network –
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide
16. MongoDB Documentation – https://www.mongodb.com/docs/
17. Beck, K. Extreme Programming Explained: Embrace Change. – Addison-
Wesley, 2004.
18. Pressman, R. S. Software Engineering: A Practitioner's Approach. –
McGraw-Hill, 2014.
19. Sommerville, I. Software Engineering (10th Edition). – Pearson, 2015.