ІНФРАСТРУКТУРА ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ WEB-ЗАСТОСУВАНЬ**

Силабус освітнього компонента

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

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

ст. викл. каф. ІСТ, к.т.н.,Галушко Дмитро Олександрович Telegram: https://t.me/+cwF7_PB45mJlNmJi

ст. викл. каф. ІСТ, к.т.н.,, Орленко Сергій Петрович

Розміщення курсу https://classroom.google.com/c/NTkxNzQ4MjMzNzc0?cjc=rllca37

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

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

Силабус навчальної дисципліни “Інфраструктура програмного забезпечення WEB-застосувань” передбачає виконання навчальних завдань та практик програмування. Це дозволяє отримати досвід практичної роботи із розробки розподіленого web-застосунку і розгортання інфраструктури для нього на базі контейнерних технологій. Передбачаються навички самостійного набуття знань у цій галузі.

Присутній стандартний підхід із навчання програмуванню, коли на перших етапах (практиках програмування) виконується відносно складне завдання, що дає можливість зацікавити студентів до подальшого навчання. Фінальним завданням є розподілена програмна інфраструктура web-застосунку на базі технології Docker, що моделює роботу професійного web-порталу. Для виконання цього завдання студенти використовують теоретичні знання та застосовують практичні навички, отримані під час всього курсу.

Завдяки поєднанню лекцій і лабораторних робіт студенти отримають практичний досвід побудови надійної ІТ-інфраструктури.

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

Предмет - методи та засоби забезпечення доступу до інформації та послуг для користувачів.

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

Основною метою дисципліни “Інфраструктура програмного забезпечення” є надання системних знань, вмінь і навичок про планування, розробку, тестування і будову інфраструктури програмного забезпечення на основі складної, розподіленої інфраструктури web-застосунку на базі Java з використанням технології Docker;

Крім того дисципліна надає відомості про загальні принципи розробки розподіленого web-застосунку і розгортання програмної інфраструктури на базі систем контейнерної технології.

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

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

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

Пререквізити

Для успішного засвоєння дисципліни студент повинен володіти освітніми компонентами «Програмування. Частина 1», «Програмування. Частина 2», «Комп'ютерні мережі.»

Постреквізити

Отримані при засвоєнні дисципліни теоретичні знання та практичні уміння забезпечують успішне виконання курсових проєктів та бакалаврських робіт за спеціальністю 121 Інженерія програмного забезпечення

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

Розділ 1 Віртуалізація: Тема 1.1 Віртуалізація у комп'ютерних системах., Тема 1.2 Спрощення формування, встановлення та керування образами віртуальних машин, Тема 1.3 Синтаксис скриптів vagrant та принципи роботи, Тема 1.3 Віртуалізація на рівні операційних систем, Тема 1.4. Використання оркестраторів для підняття ІТ-інфраструктури

Розділ 2. Архітектура програмного забезпечення: Тема 2.1 Монолітна архітектура програмного застосунку, Тема 2.2 Мікросервісна архітектура програмного застосунку, Тема 2.3. Фронтенд сервіси, Тема 2.4. Бекенд сервіси, Тема 2.5. Створення інтерфейсів прикладного програмування, Тема 2.6 Брокери повідомлень

Розділ 3: Тема 3.1. Розподілені системи, Тема 3.2 Узгодженість даних у розподілених системах, Тема 3.3 Доступність даних у розподілених системах, Тема 3.4 Стійкість даних у розподілених системах

Розділ 4 Підсумки: Тема 4.1 Підсумки

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

Базова література

  1. Scott Chacon, Ben Straub. Pro Git. Версія 2.1.95-2-g8d45587, 19.01.2022.

  2. Esteban Zimányi. Students: Bubacarr Jallow Shafagh Kashef. Object Relational Mapping and Entity Framework. Advanced Databases Project. 12/18/2018 р.

  3. https://docs.docker.com/samples/

  4. Docker документація [Електронний ресурс] – https://docs.docker.com/get-started/.

  5. Thomas D. The Pragmatic Programmer : your journey to mastery, 20th Anniversary Edition / D. Thomas, A. Hunt. – Boston, United States: Pearson Education (US), 2020. – 352 с.

  6. Learning React : Modern Patterns for Developing React Apps – Sebastopol, United States: O'Reilly Media, Inc, USA, 2020. – 300 с.

  7. Docker : Complete Guide To Docker For Beginners And Intermediates, 2020. – 140 с.

  8. Docker: Up & Running : Shipping Reliable Containers in Production – Sebastopol, United States: 'Reilly Media, Inc, USA, 2018. – 347 с.

  9. Docker homepage - http://www.docker.com/

  10. Docker Hub - https://hub.docker.com

  11. Docker blog - http://blog.docker.com/

  12. Docker documentation - http://docs.docker.com/

  13. Docker Getting Started Guide - http://www.docker.com/gettingstarted/

  14. Docker code on GitHub - https://github.com/docker/docker

  15. Docker mailing list - https://groups.google.com/forum/#!forum/docker#user

  16. Docker on IRC: irc.freenode.net and channels #docker and #docker#dev

  17. Docker on Twitter - http://twitter.com/docker

  18. Get Docker help on Stack Overflow - http://stackoverflow.com/search?q=docker

