СУЧАСНІ ТЕХНОЛОГІЇ АВТОМАТИЗАЦІЇ ПРОЕКТУВАННЯ ТА ВЕРИФІКАЦІЇ ПРОГРАМ

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

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

Рівень вищої освіти Третій (доктор філософії)
Галузь знань 12 Інформаційні технології
Спеціальність 121 Програмна інженерія
Освітня програма Інженерія програмного забезпечення комп’ютерних систем
Статус дисципліни Нормативна
Форма навчання очна(денна)/заочна/дистанційна
Рік підготовки, семестр 2 курс, осінній семестр
Обсяг дисципліни 120 годин (18 годин – Лекції, 18 годин – Лабораторні, 84 годин – СРС)
Семестровий контроль/ контрольні заходи Екзамен/екзаменаційна робота
Розклад занять http://rozklad.kpi.ua/Schedules/ScheduleGroupSelection.aspx
Мова викладання Українська
Інформація про
керівника курсу / викладачів

Лектор: к.т.н., Дорогий Ярослав Юрійович,

mailto:y.dorogoy@kpi.ua,

моб. +38(097)006-00-25

Лабораторні: к.т.н., доцент, Дорогий Ярослав Юрійович, mailto:y.dorogoy@kpi.ua,

моб. +38(097)006-00-25

Розміщення курсу https://campus.kpi.ua

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

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

Опис дисципліни. Навчальна дисципліна «Сучасні технології автоматизації проектування та верифікації програм» (СТАПВП) відноситься до циклу загальної підготовки для здобуття глибинних знань зі спеціальності навчальної програми третього рівня вищої освіти підготовки за спеціальністю 121 “Інженерія програмного забезпечення”. Дисципліна сприяє розумінню та засвоєнню студентами багатьох аспектів аналізу інформації в різноманітних системах управління, комп'ютерних та телекомунікаційних системах та мережах.

Предмет навчальної дисципліни: сучасні методи та технології автоматизованого проектування, тестування та керування якістю програмного забезпечення (ПЗ). Отриманні, в межах цього напрямку, теоретичні знання та практичні навички гармонічно поєднують в собі сучасні здобутки та погляди за окресленою проблематикою.

Міждисциплінарні зв’язки. Курс "Сучасні технології автоматизації проектування та верифікації програм" належить до циклу дисциплін «Програмування». Цей курс базується на таких забезпечуючих дисциплінах: «Основи програмування-1. Організація програм»; «Основи програмування-2. Програмування структурованих даних»; «Основи операційних систем»; «Об’єктно-орієнтоване програмування-1. Об’єктно-орієнтоване програмування»; «Сучасні методології і технології розробки програмного забезпечення-1. Концептуальне моделювання та автоматизація програмування».

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

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

Знання:

  • архітектурних рішень і засобів проектування систем;

  • вимог до архітектури систем;

  • стандартів моделювання;

  • методів аналізу потреб;

  • методів формальної специфікації програмних систем;

  • модульного, інтеграційного, системного, регресійного тестування;

  • засобів автоматизації тестування, тестового циклу, витрати тестування;

  • планування тестування, підходи до розробки тестів, особливості ручної розробки й генерації тестів;

  • документування тестування, огляди й метрики;

  • аналізу методів відбору тестів, оцінки їх ефективності;

  • принципів побудови сучасних програмних продуктів (ПП).

Уміння:

  • вибирати стратегії для планування життєвого циклу системи;

  • розробляти формальні моделі ПС;

  • розробляти шаблони і моделі;

  • застосовувати моделі оцінки і параметри для аналізу вартості стосовно до фаз життєвого циклу програмного забезпечення;

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

  • визначати організаційну, економічну, технічну та операційну здійсненність проекту;

  • проектувати компоненти програмного забезпечення;

  • розробляти проектну та робочу документації системи;

  • використовувати стандарти якості при створенні ПП;

  • розробляти технології забезпечення якості програмного забезпечення;

  • обирати критерії вибору тестів;

  • використовувати модульне, інтеграційне, системне, регресійне тестування;

  • здійснювати планування тестування, розробку тестових сценаріїв та процедур, аналізувати особливості розробки й генерації тестів;

  • здійснювати документування тестування, використовувати огляди й метрики;

  • орієнтуватися в специфіки функціонування сучасних ПЗ;

  • обґрунтовувати вимоги щодо основних характеристик перспективних ПЗ;

  • виявляти потенційні вразливості ПЗ різного призначення;

  • планувати стратегію організації комплексного тестування ПЗ.

