СУЧАСНІ МЕТОДОЛГІЇ І ТЕХНОЛОГІЇ РОЗРОБКИ ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ-2

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

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

Рівень вищої освіти Перший (бакалаврський)
Галузь знань 12 Інформаційні технології
Спеціальність 121 – Інженерія програмного забезпечення
Освітня програма Програмне забезпечення інформаційно-комунікаційних систем
Статус дисципліни Нормативна
Форма навчання очна(денна)/заочна/дистанційна
Рік підготовки, семестр 3 курс, осінній семестр
Обсяг дисципліни 135 годин (36 годин – Лекції, 18 годин – Лабораторні, 81 годин – СРС)
Семестровий контроль/ контрольні заходи Залік/залікова робота
Розклад занять http://rozklad.kpi.ua
Мова викладання Українська
Інформація про
керівника курсу / викладачів

Лектор: к.т.н., Штифурак Юрій Михайлович,

yura.shtyfurak@gmail.com,

моб. +38(067)127-90-92

Лабораторні Вовк Євгеній Андрійович,

yevhenii.vovk@gmail.com,

моб. +38(066)643-15-03

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

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

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

Опис дисципліни. При вивченні даної дисципліни студенти познайомляться з методологіями розроблення програмного забезпечення та об'єктно-орієнтованого моделювання.

Предмет навчальної дисципліни: методології розроблення програмного забезпечення та об'єктно-орієнтоване моделювання.

Мета навчальної дисципліни:

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

- ознайомлення та вивчення понять шаблонів проектування програмного забезпечення та їх використання для підвищення якості архітектури систем;

- ознайомлення з технологіями об’єктно-орієнтованого аналізу та проектування на основі мови UML;

- сформувати розуміння і вміння використовувати систему програмного забезпечення відповідно до призначення об’єкту комп’ютеризації.

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

Знання:

  • загальних підходів до проектування програмних додатків у термінах об’єктно-орієнтованого проектування;

  • засобів мови програмування C#, що призначені для спрощення реалізації програмних додатків за принципами об’єктно-орієнтованого проектування;

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

Уміння:

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

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

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

  • реалізовувати спроектовані програмні додатки за принципами об’єктно-орієнтованого проектування призначеними для цього засобами мови програмування C#.

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

Досвід:

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

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

Пререквізити: Начальна дисципліна «Сучасні методології і технології розробки програмного забезпечення-2» базується на навчальних дисциплінах: «Операційні системи»; «Програмування – 1. Основи програмування»; «Програмування – 2. Структури даних та алгоритми» та «Сучасні методології і технології розробки програмного забезпечення-1».

Постреквізити: Начальна дисципліна «Сучасні методології і технології розробки програмного забезпечення-2» необхідна для навчальних дисциплін: «Сучасні методології і технології розробки програмного забезпечення-3», «Сучасні методології і технології розробки програмного забезпечення-4».

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

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

Тема 1. Основи об’єктно-орієнтованого проектування.

Тема 2. Основи проектування та паттерни проектування GoF.

Тема 3. Основи unit-тестів.

Тема 4. Рефакторінг.

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

  1. Основні концепції ООП. Повторення принципів SOLID.

  2. Проектування програмного рішення з використанням типових підходів – шаблонів проектування.

  3. Реалізація програмного рішення з використанням типових підходів – шаблонів проектування.

  4. Unit-тестування.

  5. Основи рефакторінгу.

  6. Переведення на графічний інтерфейс консольного додатку наданого проекту.

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

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

  1. Гради Буч и др. Объектно-ориентированный анализ и проектирование с примерами приложений (UML 2). Третье издание = Object-Oriented Analysis and Design with Applications (3rd Edition). — М.: «Вильямс», 2008. — 720 с. — ISBN 978-5-8459-1401-9.

  2. Вендров А.М. Проектирование программного обеспечения экономических информационных систем М: «Финансы и статистика», 2000

  3. Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software. 1994

  4. Ошероув Рой - Искусство автономного тестирования с примерами на С#, 2014

  5. Фаулер М. Код с душком // Рефакторинг. Улучшение существующего кода = Refactoring: Improving the Design of Existing Code / Пер. с англ. С. Маккавеева. — 1-е изд. — СПб.: Символ-Плюс, 2003. — С. 54—62. — 432 с.

  6. Бен Албахари, Джозеф Албахари C# 7.0. Справочник. Полное описание языка 2018.- 1024с.

  7. Джеффри Рихтер. CLR via C#. Программирование на платформе Microsoft .NET Framework 4.5 на языке C#. — 4-е изд. — СПб.: Питер, 2013. — 896 с. — ISBN 978-5-496-00433-6.

