Прикладний аналіз програмних систем

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

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

Мета вивчення дисципліни

виробити у майбутніх магістрів уявлення про засоби автоматизованого аналізу програм та розвиток навичок їх практичного застосування.

Практичне значення та використання отриманих знань

Набуття практичних навичок та формування у здобувачів вищої освіти здатності розробляти, аналізувати та застосовувати специфікації, стандарти, правила і рекомендації в сфері інженерії програмного забезпечення    

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

ПРН02 Оцінювати і вибирати ефективні методи і моделі розроблення, впровадження, супроводу програмного забезпечення та управління відповідними процесами на всіх етапах життєвого циклу
ПРН14  Прогнозувати розвиток програмних систем та інформаційних технологій

Форми організації освітнього процесу та види навчальних занять

Л – лекційні заняття; ЛЗ – лабораторні заняття; СРС – самостійна робота здобувача вищої освіти; МКР – модульна контрольна робота; К – консультації.

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

1 тиждень

Л1 Вступ. Про дисципліну. Мета і задачі. Для чого необхідно проводити аналіз ПЗ. Задачі аналізу програм, класифікація. Огляд засобів аналізу. Мета дисципліни, структура, теми, література. 
ЛЗ1. Аналіз вихідних кодів програм за допомогою UML-візуалізації. СРС. К.

2 тиждень

Л2. Що таке статичний аналіз програм. Спеціалізована бібліотека Recoder для аналізу Java-програм. Загальні відомості. Представлення програм у вигляді абстрактного синтаксичного дерева (АСД).
СРС. К.

3 тиждень

Л3. Класи бібліотеки Recoder, що застосовуються при аналізі. Діаграма класів.  Програмна технологія розробки Recoder-програм. Приклади розробки Recoder-програм для різних задач аналізу програм: побудова АСД, виявлення класів, елементів класів програми (методів, конструкторів, їхніх параметрів), викликів методів, ієрархії класів, тощо. 
ЛЗ2. Статичне добування інформації із програми, яка аналізується за допомогою бібліотеки Recoder. СРС. К.

4 тиждень

Л4. Аналіз та корегування програм для за допомогою спеціалізованої бібліотеки ASM.
СРС. К.

5 тиждень

Л5. Мета програмування для динамічного аналізу програм. Моніторинг роботи програм на основі лічильників продуктивності. Основні відомості. Моніторинг роботи програм на основі користувальницьких лічильників.
ЛЗ3. Моніторинг програм за допомогою лічильників продуктивності.  СРС. К.
 
6 тиждень

Л6.  Класи Windows .NET для роботи з користувальницькими лічильниками та журналом подій. Діаграма класів. Технологія програмування. Приклади. СРС. К.

7 тиждень

Л7. Що таке клони в програмах? Типи клонів та причини їх появи та наслідки їх присутності. Приклади клонів, форми дублювання. Приклади клонів.
ЛЗ4. Системи контролю версій. СРС. К.

8 тиждень

Л8. Методи пошуку клонів. Програмні засоби для виявлення клонів.  
МКР1. СРС. К.

9 тиждень

Л9. Метрики програмного забезпечення. Основні відомості. Метрики, що оцінюють складність та розмір програм. Засоби оцінювання.
ЛЗ5. Виявлення клонів у програмах. СРС. К.

10 тиждень

Л10. Метрики, що оцінюють внутрішню структуру програм. Засоби оцінювання. Метрики, що оцінюють проектування та архітектуру програм. Засоби оцінювання.
СРС. К.

11 тиждень

Л11. Застосування метрик при аналізі програм. Інструментальні засоби для розрахунку та застосування метрик.
ЛЗ6. Метрики програмного забезпечення. СРС. К.

12 тиждень

Л12. Графи програм: типи, основні відомості. СРС. К.

13 тиждень

Л13. Графи викликів та рішення задач аналізу на основі графів викликів. 
ЛЗ7. Unit-тестування програм. СРС. К.

14 тиждень

Л14. Задачі, що вирішуються на графах програм: аналіз досяжності, аналіз ієрархії класів, швидкий аналіз типів. МКР2. СРС. К.

15 тиждень

Л15. Що таке Unit тести. Тестувальні класи та набір тестових методів. Логічна коректність та перевіреність маршрутів виконання програми. СРС. К.

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