Пререквізити та постреквізити дисципліни (місце в структурно-логічній схемі навчання за відповідною освітньою програмою)

Пререквізити: вміти користуватися комп’ютером на рівні адміністратора, вміти програмувати, базові знання в області теорії множин, вміти будувати Use-Case моделі для подальшої можливості аналізувати та прогнозувати майбутній функціонал застосування яке, власне, і буде проектуватися та в подальшому тестуватися.

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

Після проходження дисципліни студенти будуть мати наступні компетенції:

загально – професійні:

  • здатність використовувати основні поняття, принципи та методи технологій автоматизованого проектування ПП;

  • здатність використовувати основні поняття, принципи та методи технологій тестування ПП;

  • здатність використовувати стандарти якості при створенні ПП;

  • здатність розробляти технології забезпечення якості програмного забезпечення;

  • здатність обирати критерії вибору тестів;

  • здатність використовувати модульне, інтеграційне, системне, регресійне тестування;

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

  • здатність здійснювати документування тестування, використовувати огляди й метрики.

технологічна компетенція відображає здатність розв’язувати типові задачі з використанням інформаційно-комунікаційних технологій;

дослідницька компетенція включає володіння науковими методами математичного моделювання; здатність будувати математичні моделі задач у пізнанні навколишнього світу; готовність систематизувати отримувані результати, встановлювати зв’язки з попередніми результатами, узагальнювати результати;

методологічна компетенція відображає здатність оцінювати доцільність та особливість використання методів математичного моделювання для розв’язування професійних задач;

мотиваційна компетенція – це сфера та характер задоволення пізнавальних та емоційно-ціннісних потреб особистості, характер спрямованості діяльності особистості на зміст або процес учіння, спрямованість ставлення людини до суспільства, самої себе, характер потреб, ціннісних орієнтацій, світогляду;

предметна компетенція – розуміння місця кожної науки у системі знань людства, діалектики, отримання нових теоретичних знань та їх використання на практиці, незалежне оперування предметними знаннями та їх критичне осмислення з позицій практики інших наук.

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

Очна форма

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

Розділ 1. Сучасні технології автоматизованого проектування і верифікації програм як інженерна дисципліна

Розділ 2. Тестування програмного коду

Лабораторні заняття

1. Види тестування. Планування тестування.

2. Розробка вимог.

3. Тестування вимог.

4. Тестування програмного забезпечення. Розробка тестів.

5. Пошук і документування дефектів.

6. Документування результатів тестування.

7. Тестування юзабіліті.

Заочна форма

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

Розділ 1. Сучасні технології автоматизованого проектування і верифікації програм як інженерна дисципліна

Розділ 2. Тестування програмного коду

Лабораторні заняття

1. Види тестування. Планування тестування.

2. Розробка вимог.

3. Тестування вимог.

4. Тестування програмного забезпечення. Розробка тестів.

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

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

  1. Лавріщева К.М. Програмна інженерія. – К. – 2008. – 319 с.

  2. Automation Testing Using Cucumber Tool and Selenium [Електронний ресурс] – Режим доступа: http://www.softwaretestinghelp.com/cucumber-bdd-tool-selenium-tutorial-30/. (Дата звернення: 20.01.2020).

  3. Test Automation Snake Oil [Електронний ресурс] – Режим доступа: http://www.satisfice.com/articles/test\_automation\_snake\_oil.pdf. (Дата звернення: 20.01.2020).

  4. Hellesшy, The Cucumber Book: Behaviour-Driven Development for Testers and Developers / M. Wynne, A. Hellesшy, The Pragmatic Bookshelf. - Jan. 2012. - 313 pp. - ISBN 978-1934356807.

  5. Corrкa de Oliveira J., Costa Gouveia C., Quidute Filho R. “A way of Improving Test Automation Cost-Effectiveness.”, C.E.S.A.R., 2006, pp.1-5.

  6. Fewster M. “Common Mistakes in Test Automation.”, Grove Consultants, 2001, pp.1-7.

  7. Marik B. “When Should a Test Be Automated?”, Testing Foundations, 1998, pp.1-20.

  8. Success with Test Automation [Електронний ресурс] – Режим доступа: https://www.prismnet.com/~wazmo/succpap.htm. (Дата звернення: 20.01.2020).

  9. Rossmiller M. “6 Tips to Getting Started with Automated Testing.”, SmartBesar Software, 2011, pp.1-7.

  10. Vihari. S. “A System of Humanizing Test Automation Outlay Efficiency.” International Journal of Emerging Science and Engineering, May 2013, pp.74-78.

  11. Винниченко, И. Автоматизация процессов тестирования / И. Винниченко. - СПб.: питерб 2005. - 203с. - ISBN 5-469-00798-7.

  12. Котляров, В. П. Основы тестирования программного обеспечения: учебное пособие / В.П. Котляров, Т.В. Коликова. - М.: Интернет-Ун-т Информ. Технологий, 2006. -- 288с. - ISBN 5-94774-406-4.