Допоміжна література

  1. Robert C. Martin Agile Software Development: Principles, Patterns, and Practices, and Agile Principles Patterns, and Practices in C#, ). — Publisher: Prentice Hall). — 2006. — 768.

  2. Троелсен Э., Джепикс Ф., Язык программирования C# 7 и платформы .NET и .NET Core, Вильямс, 2018.

  3. Трей Н., C# 2010. Ускоренный курс для профессионалов, Вильямс, 2010.

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

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

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

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

Тема 1. Основи об’єктно-орієнтованого проектування

Лекція 1. Принципи SOLID.

Огляд SOLID принципів об’єктно-орієнтованого проектування: переваги застосування, ключові концепції, засоби контролю коректності застосування.

Література: [1, §3], [2]

Завдання для СРС. Повторити особливості реалізації багатошарової архітектури програмних додатків.

2

Тема 2. Основи проектування та паттерни проектування GoF

Лекція 2,3. Основні принципи об’єктно-орієнтованого проектування та огляд паттернів проектування GoF.

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

Література: [1, §3], [2], [3]

Завдання для СРС. Розглянути практичну сторону застосування шаблонів. Визначити та вміти аргументувати поняття антишаблону. Розглянути та вивчити UML діаграми класів, що відповідають за структуру розглянутих шаблонів.

3

Лекція 4. Породжуючі паттерни проектування GoF.

Породжуючі паттерни проектування GoF: основні характеристики, приклади та особливості застосування, переваги та недоліки при вирішенні конкретних прикладних задач.

Література: [3, §3]

Завдання на СРС. Особливості реалізації породжуючи патернів проектування засобами мови С#.

4

Лекція 5,6. Структурні паттерни проектування GoF.

Структурні паттерни проектування GoF: основні характеристики, приклади та особливості застосування, переваги та недоліки при вирішенні конкретних прикладних задач.

Література: [3, §4]

Завдання на СРС. Особливості реалізації структурних патернів проектування засобами мови С#.

5

Лекція 7,8,9. Поведінкові паттерни проектування GoF.

Поведінкові паттерни проектування GoF: основні характеристики, приклади та особливості застосування, переваги та недоліки при вирішенні конкретних прикладних задач.

МКР-1. Проектування програмного рішення для наданого варіанту завдання та відображення суті проекту за допомогою побудови UML-діаграми класів.

Література: [3, §5]

Завдання на СРС. Особливості реалізації поведінкових патернів проектування засобами мови С#.

6

Тема 3. Основи unit-тестів.

Лекція 10. Основи unit-тестів.

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

Література: [4, §1-2]

Завдання для СРС. Розглянути практичні аспекти тестування програмного коду за рахунок існуючих фреймоврків, вивчити основні переваги та недоліки.

7

Лекція 11. Реалізація автономних тестів.

Особливості реалізації unit-тестів та механізми впровадження залежностей, що дозволяють коректно реалізовувати автономні тести.

Література: [4, §2-4, 5 §4]

Завдання для СРС. Набуття практичних навичок у реалізації автономних тестів з написанням заглушок та підставок.

8

Лекція 12,13. Реалізація автономних тестів з використанням обмежених та необмежених каркасів.

Переваги та особливості реалізації автономних тестів з використанням каркасів. Відмінності обмежених та необмежених каркасів.

Література: [4, §5,6,8]

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

9

Тема 4. Рефакторінг.

Лекція 14. Основи рефакторінгу.

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

Література: [5, §1-2]

Завдання для СРС. Ознайомитись з ключовими практичними основами рефакторингу та найкращими практиками, розглянути можливості IDE по роботі з рефакторингом.

10

Лекція 15. Основні «Запахи коду».

Основні «Запахи коду» (Code smells) та засоби рефакторінгу коду, де зустрічаються зазначені особливості.

