Розроблення застосунків з використанням Spring Framework - Робоча програма навчальної дисципліни (Силабус)

Реквізити навчальної дисципліни

Рівень вищої освіти Перший (бакалаврський)
Галузь знань 12 «Інформаційні технології»
Спеціальність 121 Інженерія програмного забезпечення, 123 Комп’ютерна інженерія, 126 Інформаційні системи та технології
Освітня програма Інженерія програмного забезпечення комп’ютерних систем, Інженерія програмного забезпечення інформаційних систем, Комп’ютерні системи та мережі, Інтегровані інформаційні системи, Інформаційні управляючі системи та технології, Інформаційне забезпечення робототехнічних систем
Статус дисципліни Вибіркова
Форма навчання Очна (денна)
Рік підготовки, семестр 3 курс, осінній семестр
Обсяг дисципліни 4 кредити ECTS /120 годин (36 годин лекцій, 18 годин лабораторних робіт; 66 годин самостійна робота студента)
Семестровий контроль/ контрольні заходи Залік, МКР, захист лабораторних робіт
Розклад занять

1 лекція (2 години) 1 раз на тиждень;

1 лабораторна робота (2 години) 1 раз на 2 тижні.

Мова викладання Українська
Інформація про
керівника курсу / викладачів

Лектор: к.т.н. Букасов Максим Михайлович, @bukasov

Лабораторні роботи: к.т.н. Барбарук Віктор Миколайович, @barbaruk_viktor

Розміщення курсу https://drive.google.com/drive/folders/1LTRuUIPzek1eEa86Cqd7dGlTzjxIMtpo

Програма навчальної дисципліни

Опис навчальної дисципліни, її мета, предмет вивчання та результати навчання

Силабус освітнього компонента «Розроблення застосунків з використанням Spring Framework» складено відповідно до освітньої програми підготовки бакалаврів спеціальностей 126 – Інформаційні системи і технології, 121 – Інженерія програмного забезпечення, 123 – Комп’ютерна інженерія.

Метою навчальної дисципліни є формування та закріплення у студентів наступних компетентностей: Здатність до абстрактного мислення, аналізу та синтезу; Здатність спілкуватися іноземною мовою; Здатність розробляти проекти та управляти ними; Здатність оцінювати та забезпечувати якість виконуваних робіт; Здатність розробляти та застосувати ІСТ, необхідні для розв’язання стратегічних і поточних задач; Здатність формулювати вимоги до етапів життєвого циклу сервіс-орієнтованих інформаційних систем; Здатність проектувати інформаційні системи з урахуванням особливостей їх призначення, неповної/недостатньої інформації та суперечливих вимог..

Предмет навчальної дисципліни – фреймворк Spring Framework, та його використання для створення вебзастосунків та вебсервісів.

Програмні результати навчання, на формування та покращення яких спрямована дисципліна: Відшуковувати необхідну інформацію в науковій і технічній літературі, базах даних, інших джерелах, аналізувати та оцінювати цю інформацію; Вільно спілкуватись державною та іноземною мовами в науковій, виробничій та соціально-суспільній сферах діяльності; Приймати ефективні рішення з проблем розвитку інформаційної інфраструктури, створення і застосування ІСТ; Управляти процесами розробки, впровадження та експлуатації у сфері ІСТ, які є складними, непередбачуваними і потребують нових стратегічних та командних підходів; Визначати вимоги до ІСТ на основі аналізу бізнес-процесів та аналізу потреб зацікавлених сторін, розробляти технічні завдання; Обґрунтовувати вибір технічних та програмних рішень з урахуванням їх взаємодії та потенційного впливу на вирішення організаційних проблем, організовувати їх впровадження та використання; Здійснювати обґрунтований вибір проектних рішень та проектувати сервіс-орієнтовану інформаційну архітектуру підприємства (установи, організації тощо).

Пререквізити та постреквізити дисципліни

Для успішного засвоєння дисципліни студент повинен володіти освітніми компонентами «Програмування-1. Основи програмування», «Програмування-2. Структури даних та алгоритми» та «Бази даних».

Зміст навчальної дисципліни

Розділ 1. Загальні положення

Тема 1.1. Структура та зміст курсу. РСО

Розділ 2. Основи компонентно-базованого проєктування з використанням Spring Framework

