Моделювання та аналіз програмного забезпечення
Спеціальність: Інженерія програмного забезпечення
Код дисципліни: 6.121.00.O.025
Кількість кредитів: 5.00
Кафедра: Програмне забезпечення
Лектор: Сердюк П.В.
Семестр: 4 семестр
Форма навчання: денна
Завдання: Загальні компетентності:
ІНТ - Здатність розв’язувати складні спеціалізовані завдання або практичні проблеми інженерії програмного забезпечення, що характеризуються комплексністю та невизначеністю умов, із застосуванням теорій та методів інформаційних технологій.
Спеціальні компетентності:
CК2 – Здатність приймати участь у проектуванні програмного забезпечення, включаючи проведення моделювання (формальний опис) його структури, поведінки та процесів функціонування
CК3 – Здатність розробляти архітектури, модулі та компоненти програмних систем.
CК8 - Здатність застосовувати і розвивати фундаментальні і міждисциплінарні знання для успішного розв’язання завдань інженерії програмного забезпечення,
CК 13 - Здатність обґрунтовано обирати та освоювати інструментарій з розробки та супроводження програмного забезпечення
Результати навчання: В результаті вивчення дисципліни, фахівець повинен знати:
• особливості моделювання архітектури програмного забезпечення різного цільового призначення;
• мову моделювання UML;
• твірні, структурні і поведінкові шаблона проектування GOF;
• парадигми мов програмування, основи теорії компіляторів;
• сучасні тенденції у області моделювання програмного забезпечення.
Підготовлений фахівець повинен вміти:
• застосовувати на практиці елементи мову моделювання програмного забезпечення UML, розробляти діаграми класів, послідовностей, і т.д.
• застосовувати на практиці шаблони проектування у складних задачах проектування.
Необхідні обов'язкові попередні та супутні навчальні дисципліни: • Об’єктно-орієнтоване програмування
• Бази даних
• Аналіз вимог до програмного забезпечення
Короткий зміст навчальної програми: Парадигми мов програмування, Основи теорії компіляторів, Вступ до моделювання програмного забезпечення, Моделювання класів, їх взаємодії та поведінки об’єктів, Проектування архітектури програмної системи, Антишаблони проектування, шаблони проектування GOF.
Опис: Тема 1. Вступ до моделювання програмного забезпечення. Основи уніфікованоїмови моделювання UML: загальна характеристика UML, архітектурний базис UML, правила і загальні механізми мови UML. Основи моделювання поведінки системи. Попередній аналіз системи. Преценденти використання системи, діаграма прецендентів (Use case diagram). Організація та специфікація прецендентів, діаграма діяльності.
Тема 2. Моделювання класів, їх взаємодії та поведінки об’єктів. Зображення класу, асоціації між класами, агрегація та композиція між класами, узагальнення класів. Діаграма послідовностей, діаграма кооперацій, асоціації між класами, агрегація та композиція між класами, узагальнення класів, діаграма станів.
Тема 3. Проектування архітектури програмної системи. Загальні положення проектування архітектури, діаграма компонентів, діаграма розміщення. Інші UML –діаграми: діаграма станів, діаграма кооперацій, та ін.
Тема 4. Основні архітектурні моделі. Архітектури: модель – вигляд – презентація, модель – вигляд – контролер. Багаторівневі архітектура: база даних, бізнес-логіка, вигляд. Роль фасадів у багаторівневій архітектурі. Архітектура розподіленого програмного забезпечення: SOA, Peer-to-Peer. Моделі архітекур MVC, MVP та MVVM.
Тема 5. Антишаблони проектування. Типові діагностики визначення неправильного моделювання. Методологічні та програмні антишаблони: God object, Base bean, Poltergeist, Gold hammer, та ін.
Тема 6. Вступ у шаблони проектування GOF. Твірні шаблони. Шаблони: Абстрактна фабрика (Abstract Factory), Будівник (Builder), Одинак (Singleton), Прототип (Prototype), Фабричний метод (Factory Method).
Тема 7. Стуктурні шаблони. Шаблони: Адаптер (Adapter), Декоратор (Decorator), Замісник (Proxy), Компонувальник (Composite), Міст (Bridge), Легковаговик (Flyweight), Фасад (Facade).
Тема 8. Поведінкові шаблони. Шаблони: Відвідувач (Visitor), Ітератор (Iterator), Команда (Command), Ланцюжок відповідальностей (Chain of Responsibility), Посередник (Mediator), Спостерігач (Observer), Стан (State), Стратегія (Strategy), Знімок (Memento), Шаблонний метод (Template Method).
Методи та критерії оцінювання: 1) Захист лабораторних робіт включає демонстрацію програм, створених за індивідуальним варіантом, оформлення письмових звітів до лабораторних робіт.
2) Усне опитування відбувається на лабораторних заняттях та під час здачі екзамену. Опитування здійснюється за питаннями зі сформованих списків до кожної лабораторної роботи та екзамену.
3) Тестування відбувається у ВНС під час контрольного заходу (поточного опитування) та під час екзамену.
4) Екзамен складається з письмової компоненти (тест) та усної компоненти (індивідуальне опитування).
Критерії оцінювання результатів навчання: Екзамен 55 балів, лабораторні 45 балів.
Порядок та критерії виставляння балів та оцінок:
Протягом семестру передбачено проведення виконання 8 лабораторних робіт. Студенти, які захистили усі лабораторні роботи під час семестру - допускаються до екзамену. Перша робота стосується системи контролю версій, наступні 3 роботи стосуються навчання мови C#, 4-8 лабораторна стосується моделювання та аналізу проекту за допомогою шаблонів та мови проектування UML.
Максимальні оцінки за лабораторні роботи виставляються при вчасному та успішному виконанні та захисту робіт, який включає в себе:
• написання програм мовою програмування C# та демонстрація їх роботи для різних вхідних даних,
• відповіді на питання про роботу програми,
• модифікація програми (на вимогу викладача для підтвердження самостійності виконання роботи),
• відповіді на питання викладача за темою роботи та супутніх питань по відповідній теорії.
У зв’язку з воєнним станом в Україні, графік захистів є гнучким для студентів.
Порядок та критерії виставляння балів та оцінок: 100–88 балів – («відмінно») виставляється за високий рівень знань (допускаються деякі неточності) навчального матеріалу компонента, що міститься в основних і додаткових рекомендованих літературних джерелах, вміння аналізувати явища, які вивчаються, у їхньому взаємозв’язку і роз витку, чітко, лаконічно, логічно, послідовно відповідати на поставлені запитання, вміння застосовувати теоретичні положення під час розв’язання практичних задач; 87–71 бал – («добре») виставляється за загалом правильне розуміння навчального матеріалу компонента, включаючи розрахунки , аргументовані відповіді на поставлені запитання, які, однак, містять певні (неістотні) недоліки, за вміння застосовувати теоретичні положення під час розв’язання практичних задач; 70 – 50 балів – («задовільно») виставляється за слабкі знання навчального матеріалу компонента, неточні або мало аргументовані відповіді, з порушенням послідовності викладення, за слабке застосування теоретичних положень під час розв’язання практичних задач; 49–26 балів – («не атестований» з можливістю повторного складання семестрового контролю) виставляється за незнання значної частини навчального матеріалу компонента, істотні помилки у відповідях на запитання, невміння застосувати теоретичні положення під час розв’язання практичних задач; 25–00 балів – («незадовільно» з обов’язковим повторним вивченням) виставляється за незнання значної частини навчального матеріалу компонента, істотні помилки у відповідях на запитання, невміння орієнтуватися під час розв’язання практичних задач, незнання основних фундаментальних положень.
Рекомендована література: 1. Крэг Ларман. Применение UML 2.0 и шаблонов проектирования. Applying UML and Patterns : An Introduction to Object-Oriented Analysis and Design and Iterative Development. — 3-е изд. — М.: Вильямс, 2006. — 736 с.
2. Джозеф Шмуллер. Освой самостоятельно UML 2 за 24 часа. Практическое руководство. Sams Teach Yourself UML in 24 Hours, Complete Starter Kit. — М.: Вильямс, 2005. — 416 с.
3. Грейди Буч, Джеймс Рамбо, Айвар Джекобсон. Язык UML. Руководство пользователя. The Unified Modeling Language user guide. — 2-е изд. — М., СПб.: ДМК Пресс, Питер, 2004. — 432 с.
4. Буч Г., Якобсон А., Рамбо Дж. UML. Классика CS. 2-е изд. / Пер. с англ.; Под общей редакцией проф. С. Орлова — СПб.: Питер, 2006. — 736 с.
Уніфікований додаток: Національний університет «Львівська політехніка» забезпечує реалізацію права осіб з інвалідністю на здобуття вищої освіти. Інклюзивні освітні послуги надає Служба доступності до можливостей навчання «Без обмежень», метою діяльності якої є забезпечення постійного індивідуального супроводу навчального процесу студентів з інвалідністю та хронічними захворюваннями. Важливим інструментом імплементації інклюзивної освітньої політики в Університеті є Програма підвищення кваліфікації науково-педагогічних працівників та навчально-допоміжного персоналу у сфері соціальної інклюзії та інклюзивної освіти. Звертатися за адресою:
вул. Карпінського, 2/4, І-й н.к., кімн. 112
E-mail: nolimits@lpnu.ua
Websites: https://lpnu.ua/nolimits https://lpnu.ua/integration
Академічна доброчесність: Політика щодо академічної доброчесності учасників освітнього процесу формується на основі дотримання принципів академічної доброчесності з урахуванням норм «Положення про академічну доброчесність у Національному університеті «Львівська політехніка» (затверджене вченою радою університету від 20.06.2017 р., протокол № 35).