Література: [5, §3,6]

Завдання на СРС. Вдосконалення практичних навичок рефакторінгу коду, де зустрічаються «Запахи коду» (Code smells).

11

Лекція 16. Багатопоточність.

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

Література: [7]

Завдання на СРС. Розглянути з практичного боку механізми синхронізації потоків розуміти особливості їх роботи. Вміти пояснити принципи роботи асинхронних операцій в .net.

12

Лекція 17. Відзеркалення (рефлексія).

Деякі аспекти роботи JIT-компілятора та завантаження збірок. Можливості, особливості та застереження за умови використання механізмів рефлексії.

МКР-2. Проектування програмного рішення для наданого варіанту завдання та відображення суті проекту за допомогою побудови UML-діаграми класів. Програмна реалізація базового функціоналу розробленого проекту.

Література: [6, §19], [7, §23]

Завдання для СРС. Механізм пізнього зв’язування об’єктів та практична сторона в межах необхідності застосування рефлексії в програмному застосунку (недоліки та переваги). Expression Trees.

13 Лекція 18. Залікова контрольна робота

**
**

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

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

Лабораторна робота 1. Основні концепції ООП. Повторення принципів SOLID.

Реалізувати програмне рішення наданого варіанту завдання за допомогою мови програмування С# з дотриманням принципів ООП та SOLID.

Література: [1, §3]

2
2

Лабораторна робота 2. Проектування програмного рішення з використанням типових підходів – шаблонів проектування.

Проектування програмного рішення наданого варіанту завдання з використанням патернів проектування. Обґрунтувати використання паттернів проектування. Пояснювальна записка повинна містити UML-діаграму класів розробленого програмного рішення. Реалізувати розроблене програмне рішення з використанням мови програмування С# (консольний додаток).

Література: [1, §3], [3, §3-5]

4
3

Лабораторна робота 3. Реалізація програмного рішення з використанням типових підходів – шаблонів проектування.

Реалізувати розроблений проект програмного рішення з попередньої лабораторної роботи. Обґрунтувати використання паттернів проектування. Пояснювальна записка повинна містити UML-діаграму класів розробленого програмного рішення. Реалізувати розроблене програмне рішення з використанням мови програмування С# (консольний додаток).

Література: [1, §3], [3, §3-5]

4
4

Лабораторна робота 4. Unit-тестування.

Реалізувати Unit-тести для розробленого у попередній лабораторній роботі програмного рішення. Знати та вміти пояснити на прикладі особливості Unit-тестів (принципи іменування, основні логічні блоки тестів, перелічити основні властивості «доброго» автономного тесту). Знати та вміти пояснити відмінності даного виду тестування від інших видів тестування (наприклад, інтеграційного тестування). Знати та вміти пояснити поняття Заглушка (stub) та Підставка (mock), особливості їх використання.

Література: [4, §1-8]

2
5

Лабораторна робота 5. Основи рефакторінгу.

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

Література: [5, §1-3,6]

4
6

Лабораторна робота 6. Переведення на графічний інтерфейс консольного додатку наданого проекту.

Реалізувати графічний інтерфейс користувача для наданого готового проекту, інтерфейс якого реалізовано через консоль.

Література: [1, §3], [2]

2

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

№ з/п

Назва теми, що виноситься на самостійне опрацювання Кількість годин СРС
1 Особливості реалізації породжуючи патернів проектування засобами мови С#. 10
2 Особливості реалізації структурних патернів проектування засобами мови С#. 10
3 Особливості реалізації поведінкових патернів проектування засобами мови С#. 10
4 Набуття практичних навичок у реалізації автономних тестів з написанням заглушок та підставок. 15
5 Вдосконалення практичних навичок рефакторінгу коду, де зустрічаються «Запахи коду» (Code smells). 20
6 Практика зміни інтерфейсу користувача готового програмного додатку. 16

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

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

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

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

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

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

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

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

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

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

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

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

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

  2. виконання 2 модульних контрольних робіт (МКР);

  3. заохочувальні та штрафні бали.

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

Лабораторні роботи:

Максимальна кількість балів при виконанні лабораторних робіт: Лабораторна робота №1 – 5, Лабораторна робота №2 – 10, Лабораторна робота №3 – 15, Лабораторна робота №4 – 15, Лабораторна робота №5 – 20, Лабораторна робота №6 – 10.