Тема 2.1. Основні можливості Spring Framework та Spring Boot

Тема 2.2. Основні принципи компонентно-базованого проєктування

Тема 2.3. Основні можливості Spring IoC

Тема 2.4. Створення конфігурацій за допомогою Spring Boot

Розділ 3. Створення веб-застосунків за допомогою Spring Framework

Тема 3.1. Основні можливості Spring MVC

Тема 3.2. Шаблонізатори Thymeleaf та JSP

Тема 3.3. Використання EL/JSTL при створенні JSP-сторінок

Розділ 4. Створення RESTful веб-сервісів за допомогою Spring Framework

Тема 4.1. Основні принципи побудови RESTful веб-сервісів

Тема 4.2. Створення RESTful веб-сервісів за допомогою модуля Spring Web

Тема 4.3. Створення документації для RESTful веб-сервісів за допомогою OpenAPI

Розділ 5. Взаємодія з СУБД з використанням Java Database Connectivity (JDBC)

Тема 5.1. Основні можливості Java Database Connectivity (JDBC)

Тема 5.2. Взаємодія з СУБД з використанням JdbcTemplate

Тема 5.3. Декларативне керування транзакціями в Spring Framework

Розділ 6. Взаємодія з СУБД з використанням об’єктно-реляційних перетворювань

Тема 6.1. Основні можливості Jakarta Persistence API (JPA)

Тема 6.2. Конфігурування об’єктів-сутностей JPA

Тема 6.3. Використання модуля Spring Data для створення репозиторіїв

Навчальні матеріали та ресурси

Основна література

  1. Craig Walls. Spring in Action, 6th edition (2022). ISBN 978-1617297571.

  2. K. Siva Prasad Reddy, Sai Upadhyayula. Beginning Spring Boot 3, Build Dynamic Cloud-Native Java Applications and Microservices, Second Edition (2023). ISBN: 978-1484287910.

Додаткова література

  1. Кеті Сьєрра, Берт Бейтс (2022). Head First. Java. Легкий для сприйняття довідник. ISBN: 978-6175220337.

  2. Ерік Фрімен (2020). Head First. Патерни проєктування. Легкий для сприйняття довідник. ISBN: 978-6170961594.

Навчальний контент

Методика опанування навчальної дисципліни (освітнього компонента)

Лекційні заняття

з/п

Назва теми лекції та перелік основних питань

(перелік дидактичних засобів, посилання на інформаційні джерела)

1

Розділ 1. Загальні положення

Тема 1.1. Структура та зміст курсу. РСО

Розділ 2. Основи компонентно-базованого проєктування з використанням Spring Framework

Тема 2.1. Основні можливості Spring Framework та Spring Boot

Основні питання: Призначення фреймворків. Відмінності фреймворків від бібліотек. Призначення основних модулі Spring Framework. Спрощення створення конфігурацій за допомогою Spring Boot.

2

Тема 2.2. Основи компонентно-базованого проєктування з використанням Spring Framework

Основні питання: Компоненти, інтерфейси, діаграма компонентів. Принципи SOLID. Inversion of Control. Explicit Dependency Principle. Dependency Injection.

3

Тема 2.3. Основні можливості Spring IoC

Основні питання: Створення компонентів за допомогою Java-анотацій та Java-конфігурацій. Класифікація компонентів. Пошук компонентів. Отримання компонентів за допомогою ін’єкції залежностей.

4

Тема 2.4. Створення конфігурацій за допомогою Spring Boot

Основні питання: Основні анотації Spring Boot: @SpringBootApplication, @SpringBootConfiguration, @EnableAutoConfiguration, @ComponentScan. Автоматичне конфігурування. Пошук компонентів. Структура типового проєкту.

5

Розділ 3. Створення веб-застосунків за допомогою Spring Framework

Тема 3.1. Основні можливості Spring MVC

Основні питання: Загальна інформація про модуль Spring Web. Шаблон Model-View-Controller (MVC). Паттерн Front Controller. Основні анотації модуля Spring Web: @Controller, @GetMapping, @RequestParam. Передача параметрів.

6

Тема 3.2. Шаблонізатори Thymeleaf та JSP

Основні питання: Призначення шаблонізаторів. Основні характеристики шаблонізаторів Thymeleaf та JSP. Генерація HTML-документів. Доступ до даних, вставка тексту, умовне форматування, організація циклів.

