Технології розроблення програмного забезпечення - Робоча програма навчальної дисципліни (Силабус)

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

Рівень вищої освіти Перший (бакалаврський)
Галузь знань 12 Інформаційні технології
Спеціальність 126 Інформаційні системи та технології
Освітня програма Інтегровані інформаційні системи
Статус дисципліни Нормативна
Форма навчання очна(денна)/заочна
Рік підготовки, семестр 3 курс, осінній семестр
Обсяг дисципліни 4 кредити ECTS/120 годин (18 годин – Лекції, 36 годин – Лабораторні, 66 годин – СРС)
Семестровий контроль/ контрольні заходи іспит
Розклад занять 1 лекція (2 години) 1 раз на два тижні;
1 лабораторна робота (2 години) 1 раз на тиждень
Мова викладання Українська
**Інформація про
керівника курсу / викладачів** Лектор: к.т.н., Олександр Амонс, o.amons@kpi.uaЛабораторні: Валерій Колеснік
Михайло Драган
Розміщення курсу https://campus.kpi.ua

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

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

Опис дисципліни.

Силабус освітнього компонента «Технології розроблення програмного забезпечення» складено відповідно до освітньої програми підготовки бакалаврів «Інформаційні технології» спеціальності 126 – Інформаційні системи та технології.

Мета навчальної дисципліни є формування та закріплення у студентів наступних компетентностей: (КС2) Здатність застосовувати стандарти в області інформаційних систем та технологій при розробці функціональних профілів, побудові та інтеграції систем, продуктів, сервісів і елементів інфраструктури організації; (КС3) Здатність до проектування, розробки, налагодження та вдосконалення системного, комунікаційного та програмно-апаратного забезпечення інформаційних систем та технологій, Інтернету речей (ІоТ), комп'ютерно-інтегрованих систем та системної мережної структури, управління ними; (КС4) Здатність проектувати, розробляти та використовувати засоби реалізації інформаційних систем, технологій та інфокомунікацій (методичні, інформаційні, алгоритмічні, технічні, програмні та інші); (КС7) Здатність застосовувати інформаційні технології у ході створення, впровадження та експлуатації системи менеджменту якості та оцінювати витрати на її розроблення та забезпечення; (КС8) Здатність управляти якістю продуктів і сервісів інформаційних систем та технологій протягом їх життєвого циклу; (КС10) Здатність вибору, проектування, розгортання, інтегрування, управління, адміністрування та супроводжування інформаційних систем, технологій та інфокомунікацій, сервісів та інфраструктури організації.

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

Програмні результати навчання, на формування та покращення яких спрямована дисципліна: (ПРН3) Використовувати базові знання інформатики й сучасних інформаційних систем та технологій, навички програмування, технології безпечної роботи в комп'ютерних мережах, методи створення баз даних та інтернет-ресурсів, технології розроблення алгоритмів і комп'ютерних програм мовами високого рівня із застосуванням об'єктно-орієнтованого програмування для розв'язання задач проектування і використання інформаційних систем та технологій; (ПРН5) Аргументувати вибір програмних та технічних засобів для створення інформаційних систем та технологій на основі аналізу їх властивостей, призначення і технічних характеристик з урахуванням вимог до системи і експлуатаційних умов; мати навички налагодження та тестування програмних і технічних засобів інформаційних систем та технологій; (ПРН6) Демонструвати знання сучасного рівня технологій інформаційних систем, практичні навички програмування та використання прикладних і спеціалізованих комп'ютерних систем та середовищ з метою їх запровадження у професійній діяльності; (ПРН7) Обґрунтовувати вибір технічної структури та розробляти відповідне програмне забезпечення, що входить до складу інформаційних систем та технологій; (ПРН8) Застосовувати правила оформлення проектних матеріалів інформаційних систем та технологій, знати склад та послідовність виконання проектних робіт з урахуванням вимог відповідних нормативно-правових документів для запровадження у професійній діяльності; (ПРН12) Застосовувати знання складу, структури, принципів реалізації та функціонування інформаційно-керуючих систем та виконувати розроблення, підтримку та супроводження інформаційних та програмно-технічні засобів, оцінювати ефективність використання інформаційно-керуючих систем на підприємствах; (ПРН19) Застосовувати знання складу, структури, принципів реалізації та функціонування інформаційно-керуючих систем та виконувати розроблення, підтримку та супроводження інформаційних та програмно-технічні засобів, оцінювати ефективність використання інформаційно-керуючих систем на підприємствах.