«відмінно», повна відповідь на питання під час захисту (не менш ніж 95% потрібної інформації), коректна програмна реалізація (без суттєвих недоліків) та оформлений належним чином протокол до лабораторної роботи – максимальна кількість балів;

«відмінно», повна відповідь на питання під час захисту (не менш ніж 90% потрібної інформації), коректна програмна реалізація (без суттєвих недоліків) та оформлений належним чином протокол до лабораторної роботи – 95% максимальної кількості балів;

«добре», достатньо повна відповідь на питання під час захисту (не менш ніж 85% потрібної інформації), коректна програмна реалізація (допускається одна помилка, суть якої студент зрозуміє підчас захисту та матиме знання щоб виправити) та оформлений належним чином протокол до лабораторної роботи – 90% максимальної кількості балів;

«добре», достатньо повна відповідь на питання під час захисту (не менш ніж 80% потрібної інформації), коректна програмна реалізація (допускається одна помилка, суть якої студент зрозуміє підчас захисту та матиме знання щоб виправити) та оформлений належним чином протокол до лабораторної роботи – 85% максимальної кількості балів;

«добре», достатньо повна відповідь на питання під час захисту (не менш ніж 75% потрібної інформації), коректна програмна реалізація (допускається одна помилка, суть якої студент зрозуміє підчас захисту та матиме знання щоб виправити) та оформлений належним чином протокол до лабораторної роботи – 80% максимальної кількості балів;

«добре», достатньо повна відповідь на питання під час захисту (не менш ніж 70% потрібної інформації), коректна програмна реалізація (допускається одна помилка, суть якої студент зрозуміє підчас захисту та матиме знання щоб виправити) та оформлений належним чином протокол до лабораторної роботи – 75% максимальної кількості балів;

«задовільно», достатньо повна відповідь на питання під час захисту (не менш ніж 65% потрібної інформації), коректна програмна реалізація (допускається одна помилка, суть якої студент зрозуміє підчас захисту та матиме знання щоб виправити) та оформлений належним чином протокол до лабораторної роботи – 70% максимальної кількості балів;

«задовільно», достатньо повна відповідь на питання під час захисту (не менш ніж 60% потрібної інформації), коректна програмна реалізація (допускається одна помилка, суть якої студент зрозуміє підчас захисту та матиме знання щоб виправити) та оформлений належним чином протокол до лабораторної роботи – 65% максимальної кількості балів;

«задовільно», неповна відповідь на питання під час захисту (не менш ніж 55% потрібної інформації), коректна програмна реалізація (не більше 2 помилок, суть яких студент зрозуміє підчас захисту та матиме знання щоб виправити), незначні помилки у відповіді та оформлений належним чином протокол до лабораторної роботи – 60% максимальної кількості балів;

«незадовільно», незадовільна відповідь та/або не коректна програмна реалізація, та/або не оформлений належним чином протокол до лабораторної роботи – 0 балів.

Модульні контрольні роботи:

МКР-1:

«відмінно», повна відповідь (не менш ніж 95% потрібної інформації) – 10 балів;

«добре», достатньо повна відповідь (не менш ніж 90% потрібної інформації), або повна відповідь з незначними помилками – 9 балів;

«добре», достатньо повна відповідь (не менш ніж 85% потрібної інформації), або повна відповідь з незначними помилками – 8 балів;

«добре», достатньо повна відповідь (не менш ніж 80% потрібної інформації), або повна відповідь з незначними помилками – 7 балів;

«добре», достатньо повна відповідь (не менш ніж 75% потрібної інформації), або повна відповідь з незначними помилками – 6 балів;

«задовільно», достатньо повна відповідь (не менш ніж 70% потрібної інформації), або повна відповідь з незначними помилками – 5 балів;

«задовільно», достатньо повна відповідь (не менш ніж 60% потрібної інформації), або повна відповідь з незначними помилками – 4 бали;

«задовільно», достатньо повна відповідь (не менш ніж 50% потрібної інформації), або повна відповідь з незначними помилками – 3 бали;

«задовільно», достатньо повна відповідь (не менш ніж 40% потрібної інформації), або повна відповідь з незначними помилками – 2 бали;