Допоміжна література

  1. Valeria Cardellini. Matteo Nardelli. Container-based virtualization: Docker. Università degli Studi di Roma “Tor Vergata” Dipartimento di Ingegneria Civile e Ingegneria Informatica Corso di Sistemi Distribuiti e Cloud Computing A.A. 2017/18.

  2. Adam Freeman. Pro Angular 6 .ISBN-13 (pbk): 978-1-4842-3648-2 ISBN-13 (electronic): 978-1-4842-3649-9/2018р.

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

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

№ з/ п

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

1 Тема 1.1 Віртуалізація у комп'ютерних системах.
Основні питання: віртуалізація ОС
2 Тема 1.2 Спрощення формування, встановлення та керування образами віртуальних машин
Основні питання: гіпервізори, vagrant, їого аналоги. Принципи роботи
3 Тема 1.3 Синтаксис скриптів vagrant та принципи роботи
Основні питання: використання vagrant на практиці
4 Тема 1.3 Віртуалізація на рівні операційних систем
Основні питання: принципи роботи ті відмінність віртуалізаціі на рівні операційних систем від гіпервізорів
5 Тема 1.4. Використання оркестраторів для підняття ІТ-інфраструктури
Основні питання: оркестратори і їх роль у віртуалізації на рівні операційної системи
6 Тема 2.1 Монолітна архітектура програмного застосунку
Основні питання: монолітна архітектура, переваги та недоліки
7 Тема 2.2 Мікросервісна архітектура програмного застосунку
Основні питання: мікросервісна архітектура, переваги та недоліки
8 Тема 2.3. Фронтенд сервіси
Основні питання: фронтенд сервіси, їх специфіка
9 Тема 2.4. Бекенд сервіси
Основні питання: бекенд сервіси, їх специфіка
10 Тема 2.5. Створення інтерфейсів прикладного програмування
Основні питання: API – підходи, принципи, вимоги
11 Тема 2.6 Брокери повідомлень
Основні питання: брокери повідомлень, RabbitMq, Kafka
12 Тема 3.1. Розподілені системи
Основні питання: розподілені системи та їх специфіка
13 Тема 3.2 Узгодженість даних у розподілених системах
Основні питання: узгодженість даних у розподілених системах
14 Тема 3.3 Доступність даних у розподілених системах
Основні питання: доступність даних у розподілених системах
15 Тема 3.4 Стійкість даних у розподілених системах
Основні питання: стійкість даних у розподілених системах
16 Тема 4.1 Підсумки
Основні питання: підбиття підсумків курсу

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

№ з/ п

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

1 Лабораторна робота 1. Дослідження гіпервізорів
Студенти ознайомляться з основами роботи з гіпервізорами на прикладі vagrant boxes
2 Лабораторна робота 2. Дослідження системи контейнерів Docker
Студенти ознайомляться з основами роботи з віртуалізацією на рівні операційної системи на прикладі Docker-контецнерів
3 Лабораторна робота 3. Дослідження спільних ресурсів хостової та гостьової систем в Docker
Студенти будуть працювати з ресурсами хостової та гостьової систем в Docker
4 Лабораторна робота 4. Створення і розгортання програмної інфраструктури на основі docker-compose
Студенти створять і розгорнуть програмну інфраструктуру на основі docker-compose
5 Лабораторна робота 5. Створення проекту на базі Spring Framework з використанням контейнеризації
Студенти створять проект на базі Spring Framework з використанням контейнеризації.
6 Лабораторна робота 6. Створення RESTful вебсервісів за допомогою Spring Framework
Студенти створять RESTful вебсервіси за допомогою Spring Framework

Матеріали до лекційних,практичних занять та лабораторних робіт доступні для завантаження за посиланням: https://classroom.google.com/c/NTkxNzQ4MjMzNzc0?cjc=rllca37

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