2.Пререквізити та постреквізити дисципліни

Для успішного засвоєння дисципліни студент повинен володіти освітніми компонентами «Операційні системи», «Програмування – 1. Основи програмування», «Програмування – 2. Структури даних та алгоритми», «Дискретна математика», «Бази даних».

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

Очна форма

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

Розділ 1. Вступ до сучасних технологій програмування

Тема 1.1. Сучасні методології розробки комп'ютеризованих систем

Тема 1.2. Мова проектування UML

Тема 1.3. Вступ до паттернів проектування

Тема 1.4. Патерни проектування

Розділ 2.Сучасні технології розробки.

Тема 2.1. Вступ до RUP.

Тема 2.2. Технологічні процеси RUP.

Тема 2.3. Agile методологія SCRUM.

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

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

  1. Grady Booch, Robert A. Maksimchuk, Michael W. Engle, Bobbi J. Young, Jim Conallen, Kelli A. Houston. Object-Oriented Analysis and Design with Applications (3rd Edition) – Addison-Wesley Professional, 2007 – 697
  2. Буч Г., Рамбо Д., Джекобсон И. UML. Руководство пользователя: Пер. с англ. – М.: ДМК, 2006. – 496 с.
  3. М. Фаулер. Рефакторинг: улучшение существующего кода. – Пер. С англ.. – Изд-во Вильямс, 2016. – 893с.
  4. Martin Fowler. UML Distilled: A Brief Guide to the Standard Object Modeling Language, 3rd Edition – Print2print, 2016. – 208
  5. Ерік Фрімен, Елізабет Робсон. Head First. Патерни проєктування – Фабула, 2020 – 672с
  6. Роман Піхлер. Agile продукт-менеджмент за допомогою Scrum – Фабула, 2019 – 128с

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

  1. Буч Г. Объектно-ориентированный анализ и проектирование с примерами приложений на С++, 3-е изд. / Пер. с англ. – Изд-во Вильямс, 2010. – 720 с.
  2. Боггс У., Боггс М. UML и Rational Rose: Пер. с англ. – М.: Лори, 2000. – 582 с.
  3. Роман Піхлер. Agile продукт-менеджмент за допомогою Scrum. Створення продуктів, що подобаються клієнтам. Пер. с англ. – видавництво Фабула: - 2019 – 128 с.
  4. Майк Кон. Оцінювання і планування в Agile. Пер. с англ. – видавництво Фабула, 2019. – 336 с.

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

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

Очна форма

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

