Розробка enterprise-додатків
Анотація навчальної дисципліни
Мета вивчення дисципліни: формування комплексних знань та навичок у галузі розробки та підтримки корпоративних додатків, з особливим акцентом на використанні сучасних підходів та технологій програмування. Здобуття практичних умінь у проектуванні, розробці, тестуванні та розгортанні корпоративних систем з високим рівнем безпеки та ефективності.
Практичне значення та використання отриманих знань: вміння розробляти масштабовані, безпечні та ефективні корпоративні додатки; навички використання сучасних технологій та підходів до проектування і розробки програмного забезпечення; здатність виконувати розподілену обробку даних, працювати з хмарними сервісами; проектувати та оптимізувати системи для високої продуктивності та надійності; забезпечувати безпеку додатків на всіх рівнях; ефективно керувати проектами розробки для досягнення бізнес-цілей.
Тематика та види навчальних занять
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 Володіти мовами системного програмування та методами розробки програм, що взаємодіють з компонентами комп’ютерних систем, знати мережні технології, архітектури комп’ютерних мереж, мати практичні навички технології адміністрування комп’ютерних мереж та їх програмного забезпечення, угоду, договір, контракт).