Методична література

  1. Сучасні технології автоматизованого проектування та верифікації програм. Тестування програмного забезпечення. Методичні вказівки до виконання лабораторних робіт. [Електронне видання] / Уклад.: Я.Ю. Дорогий, О.О. Дорога-Іванюк. – К.: НТУУ «КПІ», 2021. – 87 с.

  2. Методичні вказівки до організації самостійної роботи студентів (СРС) з дисципліни «Сучасні технології автоматизованого проектування та верифікації програм». Мова моделювання UML / уклад. Я.Ю. Дорогий, О.О. Дорога-Іванюк, – Київ.: НТУУ “КПІ ім. І. Сікорського”, 2021. – 60 с.

  3. Сучасні технології автоматизованого проектування і верифікації програм: Конспект лекцій [Електронний ресурс] : навч. посіб. для студ. спеціальності 121 «Інженерія програмного забезпечення», спеціалізації «Інженерія програмного забезпечення комп’ютерних систем» / КПІ ім. Ігоря Сікорського; уклад.: Я. Ю. Дорогий, О. О. Дорога-Іванюк. – Електронні текстові дані (1 файл: 3,9 Мбайт). – Київ : КПІ ім. Ігоря Сікорського, 2021. – 89 с.

Навчальний контент

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

Очна форма

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

№ з/п Назва теми лекції та перелік основних питань
(перелік дидактичних засобів, посилання на літературу та завдання на СРС)
1

Розділ 1 Сучасні технології автоматизованого проектування і верифікації програм як інженерна дисципліна

Тема 1.1 Ядро знань SWEBOOK

Лекція 1 Сучасні технології автоматизованого проектування та верифікації програм як інженерна дисципліна

Загальна характеристика дисципліни. Головні завдання СТАПВП. Основні терміни та поняття.

Слайди на плівках, проектор “Polilux”. Презентація Power Point, комп’ютер, проектор.

[МЛ3, Лекція 1]

Завдання на СРС: опрацювати матеріали електронного конспекту (Лекція 1).

2

Лекція 2 Характеристика областей знань з інженерії програмного забезпечення – SWEBOOK.

Інженерія вимог. Проектування програмного забезпечення. Конструювання програмного забезпечення.

Слайди на плівках, проектор “Polilux”. Презентація Power Point, комп’ютер, проектор.

[МЛ3, Лекція 2]

Завдання на СРС: опрацювати матеріали електронного конспекту (Лекція 2).

3

Лекція 3 Характеристика областей знань з інженерії програмного забезпечення – SWEBOOK (продовження).

Тестування програмного забезпечення. Методи і інструментарій. Якість програмного забезпечення.

Слайди на плівках, проектор “Polilux”. Презентація Power Point, комп’ютер, проектор.

[МЛ3, Лекція 3]

Завдання на СРС: опрацювати матеріали електронного конспекту (Лекція 3).

4

Тема 1.2 Стандарт і моделі життєвого циклу

Лекція 4 Стандарт і моделі життєвого циклу.

Характеристика життєвого циклу стандарта ISO/IEC 12207. Формування прикладних моделей життєвого циклу. Типи моделей життєвого циклу ПЗ.

Слайди на плівках, проектор “Polilux”. Презентація Power Point, комп’ютер, проектор.

[МЛ3, Лекція 4]

Завдання на СРС: опрацювати матеріали електронного конспекту (Лекція 4).

5

Лекція 5 Agile розробка програмних систем.

Модель керування програмними проектами SCRUM. Модель керування програмними проектами Kanban.

Слайди на плівках, проектор “Polilux”. Презентація Power Point, комп’ютер, проектор.

[МЛ3, Лекція 5]

Завдання на СРС: опрацювати матеріали електронного конспекту (Лекція 5).

6

Розділ 2 Тестування програмного коду.

Тема 2.1 Деякі проблеми тестування програмного забезпечення.

Лекція 6 Методи доведення, верифікації та тестування програм. Мови специфікації.