7

Тема 3.3. Використання EL/JSTL при створенні JSP-сторінок

Основні питання: Загальна інформація про Expression Language (EL). Організація доступу до об'єктів, які зберігаються на рівні сторінки, запиту, сесії, веб-застосунку. Основні операції в EL. Загальна інформація про JSTL. Робота з атрибутами в JSTL. Керування потоком виконання за допомогою JSTL-тегів. Захист від XSS-атак.

8

Модульна контрольна робота

На контрольну роботу виноситься увесь попередній матеріал, що включає матерівал попередніх лекцій. Завдання включають теоретичну та практичну частини. Завдання для СРС: повторити матеріал 1-7 лекцій.

9

Розділ 4. Створення RESTful веб-сервісів за допомогою Spring Framework

Тема 4.1. Основні принципи побудови RESTful веб-сервісів

Основні питання: Загальна інформація про RESTful вебсервіси; реалізація основних CRUD-операцій за допомогою HTTP-методів GET, POST, PUT, PATCH, DELETE; best practice при створенні RESTful веб-сервісів; анотації для реалізації HTTP-методів.

10

Тема 4.2. Створення RESTful веб-сервісів за допомогою модуля Spring Web

Основні питання: Основні анотації модуля Spring Web для побудови RESTful сервісів: @Controller, @ResponseBody, @RestController, @RequestMapping, @GetMapping, @PostMapping, @PutMapping, @RequestParam, @PathVariable, @RequestBody, @ResponseBody, @ResponseStatus. Валідація даних. Клас ResponseEntity. Клас RestTemplate.

11

Тема 4.3. Створення документації для RESTful веб-сервісів за допомогою OpenAPI

Основні питання: Автоматична генерація інтерактивної документації. Swagger. OpenAPI. Основні анотації OpenAPI для автоматичної генерації документації.

12

Розділ 5. Взаємодія з СУБД з використанням Java Database Connectivity (JDBC)

Тема 5.1. Основні можливості Java Database Connectivity (JDBC)

Основні питання: Загальна інформація про специфікацію JDBC. Драйвери JDBC. Типи драйверів JDBC. Інтерфейси Connection, Statement, PreparedStatement, ResultSet. SQL-ін’єкції та захист від них. Керування транзакціями.

13

Тема 5.2. Взаємодія з СУБД з використанням JdbcTemplate

Основні питання: Конфігурування джерела даних (DataSource). Клас JdbcTemplate і його основні операції. Створення репозиторіїв на основі JdbcTemplate.

14

Тема 5.3. Декларативне керування транзакціями в Spring Framework

Основні питання: Основні поняття аспектно-орієнтованого програмування і особливості його реалізації в Spring Framework. Декларативне керування транзакціями. Особливості моделей розповсюдження транзакцій.

15

Розділ 6. Взаємодія з СУБД з використанням об’єктно-реляційних перетворювань

Тема 6.1. Основні можливості Jakarta Persistence API (JPA)

Основні питання: Загальна інформація про JPA (Java Persistence API, Jakarta Persistence). Об’єктно-реляційне перетворення. Entity-класи. Архітектура JPA застосунку: Persistence, Persistence Context, Persistence Unit, EntityManager, EntityManagerFactory. Виконання операцій над сутностями за допомогою EntityManager.

16

Тема 6.2. Конфігурування об’єктів-сутностей JPA

Основні питання: Основні анотації для створення об’єктів-сутностей: @Entity, @Id, @Embeddable, @EmbeddedId. Особливості сумісного використання JPA та Lombok. Організація відношень між сутностями: @OneToMany / @ManyToOne / @OneToOne / @ManyToMany, однонаправлені та двонаправлені зв’язки, ледаще та жадібне завантаження даних.

17

Тема 6.3. Використання модуля Spring Data для створення репозиторіїв

Основні питання: Основні інтерфейси Spring Data: Repository, CrudRepository, ListCrudRepository, PagingAndSortingRepository, JpaRepository. Створення методів пошуку за допомогою запитів JPQL, нативних запитів та методів запитів репозиторіїв.

18

Модульна контрольна робота

На контрольну роботу виноситься матеріал розділів 4-6. Завдання включають теоретичну та практичну частини. Завдання для СРС: повторити матеріал 9-17 лекцій.

