Інженерія програмного забезпечення систем штучного інтелекту

Обов'язкова дисципліна
Навчальна дисципліна професійної підготовки
Обсяг освітнього компонента: 
• у кредитах ЄКТС — 4.5; • у навчальних годинах — 135.
Розподіл навчальних годин (аудиторні заняття / самостійна робота): 
• очна форма — 44 / 91; • заочна форма — 8 / 127.
Кількість аудиторних занять за видами (лекції / практичні заняття / лабораторні заняття): 
• очна форма — 15 / 0 / 7; • заочна форма — 2 / 0 / 2.
Індивідуальна робота: 
; • заочна форма — контрольна робота.
Семестровий контроль: 
Екзамен.
Освітню компоненту забезпечує: 
Анотація: 

Мета вивчення дисципліни
формування у здобувачів комплексу знань і здобуття навичок з інженерії програмних систем з елементами штучного інтелекту.
Практичне значення та використання отриманих знань
сформувати в здобувачів вищої освіти знання особливостей процесу інженерії програмного забезпечення з елементами штучного інтелекту; вміння визначати інженерні практики релевантні для розв’язання поставлених задач; розуміння основних процесів в інженерії програмного забезпечення систем штучного інтелекту.
Тематика та види навчальних занять

Для денної форми здобуття освіти

Лекційні заняття
Лекція 1. Вступ. Що таке програмна інженерія. Що таке система на основі ШІ. Розробка програмного забезпечення для ШІ.
Лекція 2. Штучний інтелект і машинне навчання. Огляд методів та алгоритмів МН. Показники оцінювання та вибір моделі.
Лекція 3. Життєвий цикл програмних систем. Фази SDLC. Унікальні аспекти розробки систем ШІ/МН. Зацікавлені сторони. Варіанти використання ШІ/МН. Техніко-економічне обґрунтування. Збір і підготовка даних. Вибір алгоритмів і методів ШІ/МН. Проєктування та впровадження моделей. Оцінка та валідація моделі. Інтеграція та розгортання. Моніторинг і технічне обслуговування.
Лекція 4. Вимоги до програмного забезпечення. Процес розробки вимог. Виявлення та аналіз вимог. Специфікація вимог, вимоги до даних. Нефункціональні вимоги. Конфлікти між вимогами. Зміна акценту на різних вимогах
Лекція 5. Дизайн програмного забезпечення. Проблеми проектування. Структура та архітектура програмного забезпечення.
Лекція 6. Використання нових шаблонів розв’язування задач. Розробка атрибутів якості. Робота з великими обсягами даних.
Лекція 7. Реалізація програмного забезпечення. Проблеми створення програмного забезпечення. Практика кодування.
Лекція 8. Розробка програмного забезпечення та інструменти: робота з даними, робота з моделями, робота із залежностями, повторне використання моделей, робота з середовищем розробки, інструментами та інфраструктурою.
Лекція 9. Проблеми в тестуванні програмного забезпечення для ШІ. Процес тестування: тести для функцій і даних, тести для розробки моделі, тести для інфраструктури МН, моніторингові тести для МН.
Лекція 10. Тестування продукту МН. Тестовий приклад. Методи генерації тестів
Лекція 11. Оцінка тестів. Тестування показників. Підготовка тестових даних.
Лекція 12. Обслуговування програмного забезпечення. Робота з керуванням конфігурацією даних і моделей ШІ/МН. Робота з історією експериментів. Робота з перепідготовкою та перерозподілом. Антипатерни МН-систем.
Лекція 13. Безпека та надійність ШІ-систем. Унікальні аспекти безпеки ШІ-систем. Загрози безпеці в системах ШІ. Моделі надійності ШІ-систем. Захист ШІ-систем на етапі розгортання. Загрози конфіденційності. Забезпечення надійності та довіри до ШІ-систем.
Лекція 14. Процес розробки програмного забезпечення: виклики та тактика. Узгодження діяльності з розробки компонентів ШІ/МН із програмним процесом. Оцінка процесу ШІ/МН. Оцінка зусиль.
Лекція 15. Фреймворки процесу розробки програмних систем ШІ. Організаційні аспекти.