Тестування, верифікація і валідація – відмінності в поняттях. Класифікація проблем, що виникають при роботі програмних систем. Документація, що створюється на різних етапах життєвого циклу. Типи процесів тестування і верифікації і їх місце в різних моделях життєвого циклу. Методи доведення, верифікації та тестування програм. Мови специфікації. Мови специфікації програм і їхня класифікація.

Слайди на плівках, проектор “Polilux”. Презентація Power Point, комп’ютер, проектор.

[МЛ3, Лекція 6]

Завдання на СРС: опрацювати матеріали електронного конспекту (Лекція 6).

7

Лекція 7 Методи доведення, верифікації та тестування програм. Верифікація і валідація програм.

Методи доведення, верифікації та тестування програм. Базові методи доведення. Модель доведення програми за твердженнями. Верифікація і валідація програм. Валідація сценарію вимог. Верифікація об’єктних моделей. Верифікація композиції компонентів.

Слайди на плівках, проектор “Polilux”. Презентація Power Point, комп’ютер, проектор.

[МЛ3, Лекція 7]

Завдання на СРС: опрацювати матеріали електронного конспекту (Лекція 7).

8

Тема 2.2 Тестування програмних систем.

Лекція 8. Тестування програмних систем.

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

Слайди на плівках, проектор “Polilux”. Презентація Power Point, комп’ютер, проектор.

[МЛ3, Лекція 8]

Завдання на СРС: обробити матеріал електронного конспекту (Лекція 8).

9

Тема 2.3 Модульне тестування, інтеграційне та системне тестування. Тестування призначеного для користувача інтерфейсу. Документація, що супроводжує процес верифікації і тестування.

Лекція 9 Модульне тестування, інтеграційне та системне тестування. Тестування призначеного для користувача інтерфейсу. Документація, що супроводжує процес верифікації і тестування.

Завдання і цілі модульного тестування. Поняття модуля і його меж. Тестування класів. Підходи до проектування тестового оточення. Організація модульного тестування

Завдання і цілі інтеграційного тестування. Організація інтеграційного тестування: структурна класифікація методів інтеграційного тестування; тимчасова класифікація методів інтеграційного тестування. Планування інтеграційного тестування

Завдання і цілі системного тестування. Види системного тестування. Системне тестування, приймально-здавальні і сертифікаційні випробування при розробці програмного забезпечення, що сертифікується

Завдання і цілі тестування призначеного для користувача інтерфейсу. Функціональне тестування призначених для користувача інтерфейсів. Перевірка вимог до призначеного для користувача інтерфейсу. Повнота покриття призначеного для користувача інтерфейсу. Методи проведення тестування призначеного для користувача інтерфейсу, повторюваність тестування призначеного для користувача інтерфейсу.

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

Слайди на плівках, проектор “Polilux”. Презентація Power Point, комп’ютер, проектор.

[1-8 ]

Завдання на СРС: обробити матеріал лекції самостійно.

Лабораторні заняття

Назва лабораторної роботи Кількість ауд. годин
1

Лабораторна робота 1. Види тестування. Планування тестування.

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

2
2

Лабораторна робота 2. Розробка вимог.

Виявити й описати призначені для користувача вимоги у вигляді варіантів використання (Use Cases).

4
3

Лабораторна робота 3. Тестування вимог.

Вивчити критерії якості вимог, виконати тестування вимог до програмного забезпечення.

2
4

Лабораторна робота 4. Тестування програмного забезпечення. Розробка тестів.

Розробити робочу тестову документацію для тестування web-застосунку.

4
5

Лабораторна робота 5. Пошук і документування дефектів.

Протестувати web-застосунок і описати знайдені дефекти.

2
6

Лабораторна робота 6. Документування результатів тестування.

Скласти підсумковий звіт про результати тестування web-застосунку.

2
7

Лабораторна робота 7. Тестування юзабіліті.

Вивчити та реалізувати на практиці експертний і призначений для користувача підходи юзабіліті тестування.

2

Заочна форма

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

№ з/п Назва теми лекції та перелік основних питань
(перелік дидактичних засобів, посилання на літературу та завдання на СРС)
1

Розділ 1 Сучасні технології автоматизованого проектування і верифікації програм як інженерна дисципліна

Тема 1.1 Ядро знань SWEBOOK

Лекція 1.1 Сучасні технології автоматизованого проектування та верифікації програм як інженерна дисципліна

Загальна характеристика дисципліни. Головні завдання СТАПВП. Основні терміни та поняття.

Слайди на плівках, проектор “Polilux”. Презентація Power Point, комп’ютер, проектор.

[МЛ3, Лекція 1.1]

