Розробка enterprise-додатків

Вибіркова дисципліна
Навчальна дисципліна професійної підготовки
Обсяг освітнього компонента: 
• у кредитах ЄКТС — 4.5.
Кількість аудиторних занять: 
Лекційних занять - 15, лабораторних занять 7.
Самостійна робота: 
91 година.
Семестровий контроль: 
Залік.
Освітню компоненту забезпечує: 
Анотація: 

Анотація навчальної дисципліни

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

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

Тематика та види навчальних занять

1 тиждень.
Лекція 1 «Вступ до розробки корпоративних додатків. Вибір архітектури та стеку технологій».
Отримання завдання на розрахунково-графічну роботу.

2 тиждень. 
Лекція 2 «Методології розробки корпоративних додатків. Керування залежностями проєкту. Системи контролю версій. Вступ до TDD».
Лабораторне заняття 1 «Налаштування середовища розробки та тестування. Створення Maven проекту. Підключення до GIT»
Виконання розрахунково-графічної роботи. Частина 1.

3 тиждень. 
Лекція 3 «Управління вимогами та документацією проекту. Технології стратегічного планування розробки».
Виконання розрахунково-графічної роботи. Частина 1.

4 тиждень. 
Лекція 4 «Основні навички програмування для розробки корпоративних додатків на Java. Знайомство з принципами DI та IoC. Огляд основних компонентів фреймворку Spring».
Лабораторне заняття 2 «Розробка та запуск першого додатку з використанням Java та Spring»
Виконання розрахунково-графічної роботи. Частина 1.

5 тиждень. 
Лекція 5 «Безпека корпоративних додатків. Класифікація основних типів загроз. Основні методи запобігання мережних атак».
Виконання розрахунково-графічної роботи. Частина 1.

6 тиждень. 
Лекція 6 «Аутентифікація, авторизація та захист користувацьких даних в корпоративних додатках».
Лабораторне заняття 3 «Налаштування систем реєстрації та авторизації користувачів з використанням Spring Security»
Виконання розрахунково-графічної роботи. Частина 1.

7 тиждень. 
Лекція 7 «Компоненти та шари корпоративних додатків. Основи розробки бізнес логіки та роботи з базами даних у корпоративних додатках. Створення REST API».
Виконання розрахунково-графічної роботи. Частина 1.

8 тиждень. 
Лекція 8 «Веб-інтерфейс додатку та взаємодія з серверною частиною».
Лабораторне заняття 4 «Розробка основної логіки корпоративного додатку та підключення до веб-інтерфейсу».
Виконання розрахунково-графічної роботи. Частина 1.
Модульна контрольна робота 1.

9 тиждень. 
Лекція 9 «Інфраструктурне оснащення корпоративних систем. Основи контейнеризації та хмарних технологій».
Виконання розрахунково-графічної роботи. Частина 2.

10 тиждень. 
Лекція 10 «Вступ до автоматизації процесів розгортання корпоративних додатків. Основи DevOps та CI/CD».
Лабораторне заняття 5 «Налаштування інфраструктури корпоративного додатку та DevOps систем. Розгортання додатку у хмарному середовищі».
Виконання розрахунково-графічної роботи. Частина 2.

11 тиждень. 
Лекція 11 «Поглиблені навички розробки бізнес логіки додатку. Основи АОП. Використання асинхронних процесів».
Виконання розрахунково-графічної роботи. Частина 2.

12 тиждень. 
Лекція 12 «Поглиблені навички роботи з базами даних. Оптимізація запитів та кешування».
Лабораторне заняття 6 «Розробка поглибленої логіки корпоративного застосунку».
Виконання розрахунково-графічної роботи. Частина 2.

13 тиждень. 
Лекція 13 «Основи інтерсервісної коммунікації та інтеграція з зовнішніми сервісами та API».
Виконання розрахунково-графічної роботи. Частина 2.

