Гнучкі методології розробки програмного забезпечення

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

Мета вивчення дисципліни
Формування теоретичних знань та практичних навичок щодо застосування різних практик гнучких методологій для розробки та управління програмним проектом, вивчення найкращих практик програмної інженерії.
Практичне значення та використання отриманих знань
Ознайомитись з Маніфестом гнучкої розробки програмного забезпечення і 12 принципах, що лежать в його основі; оволодіти загальними засадами теорії та практик гнучких методологій розробки програмного забезпечення; вивчити особливості застосування управлінських та інженерних практик, в тому числі з метою мінімізації ризиків успішної розробки програмного забезпечення; розуміти основні процеси управління проектами, що виконуються за гнучкими методологіями.
Тематика та види навчальних занять
Для денної форми здобуття освіти
Лекційні заняття
Лекція 1. Методології розробки програмного забезпечення. Особливості Agile та Waterfall. Agile-маніфест та його принципи.
Лекція 2. Сильні і слабкі сторони Agile. Довгострокове планування в Agile. Основні практики Agile. Agile та визначення бізнес-цінності для клієнта.
Лекція 3. Scrum – гнучкий управлінський фреймворк. Принципи та особливості Scrum. Цінності Scrum. Сильні і слабкі сторони Scrum.
Лекція 4. Загальна схема роботи Scrum. Ролі в Scrum. Артефакти. Процеси.
Лекція 5. Історії користувача. INVEST історії користувача. Принципи побудови діаграм згоряння.
Лекція 6. Scrum-покер – ігровий метод для оцінки складності виконання задачі: процедура проведення та переваги методу. Гра в оцінювання.
Лекція 7. Методологія розробки програмного забезпечення Kanban. Основні принципи та умови застосування. Візуалізація процесів. Дошки та картки в Kanban.
Лекція 8. Карта потоку створення цінності: призначення, спосіб формування, покрокове керівництво.
Лекція 9. Методологія бережливого виробництва Lean Management. Постулати Lean. Практичні аспекти впровадження Lean Management.
Лекція 10. Екстремальне програмування (XP). Практики ХР. Переваги і недоліки XP. Принципи XP.
Лекція 11. Методика розробки через тестування Test-driven Development (TDD).
Лекція 12. Предметно-орієнтоване проектування (DDD): основні визначення, концепція, будівельні блоки. Розробка, керована поведінкою (BDD): опис, специфікація поведінки. Розробка, керована функціональними можливостями (FDD). П’ять процесів FDD.
Лекція 13. Рефакторинг: призначення, умови застосування. Проблеми рефакторингу. Методи рефакторингу. Визначення умов, коли рефакторинг не потрібен.
Лекція 14. Розширений каталог методів рефакторингу. Практичні програмні приклади.
Лекція 15. Постійна інтеграція: призначення, умови застосування методів постійної інтеграції. Методи та переваги постійної інтеграції.
Практичні заняття
Практичне заняття №1. Методології Agile: освоєння основних термінів та визначень. Практичні цінності маніфесту гнучкої розробки. Обговорення шляхів масштабування та впровадження Agile.
Мета заняття: Ознайомлення з основними принципами, цінностями та термінами методологій Agile, навчити застосовувати їх у командній роботі, а також практичними аспектами впровадження Agile в різних проектах і організаціях.
Практичне заняття №2. Оволодіння принципами роботи з управлінським фреймворком Scrum. Робота з тайм-боксами: планування релізу, планування, перегляд та ретроспектива спринту.
Мета заняття: Вивчення практичного застосування принципів фреймворку Scrum для управління проектами, зосередившись на роботі з тайм-боксами, плануванні релізів та спринтів, проведенні перегляду й ретроспективи, а також на розумінні важливості ефективного використання часу в Agile-середовищі.
Практичне заняття №3. Практичне оволодіння артефактами Scrum. Створення User story, Story mapping, Story Points. Побудова діаграми згоряння.
Мета заняття: Навчання практичному використанню артефактів Scrum, включаючи створення User Stories, застосування Story Mapping для структурування вимог, оцінювання завдань за допомогою Story Points, а також побудову діаграми згоряння (Burn-down Chart) для відстеження прогресу команди під час спринту.
Практичне заняття №4. Практичне оволодіння методологією розробки Kanban. Робота з дошкою Kanban.
Мета заняття: Вивчення принципів методології Kanban, створення та роботи з Kanban-дошкою для візуалізації процесу розробки, управління робочими завданнями, оптимізації потоку роботи та виявлення вузьких місць у процесах.
Практичне заняття №5. Практичне оволодіння методологією розробки програмного забезпечення Lean.
Мета заняття: Ознайомлення із Lean-принципами розробки ПЗ, навчання ідентифікувати та усувати втрати (waste), визначати цінність продукту з точки зору користувача, а також практично застосовувати Lean-інструменти для оптимізації розробки.
Практичне заняття №6. Практичне оволодіння процесами екстремального програмування.
Мета заняття: Вивчення основ екстремального програмування (XP), практичного застосування ключових процесів, таких як парне програмування, безперервна інтеграція та тестування TDD, для підвищення якості та ефективності розробки програмного забезпечення.
Практичне заняття №7. Практичне оволодіння методами рефакторингу. Розбір та удосконалення програмного коду з використанням методів рефакторингу.
Мета заняття: Ознайомлення із принципами рефакторингу, опанування навичок виявляти проблеми у програмному коді, застосовувати техніки його поліпшення без зміни функціональності та оцінювати якість коду до і після рефакторингу.
Для заочної форми здобуття освіти
Лекційні заняття
Лекція 1. Методології розробки програмного забезпечення. Особливості Agile. Основні практики Agile. Agile та визначення бізнес-цінності для клієнта.
Лекція 2. Методологія розробки програмного забезпечення Scrum та Kanban. Принципи та особливості Scrum. Візуалізація процесів, дошки та картки в Kanban.
Практичні заняття
Практичне заняття №1. Оволодіння принципами роботи з управлінським фреймворком Scrum та методологією Kanban.
Мета заняття: Вивчення основних принципів роботи з управлінським фреймворком Scrum та методологією Kanban, їх ключовим відмінностям та способам інтеграції у робочі процеси, а також практичного застосування Scrum і Kanban для організації командної роботи та управління завданнями.
Індивідуальна робота
Для здобувачів очної форми здобуття освіти
Розрахунково-графічна робота
Мета розрахунково-графічної роботи – підтвердження опанування дисципліни та розвиток навичок командної розробки, аналізу, тестування та документування програмного проєкту.