№ з/п

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

Кількість годин СРС

1 Підготовка до лабораторних робіт 56
2 Підготовка до МКР 10
Всього 66

Контрольні роботи

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

МКР-1 виконується після вивчення тем 1.1 - 2.6. МКР-2 виконується після вивчення тем

3.1 - 3.4. Модульні контрольні роботи виконуються в середовищі Google Classroom у вигляді тестування.

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

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

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

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

модульні контрольні роботи виконуються без застосування допоміжної інформації з Інтернет, дистанційного курсу на платформі Сікорський, конспекта;

заохочувальні бали виставляються за навчальну активність на лекційних заняттях. Кількість заохочуваних балів не більше 10;

штрафні бали виставляються за невчасну здачу лабораторних робіт. Кількість штрафних балів не більше 10;

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

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

Поточний контроль: МКР, виконання та захист лабораторних робіт. Календарний контроль: проводиться двічі на семестр як моніторинг поточного стану виконання вимог силабусу. Семестровий контроль: залік. Рейтинг студента з дисципліни складається із балів стартового рейтингу (протягом семестру). Бали стартового рейтингу протягом семестру студент отримує за:

виконання та захист лабораторних робіт; виконання модульних контрольних робіт (МКР).

Система рейтингових балів та критерії оцінювання Лабораторні роботи

«відмінно», повна відповідь на питання під час захисту (не менш ніж 90% потрібної

інформації) та оформлений належним чином протокол до лабораторної роботи – 13 балів;

«добре», достатньо повна відповідь на питання під час захисту (не менш ніж 75% потрібної інформації) та оформлений належним чином протокол до лабораторної роботи –

11 балів; «задовільно», неповна відповідь на питання під час захисту (не менш ніж 60% потрібної інформації), незначні помилки та оформлений належним чином протокол до лабораторної роботи – 8 балів; «незадовільно», незадовільна відповідь та/або не оформлений належним чином протокол до лабораторної роботи – 0 балів.

За кожне запізнення з поданням лабораторної роботи до захисту від встановленого терміну оцінка знижується на 1 бал.

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

«відмінно», не менш ніж 90% правильних відповідей – 11 балів; «добре», не менш ніж 75% правильних відповідей – 9 балів; «задовільно», не менш ніж 60% правильних відповідей –

7 балів; «незадовільно», менш ніж 60% правильних відповідей – 0 балів.

Заохочувальні бали

за активну роботу на лекційному занятті 1 бал, але в сумі не більше 10.

Штрафні бали

Запізнення з поданням лабораторної роботи до захисту від встановленого терміну -1 бал, але в сумі не більше -10

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

На першій атестації (8-й тиждень) студент отримує «зараховано», якщо його поточний рейтинг не менший ніж 18 балів. На другій атестації (14-й тиждень) студент отримує

«зараховано», якщо його поточний рейтинг не менший ніж 36 балів. Максимальна сума балів контрольних заходів протягом семестру складає: RD = 6*rлаб+2*rмкр=6*13+2*11=100,

де

rлаб – бал за лабораторну роботу (0…13); rмкр – бал за написання МКР (0…11)

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

Необхідною умовою заліку є виконання одночасно усіх видів робіт:

1) виконати МКР-1 та МКР-2 не нижче ніж на оцінку «задовільно»; 3) захист усіх лабораторних робіт на оцінку не нижче ніж «задовільно»;

Залік проводиться на останньому за розкладом занятті в семестрі. Якщо стартовий рейтинг протягом семестру становить 60 балів та вище, залікова оцінка, за згодою студента, переноситься в залікову відомість.

У випадку, коли семестровий рейтинг нижчий за 60 балів (усі види робіт виконані) або рейтинг вищий за 60 балів, але студент виявив бажання підвищити оцінку - призначається залікова контрольна робота. Залікова контрольна робота виконуються в середовищі Google Classroom у вигляді тестування.

Система оцінювання залікової контрольної роботи

«відмінно», не менш ніж 90% правильних відповідей – 20 балів; «добре», не менш ніж 75% правильних відповідей – 16 балів; «задовільно», не менш ніж 60% правильних відповідей

– 12 балів; «незадовільно», менш ніж 60% правильних відповідей – 0 балів.

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

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

Кількість балів

Оцінка

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

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

Складено: ст. викл. кафедри інформаційних систем та технологій ФІОТ, к.т.н., Галушко Дмитро Олександрович

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

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