Завдання на СРС: опрацювати матеріали електронного конспекту (Лекція 1.1).

Лекція 1.2 Характеристика областей знань з інженерії програмного забезпечення – SWEBOOK.

Інженерія вимог. Проектування програмного забезпечення. Конструювання програмного забезпечення.

Слайди на плівках, проектор “Polilux”. Презентація Power Point, комп’ютер, проектор.

[МЛ3, Лекція 1.2]

Завдання на СРС: опрацювати матеріали електронного конспекту (Лекція 1.2).

Лекція 1.3 Характеристика областей знань з інженерії програмного забезпечення – SWEBOOK (продовження).

Тестування програмного забезпечення. Методи і інструментарій. Якість програмного забезпечення.

Слайди на плівках, проектор “Polilux”. Презентація Power Point, комп’ютер, проектор.

[МЛ3, Лекція 1.3]

Завдання на СРС: опрацювати матеріали електронного конспекту (Лекція 1.3).

Тема 1.2 Стандарт і моделі життєвого циклу

Лекція 1.4 Стандарт і моделі життєвого циклу.

Характеристика життєвого циклу стандарта ISO/IEC 12207. Формування прикладних моделей життєвого циклу. Типи моделей життєвого циклу ПЗ.

Слайди на плівках, проектор “Polilux”. Презентація Power Point, комп’ютер, проектор.

[МЛ3, Лекція 1.4]

Завдання на СРС: опрацювати матеріали електронного конспекту (Лекція 1.4).

Лекція 1.5 Agile розробка програмних систем.

Модель керування програмними проектами SCRUM. Модель керування програмними проектами Kanban.

Слайди на плівках, проектор “Polilux”. Презентація Power Point, комп’ютер, проектор.

[МЛ3, Лекція 1.5]

Завдання на СРС: опрацювати матеріали електронного конспекту (Лекція 1.5).

2

Розділ 2 Тестування програмного коду.

Тема 2.1 Деякі проблеми тестування програмного забезпечення.

Лекція 2 Методи доведення, верифікації та тестування програм. Мови специфікації.

Тестування, верифікація і валідація – відмінності в поняттях. Класифікація проблем, що виникають при роботі програмних систем. Документація, що створюється на різних етапах життєвого циклу. Типи процесів тестування і верифікації і їх місце в різних моделях життєвого циклу. Методи доведення, верифікації та тестування програм. Мови специфікації. Мови специфікації програм і їхня класифікація.

Слайди на плівках, проектор “Polilux”. Презентація Power Point, комп’ютер, проектор.

[МЛ3, Лекція 2]

Завдання на СРС: опрацювати матеріали електронного конспекту (Лекція 2).

Лабораторні заняття

Назва лабораторної роботи Кількість ауд. годин

Лабораторна робота 1.1. Види тестування. Планування тестування.

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

0.5
1

Лабораторна робота 1.2. Розробка вимог.

Виявити й описати призначені для користувача вимоги у вигляді варіантів використання (Use Cases).

0.5

Лабораторна робота 1.3. Тестування вимог.

Вивчити критерії якості вимог, виконати тестування вимог до програмного забезпечення.

1
2

Лабораторна робота 2. Тестування програмного забезпечення. Розробка тестів.

Розробити робочу тестову документацію для тестування web-застосунку.

2

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

Очна форма

№ з/п

Назва теми, що виноситься на самостійне опрацювання Кількість годин СРС
1 Вивчення архітектури, візуальних інтерфейсів та інструментальних засобів CASE-системи Visual Paradigm; 6
2 Аналіз вимог та розробка UML-діаграм концептуального проектування програмної системи; 6
3 Розробка UML-діаграм логічного рівня проектування програмної системи: моделювання статичних аспектів; 6
4 Розробка UML-діаграм логічного рівня проектування програмної системи: моделювання динамічних аспектів; 6
5 Розробка UML-діаграм фізичного рівня проектування програмної системи 6
6 Методи доведення, верифікації та тестування програм. Мови специфікації. 10
7 Тестування програмних систем. 20
8 Модульне тестування, інтеграційне та системне тестування. Тестування призначеного для користувача інтерфейсу. Документація, що супроводжує процес верифікації і тестування. 20
9 Підготовка до заліку по всьому матеріалу модуля. 4

Заочна форма

№ з/п