«задовільно», неповна відповідь (але не менш ніж 30% потрібної інформації) та незначні помилки – 1 бали;

«незадовільно», незадовільна відповідь (неправильний розв’язок задачі), потребує обов’язкового повторного написання в кінці семестру – 0 балів.

МКР-2:

«відмінно», повна відповідь (не менш ніж 95% потрібної інформації) – 15 балів;

«добре», достатньо повна відповідь (не менш ніж 90% потрібної інформації), або повна відповідь з незначними помилками – 14 балів;

«добре», достатньо повна відповідь (не менш ніж 85% потрібної інформації), або повна відповідь з незначними помилками – 13 балів;

«добре», достатньо повна відповідь (не менш ніж 80% потрібної інформації), або повна відповідь з незначними помилками – 12 балів;

«добре», достатньо повна відповідь (не менш ніж 75% потрібної інформації), або повна відповідь з незначними помилками – 11 балів;

«задовільно», неповна відповідь (але не менш ніж 70% потрібної інформації) та незначні помилки – 10 балів;

«задовільно», неповна відповідь (але не менш ніж 65% потрібної інформації) та незначні помилки – 9 балів;

«задовільно», неповна відповідь (але не менш ніж 60% потрібної інформації) та незначні помилки – 8 балів;

«задовільно», неповна відповідь (але не менш ніж 55% потрібної інформації) та незначні помилки – 7 балів;

«задовільно», неповна відповідь (але не менш ніж 50% потрібної інформації) та незначні помилки – 6 балів;

«задовільно», неповна відповідь (але не менш ніж 45% потрібної інформації) та незначні помилки – 5 балів;

«задовільно», неповна відповідь (але не менш ніж 40% потрібної інформації) та незначні помилки – 4 бали;

«задовільно», неповна відповідь (але не менш ніж 35% потрібної інформації) та незначні помилки – 3 бали;

«задовільно», неповна відповідь (але не менш ніж 30% потрібної інформації) та незначні помилки – 2 бали;

«задовільно», неповна відповідь (але не менш ніж 25% потрібної інформації) та незначні помилки – 1 бал;

«незадовільно», незадовільна відповідь (неправильний розв’язок задачі), потребує обов’язкового повторного написання в кінці семестру – 0 балів.

Заохочувальні бали

– за підготовку матеріалу і доповідь до 15 хвилин під час лекції (або навчальне відео) до 10 балів.

– за організаційну допомогу до проведення занять до 5 балів.

Міжсесійна атестація

За результатами навчальної роботи за перші 7 тижнів максимально можлива кількість балів – 40 балів. На першій атестації (8-й тиждень) студент отримує «зараховано», якщо його поточний рейтинг не менший ніж 25 балів.

За результатами 13 тижнів навчання максимально можлива кількість балів – 75 балів. На другій атестації (14-й тиждень) студент отримує «зараховано», якщо його поточний рейтинг не менший ніж 50 балів.

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

R= rлаб1+rлаб2+ rлаб3+rлаб4+ rлаб5+ rлаб6+rмкр1+ rмкр2= =5+10+15+15+20+10+10+15=100.

Необхідною умовою допуску до заліку є виконання двох МКР не нижче ніж на оцінку «задовільно», захист шести лабораторних робіт на оцінку не нижче ніж «задовільно» і стартовий рейтинг не менше 30 балів.

Залік:

На залік студенти виконують письмову контрольну роботу. Кожне завдання містить два теоретичних питання (кожне по 30 балів) і одне практичне (40 балів).

При написані заліку сума отриманих балів під час семестру анулюється.

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

Таблиця 1. Переведення рейтингових балів до оцінок за університетською шкалою

Кількість балів Оцінка
100-95 Відмінно
94-85 Дуже добре
84-75 Добре
74-65 Задовільно
64-60 Достатньо
Менше 60 Незадовільно

Є не зараховані лабораторні роботи або

не зарахована модульна контрольна робота

Не допущено

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

