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

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

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

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

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

Основні результати навчання

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

1 тиждень
Лекція1. Вступ. Що таке програмна інженерія. Що таке система на основі ШІ. Розробка програмного забезпечення для ШІ.

2 тиждень
Лекція 2. Вимоги до програмного забезпечення. Процес розробки вимог. Виявлення та аналіз вимог.
Лабораторне заняття 1. Формулювання вимог до програмної системи з елементами ШІ

3 тиждень
Лекція 3. Специфікація вимог, вимоги до даних. Нефункціональні вимоги. Конфлікти між вимогами. Зміна акценту на різних вимогах

4 тиждень
Лекція 4. Дизайн програмного забезпечення. Проблеми проектування.
Лабораторне заняття 2. Проєктування архітектури програмної системи з компонентами ШІ

5 тиждень
Лекція 5. Структура та архітектура програмного забезпечення. 

6 тиждень
Лекція 6. Використання нових шаблонів розв’язування задач.
Лабораторне заняття 3. Проєктування компонентів ШІ

7 тиждень
Лекція 7. Розробка атрибутів якості. Робота з великими обсягами даних.
Модульна контрольна робота 1

8 тиждень
Лекція 8. Реалізація програмного забезпечення. Проблеми створення програмного забезпечення. Практика кодування.
Лабораторне заняття 4. Розробка прототипу програмної системи з компонентами ШІ
 
9 тиждень
Лекція 9. Розробка програмного забезпечення та інструменти: робота з даними, робота з моделями, робота із залежностями, повторне використання моделей, робота з середовищем розробки, інструментами та інфраструктурою.

10 тиждень
Лекція 10. Проблеми в тестуванні програмного забезпечення для ШІ. Процес тестування: тести для функцій і даних, тести для розробки моделі, тести для інфраструктури ML, моніторингові тести для ML.
Лабораторне заняття 5. Підготовка тестів для програмної системи з елементами ШІ
 
11 тиждень
Лекція 11. Тестування продукту ML. Тестовий приклад. Методи генерації тестів

12 тиждень
Лекція 12. Оцінка тестів. Тестування показників. Підготовка тестових даних.
Лабораторне заняття 6. Тестування програмної системи з елементами ШІТестування програмної системи з елементами ШІ
13 тиждень
Лекція 13. Обслуговування програмного забезпечення. Робота з керуванням конфігурацією даних і моделей AI/ML. Робота з історією експериментів. Робота з перепідготовкою та перерозподілом. Антипатерни ML-систем. 

14 тиждень
Лекція 14. Процес розробки програмного забезпечення: виклики та тактика. Узгодження діяльності з розробки компонентів AI/ML із програмним процесом. Оцінка процесу AI/ML. Оцінка зусиль.
Лабораторне заняття 7. Ретроспектива дисципліни
Модульна контрольна робота 2

15 тиждень
Лекція 15. Фреймворки процесу розробки програмних систем ШІ. Організаційні аспекти. 

Самостійна робота складає 91 година. Самостійна робота здобувача відбувається впродовж семестру та складається з підготовки до аудиторних занять та контрольних заходів. 
Вид індивідуальної роботи: не передбачено.

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

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

Оцінювання результатів навчання з дисципліни здійснюється за накопичувальною системою, яка дає можливість здобувачеві протягом семестру отримати максимально 100 балів.
Модуль 1
Оцінка за виконання лабораторних робіт – максимально 20 балів за модуль.
Модульна контрольна робота – бездоганне виконання 30  балів (в кожному завданні модульної контрольної роботи наведено максимальну кількість балів за виконання завдання).
Модуль 2
Оцінка за виконання лабораторних робіт – максимально 20 балів за модуль.
Модульна контрольна робота – бездоганне виконання 30  балів (в кожному завданні модульної контрольної роботи наведено максимальну кількість балів за виконання завдання).

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

1. Martínez-Fernández S., Bogner J., Franch X., Oriol M., Siebert J., Trendowicz A., Vollmer A. M., Wagner S. Software Engineering for AI-Based Systems: A Survey. ACM Trans. Softw. Eng. Methodol., 2022, 31, 2, Article 37e, 59 pages. DOI: 10.1145/3487043
2. Nascimento E., Nguyen Duc A., Sundbø I., Conte T. Software engineering for artificial intelligence and machine learning software: A systematic literature review. 2020. DOI: 10.48550/arXiv.2011.03751
3. Görkem G. A software engineering perspective on engineering machine learning systems: State of the art and challenges. Journal of Systems and Software, 2021, Volume 180, 111031. DOI: 10.1016/j.jss.2021.111031
 

2022