Назва теми, що виноситься на самостійне опрацювання Кількість годин СРС
1 Вивчення архітектури, візуальних інтерфейсів та інструментальних засобів CASE-системи Visual Paradigm; 6
2 Аналіз вимог та розробка UML-діаграм концептуального проектування програмної системи; 6
3 Розробка UML-діаграм логічного рівня проектування програмної системи: моделювання статичних аспектів; 6
4 Розробка UML-діаграм логічного рівня проектування програмної системи: моделювання динамічних аспектів; 6
5 Розробка UML-діаграм фізичного рівня проектування програмної системи 6
6 Методи доведення, верифікації та тестування програм. Мови специфікації. 20
7 Тестування програмних систем. 15
8 Модульне тестування, інтеграційне та системне тестування. Тестування призначеного для користувача інтерфейсу. Документація, що супроводжує процес верифікації і тестування. 15
9 Підготовка до заліку по всьому матеріалу модуля. 4

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

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

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

  • відвідування лекційних та лабораторних занять є обов’язковою складовою вивчення матеріалу;

  • на лекції викладач користується власним презентаційним матеріалом; використовує гугл-диск для викладання матеріалу поточної лекції, додаткових ресурсів, лабораторних робіт та інше; викладач відкриває доступ до певної директорії гугл-диска для скидання електронних лабораторних звітів та відповідей на МКР;

  • на лекції заборонено відволікати викладача від викладання матеріалу, усі питання, уточнення та ін. студенти задають в кінці лекції у відведений для цього час;

  • лабораторні роботи захищаються у два етапи – перший етап: студенти виконують завдання на допуск до захисту лабораторної роботи; другий етап – захист лабораторної роботи. Бали за лабораторну роботу враховуються лише за наявності електронного звіту;

  • модульні контрольні роботи пишуться на лекційних заняттях без застосування допоміжних засобів (мобільні телефони, планшети та ін.); результат пересилається у файлі до відповідної директорії гугл-диску;

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

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

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

Рейтинг студента з дисципліни складається з балів, що він отримує за:

  1. виконання та захист 7 лабораторних робіт;

  2. здачі 8 розділів лекційного курсу;

  3. виконання самостійної семестрової роботи;

  4. відповідь на іспиті.

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

1. Лабораторні роботи (Rл)

Ваговий бал – 5. Максимальна кількість балів за всі лабораторні роботи дорівнює

5 балів х 7 робіт = 35 балів.

Рівень підготовки до лабораторної роботи оцінюється до 1 бала (вхідний контроль підготовки до роботи).

Захист роботи – до 2-х балів.

2. Розділи лекційного курсу (Rлк)

Ваговий бал – 2. Максимальна кількість балів за всі розділи лекційного курсу дорівнює

2 бали х 8 лекцій = 16 балів.

3.Семестрова самостійна робота (Rс)

Ваговий бал – 29 балів.

Критерії оцінювання наступні:

«відмінно» Повна відповідь, правильні відповіді на всі питання, гарна презентація результатів – 14-20 балів
«добре» Достатньо повна відповідь, правильні відповіді на більшість поставлених питань, робочий макет – 10-13 балів
«задовільно» Неповна відповідь, неправильні відповіді на деякі питання, частково працюючий макет – 5-9 балів
«незадовільно» Незадовільна відповідь, неправильні відповідь на більшість поставлених питань, відсутність розробленого макету – 0-4 бали

4. Відповідь на екзамені (Rе)

Ваговий бал – 20.

6. Штрафні (- rs) бали нараховуються за:

  • відсутність на лабораторному занятті без поважної причини - 2 бали;

  • несвоєчасний захист лабораторної роботи - 1 бал;

7. Заохочувальні (rs) бали від 4 до 10 нараховуються за:

- модернізація лабораторних робіт;

- виконання завдань із удосконалення дидактичних матеріалів з дисципліни та інше.

Розрахунок шкали (R) рейтингу:

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

R = RС + R E, де

Rc = = Rл +Rлк +Rc+=35+16+29=80 балів

R**E**=20 балів можна максимум отримати за іспит. Тоді розмір рейтингової шкали з дисципліни складає

R = RС + R E= 100 балів

Необхідною умовою допуску до іспиту є:

  • зарахування всіх лабораторних робіт;

  • здача усіх розділів лекційного курсу;

  • виконання семестрової самостійної роботи;

  • для допуску до іспиту стартовий рейтинг (rC) не менше 50 % від RС, тобто 40 балів.

За результатами навчальної роботи за перші 7 тижнів «ідеальний студент» має набрати 19 балів за 100-бальною шкалою (2 розділи лекційного курсу + 3 лабораторні роботи). На першій атестації (8-й тиждень) студент отримує «зараховано», якщо поточний рейтинг не менше 60% від «ідеального», тобто більше 11 балів.

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