Самостійна робота складає 60 години. Розподіл самостійної роботи за видами навчальних робіт:
підготовка до лекційних занять – 20 годин;
підготовка до лабораторних занять та до виконання модульних контрольних завдань – разом 20 годин;
підготовка до заліку – 20 годин.

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

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

Для забезпечення оперативного контролю за успішністю та якістю рівня навчальних досягнень здобувачів вищої освіти дисципліна поділяється на два семестрові модулі.

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

Модульні контрольні роботи містять написання програм або їх фрагментів, а також відповіді на запитання. Для модульної контрольної роботи №1 бали по завданням розподіляються наступним чином: 12, 10, 8 (всього – 30 балів). Для модульної контрольної роботи №2 бали по завданням розподіляються наступним чином: 11, 11, 8 (всього – 30 балів).  Практична складова питання вважається розв’язаною, якщо послідовно наведено рішення, представлено весь, лістинг коду та всі графічні складові.

Семестровий модуль № 1

ЛЗ1- ЛЗ4. Оцінки за виконання – по 5 балів, всього  20 балів. Термін виконання – 1-8 тиждень. 
МК1. Модульна контрольна робота – 30 балів (8 тиждень). Перескладання можливе протягом 9–11 тижнів за розкладом консультацій.

Семестровий модуль № 2

ЛЗ5—ЛЗ7. Оцінки за виконання – 7,7,6 балів відповідно, всього  20 балів. Термін виконання – 9-15 тиждень. 
МК2. Модульна контрольна робота – 30 балів (14 тиждень).

Максимальна оцінка, яку може отримати здобувач за всі виконані види робіт – 100 балів. 

Підсумковим контролем з дисципліни є усний залік, білет до якого складається з теоретичної частини (3 запитання) та практичної частини (4 задачі). За бездоганну відповідь на кожне теоретичне питання студент отримує – 13 балів. За бездоганне виконання кожного завдання практичної частини студент отримує – 16 балів. 
Максимальна оцінка за правильні відповіді на всі питання становить 100 балів.

Умови допуску до підсумкового контролю

До екзамену допускаються здобувачі вищої освіти, які виконали всі види навчальних елементів навчальної дисципліни на не менш, ніж на 60 %.

Документи (файли), що додаються: Робоча програма навчальної дисципліни.

Література
1.  Голдштейн С., Зурбалев Д., Филатов И. B. и др. Оптимизация приложений на платформе .NET –2014 — 504 с.: ил.- (3 прим.).
2. Brooks P. Metrics for IT Service Management / P. Brooks, Ven Haren Publishing, 2010 — 283 p.
3. RECODER 0.92 Library Specification [Электронный ресурс] // Режим доступа к статье: http://recoder.sourceforge.net/doc/api/
4. Lab Instructions for Course 2956B: Core Foundations of Microsoft® .NET 2.0 Devel-opment. [Электронный ресурс] // Режим доступа к статье: http://www.microsoft.com/learning/en/us/course.aspx?id=2956b#tab2
5. Пошаговое руководство. Профилирование приложений [Электронный ресурс] // Режим доступа к статье: http://msdn.microsoft.com/ru-ru/library/ms182398.aspx

Методична література
1. Методичні вказівки з дисципліни «Прикладний аналіз програмних систем» конспект лекцій другий (магістерський) рівень вищої освіти спеціальність 121 – Інженерія програмного забезпечення    ./Укл. А.С. Тройніна. Одеса: Наука і техніка, 2018. -  с. 51 (КЛ10257).
2.  Методичні вказівки з дисципліни «Прикладний аналіз програмних систем» до лабораторних робіт другий (магістерський) рівень вищої освіти спеціальність 121 – Інженерія програмного забезпечення    ./Укл. А.С. Тройніна. Одеса: Наука і техніка, 2018. -  с. 67 (МВ10655).

Додаткова література
1. Alain Abran. Software Metrics and Software Metrology, 2010. — 284 p. Print ISBN:9780470597200  Online ISBN:9780470606834  DOI:10.1002/9780470606834
2. Martin R. Clean code: creation, analysis, refactoring. Programmer's Library - 2011. - 464 p.
 

2022 рік