РОЗРОБЛЕННЯ ЗАСТОСУНКІВ НА ПЛАТФОРМІ JAKARTA EE - Робоча програма навчальної дисципліни (Силабус)

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

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

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

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

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

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

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

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

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

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

Силабус освітнього компонента «Розроблення застосунків на платформі Jakarta EE» складено відповідно до освітньої програми підготовки магістрів «Інтегровані інформаційні системи» спеціальності 126 – Інформаційні системи і технології.

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

Предмет навчальної дисципліни – стек технологій Jakarta EE (Java EE), який використовується для створення вебзастосунків та вебсервісів.

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

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

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

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

Розділ 1. Розроблення вебзастосунків з використанням Servlet API

Тема 1.1. Загальні відомості про стек специфікацій Jakarta EE

Тема 1.2. Створення динамічних вебзастосунків за допомогою сервлетів

Тема 1.3. Створення динамічних вебсторінок за допомогою JSP

Тема 1.4. Архітектура Model-View-Controller у застосунках Jakarta EE

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

Тема 1.6. Створення компонентів доступу до даних за допомогою специфікації JDBC

Тема 1.7. Створення вебсервісів за допомогою специфікації JAX-RS

Тема 1.8. Авторизація та аутентифікація користувачів у Jakarta EE

Розділ 2. Розроблення ентерпрайз-застосунків з використанням Enterprise Java Bean

Тема 2.1. Створення компонентів бізнес-логіки за допомогою специфікація Enterprise Java Bean версії 2.х

Тема 2.2. Створення компонентів бізнес-логіки за допомогою специфікація Enterprise Java Bean версії 3.х

Тема 2.3. Створення компонентів доступу до даних за допомогою специфікації JPA

Тема 2.4. Керування транзакціями Jakarta EE

Тема 2.5. Нововведення та зворотна сумісність у різних версіях специфікацій Jakarta EE

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

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

  1. Luciano Manelli , Giulio Zambon (2020). Beginning Jakarta EE Web Development: Using JSP, JSF, MySQL, and Apache Tomcat for Building Java Web Applications 3rd ed. Edition. ISBN: 978-1484258651.

  2. Lukas Jungmann, Mike Keith (2021). Pro Jakarta Persistence in Jakarta EE 10. 4th Ed. ISBN: 978-1484274422.

  3. Arjan Tijms, Teo Bais, Werner Keil (2022). The Definitive Guide to Security in Jakarta EE. 1st Ed. ISBN: 978-1484279441.

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

  1. Daniel Andres Pelaez Lopez (2021). Full-Stack Web Development with Jakarta EE and Vue.js. 1st Ed. ISBN: 978-1484263419.

  2. Elder Moraes (2020). Jakarta EE Cookbook: Practical recipes for enterprise Java developers to deliver large scale applications with Jakarta EE, 2nd Edition. ISBN: 978-1838642884.

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

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

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

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

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

з/п

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

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

1

Тема 1.1. Загальні відомості про стек специфікацій Jakarta EE

Основні питання: загальні відомості про стек специфікацій Jakarta EE; історія розвитку технології Jakarta EE; стек технологій Java EE; призначення основних модулів специфікації Jakarta EE.

2

Тема 1.2. Створення динамічних вебзастосунків за допомогою сервлетів. Частина 1

Основні питання: загальна інформація про вебсервіси та вебзастосунки; недоліки CGI-вебзастосунків; сервлети; конфігурування веб-сервера Apache Tomcat та розгортання веб-застосунків на ньому; структура web-застосунку.

3

Тема 1.2. Створення динамічних вебзастосунків за допомогою сервлетів. Частина 2

Основні питання: основні інтерфейси та класи Servlet API; життєвий цикл сервлета; ініціалізація сервлета параметрами з файлу web.xml; передача параметрів у сервлети.

4

Тема 1.2. Створення динамічних вебзастосунків за допомогою сервлетів. Частина 3

Основні питання: оброблення параметрів заголовків HTTP; робота з Cookie; керування сесіями користувачів

5

Тема 1.3. Створення динамічних вебсторінок за допомогою JSP

Основні питання: призначення JSP; життєвий цикл JSP-сторінки; трансляція та компіляція JSP-сторінок; скриптлети, директиви та активні елементи в JSP-сторінках

6

Тема 1.4. Архітектура Model-View-Controller у застосунках Jakarta EE

Основні питання: життєвий цикл запиту; реалізація архітектури MVC за допомогою сервлетів, JSP-сторінок та об’єктів JavaBean; передача параметрів та атрибутів запиту між компонентами

7

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

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

8

Тема 1.6. Створення компонентів доступу до даних за допомогою специфікації JDBC

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

9

Тема 1.7. Створення вебсервісів за допомогою специфікації JAX-RS

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

10

Тема 1.8. Авторизація та аутентифікація користувачів у Jakarta EE

Основні питання: Загальна інформація про JaaS (Java Authentication and Authorization Service). Ідентифікатор сесії. JWT-токени (JSON Web Tokens).

11

Тема 2.1. Створення компонентів бізнес-логіки за допомогою специфікація Enterprise Java Bean версії 2.х

Основні питання: Загальна інформація про EJB (Entrprise Java Bean) версії 2.х. Типи EJB. Життєвий цикл EJB-компонентів різного типу. Домашні інтерфейси та бізнес-інтерфейси. Локальні та віддалені інтерфейси. Використання JNDI (Java Naming and Directory Interface) для пошуку EJB-компонентів. Дескриптор розгортання. Зборка та розгортання EJB-проекту на сервері застосунків.