Питання на залік з СМТРПЗ-2

  1. Принципи SOLID. Навести приклад кожного принципу.

  2. Основні принципи об’єктно-орієнтованого проектування. Навести

    приклади.

  3. та огляд паттернів проектування GoF.

  4. Призначення паттернів проектування GoF.

  5. Призначення, структура на мові UML, учасники, відносини між

    учасниками, рекомендації по використанню паттерну Фабричний метод (Factory Method).

  6. Призначення, структура на мові UML, учасники, відносини між

    учасниками, рекомендації по використанню паттерну Абстрактна фабрика (Abstract Factory).

  7. Призначення, структура на мові UML, учасники, відносини між

    учасниками, рекомендації по використанню паттерну Будівельник (Builder).

  8. Призначення, структура на мові UML, учасники, відносини між

    учасниками, рекомендації по використанню паттерну Прототип (Prototype).

  9. Призначення, структура на мові UML, учасники, відносини між

    учасниками, рекомендації по використанню паттерну Одинак (Singleton).

  10. Призначення, структура на мові UML, учасники, відносини між

    учасниками, рекомендації по використанню паттерну Адаптер (Adapter).

  11. Призначення, структура на мові UML, учасники, відносини між

    учасниками, рекомендації по використанню паттерну Міст (Bridge).

  12. Призначення, структура на мові UML, учасники, відносини між

    учасниками, рекомендації по використанню паттерну Компонувальник (Composite).

  13. Призначення, структура на мові UML, учасники, відносини між

    учасниками, рекомендації по використанню паттерну Декоратор (Decorator).

  14. Призначення, структура на мові UML, учасники, відносини між

    учасниками, рекомендації по використанню паттерну Фасад (Facade).

  15. Призначення, структура на мові UML, учасники, відносини між

    учасниками, рекомендації по використанню паттерну Пристосуванець (Flyweight).

  16. Призначення, структура на мові UML, учасники, відносини між

    учасниками, рекомендації по використанню паттерну Заступник (Proxy).

  17. Призначення, структура на мові UML, учасники, відносини між

    учасниками, рекомендації по використанню паттерну Ланцюжок обов’язків (Chain of Responsibility).

  18. Призначення, структура на мові UML, учасники, відносини між

    учасниками, рекомендації по використанню паттерну Команда (Command).

  19. Призначення, структура на мові UML, учасники, відносини між

    учасниками, рекомендації по використанню паттерну Інтерпретатор (Interpreter).

  20. Призначення, структура на мові UML, учасники, відносини між

    учасниками, рекомендації по використанню паттерну Ітератор (Iterator).

  21. Призначення, структура на мові UML, учасники, відносини між

    учасниками, рекомендації по використанню паттерну Посередник (Mediator).

  22. Призначення, структура на мові UML, учасники, відносини між

    учасниками, рекомендації по використанню паттерну Хранитель (Memento).

  23. Призначення, структура на мові UML, учасники, відносини між

    учасниками, рекомендації по використанню паттерну Спостерігач (Observer).

  24. Призначення, структура на мові UML, учасники, відносини між

    учасниками, рекомендації по використанню паттерну Стан (State).

  25. Призначення, структура на мові UML, учасники, відносини між

    учасниками, рекомендації по використанню паттерну Стратегія (Strategy).

  26. Призначення, структура на мові UML, учасники, відносини між

    учасниками, рекомендації по використанню паттерну Шаблонний метод (Template Method).

  27. Призначення, структура на мові UML, учасники, відносини між

    учасниками, рекомендації по використанню паттерну Відвідувач (Visitor).

  28. Види тестування, основні особливості та переваги використання

    автономних тестів.

  29. Особливості реалізації unit-тестів та механізми впровадження

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

  30. Переваги та особливості реалізації автономних тестів з використанням

    каркасів. Відмінності обмежених та необмежених каркасів.

  31. Поняття, базові принципи та особливості проведення рефакторінгу

    програмного коду.

  32. Основні «Запахи коду» (Code smells) та засоби рефакторінгу коду, де

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

  33. Поняття потоку та багатопоточності. Реалізація багато поточних

    програм засобами мови С#.

  34. Деякі аспекти роботи JIT-компілятора та завантаження збірок.

  35. Можливості, особливості та застереження за умови використання

    механізмів рефлексії.

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

Складено к.т.н., доцент Махно Т.О., к.т.н., доцент Штифурак Ю.М., асистент Вовк Є.А.

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

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

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