Лабораторні роботи

з/п

Перелік лабораторних робіт
1

Лабораторна робота №1. Перше знайомство з Spring Framework

Мета роботи – Навчитися встановлювати та налаштовувати середовище розроблення, створювати та запускати застосунки Spring Framework.

2

Лабораторна робота №2. Створення та зв’язування компонентів

Мета роботи – Навчитись використовувати Spring IoC, Java-анотації та Java-конфігурації для створення, конфігурування та зв’язування компонентів.

3

Лабораторна робота №3. Використання шаблонізатора Thymeleaf

Мета роботи – Навчитись створювати веб-застосунки з генерацією контента на боці сервера за допомогою шаблонізатора Thymeleaf.

4

Лабораторна робота №4. Використання шаблонізатора JSP

Мета роботи – Навчитись створювати веб-застосунки з генерацією контента на боці сервера за допомогою шаблонізатора JSP, EL, JSTL.

5

Лабораторна робота №5. Створення RESTful веб-сервісів

Мета роботи – Навчитися створювати RESTful веб-сервіси за допомогою модуля Spring Web.

6

Лабораторна робота №6. Документування RESTful веб-сервісів

Мета роботи – Навчитися використовувати засоби автоматичної генерації інтерактивної документації в форматі OpenAPI.

7

Лабораторна робота №7. Використання JdbcTemplate

Мета роботи – Навчитися розробляти компоненти рівня доступу до даних за допомогою компонента JdbcTemplate.

8

Лабораторна робота №8. Декларативне керування транзакціями

Мета роботи – Навчитися використовувати декларативне керування транзакціями, а також засвоїти на практиці моделі розповсюдження транзакцій.

9

Лабораторна робота №9. Об’єктно-реляційне перетворення

Мета роботи – Навчитися розробляти компоненти рівня доступу до даних на основі об’єктно-реляційного перетворення за допомогою модуля Spring Data.

Самостійна робота студента

з/п

Вид самостійної роботи

Кількість

годин СРС

1 Підготовка до лабораторних робіт 54
2 Підготовка до МКР 10
3 Підготовка до екзамену 2

6. Контрольна робота

Метою контрольної роботи є закріплення та перевірка теоретичних знань із освітнього компонента, набуття студентами практичних навичок самостійного вирішення задач та складанні та компіляції програм. Модульна контрольна робота (МКР) виконується після вивчення Розділів 3 та 6.

Політика та контроль

Політика навчальної дисципліни (освітнього компонента)

Система вимог, які викладач ставить перед студентом:

  • правила відвідування занять: заборонено оцінювати присутність або відсутність здобувача на аудиторному занятті, в тому числі нараховувати заохочувальні або штрафні бали. Відповідно до РСО даної дисципліни бали нараховують за відповідні види навчальної активності на лекційних та практичних заняттях.

  • правила поведінки на заняттях: студент має можливість отримувати бали за відповідні види навчальної активності на лекційних та практичних заняттях, передбачені РСО дисципліни. Використання засобів зв’язку для пошуку інформації на гугл-диску викладача, в інтернеті, в дистанційному курсі на платформі Сікорський здійснюється за умови вказівки викладача;

  • політика дедлайнів та перескладань: якщо студент не проходив або не з’явився на МКР (без поважної причини), його результат оцінюється у 0 балів. Перескладання результатів МКР не передбачено;

  • політика щодо академічної доброчесності: Кодекс честі Національного технічного університету України «Київський політехнічний інститут» https://kpi.ua/files/honorcode.pdf встановлює загальні моральні принципи, правила етичної поведінки осіб та передбачає політику академічної доброчесності для осіб, що працюють і навчаються в університеті, якими вони мають керуватись у своїй діяльності, в тому числі при вивченні та складанні контрольних заходів з даної дисципліни;

  • при використанні цифрових засобів зв’язку з викладачем (мобільний зв’язок, електронна пошта, переписка на форумах та у соцмережах тощо) необхідно дотримуватись загальноприйнятих етичних норм, зокрема бути ввічливим та обмежувати спілкування робочим часом викладача.

Види контролю та рейтингова система оцінювання результатів навчання (РСО)

Поточний контроль: МКР, виконання та захист лабораторних робіт.

Календарний контроль: проводиться двічі на семестр як моніторинг поточного стану виконання вимог силабусу.