На іспиті студенти проходять підсумкову співбесіду за білетами. Кожен білет містить 2 теоретичних питання і 2 практичних завдання. Перелік питань викладений в ЕЛЕКТРОННОМУ КАМПУСІ. Кожне теоретичне питання оцінюється по 3 бали за 100-бальною шкалою, задача – у 7 балів.

Система оцінювання теоретичних питань:

«відмінно» Повна відповідь, правильні відповіді на всі питання – 5-6 балів
«добре» Достатньо повна відповідь, правильні відповіді на більшість питань – 3-4 бали
«задовільно» Неповна відповідь, неправильні відповіді на деякі питання – 2 бали
«незадовільно» Незадовільна відповідь, неправильні відповідь на більшість поставлених питань – 0-1 балів

Система оцінювання задачі:

«відмінно» Повна правильна відповідь, детальний розв’язок – 6-7 балів
«добре» Достатньо повна відповідь, правильний розв’язок – 4-5 балів
«задовільно» Неправильна відповідь, правильний хід розв’язання – 2-3 бали
«незадовільно» Неправильна відповідь, неправильний хід розв’язання – 0-1 бали

Для отримання студентом відповідних оцінок (ECTS та традиційних) його рейтингова оцінка RD переводиться згідно з таблицею:

RD = rC + rE Оцінка ECTS Традиційна оцінка
95 ≤ RD < 100 А – Відмінно відмінно
85 ≤ RD < 95 В – Дуже добре добре
75 ≤ RD < 85 С – Добре
65 ≤ RD < 75 D – Задовільно задовільно
60 ≤ RD < 65 Е – Достатньо (задовольняє мінімальні критерії)
RD < 60 Fx - Незадовільно незадовільно
rC < 40 або не виконані інші умови допуску до іспиту F – Незадовільно (потрібна додаткова робота) не допущений

Додаткова інформація з дисципліни (освітнього компонента)

  • передбачена можливість закривати частину лабораторного та лекційного матеріалу шляхом здобування сертифікатам по online курсам (наприклад, COURSERA) відповідних розділів та тем дисципліни;

  • перелік теоретичних питань, які виносяться на семестровий контроль наведено в Додатку 1;

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

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

Складено доцент, к.т.н., Дорогий Ярослав Юрійович

Ухвалено кафедрою АУТС (протокол № 1 від 27.08.2020 р.)

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

Додаток 1