Здобувач отримує завдання на початку семестру на платформі edu.op.edu.ua. Завдання виконується у складі команди чисельністю 3-4 особи.
Пояснювальна записка повинна містити 30–35 сторінок. Кількість розділів – 5.
Змістовна послідовність виконання роботи.
1. Визначення складу команди та розподілу ролей у проєкті.
2. Створення опису проєкту: призначення, цільова аудиторія, функціонал, аналіз конкурентів.
3. Планування розробки: створення User Stories, Story Map, використання Trello або Jira для організації завдань.
4. Розробка проєкту: розробка landing page для презентації проєкту, програмна реалізація проєкту, рефакторинг коду, внесення змін за результатами обговорень.
5. Тестування та демонстрація проєкту, підготовка до презентації проєкту.
Захист розрахунково-графічної роботи – протягом двох останніх навчальних тижнів семестру. На захисті команда представляє проєкт, демонструючи роботу програми, її landing page та результати тестування.
Для заочної форми здобуття освіти
Розрахунково-графічна робота
Мета розрахунково-графічної роботи – підтвердження опанування дисципліни та розвиток навичок командної розробки, аналізу, тестування та документування програмного проєкту.
Здобувач отримує завдання на початку семестру на платформі edu.op.edu.ua. Завдання виконується у складі команди чисельністю 3-4 особи.
Пояснювальна записка повинна містити 30–35 сторінок. Кількість розділів – 5.
Змістовна послідовність виконання роботи.
1. Визначення складу команди та розподілу ролей у проєкті.
2. Створення опису проєкту: призначення, цільова аудиторія, функціонал, аналіз конкурентів.
3. Планування розробки: створення User Stories, Story Map, використання Trello або Jira для організації завдань.
4. Розробка проєкту: розробка landing page для презентації проєкту, програмна реалізація проєкту, рефакторинг коду, внесення змін за результатами обговорень.
5. Тестування та демонстрація проєкту, підготовка до презентації проєкту.
Захист розрахунково-графічної роботи – протягом двох останніх навчальних тижнів семестру. На захисті команда представляє проєкт, демонструючи роботу програми, її landing page та результати тестування.
Завдання для виконання контрольної роботи здобувач отримує на установчій лекції.
Робота містить 3 теоретичних питання та 2 практичних завдання.
Обсяг відповіді на кожне теоретичне питання: не більше, ніж одна сторінка тексту, оформленого шрифтом Times New Roman 14 pt.
Термін надання виконаної контрольної роботи на перевірку – не пізніше, ніж за місяць до початку сесії.
Форми контрольних заходів та оцінювання результатів навчання
Для денної форми здобуття освіти
Поточний контроль полягає у виконанні
1) 6-ти індивідуальних поточних завдань. Індивідуальні поточні завдання виконуються письмово і полягають в виконанні типових дій відповідно до мети та завдань практичних занять. Бездоганне виконання індивідуальних поточних завдань №1 – №6 оцінюється у 5 балів;
2) розрахунково-графічної роботи. Бездоганне виконання оцінюється у 10 балів.
3) двох модульних контрольних робіт. Модульні контрольні роботи складаються з теоретичної і практичної частин. Бездоганне виконання кожної модульної контрольної роботи становить 30 балів.
Підсумковий контроль – залік. Залік виставляється за результатами роботи здобувача в семестрі.
Для заочної форми здобуття освіти
Захист контрольної роботи. Бездоганне виконання контрольної роботи оцінюється у 50 балів. Під час її захисту здобувач може отримати до 50 балів.
Підсумковий контроль – залік. Залік виставляється за підсумками виконаних робіт здобувача в семестрі.

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

ПРН03. Знати основні процеси, фази та ітерації життєвого циклу програмного забезпечення.
ПРН06. Вміти вибирати та використовувати відповідні задачі методологію створення програмного забезпечення.
ПРН14. Застосовувати на практиці інструментальні програмні засоби доменного аналізу, проектування, тестування, візуалізації, вимірювань та документування програмного забезпечення.
ПРН15. Мотивовано обирати мови програмування та технології розробки для розв’язання завдань створення і супроводження програмного забезпечення.
ПРН16. Мати навички командної розробки, погодження, оформлення і випуску всіх видів програмної документації.
ПРН17. Вміти застосовувати методи компонентної розробки програмного забезпечення.
ПРН22. Знати та вміти застосовувати методи та засоби управління проектами.
ПРН23. Вміти документувати та презентувати результати розробки програмного забезпечення.
ПРН25. Здатність планувати, здійснювати та розвивати комунікації в команді та з зацікавленими сторонами.
ПРН26. Здатність ефективно формувати комунікаційну стратегію через точність аргументації.
ПРН27. Здатність спілкуватися з колегами, клієнтами, партнерами щодо конкретних питань моделювання, проектування та програмування комп’ютерних систем.
ПРН32. Здатність до ефективної роботи в команді.

b242524 ▪ 2025 рік