14 тиждень. 
Лекція 14 «Системний моніторинг і логування. Контроль стану системи».
Лабораторне заняття 7 «Інтегрування з зовнішніми сервісами. Налаштування моніторингу системи».
Підготовка презентації до захисту розрахунково-графічної роботи.

15 тиждень. 
Лекція 15 «Аналітика та управління користувацьким досвідом. Аналіз відгуків. Agile методологія для довготривалої підтримки корпоративного додатку».
Захист розрахунково-графічної роботи.
Модульна контрольна робота 2.

Оцінювання результатів навчання

Оцінювання результатів навчання з дисципліни здійснюється за накопичувальною системою, яка дає можливість здобувачеві протягом семестру отримати максимально 100 балів.
Модуль 1
Активна робота на лабораторному занятті – максимально по 4 бали за заняття (загалом 16 балів за 4 заняття). 
Виконання домашніх завдань – максимально по 5 бали за завдання (загалом 20 балів за 4 завдання).
Модульна контрольна робота 1 – бездоганне виконання 14 балів (в кожному завданні модульної контрольної роботи наведено максимальну кількість балів за виконання кожного завдання).
Модуль 2
Активна робота на лабораторному занятті – максимально по 4 бали за заняття (загалом 12 балів за 3 заняття). 
Виконання домашніх завдань – максимально по 5 бали за заняття (загалом 15 балів за 3 завдання).
Модульна контрольна робота 2 – бездоганне виконання 23 бали (в кожному завданні модульної контрольної роботи наведено максимальну кількість балів за виконання кожного завдання).

Посилання на рекомендовані джерела

1.    Мартін Р., Чистий код: створення і рефакторинг за допомогою Agile. К.: Фабула, 2019. 416 с.
2.    Martin Fowler, Patterns of Enterprise Application Architecture. К.: Addison-Wesley Professional, 2002. ISBN: 0321127420
3.    Eric Evans, Domain-Driven Design: Tackling Complexity in the Heart of Software. К.: Addison-Wesley Professional, 2003. ISBN: 0321125215
4.    Sam Newman, Building Microservices: Designing Fine-Grained Systems. К.: O'Reilly Media, 2015. ISBN: 1491950358

Компетентності: 

К1. Здатність застосовувати методології, технології та інструментальні засоби для управління процесами життєвого циклу інформаційних і програмних систем, продуктів і сервісів інформаційних технологій відповідно до вимог замовника.
К2. Здатність реалізувати багаторівневу обчислювальну модель на основі архітектури клієнт-сервер, включаючи бази даних, знань і сховища даних, виконувати розподілену обробку великих наборів даних на кластерах стандартних серверів для забезпечення обчислювальних потреб користувачів, у тому числі на хмарних сервісах.

Передумови вивчення дисципліни: 

Об'єктно-орієнтоване програмування, Технології комп'ютерного проєктування

Результати навчання: 

РН1 Розробляти програмні моделі предметних середовищ, вибирати парадигму програмування з позицій зручності та якості застосування для реалізації методів та алгоритмів розв’язання задач в галузі комп’ютерних наук.
РН2 Використовувати інструментальні засоби розробки клієнт-серверних застосувань, проєктувати концептуальні, логічні та фізичні моделі баз даних, розробляти та оптимізувати запити до них, створювати розподілені бази даних, сховища та вітрини даних, бази знань, у тому числі на хмарних сервісах, із застосуванням мов веб програмування.
РН3 Володіти навичками управління життєвим циклом програмного забезпечення, продуктів і сервісів інформаційних технологій відповідно до вимог і обмежень замовника, вміти розробляти проєктну документацію (техніко-економічне обґрунтування, технічне завдання, бізнес-план, угоду, договір, контракт).
РН4 Володіти мовами системного програмування та методами розробки програм, що взаємодіють з компонентами комп’ютерних систем, знати мережні технології, архітектури комп’ютерних мереж, мати практичні навички технології адміністрування комп’ютерних мереж та їх програмного забезпечення, угоду, договір, контракт).

2024 рік