№ з/п Назва теми лекції та перелік основних питань (перелік дидактичних засобів, посилання на літературу та завдання на СРС)
1 Тема 1.1. Сучасні методології розробки комп'ютеризованих систем Лекція 1. Вступ.Огляд історії розвитку технологій програмування. Поняття життєвого циклу програмних систем.Література: [1, Гл.1.1.4], [3, Гл.1] Завдання для СРС. Історія розвитку Agile-методологій.
2 Тема 1.2. Мова проектування UML.Лекція 2. Основні поняття мови UML.Призначення мови. Поняття моделі. Поняття діаграм UML. Діаграми варіантів використання.Діаграми класів. Література: [1, Гл.1.1.2; Гл.3], [3, Гл.1]Завдання для СРС. Основні поняття доменної моделі проектування (DDD). Базові основи роботи з пакетом проектування в UML.
3 Тема 1.2. Мова проектування UML.Лекція 3. Діаграми взаємодії. Діаграми кооперації. Діаграми компонентів та розгортання.Призначення діаграми. Поняття концептуальної моделі, специфікації, моделі реалізації. Поняття класу, об'єкта. Види зв'язків між класами. Стереотипи класів. Атрибути та операції. Приклади.Література: [1, Гл.14], [3, Гл.6;Гл.9], [6, Гл.2]Завдання для СРС. Проектування по моделі. Відображення елементів діаграми класів у програмному коді.
4 Тема 1.3. Вступ до паттернів проектування Лекція 4. Вступ до паттернів проектування.Поняття паттернів проектування. Підхід до вирішення задачі з використанням паттернів проектування.Література: [1, Гл.1.1.4], [3, Гл.1] Завдання для СРС. Поняття архітектурних патернів. Патерни роботи з БД.
5 Тема 1.4. Паттерни проектування.Лекція 5. Породжуючі паттерни проектування.Паттерни «Абстрактна фабрика», «Фабричний метод», «Прототип». Призначення. Застосування. Структура. Учасники. Відношення. Результати застосування паттерна.Література: [1, Гл.1.1.2; Гл.3], [3, Гл.1]Завдання для СРС. Паттерн «Прототип». Призначення. Застосування. Структура. Учасники. Відношення. Результати застосування паттерна..
6 Тема 1.4. Паттерни проектування.Лекція 6. Структурні паттерни проектування. Паттерни «Адаптер», «Міст».Призначення. Застосування. Структура. Учасники. Відношення. Результати застосування паттерна. Приклад реалізації Література: [1, Гл.5], [3, Гл.6]Завдання для СРС. Паттерни «Декоратор» та «Фасад».Паттерни поведінки «Посередник» та «Стратегія». Призначення. Застосування. Структура. Учасники. Відношення. Результати застосування паттернів
7 Тема 2.1. Вступ до RUP.Лекція 7. Технологічний процес управління вимогами.Організація процесу розробки програмних систем. Ітеративна розробка. Поняття процесу розробки основаного на архітектурі.Література: [1, Гл.1;Гл.4], [2, Гл.4;Гл.5]Завдання для СРС. Трикутник успіху. Історія RUP
8 Тема 2.2. Технологічні процеси RUP. Лекція 8.. Технологічний процес аналіза і проектуванняМета. Аналіз та проектування. Модель проектування. Модель аналіза. Роль інтерфейсів. Виконавці та артефакти. Артефакти систем реального часу. Модульне проектування. Інструментальна підтримка.Література: [1, Гл.9], [2, Л.9], [3, Гл.10], [7, Гл.11]Завдання для СРС. Аналіз та проектування у методології екстремального програмування.

Технологічний процес управління проектом.Мета. Планування ітеративного проекта. Поняття ризиків. Поняття метрик. Виконавці та артефакти.Література: [7, Гл.2]Завдання для СРС. Базова модель розподілу часу та обсягів робіт при формуванні плану фаз. Підходи до боротьби з ризиками. | | 9 | Тема 2.3. Agile методологія SCRUMЛекція 9. Методологія SCRUMВступ в Agile, Основні поняття SCRUM, SCRUM-концепція, SCRUM ролі. Обов'язки Scrum Master, Product Owner та Scrum Team. Артефакти SCRUM: backlog, Userstory, Sprint, Demo та Review.Завдання для СРС.Поняття екстремального програмування, Agile Estimating and Planning. |

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

Назва лабораторної роботи
1 Лабораторна робота 1. Системи контроля версій. Розподілена система контролю версій «Git» Необхідно створити Git репозиторій, клонувати створений репозиторій одного із open-source проекту (наприклад, на bitbucket.org або codeplex.com)
2 Лабораторна робота 2. Основи проектування.По вибраній темі створити діаграми використання, сценарії варіантів використання, діаграми класів, концептуальну модель.
3 Лабораторна робота 3. Основи проектування розгортання.По вибраній темі стоворити діаграми розгортання, компонентів, а також діаграми взаємодії та послідовностей.
4 Лабораторна робота 4. Вступ до паттернів проектування.Розібратисяособливостях використання та застосувати в проекті паттерни Singleton, Iterator, Proxy, State, Strategy
5 Лабораторна робота 5. Патерни проектування.Розібратисяособливостях використання та застосувати в проекті паттерни Adapter, Builder, Command, Chain of responsibility, Prototype
6 Лабораторна робота 6. Патерни проектування.Розібратисяособливостях використання та застосувати в проекті паттерни Abstract Factory, Factory Method, Memento, Observer, Decorator
7 Лабораторна робота 7. Патерни проектування.Розібратисяособливостях використання та застосувати в проекті паттерни Mediator, Façade, Bridge, Template Method
8 Лабораторна робота 8. Патерни проектування.Розібратисяособливостях використання та застосувати в проекті паттерни Composite, Flyweight, Interpreter, Visitor
9 Лабораторна робота 9. Взаємодія компонентів системиРозібратисяособливостях використання різних видів взаємодії та використати в програмному проекті один або декілька варіантів: Client-Server, Peer-To-Peer, Service-Oriented Architecture