Семестровий контроль: залік.

Умови допуску до семестрового контролю: виконані та захищені лабораторні роботи, семестровий рейтинг більше 60 балів.

Таблиця відповідності рейтингових балів оцінкам за університетською шкалою:

Кількість балів Оцінка
95-100 Відмінно
85-94 Дуже добре
75-84 Добре
65-74 Задовільно
60-64 Достатньо
Менше 60 Незадовільно

Загальна рейтингова оцінка студента після завершення семестру складається з балів, отриманих за:

  • виконання та захист лабораторних робіт;

  • виконання модульної контрольної роботи (МКР).

Лабораторні роботи

Ваговий бал. Лабораторні мають ваговий бал 10. Максимальна кількість балів за всі лабораторні роботи складає 10 бали * 9 робіт = 90 балів.

На лабораторних роботах студенти перевіряють та демонструють працездатність написаних вдома програм. Для допуску до поточної лабораторної роботи необхідно мати Протокол, оформлений відповідно до норм оформлення технічної документації, який має містити всі необхідні пункти, відповідно до Методичних вказівок. Також для допуску до лабораторної роботи (окрім 1-ї) необхідно захистити попередню. Студенти, що не захистили попередню лабораторну роботу можуть бути не допущені до виконання наступної. Лабораторні роботи виконуються бригадою.

Критерії оцінювання лабораторної роботи:

10 балів. Під час виконання завдання студент реалізував як обов’язкову так і опціональну частину завдання. В програмі відсутні помилки. Під час захисту студент надає правильні, повні та чіткі відповіді на поставлені питання.

8-9 балів. Під час виконання завдання студент реалізував лише обов’язкову частину завдання (опціональна частина відсутня). В програмі відсутні помилки. Під час захисту дає неповні відповіді або допускає помилки в незначних деталях.

6-7 балів. Написана студентом програма працює, але містить невідповідності архітектурним патернам, рекомендаціям до оформлення коду, використовує неефективні алгоритми. Під час відповіді на деякі питання студент припускається істотних помилок.

0 балів. Програма не написана, не працює, або має грубі порушення в архітектурі. Під час відповіді на питання студент припускається грубих помилок або не може дати відповіді на питання.

Модульні контрольні роботи

Ваговий бал – 10. Модульні контрольні роботи (МКР) виконуються протягом семестру на одному з лекційних занять після вивчення розділів 1 та 2.

Ваговий бал. Модульні контрольні роботи мають ваговий бал 5*.** Максимальна кількість балів за всі лабораторні роботи складає 5 балів * 2 роботи = 10 балів.*

Критерії оцінювання модульної контрольної роботи:

На модульній контрольній роботі студент виконує завдання, яке оцінюється від 0 до 5 балів:

- архітектура системи розроблена правильно, діаграма використання, діаграма класів та ER-діаграма намальовані та описані без помилок - 5 балів;

- архітектура системи, діаграма використання, діаграма класів та ER-діаграма в цілому розроблені правильно, але в наведених діаграмах присутні невідповідності в окремих функціях системи - 4 бали;

- архітектура системи, діаграма використання, діаграма класів та ER-діаграма розроблені з помилками, але грубі помилки відсутні - 3 бали;

- архітектура системи, діаграма використання, діаграма класів та ER-діаграма не розроблені, або мають грубі помилки - 0 балів.

Календарний контроль

Календарний контроль базується на поточній рейтинговій оцінці. Умовою позитивної атестації є значення поточного рейтингу студента не менше 60% від максимально можливого на час атестації. Бал, необхідний для отримання позитивного календарного контролю доводиться до відома студентів викладачем не пізніше ніж за 2 тижні до початку календарного контролю.

Форма семестрового контролю – залік

Максимальна сума балів за роботу у семестрі складає 100. Необхідною умовою допуску до заліку є виконані та захищені лабораторні роботи, семестровий рейтинг не менше 60 балів.

Робочу програму навчальної дисципліни (силабус):

Складено доцентом кафедри інформаційних систем та технологій ФІОТ, к.т.н. Букасов М.М.

Ухвалено кафедрою інформаційних систем та технологій ФІОТ (протокол № 21 від 29.06.2023 р.)

Погоджено Методичною комісією факультету (протокол № 11 від 29.06.2023 р.)