Перелік теоретичних питань на екзамен

  1. Назвіть основні існуючі методи проектування програмного забезпечення. Коротко охарактеризуйте кожний з них.

  2. Назвіть основні нотації структурного аналізу і проектування (SADT). Коротко охарактеризуйте кожну з них.

  3. Охарактеризуйте модельно-орієнтований підхід. Назвіть основні підходи, що сформувалися на базі модельно-орієнтованого підходу.

  4. Назвіть галузі знань SWEBOK інженерії розроблення програмного продукту.

  5. Наведіть базові поняття SWEBOK.

  6. Які моделі створюються в рамках використання MDA. Коротко охарактеризуйте кожну з них.

  7. Назвіть принципи, стандарти та технології перетворення моделей в рамках MDA.

  8. Дайте загальну характеристику гнучких методологій розробки. Назвіть переваги та недоліки гнучких методологій розробки. Назвіть основні концептуальні засади екстремального програмування.

  9. Коротко охарактеризуйте методологію SCRUM. Назвіть та поясніть основні поняття методології SCRUM.

  10. Коротко охарактеризуйте методологію Kanban. Назвіть та поясніть основні поняття методології Kanban.

  11. Що собою представляє життєвий цикл ПЗ? З яких основних етапів він складається? Який основний нормативний документ регламентує ЖЦ ПЗ? Які процеси він описує?

  12. Який принцип організації каскадної моделі життєвого циклу ПЗ? Назвіть її основні фази, переваги, недоліки та випадки використання.

  13. Який принцип організації V-подібної моделі життєвого циклу ПЗ? Назвіть її переваги, недоліки та випадки використання.

  14. Опишіть ітеративну (інкрементальну) модель та модель швидкої розробки прикладних програм RAD?

  15. Який принцип організації спіральної моделі життєвого циклу ПЗ? Назвіть її переваги, недоліки та випадки використання.

  16. В чому полягає принцип розробки адаптованих моделей? Наведіть приклади. Якими є загальні вимоги до методології та технології розробки ПЗ?

  17. Що таке програмні вимоги? Наведіть приклад структури вимог за рівнями.

  18. Які вимоги належать до групи функціональних вимог? Які вимоги належать до групи нефункціональних вимог?

  19. Перелічіть основи програмних вимог, дайте коротке пояснення кожному пункту. Що включає в себе процес роботи вимогами? Які основні типи ролей беруть участь в процесі роботи з вимогами?

  20. Яким чином формуються вимоги до програмного продукту? Які етапи включає процес аналізу вимог?

  21. Назвіть основні методи перевірки вимог, дайте характеристику кожному з них.

  22. Якими властивостями мають володіти програмні вимоги? Наведіть приклади формалізації вимог.

  23. Діаграма варіантів використання UML. Основні елементи, їх графічне позначення. Типи відношень, їх характеристика та графічне представлення.

  24. Діаграма класів UML. Поняття «клас», його характеристика.

  25. Діаграма класів UML. Базові відношення між класами в UML, їх графічне позначення. Різниця між агрегацією та композицією.

  26. Діаграма об’єктів UML. Поняття «об’єкт». В яких випадках доцільно розробляти діаграму об’єктів?

  27. Параметризований клас (шаблон). Характеристика.

  28. Діаграма станів UML. Автомат в UML, обов’язкові умови його існування.

  29. Діаграма станів UML. Поняття «стан», графічне позначення стану в UML.

  30. Діаграма станів UML. Основні види станів, приклади їх графічного позначення.

  31. Охороні умови. Паралельний перехід, види паралельного переходу. Реалізація переходу між складеними станами.

  32. Діаграми діяльності UML. Стани дій, переходи та доріжки на діаграмах діяльності, графічне позначення.

  33. Діаграми діяльності UML. Приклади (з графічним позначенням) основних видів станів в діаграмі діяльності.

  34. Діаграма послідовності UML. Лінія життя об’єкту, графічне позначення.

  35. Діаграма послідовності UML. Фокус управління, графічне позначення.

  36. Повідомлення на діаграмі послідовності UML. Приклади основних повідомлень з графічним позначенням.

  37. Комбіновані фрагменти діаграми послідовності UML, приклади.

  38. Діаграма розгортання в UML. Основні елементи. Приклад.

  39. Діаграма синхронізації в UML. Основні елементи діаграми синхронізації. Приклад.

  40. Аспекти визначення якості та її атрибути.

  41. Парадигма «вбудови» якості в інженерії програмного забезпечення. Матриця «дім якості»

  42. Вимоги до якості програмного забезпечення.

  43. Стандарти в інженерії якості. CMM / CMMI. Стандарти ISO. Six. SIGMA. ITIL.

  44. Сертифікація програмного забезпечення в Україні.

  45. Метрики якості.

  46. Loc- оцінки.

  47. Метрики стилістики й зрозумілості програм.

  48. Об’єктно-орієнтовані метрики.

  49. Метрики Холстеда.

  50. Метрики циклічної складності за Мак-Кейбом.

  51. Метрики Чепіна.

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

  53. Попередня оцінка складності програми на етапі розробки специфікацій вимог до програми.

  54. Попередня оцінка складності програми на етапі визначення архітектури.

  55. Класифікація моделей якості.

  56. Модель якості МакКола.

  57. Модель якості Боема.

  58. Модель якості FURPS.

  59. Модель якості Друмі.

  60. Модель якості ISO 9126.

  61. Моделі СММ.

  62. Універсальна модель якості.

  63. Якість процесу в інженерії ПЗ.

  64. Техніки управління якістю.

  65. Формальні методи доведення програм .

  66. Модель формального доведення конкретності програм.

  67. Методи перегляду структури програм.

  68. Процес верифікації.

  69. Процес валідації.

  70. Процеси колективного аналізу.

  71. Інспекції.

  72. Рецензування коду.

  73. Аудити.

  74. Поняття дефекту, збою та відмови.

  75. Кількісні оцінки при тестуванні.

  76. Ефективність тестування.

  77. Види тестування.

  78. Рівні тестування.

  79. Тестування методами «білого ящику», «сірого ящику» та «чорного ящику».

  80. Техніки тестування.

  81. Процес тестування.

  82. Документування тестування.

  83. Аналіз результатів тестування.

  84. Управління процесом тестування.

  85. Створення групи з тестування.

  86. Розробка тест-стратегії.

  87. Документування тестів й робочого продукту.

  88. Звіти про дефекти.

Журнал тестування.

[1] Методичною радою університету – для загальноуніверситетських дисциплін.