Заочна форма

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

№ з/п Назва теми лекції та перелік основних питань (перелік дидактичних засобів, посилання на літературу та завдання на СРС)
1 Тема 1.1. Сучасні методології розробки комп'ютеризованих системТема 1.2. Мова проектування UML.Лекція 1. Вступ. Сучасні методології розробки програмних систем. Основні поняття мови UML. Діаграми UML.Поняття життєвого циклу програмних систем.Поняття моделісистеми в UML. Поняття діаграм UML. Типи діаграм.. Діаграми варіантів використання. Діаграми класів. Діаграми взаємодії. Діаграми компонентів та розгортання.Література: [2, §В.1], [3, §4.9][1, §5.1], [2, §1.1], [3, §2.1]Завдання на СРС. Agile-методології. Основні поняття доменної моделі проектування (DDD). Проектування сценаріїв використання програмних систем. Види сценаріїв. Проектування по моделі. Відображення елементів діаграми класів у програмному коді. Інтерфейс прикладного програмування. Моделювання з використання сутностей таблиць, файлів та документів. Розподілення компонентів.
2 Тема 2.1. Вступ до RUP.Тема 2.2. Технологічні процеси RUP.Лекція 2. Вступ до RUP. Технологічні процеси RUPОрганізація процесу розробки програмних систем. Ітеративна розробка. Поняття процесу розробки основаного на архітектурі. Мета. Планування ітеративного проекта. Поняття ризиків. Поняття метрик. Технологічний процес моделювання бізнес-процесів. Технологічний процес управління вимогами. Література: [6, §2.3], [6, §1.2.2]Завдання для СРС. Базова модель розподілу часу та обсягів робіт при формуванні плану фаз. Підходи до боротьби з ризиками. Елементи та діаграми UML для опису бізнес-процесів. Основні правил проведення інтерв'ю з потенціальними користувачами. Використання прототипів при аналізі вимог та проектуванні користувацького інтерфейсу. Аналіз та проектування у методології екстремального програмування.
3 Тема 2.3. Технологічний процес тестування.Лекція 3. Технологічний процес тестування. Технологічний процес реалізації.Мета. Поняття якості. Тестування в ітеративному життєвому циклі. Класифікація тестів. Модель тестування. Конструкції. Інтеграція. Прототипи. Виконавці та артефакти. Технологічний процес тестування. Інструментальна підтримка..Література: [5, §5.11-5.17], [4, §5.11-5.17], [5, §1.3], [5, §2.2]Завдання для СРС. Використання Rational Test Manager, Test Robot та Test Factory при організації процесу забезпечення якості програмних систем. Поняття модульних тестів та структура тестових платформ xUnit. Сучасні підходи до розробки: безперервна інтеграція, технологія TDD.

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

Назва лабораторної роботи
1 Лабораторна робота 1. Системи контроля версій. Розподілена система контролю версій «Git» Необхідно створити Git репозиторій, клонувати створений репозиторій одного із open-source проекту (наприклад, на bitbucket.org або codeplex.com)
2 Лабораторна робота 2. Основи проектування.По вибраній темі створити діаграми використання, сценарії варіантів використання, діаграми класів, концептуальну модель.
3 Лабораторна робота 3. Основи проектування розгортання.По вибраній темі стоворити діаграми розгортання, компонентів, а також діаграми взаємодії та послідовностей.

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

Очна форма

№ з/п Вид самостійної роботи Кількість годин СРС
1 Підготовка до лабораторних 30
2 Підготовка до МКР 6
3 Підготовка до іспиту по всьому матеріалу модуля. 30

Заочна форма

№ з/п Назва теми, що виноситься на самостійне опрацювання Кількість годин СРС
1 Підготовка до лабораторних 30
2 Підготовка до МКР 6
3 Підготовка до іспиту по всьому матеріалу модуля. 30

6.Контрольна робота

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

