Об'єктно-орієнтоване програмування 2
Анотація навчальної дисципліни
Мета вивчення дисципліни:
Курс знайомить із розробкою корпоративних додатків на мові програмування Java з використанням фреймворку Spring. Курс вивчає філософію Spring, зосереджується на внутрішній частині двигуна Spring і охоплює деякі з найпопулярніших додаткових пакетів, які розширюють фреймворк. Курс включає практичні роботи та написання курсової роботи, що є гарантією того, що учасники отримають всю інформацію та практичні навички, необхідні для ознайомлення з фреймворком та зможуть успішно застосовувати його у своїх проектах.
Практичне значення та використання отриманих знань:
Ознайомлення з гнучкими методологіями розробки програмного забезпечення. Отримання навичок розробки додатків за допомогою фреймворку Spring та стеку технологій Jakarta EE. Отримання вмінь створювати клієнт-серверні додатки за допомогою монолітної та мікросервісної архітектури. Отримання навичок проектування архітектур розподілених застосувань та навички роботи з інструментальними засобами для проектування та реалізації кросплатформних застосувань.
Основні результати навчання:
ПРН1. Застосовувати знання основних форм і законів абстрактно-логічного мислення, основ методології наукового пізнання, форм і методів вилучення, аналізу, обробки та синтезу інформації в предметній області комп'ютерних наук.
ПРН5. Проектувати, розробляти та аналізувати алгоритми розв’язання обчислювальних та логічних задач, оцінювати ефективність та складність алгоритмів на основі застосування формальних моделей алгоритмів та обчислюваних функцій.
ПРН9. Розробляти програмні моделі предметних середовищ, вибирати парадигму програмування з позицій зручності та якості застосування для реалізації методів та алгоритмів розв’язання задач в галузі комп’ютерних наук.
Тематика та види навчальних занять:
1 тиждень.
Лекція 1 «Клієнт-серверна архітектура. Сокети. Технологія JavaServlet».
Отримання завдання на курсову роботу.
2 тиждень.
Лекція 2 «Інверсія контролю та впровадження залежностей. Технологія JavaBeans. Проект SpringBoot. Структура додатку Spring».
Лабораторне заняття 1 «Гнучкі методології, методологія Scrum. Користувацькі історії. Написання користувацьких історій для курсової роботи».
Виконання курсової роботи. Частина 1.
3 тиждень.
Лекція 3 «Як працює Інтернет. Протоколи HTTP і HTTPS. Архітектурний стиль REST та механізм GraphQL. RESTful веб-сервіси».
Виконання курсової роботи. Частина 1.
4 тиждень.
Лекція 4 «REST-контролери в JavaSpring. Формат JSON. Програмне забезпечення Postman».
Лабораторне заняття 2 «Написання контролерів REST у Spring. Передача параметрів у запитах REST. Обробка JSON».
Виконання курсової роботи. Частина 1.
5 тиждень.
Лекція 5 «Інтеграція баз даних. Технологія ORM. Фреймворк Hibernate. Модуль Spring Data JPA».
Виконання курсової роботи. Частина 1.
6 тиждень.
Лекція 6 «Розробка веб-додатків за допомогою фреймворку Spring MVC».
Лабораторне заняття 3 «Створення каркасу веб-додатку для курсової роботи».
Виконання курсової роботи. Частина 1.
7 тиждень.
Лекція 7 «Створення представлень веб-додатку за допомогою фреймворку Thymeleaf».
Модульна контрольна робота 1
Виконання курсової роботи. Частина 1.
8 тиждень.
Лекція 8 «Аспектно-орієнтоване програмування. Впровадження журналювання в Spring».
Лабораторне заняття 4 «Впровадження журналювання в курсовій роботі».
Виконання курсової роботи. Частина 2.
9 тиждень.
Лекція 9 «Фреймворк Spring Security. Автентифікація та авторизація».
Виконання курсової роботи. Частина 2.
10 тиждень.
Лекція 10 «Фреймворк Spring Security. Сеанси, файли Сookie та JWT. Протокол OAuth2».
Лабораторне заняття 5 «Забезпечення автентифікації та авторизації в курсовій роботі».
Виконання курсової роботи. Частина 2.
11 тиждень.
Лекція 11 «Рефакторінг, запахи коду».
Виконання курсової роботи. Частина 2.
12 тиждень.
Лекція 12 «Тестування в Java Spring».
Лабораторне заняття 6 «Впровадження модульного тестування в курсову роботу».
Виконання курсової роботи. Частина 2.
13 тиждень.
Лекція 13 «Розгортання Java Spring додатків».
Виконання курсової роботи. Частина 2.
14 тиждень.
Лекція 14 «Принципи SOLID».
Лабораторне заняття 7 «Розгортання програмного забезпечення курсової роботи. Захист курсової роботи».
Виконання курсової роботи. Частина 2.
15 тиждень.
Лекція 15 «Шаблони проектування корпоративних додатків».
Захист курсової роботи.
Самостійна робота здобувача відбувається впродовж семестру та складається з підготовки до аудиторних занять, контрольних заходів, індивідуальних завдань.
Консультації: здійснюються викладачем впродовж семестру згідно розкладу.
Оцінювання результатів навчання:
Оцінювання результатів навчання з дисципліни здійснюється за накопичувальною системою, яка дає можливість здобувачеві протягом семестру отримати максимально 100 балів.
Модуль 1
Виконання лабораторних робіт – по 8 балів за кожну лабораторну роботу.
Модульна контрольна робота 1 – бездоганне виконання 26 балів (в кожному завданні модульної контрольної роботи наведено максимальну кількість балів за виконання кожного завдання).
Курсова робота. Частина 1 – оцінка за виконання – 30 балів.
Модуль 2
Виконання лабораторних робіт – по 7 балів за кожну лабораторну роботу.
Модульна контрольна робота 2 – бездоганне виконання 22 бали (в кожному завданні модульної контрольної роботи наведено максимальну кількість балів за виконання кожного завдання).
Курсова робота. Частина 2 – оцінка за виконання – 20 балів.
Захист курсової роботи – 50 балів.
Посилання на рекомендовані джерела:
1. Spring Framework Documentation. URL: https://docs.spring.io/spring-framework/docs/current/reference/html/ (дата звернення 01.08.2022).
2. Baeldung – Spring. URL: https://www.baeldung.com/spring-tutorial(дата звернення 01.08.2022).
3. Spring Guides. URL: https://spring.io/guides (дата звернення 01.08.2022).
4. Tutorialspoint – Spring Guides. URL: https://www.tutorialspoint.com/spring/index.htm (дата звернення 01.08.2022).
5. Edureka! Spring Tutorial. URL: https://www.edureka.co/blog/spring-tutorial/ (дата звернення 01.08.2022).