12

Тема 2.2. Створення компонентів бізнес-логіки за допомогою специфікація Enterprise Java Bean версії 3.х

Основні питання: Загальна інформація про EJB (Entrprise Java Bean) версії 3.х. Типи EJB. Декларація EJB-компонентів за допомогою анотацій. Методи зворотнього виклику. Ін’єкція залежностей. Перехоплення викликів бізнес-логіки. Java Message Services (JMS) та Message Driven Beans (MDB).

13

Тема 2.3. Створення компонентів доступу до даних за допомогою специфікації JPA. Частина 1.

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

14

Тема 2.3. Створення компонентів доступу до даних за допомогою специфікації JPA. Частина 2.

Основні питання: відображення відношень між сутностями, відношення один-до-одного, один-до-багатьох, багато-до-одного, багато-до-багатьох. Однонаправлені та двонаправлені зв’язки. Агресивне та ледаще завантаження даних.

15

Тема 2.3. Створення компонентів доступу до даних за допомогою специфікації JPA. Частина 3.

Основні питання: Створення EJB Session Facade для виконання операцій над сутностями. Створення методів пошуку за допомогою мови JPQL (Java Persistence Query Language). Створення запитів за допомогою Criteria API.

16

Тема 2.4. Керування транзакціями Jakarta EE

Основні питання: Загальні відомості про транзакції. Однофазні та двофазні транзакції. Моделі керування транзакціями в Jakarta EE. Bean Managed Transactions. Container Managed Transactions. Моделі розповсюдження транзакцій: Required, RequiresNew, Mandatory, NotSupported, Supports, Never

17

Тема 2.5. Нововведення та зворотна сумісність у різних версіях специфікацій Jakarta EE. Частина 1.

Основні питання: Підтримка профілів у Jakarta EE: Core Profile, Web Profile, Full Profile. Простори імен JNDI. Асинхронне оброблення запитів у сервлетах. Асинхронні виклики методів EJB. Singleton EJB та конкурентний доступ до них. Використання таймерів.

18

Тема 2.5. Нововведення та зворотна сумісність у різних версіях специфікацій Jakarta EE. Частина 2.

Основні питання: Підтримка вебсокетів. API для парсінгу та біндінгу JSON-об’єктів. JMS 2.0. Пакетне оброблення задач за допомогою Batch Application. Валідація об’єктів.

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

з/п

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

Лабораторна робота №1. Створення вебзастосунку за допомогою Servlet API

Мета роботи – навчитись створювати вебзастосунки за допомогою Servlet API, набути навички встановлення та налаштування вебсерверів на прикладі Apache Tomcat, навчитись створювати статичні та динамічні вебсторінки.

2

Лабораторна робота №2. Створення динамічних сторінок за допомогою технології JSP

Мета роботи – навчитись створювати динамічні сторінки за допомогою технології JSP, засвоїти на практиці принципи роботи з шаблонами та шаблонізаторами; навчитись проектувати вебзастосунки з використанням архітектури Model-View-Controller.

3

Лабораторна робота №3. Створення динамічних сторінок за допомогою EL/JSTL

Мета роботи – навчитись використовувати засоби мови Expression Language та бібліотеки JSP Standard Tag Library при створенні JSP-сторінок, отримати навички використання їх елементів для доступу до об'єктів вебзастосунку та їх відображення на вебсторінках.

4

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

Мета роботи – Навчитися створювати RESTful вебсервіси за допомогою специфікації JAX-RS. Отримати навички представлення об’єктів у вигляді ресурсів та навчитися забезпечувати доступ до них.

5

Лабораторна робота №5. Безпека вебзастосунків

Мета роботи – навчитися використовувати Java Authentication and Authorization Service (JAAS) та JSON Web Tokens (JWT) для аутентифікації та авторизації користувачів при роботі з вебзастосунками.

6

Лабораторна робота №6. Використання Entrprise Java Bean

Мета роботи – навчитися створювати та використовувати компоненти Enterprise Java Beans (EJB) під час реалізації бізнес-логіки вебзастосунків. Отримати уміння встановлювати та налаштувати сервери застосунків на прикладі сервера застосунків GlassFish. Отримати навички створення, зборки та розгортання застосунків, побудованих на компонентах EJB.

7

Лабораторна робота №7. Використання Java Database Connectivity для роботи з базами даних

Мета роботи – навчитися використовувати JDBC API для доступу до реляційних баз даних. Отримати уміння налаштовувати СУБД, а також створювати та конфігурувати вебзастосунки для роботи з нею.

8

Лабораторна робота №8. Використання Java Persistence API для роботи з базами даних

Мета роботи – навчитися використовувати JPA для доступу до реляційних баз даних. Закріпити знання по створенню та конфігуруванню Entity-класів. Отримати навички конфігурування середовища для роботи з ними. Навчитися створювати та використовувати об’єкти JPA Session Facade.

9

Лабораторна робота №9. Використання Container Managed Transactions

Мета роботи – навчитися використовувати Container Managed Transactions (CMT) у вебзастосунках. Отримати навички конфігурування моделей розповсюдження транзакцій при створенні методів бізнес-логіки.

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

з/п

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

Кількість

годин СРС

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

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

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

Модульна контрольна робота (МКР) виконується після вивчення Розділів 1 та 2. Кожен студент отримує індивідуальне завдання.

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

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

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

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

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

  • політика дедлайнів та перескладань: якщо студент не проходив або не з’явився на МКР (без поважної причини), його результат оцінюється у 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 балів.

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

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

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

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