Модульна контрольна робота (МКР) виконується після вивчення Розділу 1 та виконання лабораторних робіт 1-4. Кожен студент отримує індивідуальне завдання, відповідно до якого необхідно спроектувати діаграми UML, застосувати один із паттернів проектування, та реалізувати каркас системи з використанням вибраного паттерну.

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

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

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

  • правила відвідування занять: заборонено оцінювати присутність або відсутність здобувача на аудиторному занятті, в тому числі нараховувати заохочувальні або штрафні бали. Відповідно до РСО даної дисципліни бали нараховують за відповідні види навчальної активності на лекційних та практичних заняттях.
  • правила поведінки на заняттях: студент має можливість отримувати бали за відповідні види навчальної активності на лекційних та практичних заняттях, передбачені РСО дисципліни. Використання засобів зв'язку для пошуку інформації на гугл-диску викладача, в інтернеті, в дистанційному курсі на платформі Сікорський здійснюється за умови вказівки викладача;
  • політика дедлайнів та перескладань: якщо студент не проходив або не з'явився на МКР (без поважної причини), його результат оцінюється у 0 балів. Перескладання результатів МКР не передбачено;
  • політика щодо академічної доброчесності: Кодекс честі Національного технічного університету України «Київський політехнічний інститут» https://kpi.ua/files/honorcode.pdf встановлює загальні моральні принципи, правила етичної поведінки осіб та передбачає політику академічної доброчесності для осіб, що працюють і навчаються в університеті, якими вони мають керуватись у своїй діяльності, в тому числі при вивченні та складанні контрольних заходів з дисципліни «Системи автоматизації»;
  • при використанні цифрових засобів зв'язку з викладачем (мобільний зв'язок, електронна пошта, переписка на форумах та у соцмережах тощо) необхідно дотримуватись загальноприйнятих етичних норм, зокрема бути ввічливим та обмежувати спілкування робочим часом викладача.

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

Поточний контроль : тестування, МКР, виконання та захист лабораторних робіт.

Календарний контроль : провадиться двічі на семестр як моніторинг поточного стану виконання вимог силабусу.

Семестровий контроль: екзамен.

Умови допуску до семестрового контролю : виконані та захищені лабораторні роботи, семестровий рейтинг більше 30 балів.

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

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

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

  • виконання та захист лабораторних робіт;
  • виконання модульної контрольної роботи (МКР);
  • відповіді на екзамені.
Лабораторні роботи МКР Екзамен
45 15 40

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

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

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

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

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

За кожне заняття запізнення з поданням лабораторної роботи до захисту від встановленого терміну оцінка знижується на 1 бал.

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

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

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

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

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

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

– за виконання творчих робіт з кредитного модуля (наприклад, участь у факультетських та інститутських олімпіадах з навчальних дисциплін, участь у конкурсах робіт, підготовка оглядів наукових праць тощо); за активну роботу на лекції (питання, доповнення, зауваження за темою лекції, коли лектор пропонує студентам задати свої питання) 1-2 бали, але в сумі не більше 10;

Календарний контроль

Календарний контроль базується на поточній рейтинговій оцінці. Умовою позитивної атестації є значення поточного рейтингу студента не менше 50% від максимально можливого на час атестації. Бал, необхідний для отримання позитивного календарного контролю доводиться до відома студентів викладачем не пізніше ніж за 2 тижні до початку календарного контролю.

Форма семестрового контролю – екзамен

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

Екзамен містить дві складові: теоретичну та практичну. Теоретична складова направлена на перевірку набутих в результаті вивчення освітнього компонента знань студентів у вигляді тестування за лекційним матеріалом семестру. Кожне тестування містить 2 теоретичних питання. Максимальна кількість балів за тестування складає 2 питаня * 10 балів = 20 балів. Практична складова передбачає перевірку набутими студентами умінь проектувати діаграми, використовувати паттерни, та реалізувати каркас програмної ситеми по діаграмам UML. Максимальна кількість балів практичну частину складає 20 балів.

Критерії оцінювання теоретичної складової

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

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

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

неповна відповідь (менш ніж 60% потрібної інформації) та значні помилки – 0-4 балів.

Критерії оцінювання практичної складової

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

  • Невірно вбираний паттерн, але діаграма класів з ним виглядає логічною та побудовані інші діаграми – 7-9 балів;

  • Паттерн не використано, але розроблені інші діаграми з незначними помилками – 4-6 балів;

  • Патерн не використано, діаграми не розроблені, або розроблені частково – 0-3 балів;

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

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

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

Складено доцент, к.т.н., Амонс Олександр Анатолійович

Ухвалено кафедрою ICT (протокол 21 від 29.06.2023.)

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