Моделювання програмного забезпечення та патерни проектування
Анотація навчальної дисципліни
Мета дисципліни:
надбання студентами знань з різноманітних методологій моделювання інформаційних систем та розвиток умінь і навичок практичного застосування отриманих знань в практиці розробки програмного забезпечення.
Завдання дисципліни:
● ознайомити з термінологією та ключовими поняттями;
● сформувати комплексне уявлення про основні типи життєвого циклу програмного забезпечення та їх особливості застосування при розробці програмних систем;
● освоїти методи і графічні нотації структурного та об'єктно-орієнтованого підходів до моделювання програмного забезпечення
● опанувати уміннями застосовувати технології та методи моделювання, аналізувати проблеми щодо створення програмного забезпечення, проводити обстеження предметної області, застосовувати ефективні підходи щодо проектування інформаційних систем, веб-сайтів та мобільних додатків;
● сформувати знання та уміння обирати вихідні дані для проектування, керуючись формальними методами опису вимог та моделювання.
Основні результати навчання
ПРН03. Знати основні процеси, фази та ітерації життєвого циклу програмного забезпечення.
ПРН05. Знати і застосовувати відповідні математичні поняття, методи доменного, системного і об’єктно-орієнтованого аналізу та математичного моделювання для розробки програмного забезпечення.
ПРН06. Вміти вибирати та використовувати відповідні задачі методологію створення програмного забезпечення.
ПРН07. Знати і застосовувати на практиці фундаментальні концепції, парадигми і основні принципи функціонування мовних, інструментальних і обчислювальних засобів інженерії програмного забезпечення.
ПРН09. Знати та вміти використовувати методи та засоби збору, формулювання та аналізу вимог до програмного забезпечення.
ПРН10. Проводити передпроєктне обстеження предметної області, системний аналіз об'єкта проектування.
ПРН11. Вибирати вихідні дані для проектування, керуючись формальними методами опису вимог та моделювання.
ПРН12. Застосовувати на практиці ефективні підходи щодо проектування програмного забезпечення.
Тематика та види навчальних занять
1 тиждень
Лекція 1. «Поняття програмної інженерії. Ціль та задачі. Історія розвитку. Методи програмної інженерії».
Практичне заняття 1. «Визначення та опис предметної області».
2 тиждень
Лекція 2. «Огляд структурного та об'єктно-орієнтованого підходів. Моделювання програмного забезпечення. Поняття моделі та моделювання. Моделювання в програмної інженерії. Візуальне моделювання. CASE-засоби».
3 тиждень
Лекція 3. «Життєвий цикл програмного забезпечення. Основні поняття і визначення. Основні процеси життєвого циклу. Розподіл обов'язків між учасниками проекту».
Практичне заняття 2 «Створення діаграм прецедентів».
4 тиждень
Лекція 4. «Каскадна модель. Ітераційна модель. Спіральна модель. Порівняльний аналіз моделей. Основні процеси життєвого циклу. Розподіл обов'язків між учасниками проекту».
5 тиждень
Лекція 5. «Структурний підхід до аналізу та проектуванню інформаційних систем. Методології SADT та IDEF0. Методологія DFD».
Практичне заняття 3 «Створення діаграм класів».
6 тиждень
Лекція 6. «Розробка інформаційної моделі системи. Основи проектування баз даних. Методологія IDEF1X. Розробка поведінкової моделі системи».
7 тиждень
Лекція 7. «Об’єктно - орієнтовний підхід до аналізу і проектуванню інформаційних систем. Основи UML. Структура UML. Нотація, семантика і синтаксис».
Практичне заняття 4 «Створення діаграм діяльності».
8 тиждень
Лекція 8. «Діаграми UML. Модель варіантів використання. Діаграми варіантів використання»
СРС. К.
Виконання модульної контрольної роботи 1.
9 тиждень
Лекція 9. «Модель класів аналізу. Діаграми класів аналізу»
Практичне заняття 5 «Створення діаграм взаємодії та станів».
10 тиждень
Лекція 10. «Діаграми взаємодії та станів. Діаграми автоматів. Діаграми комунікації»
11 тиждень
Лекція 11. Введення в патерни проектування.
Практичне заняття 6 «Створення імітаційних моделей».
12 тиждень
Лекція 12. Породжувальні патерни
13 тиждень
Лекція 13. Структурні патерни.
Практичне заняття 7 Створення діаграм за методологією структурного моделювання IDEF0, DFD та IDEF3.
14 тиждень
Лекція 14. «Поведінкові патерни: Chain of Responsibility, Command, Iterator»
15 тиждень
Лекція 15. «Поведінкові патерни: Memento, Observer, State, Strategy»
Практичне заняття 8 «Реалізація частини системи, яка належить до патерну».
Оцінювання результатів навчання
Оцінювання результатів навчання з дисципліни здійснюється за накопичувальною системою, яка дає можливість здобувачеві протягом семестру отримати максимально 100 балів.
Здобувачі протягом семестру готуються до лекційних, практичних занять, виконують 2 модульні контрольні роботи, РГР.
Для забезпечення оперативного контролю за успішністю та якістю рівня навчальних досягнень здобувачів вищої освіти дисципліна поділяється на два семестрові модулі.
Кожний модуль оцінюється у максимально можливі 50 балів:
Модульна робота складається з теоретичної частини та практичної частини – задач.
Максимальна оцінка за бездоганне виконання модульної контрольної роботи становить 25 балів.
Перша модульна робота складається з:
− Тестових питань 1 рівня (7 тестових питань). Максимальна оцінка за правильну відповідь на кожне питання становить 1 бал.
− Тестових питань 2 рівні (2 тестових питання). Максимальна оцінка за правильну відповідь на перше питання становить 5 балів, на друге – 2 бали.
− Теоретичної частини (1 теоретичне питання). Максимальна оцінка за правильну відповідь становить 2 бали.
− Практичної частини (3 практичних завдання). Максимальна оцінка за правильну відповідь на кожне питання становить 3 бали.
Друга модульна робота складається з:
− Тестової частини 1 рівня (12 тестових питання). Максимальна оцінка за правильну відповідь на кожне питання становить 1 бал.
− Тестової частини 2 рівня (4 тестових питання). Максимальна оцінка за правильну відповідь на кожне питання становить 1,5 бали.
− Практичної частини (1 практичне завдання). Максимальна оцінка за правильну відповідь становить 7 бали.
Накопичувальна частина дисципліни складається з виконання практичних робіт та РГР. Виконання практичних робіт у кожному семестровому модулі оцінюється 13 балами. Оцінка за виконання РГР складає 12 балів.
Максимальна оцінка, яку може отримати здобувач за всі виконані види робіт – 100 балів.
Підсумковим контролем з дисципліни є усний екзамен, білет до якого складається з теоретичної частини (2 запитання) та практичної частини (6 задач). За бездоганну відповідь на кожне теоретичне питання студент отримує – 20 балів. За бездоганне виконання кожного завдання практичної частини студент отримує – 10 балів.
Максимальна оцінка за правильні відповіді на всі питання екзаменаційного білету становить 100 балів.
Семестровий модуль № 1
Практичні заняття 1 – 4. Оцінка за виконання – 13 балів. Термін виконання – 1-8 тиждень.
Розрахунково-графічна робота – 12 балів.
Модульна контрольна робота 1 – 25 балів (8 тиждень). Перескладання можливе протягом 9–11 тижнів за розкладом консультацій.
Семестровий модуль № 2
Практичні заняття 5 – 8. Оцінка за виконання – 13 балів. Термін виконання – 9-15 тиждень.
Розрахунково-графічна робота – 12 балів.
Модульна контрольна робота 2 – 25 балів (14 тиждень).
Посилання на рекомендовані джерела
1. Левус Є.В., Мельник Н.Б. Вступ до інженерії програмного забезпечення: навч. посіб.− Л.:Видав. Львівської політехніки, 2018. – 246с.
2. Bhuvan Unhelkar. Software Engineering with UML 1st Edition. CRC Press, 2021 – 406 p.
3. Grady Booch. Unified Modeling Language User Guide, The (Addison-Wesley Object Technology Series) 2nd Edition. Addison-Wesley Professional, 2019 – 504 p.
4. Dmitri Nesteruk. Design Patterns in Modern C++: Reusable Approaches for Object-Oriented Software Design 1st ed. Edition. Apress, 2018 – 292 p.
Методична література
1. Методичні вказівки до практичних робіт з дисципліни «Моделювання та аналіз програмного забезпечення» для іноземних студентів спеціальності 121 - «Інженерія програмного забезпечення» / Уклад.: Оніщенко Т.В. Одеса: ОНПУ, 2019. - 45 с.
2. Конспект лекцій з дисципліни «Моделювання програмного забезпечення та патерни проектування» для студентів спеціальності 121 – Інженерія програмного забезпечення / Укл.: Т. В. Оніщенко. – Одеса: ОНПУ, 2021. – 271 с.
Додаткова література
2. Dmitri Nesteruk. Design Patterns in Modern C++20: Reusable Approaches for Object-Oriented Software Design 2nd ed. Edition. Apress, 2021 – 355 p.
3. Vaskaran Sarcar. Java Design Patterns: A Hands-On Experience with Real-World Examples 2nd ed. Edition. Apress, 2018 – 533 p.