Лабораторні заняття
Лабораторне заняття № 1. Проблеми програмних систем з елементами штучного інтелекту.
Мета заняття: визначити технічні та нетехнічні проблеми, а також міри успіху проєкту інженерії програмного забезпечення під час розробки прикладної системи з компонентами ШІ.
Лабораторне заняття № 2. Формулювання вимог до програмної системи з елементами ШІ.
Мета заняття: розвиток навичок у визначенні вимог до програмних систем, що містять компоненти штучного інтелекту.
Лабораторне заняття № 3. Проєктування архітектури програмної системи з компонентами ШІ.
Мета заняття: навчити основам розробки архітектури програмних систем, що інтегрують компоненти штучного інтелекту.
Лабораторне заняття № 4. Проєктування компонентів ШІ.
Мета заняття: набуття практичних навичок у розробці й реалізації окремих ШІ-компонентів для програмних систем.
Лабораторне заняття № 5. Підготовка тестів для програмної системи з елементами ШІ.
Мета заняття: розвиток навичок у розробці та проведенні тестування для систем, що включають ШІ-компоненти.
Лабораторне заняття № 6. Тестування програмної системи з елементами ШІ.
Мета заняття: формування навичок комплексного тестування програмних систем, що містять ШІ-компоненти.
Лабораторне заняття № 7. Презентація виконаної розробки.
Мета заняття: розвиток навичок підготовки та проведення презентацій, спрямованих на демонстрацію створеної програмної системи або її компонентів.

Для заочної форми здобуття освіти

Лекційні заняття
Лекція 1. Вимоги до програмного забезпечення з елементами ШІ. Процес розробки вимог. Виявлення та аналіз вимог. Специфікація вимог, вимоги до даних. Нефункціональні вимоги. Конфлікти між вимогами. Зміна акценту на різних вимогах
Лекція 2. Проєктування програмного забезпечення з елементами ШІ. Проблеми проектування. Структура та архітектура програмного забезпечення. Використання нових шаблонів розв’язування задач. Розробка атрибутів якості. Робота з великими обсягами даних.

Лабораторні заняття
Лабораторне заняття № 1. Формулювання вимог до програмної системи з елементами ШІ.
Мета заняття: розвиток навичок у визначенні вимог до програмних систем, що містять компоненти штучного інтелекту.
Лабораторне заняття № 2. Проєктування програмної системи з компонентами ШІ.
Мета заняття: навчити основам розробки архітектури програмних систем, що інтегрують компоненти штучного інтелекту; набуття практичних навичок у розробці й реалізації окремих ШІ-компонентів для програмних систем.

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

Для очної форми здобуття освіти індивідуальна робота відсутня за планом.

Для заочної форми здобуття освіти

Завдання для виконання контрольної роботи здобувач отримує на установчій лекції.
Робота містить 2 теоретичних питання та 3 практичних завдання.
Обсяг відповіді на кожне теоретичне питання: не більше, ніж одна сторінка тексту, оформленого шрифтом Times New Roman 14 pt. Текст відповіді повинен бути виконаний самостійно, а не згенерований засобами штучного інтелекту.
Практичне завдання №1. «Вимоги до програмної системи з елементами ШІ».
Практичне завдання №2. «Проєктування програмної системи з елементами ШІ».
Практичне завдання №3. «Тестування програмної системи з елементами ШІ».
Термін надання виконаної контрольної роботи на перевірку – не пізніше, ніж за місяць до початку сесії.

Форми контрольних заходів та оцінювання результатів навчання

Для денної форми здобуття освіти

Поточний контроль полягає у виконанні
1) 7-и лабораторних робіт. Лабораторні роботи виконуються письмово і полягають в виконанні типових дій відповідно до мети та завдань лабораторних занять. Бездоганне виконання лабораторних робіт №1, №2, №3, №4, №5 і №6 оцінюється по 5 балів; лабораторної роботи №7 – 10 балів;
2) двох модульних контрольних робіт. Модульні контрольні роботи складаються з теоретичної і практичної частин та проводяться у формі комп'ютерного тестування. Бездоганне виконання кожної модульної контрольної роботи становить 30 балів.
Підсумковий контроль – екзамен. Екзамен у формі комп'ютерного тестування. Максимальна оцінка, яку може отримати студент – 100 балів.

Для заочної форми здобуття освіти

Захист контрольної роботи. Бездоганне виконання контрольної роботи оцінюється у 50 балів. При її захисті студент може отримати до 50 балів.
Підсумковий контроль – екзамен. Екзамен у формі комп'ютерного тестування. Максимальна оцінка, яку може отримати студент – 100 балів.

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

ПРН04. Виявляти інформаційні потреби і класифікувати дані для проєктування програмного забезпечення.
ПРН06. Розробляти і оцінювати стратегії проєктування програмних засобів; обґрунтовувати, аналізувати і оцінювати варіанти проєктних рішень з точки зору якості кінцевого програмного продукту, ресурсних обмежень та інших факторів.
ПРН08. Розробляти і модифікувати архітектуру програмного забезпечення для реалізації вимог замовника.
ПРН10. Модифікувати існуючі та розробляти нові алгоритмічні рішення детального проєктування програмного забезпечення.
ПРН12. Приймати ефективні організаційно-управлінські рішення в умовах невизначеності та зміни вимог, порівнювати альтернативи, оцінювати ризики.
ПРН16. Планувати, організовувати та здійснювати тестування, верифікацію та валідацію програмного забезпечення.

m242506 ▪ 2025 рік