Основи програмної інженерії

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

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

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

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

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

ПРН04. Знати і застосовувати професійні стандарти і інші нормативно-правові документи в галузі інженерії програмного забезпечення.
ПРН05. Знати і застосовувати відповідні математичні поняття, методи доменного, системного і об’єктно-орієнтованого аналізу та математичного моделювання для розробки програмного забезпечення.
ПРН12. Застосовувати на практиці ефективні підходи щодо проектування програмного забезпечення.
ПРН13. Знати і застосовувати методи розробки алгоритмів, конструювання програмного забезпечення та структур даних і знань.
ПРН14. Застосовувати на практиці інструментальні програмні засоби доменного аналізу, проектування, тестування, візуалізації, вимірювань та документування програмного забезпечення.
ПРН15. Мотивовано обирати мови програмування та технології розробки для розв’язання завдань створення і супроводження програмного забезпечення.
ПРН18. Знати та вміти застосовувати інформаційні технології обробки, зберігання та передачі даних.
ПРН25. Здатність планувати, здійснювати та розвивати комунікації в команді та з зацікавленими сторонами. 
ПРН26. Здатність ефективно формувати комунікаційну стратегію через точність аргументації. 

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

1 тиждень

Лекція 1. «Дисципліни програмної інженерії. Область ядра знань SWEBOK»

2 тиждень
Лекція 2. «Базові принципи створення програмних систем. Життєвий цикл ПЗ»
Практичне заняття 1. «Опис предметної області програмної системи»

3 тиждень
Лекція 3.  «Інженерія вимог. Виявлення вимог. Аналіз предметної області»

4 тиждень
Лекція 4. «Моделювання програмного забезпечення. Метод моделювання – UML»
Практичне заняття 2. «Розробка структури системи»

5 тиждень
Лекція 5. «Діаграма використання»

6 тиждень
Лекція 6. «Діаграма класів»
Практичне заняття 3. «Побудова UML діаграм використання»

7 тиждень
Лекція 7. «Діаграма послідовності»

8 тиждень
Лекція 8. «Діаграма компонентів»
Практичне заняття 4. «Побудова UML діаграми концептуальних класів»
Модульна контрольна робота 1

9 тиждень
Лекція 9. «Діаграма діяльності»

10 тиждень
Лекція 10. «Архітектура програмних продуктів. Основні визначення»
Практичне заняття 5. «Побудова UML діаграми взаємодій»

11 тиждень
Лекція 11. «Основні шаблони проектування. Конструювання програмного забезпечення»

12 тиждень
Лекція 12. «Тестування програмного забезпечення. Планування тестування. Різновид тестування»
Практичне заняття 6. «Побудова діаграми діяльності для бізнес-процесу»

13 тиждень
Лекція 13. «Верифікація та валідація. Тест-кейси та звіти про дефекти»

14 тиждень
Лекція 14. «Модернізація програмного забезпечення. Динаміка розвитку програм. Супроводження програмного забезпечення»
Практичне заняття 7. «Написання тест-кейсів»
Модульна контрольна робота 2.

15 тиждень
Лекція 15. «Управління програмним проектом. Управління ризиками. Управління якістю ПЗ»

Самостійна робота

Самостійна робота складає 91 годин. Розподіл самостійної роботи за видами навчальних робіт:
1)   підготовка до лекційних занять – 30 годин;
2)    підготовка до практичних занять та до виконання модульних контрольних завдань – разом 31 година;
3)   підготовка до заліку – 30 годин.

Процедура оцінювання

Система оцінювання рівня навчальних досягнень ґрунтується на принципах ЄКТС та є накопичувальною. Здобувачі протягом семестру готуються до лекційних та практичних занять або / та лабораторних занять, виконують дві модульні контрольні роботи Для забезпечення оперативного контролю за успішністю та якістю рівня навчальних досягнень здобувачів вищої освіти дисципліна поділяється на два семестрові модулі. 
Кожний модуль оцінюється у 50 балів, які розподіляються наступним чином.

Семестровий модуль № 1 (8 тиждень)
Модульна контрольна робота – 25 балів
Практичні заняття 1 – 8 балів. Термін виконання – 1-8 тиждень.
Практичні заняття 2 – 8 балів. Термін виконання – 1-8 тиждень.
Практичні  заняття 3 – 9 балів. Термін виконання – 1-8 тиждень.
 
Семестровий модуль № 2 (14 тиждень)
Модульна контрольна робота – 25 балів
Практичні заняття  4 – 6 балів. Термін виконання – 9-14 тиждень.
Практичні заняття  5 – 6 балів. Термін виконання – 9-14 тиждень.
Практичні заняття  6 – 6 балів. Термін виконання – 9-14 тиждень.
Практичні заняття  7 – 7 балів. Термін виконання – 9-14 тиждень.

Модульні контрольні роботи № 1 та № 2 представлені в тестовій формі і виконуються у системі дистанційного навчання. 
 
Посилання на рекомендовані джерела

1.    Вступ до інженерії програмного забезпечення / Н. Мельник, Є. Левус. – Видавництво «Львіська Політехніка», 2018. – 248.
2.    Sommerville I. Software Engineering – 10th ed. / Ian Sommerville. – Addison-Wesley, 2018. – 773 p.
3.    І. Бородкіна, Г. Бородкін «Інженерія програмного забезпечення. Навчальний посібник», Центр учбової літератури, 2021 – 204 с.
4.    Ю. Грицюк «Аналіз вимог до програмного забезпечення», Львівська Політехніка, 2018 – 456 с.
 

2022