Документування програмного забезпечення та шаблони проєктування

Спеціальність: Системна інженерія (Інтернет речей)
Код дисципліни: 6.122.09.O.032
Кількість кредитів: 5.00
Кафедра: Комп'ютеризовані системи автоматики
Лектор: Іванюк Олег Олексійович
Семестр: 6 семестр
Форма навчання: денна
Мета вивчення дисципліни: Метою викладання дисципліни “Документування програмного забезпечення та шаблони проектування” є отримання необхідних знань про основні підходи побудови архітектури програмного забезпечення, її документування, характеристик та особливостей, а також вмінні застосовувати ці підходи на практиці; в ознайомленні з шаблонами проектування та розумінні їх ролі у розвитку системного мислення для проектування програмного забезпечення.
Завдання: Вивчення дисципліни передбачає набуття теоретичних знань щодо сучасних підходів створення та документування програмного забезпечення, вивчення мови моделювання UML та вміння використовувати її для візуалізації проектування програмного забезпечення, оцінки зусиль на розробку програмного забезпечення. Вивчення навчальної дисципліни передбачає формування у студентів необхідних компетентностей: Інтегральна компетентність ІНТ - здатність розв’язувати складні спеціалізовані задачі та практичні проблеми у галузі комп’ютерних наук або у процесі навчання, що передбачає застосування теорій та методів інформаційних технологій і характеризується комплексністю та невизначеністю умов. загальні компетентності: ЗК2. Здатність застосовувати знання у практичних ситуаціях. ЗК3. Знання та розуміння предметної області та розуміння професійної діяльності. ЗК9. Здатність працювати в команді. ЗК11. Здатність приймати обґрунтовані рішення. фахові компетентності: ФК10. Здатність застосовувати методології, технології та інструментальні засоби для управління процесами життєвого циклу інформаційних і програмних систем, продуктів і сервісів інформаційних технологій відповідно до вимог замовника
Результати навчання: У результаті вивчення навчальної дисципліни студент повинен бути здатним продемонструвати такі результати навчання: знати: підходи у документуванні програмного забезпечення; уніфіковану мову моделювання та її роль у документуванні програмного забезпечення; методи проектування та розробки програмного забезпечення; підходи у оцінці зусиль на реалізацію розробки програмного забезпечення; вміти: проектувати архітектуру та дизайн програмного забезпечення з використанням засобів візуального моделювання та документування; усвідомлено застосовувати методики проектування дизайну програмного забезпечення; уміти здійснювати пошук інформації в різних джерелах для розв’язання задач спеціальності; уміти системно мислити та застосовувати творчі здібності до формування принципово нових ідей; уміти аналізувати вимоги, розробляти архітектуру, проектувати та реалізовувати програмне забезпечення для збору, зберігання та аналізу даних;
Необхідні обов'язкові попередні та супутні навчальні дисципліни: Попередні навчальні дисципліни: Системний аналіз, Веб-технології та веб-дизайн,Хмарні технології. Супутні навчальні дисципліни: Проектування та конструювання платформ інтернету речей
Короткий зміст навчальної програми: На сьогодні виробничі потреби вимагають від фахівців з комп’ютерних наук поглиблених знань у сфері новітніх інформаційних технологій. Широкі можливості комп’ютеризованих засобів збору, опрацювання та представлення необхідної інформації, дають можливість зробити більш ефективним моделювання інформаційних процесів. Навчальна дисципліна є інструментальною основою для виконання аналітичної частини подальших дисциплін. Навчальна дисципліна СК 27. Документування програмного забезпечення та шаблони проектування відноситься до циклу професійної підготовки навчальної програми бакалавра за спеціальністю 122 Комп’ютерні науки (спеціалізація Системна інженерія (інтернет речей)).
Опис: 1. АРХІТЕКТУРА ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ Що таке архітектура програмного забезпечення. Важливість архітектури. Різні види та класифікація архітектури. Моделі та зразки проектування архітектури, використання моделей. Процедура вибору архітектури та її документування. Для чого документувати архітектуру? Для кого документується архітектура? Принципи розробки якісної документації. 2. УНІФІКОВАНА МОВА МОДЕЛЮВАННЯ (UML) Уніфікована мова моделювання як загально прийнятий підхід для забезпечення стандартного способу візуалізації дизайну системи в галузі програмного забезпечення. Базові елементи UML та типи діаграм. Використання UML в документуванні програмного забезпечення на прикладі різних типів діаграм: діаграм класів, послідовностей, прецедентів (use case), діаграма станів, діаграми активностей та ін. 3. ШАБЛОНИ В РОЗРОБЦІ ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ. Визначення та класифікація шаблонів: архітектурні, шаблони інтеграцій підприємств (enterprise), шаблони проектування (design). Шаблони проектування в нотації мови UML. Різниця між принципами та шаблонами проектування об’єктно-орієнтованого дизайну. 4. ШАБЛОН ІНВЕРСІЯ УПРАВЛІННЯ Шаблони інверсія управління (англ. Inversion of Control, IoC) та впровадження залежностей (англ. dependency injection). Використання шаблонів в аплікації з використанням Spring Framework 5. ШАБЛОН МОДЕЛЬ-ПРЕДСТАВЛЕННЯ-КОНТРОЛЕР (MVC - MODEL-VIEW-CONTROLLER). Основні елементи шаблону їх роль та значення. Розгляд реалізації MVC на прикладі Java Spring MVC Framework. 6. ЗАСТОСУВАННЯ REST ПІДХОДУ ДО ПОБУДОВИ АПЛІКАЦІЙ. Основні принципи та підходи у побудові REST архітектури. Поняття ресурсу у REST та використання HTTP протоколу, CRUD операції та REST. Основні практики імплементації та використання REST API. 7. ШАБЛОНИ ПРОЕКТУВАННЯ ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ GoF (Gang of Four) шаблони: твірні шаблони (Creational Patterns), шаблони поведінки (Behavioral patterns), структурні шаблони (Structural patterns). Застосування GoF шаблонів на практиці та документування з використанням Java. Розгляд GRASP- шаблонів 8. ПРИНЦИПИ ТА СТРАТЕГІЇ ОБ’ЄКТНО-ОРІЄНТОВАНОГО ДИЗАЙНУ. Поняття об’єктно-орієнтованого дизайну (OOD), його роль та місце у розробці програмного забезпечення. Основні концепції об’єктно-орієнтованого дизайну. Різниця між об’єктно-орієнтованим та архітектурним дизайном. Роль об’єктно орієнтованих концепцій у об’єктно орієнтованому дизайні. Загальний розгляд SOLID, YAGNI, KISS, DRY принципів та їх застосування при розробці програмного забезпечення. Детальний розгляд SOLID принципів у проектуванні. 9. АРХІТЕКТУРНІ ШАБЛОНИ Архітектурні шаблони. Багаторівнева архітектура. Подієва архітектура (event-driven architecture). Клієнт-серверна модель (Client-server). Сервіс-орієнтована архітектура. Мікросервісна архітектура. Пайпи і фільтри (Pipes and filters). Архітектурні антишаблони. Зв'язок між шаблонами і тактиками.
Методи та критерії оцінювання: 1. Лабораторні роботи. 2. Контрольні роботи. 3. Екзамен.
Критерії оцінювання результатів навчання: Поточний контроль + Екзаменаційний контроль
Порядок та критерії виставляння балів та оцінок: 100–88 балів – («відмінно») виставляється за високий рівень знань (допускаються деякі неточності) навчального матеріалу компонента, що міститься в основних і додаткових рекомендованих літературних джерелах, вміння аналізувати явища, які вивчаються, у їхньому взаємозв’язку і роз витку, чітко, лаконічно, логічно, послідовно відповідати на поставлені запитання, вміння застосовувати теоретичні положення під час розв’язання практичних задач; 87–71 бал – («добре») виставляється за загалом правильне розуміння навчального матеріалу компонента, включаючи розрахунки , аргументовані відповіді на поставлені запитання, які, однак, містять певні (неістотні) недоліки, за вміння застосовувати теоретичні положення під час розв’язання практичних задач; 70 – 50 балів – («задовільно») виставляється за слабкі знання навчального матеріалу компонента, неточні або мало аргументовані відповіді, з порушенням послідовності викладення, за слабке застосування теоретичних положень під час розв’язання практичних задач; 49–26 балів – («не атестований» з можливістю повторного складання семестрового контролю) виставляється за незнання значної частини навчального матеріалу компонента, істотні помилки у відповідях на запитання, невміння застосувати теоретичні положення під час розв’язання практичних задач; 25–00 балів – («незадовільно» з обов’язковим повторним вивченням) виставляється за незнання значної частини навчального матеріалу компонента, істотні помилки у відповідях на запитання, невміння орієнтуватися під час розв’язання практичних задач, незнання основних фундаментальних положень.
Рекомендована література: 1. Len Bass, Paul Clements, Rick Kazman Software Architecture In Practice 3rd Edition. - Addison-Wesley Professional. – 2012 – 640 p. 2. Documenting Software Architectures Views and Beyond 2nd Edition / [P. Clemens, F. Bachmann, L. Bass and others.]. – Addison-Wesley Professional – 2010. – 592 p. 3. Nick Rozanski, Eoin Woods Software Systems Architecture: Working With Stakeholders Using Viewpoints and Perspectives (2nd Edition). – Addison-Wesley Professional. – 2011. – 704 p. 4. Practical Software Architecture: Moving from System Context to Deployment. Front Cover and Tilak Mitra - IBM Press - 2015 - 304 pages 5. Head First Design Patterns: A Brain-Friendly Guide. Front Cover, Eric Freeman, Elisabeth Robson, Bert Bates, Kathy Sierra - "O'Reilly Media, Inc." - 2004 - 694 pages 6. AntiPatterns: Refactoring Software, Architectures, and Projects in Crisis. Front Cover, William J. Brown - Wiley - 1998 - 309 pages
Уніфікований додаток: Національний університет «Львівська політехніка» забезпечує реалізацію права осіб з інвалідністю на здобуття вищої освіти. Інклюзивні освітні послуги надає Служба доступності до можливостей навчання «Без обмежень», метою діяльності якої є забезпечення постійного індивідуального супроводу навчального процесу студентів з інвалідністю та хронічними захворюваннями. Важливим інструментом імплементації інклюзивної освітньої політики в Університеті є Програма підвищення кваліфікації науково-педагогічних працівників та навчально-допоміжного персоналу у сфері соціальної інклюзії та інклюзивної освіти. Звертатися за адресою: вул. Карпінського, 2/4, І-й н.к., кімн. 112 E-mail: nolimits@lpnu.ua Websites: https://lpnu.ua/nolimits https://lpnu.ua/integration
Академічна доброчесність: Політика щодо академічної доброчесності учасників освітнього процесу формується на основі дотримання принципів академічної доброчесності з урахуванням норм «Положення про академічну доброчесність у Національному університеті «Львівська політехніка» (затверджене вченою радою університету від 20.06.2017 р., протокол № 35).