| № |
Теоретична складова
Назва, перелік питань або анотація лекції |
Годин |
Практична складова
Опис та приклад завдання, а також посилання на методичні матеріали |
Годин |
|
| Тема 1 – Проектування інформаційних систем. Ітеративний, еволюційний та гнучкий процес |
| 1 |
Об'єктно-орієнтовний аналіз |
2 |
Створення програмного модуля на основі типів зв'язків між сутностями один-до-одного, один-до-багатьох, багато-до-багатьох. Створення класів моделей за допомогою навігаційних властивостей. |
2 |
|
| 2 |
UML |
|
Створення програмного модуля на основі моделі реляційних таблиць. Створення класів моделей за допомогою використання зовнішніх ключів. |
2 |
|
| 3 |
Уніфікований процес. Ітеративність та гнучкість уніфікованого процесу. |
|
|
|
|
| Тема 2 – Модель предметної галузі |
| 4 |
Модель предметної галузі. Побудова моделі предметної галузі: визначення концептуальних класів, визначення атрибутів та асоціацій. |
2 |
Скласти словник термінів з атрибутами: синоніми, опис, формат (тип, довжина, одиниці виміру), взаємозв'язок з іншими елементами, діапазон значень, правила перевірки коректності. Скласти модель предметної галузі, повязаної з елементом словника термінів. Створення програмного модуля на основі словника термінів з урахуванням того, що атрибути словника термінів можуть стати класом, властивістю, типом властивості в залежності від предметної галузі. |
2 |
|
| 5 |
Концептуальні класи. Визначення концептуальних класів методом виділення іменників з опису прецедентів та іншими методами. |
|
Створення програмного модуля на основі моделі предметної галузі. |
2 |
|
| 6 |
Асоціації і атрибути. Визначення асоціацій та атрибутів методом виділення іменників з опису прецедентів та іншими методами, а також шляхом урахуванням зв’язків між сутностями. |
|
|
|
|
| 7 |
Агрегація і композиція |
|
|
|
|
| 8 |
Словник термінів |
|
|
|
|
| Тема 3 – Модель прецедентів |
| 9 |
Опис прецедентів. Ролі (акторів), типи прецедентів (основні, розширення, включення). |
2 |
Створення програмного модуля на основі високорівневих властивостей системи. Реалізація окремих сценаріїв використання як методів класів, або створення шаблонів для контролерів/сервісів. |
2 |
|
| 10 |
Шаблон прецеденту |
|
Створення програмного модуля на основі моделі прецедентів та UML діаграми прецедентів. |
2 |
|
| 11 |
Діаграми прецедентів |
|
|
|
|
| 12 |
Списки високорівневих властивостей системи |
|
|
|
|
| Тема 4 – Моделювання нефункціональних вимог |
| 13 |
Бачення системи |
2 |
Розробка архітектурних підходів з урахуванням нефункціональних вимог. Адаптація попередньо реалізованої функціональності під нефункціональну вимогу. |
2 |
|
| 14 |
Класифікація нефункціональних вимог. Додаткова специфікація. Опис нефункціональних вимог: наскрізна функціональність, безпека, зручність інтерфейсу, надійність, продуктивність, масштабованість, доступність та інших. |
|
Створення програмного модуля на основі документів: бачення системи, контекстної UML діаграми та додаткової специфікації. |
2 |
|
| Тема 5 – Моделювання бізнес-процесів |
| 15 |
Бізнес-правила |
2 |
Створення програмного модуля на основі UML діаграми діяльності. |
2 |
|
| 16 |
Діаграми видів діяльності. |
|
|
|
|
| 17 |
Діаграма станів. Порівняння реалізації процесів за діаграмою діяльності та діаграмою станів. |
2 |
Створення програмного модуля на основі UML діаграми станів. |
2 |
|
| Тема 6 – Багаторівневі застосунки. Моделювання підсистем та частин систем |
| 18 |
Роль багаторівневої архітектури (presentation, business logic, data access). Моделювання архітектури UML-діаграмами. Архітектурні шаблони. Логічна архітектура. Діаграма пакетів. |
2 |
Створення програмного модуля на основі UML діаграми пакетів. Реалізація структури просторів імен. |
2 |
|
| 19 |
Моделювання підсистем та частин систем. Діаграми пакетів, компонентів, кооперації, композитної структури. |
2 |
Створення програмного модуля на основі UML діаграми компонентів. Реалізація компонента у вигляді бібліотеки. Опис структури програмного модуля за допомогою діаграми композитної структури. |
2 |
|
| Тема 7 – Моделювання динамічних аспектів взаємодії об'єктів |
| 18 |
Основи поведінкового моделюваняі систем. Взаємодія об’єктів у часі. |
2 |
Скласти UML діаграму послідовності відповідно до варіанту завдання. Створення програмного модуля на основі складеної діаграми. |
2 |
|
| 19 |
Діаграми послідовності. Системні діаграми послідовності. |
|
|
|
|
| 20 |
Опис операцій. |
|
|
|
|
| 21 |
Діаграма комунікацій. |
2 |
Скласти UML діаграму комунікацій відповідно до варіанту завдання. Створення програмного модуля на основі складеної діаграми. |
2 |
|
| Тема 8 – Моделювання статичних аспектів взаємовідносин класів та об'єктів |
| 22 |
Моделювання статичних аспектів взаємовідносин класів. |
2 |
Створення програмного модуля на основі UML діаграми класів. |
2 |
|
| 23 |
Моделювання статичних аспектів взаємовідносин об'єктів. |
2 |
Створення програмного модуля на основі UML діаграми об'єктів. |
2 |
|
| Тема 9 – Моделювання реалізації інформаційної системи |
| 24 |
Моделювання реалізації інформаційної системи. Діаграми артефактів. Моделювання коду програми. Моделювання виконуємих програм та бібліотек. |
2 |
Створення програмного модуля на основі UML діаграм артефактів, діаграми трасування. |
2 |
|
| 25 |
Діаграма трасування. Моделювання взаємовідносин артефактів проекту. |
|
Створення програмного модуля на основі UML діаграми розгортання. |
2 |
|
| 26 |
Діаграма розгортання. Моделювання розміщення файлів на вузлах системи. |
|
|
|
|
| 27 |
Діаграма прояву. Опис, як фізичні артефакти втілюють (реалізують) логічні компоненти системи. |
|
|
|
|
| 28 |
Діаграма мережі. Моделювання мережевої інфраструктури системи. |
|
|
|
|
| Тема 10 – Представлення архітектури |
| 36 |
Представлення архітектури (набір проекцій моделі системи) (логічне, процесів, розгортання, даних, безпеки, реалізації, розробки, прецедентів). |
2 |
Створення програмного модуля на основі представлень архітектури (логічне, процесів, розгортання, даних, безпеки, реалізації, розробки, прецедентів) відповідно до варіанту завдань. |
2 |
|
| Тема 11 – Основні принципи проектування |
| 29 |
Основні принципи проектування SoC, Modularity, Abstraction, Information Hiding, DRY, KISS. |
2 |
Реалізація принципів проектування SoC, Modularity, Abstraction, Information Hiding. |
2 |
|
| 30 |
Основні принципи проектування DDD, TDD. |
2 |
Реалізація принципів проектування DRY, KISS, DDD, TDD. |
2 |
|
| 31 |
Основні принципи проектування SOLID: SRP, OCP. |
2 |
Реалізація принципів проектування SOLID: SRP, OCP. |
2 |
|
| 32 |
Основні принципи проектування SOLID: LSP, ISP, DIP. |
2 |
Реалізація принципів проектування LSP, ISP. |
2 |
|
|
|
|
Реалізація принципу проектування DIP. |
2 |
|
| Тема 12 – Шаблони проектування |
| 29 |
Шаблони проектування. Породжувальні шаблони проектування. Шаблони проектування: Фабричний метод (інкапсуляція логіки створення об'єктів та забезпечення гнучкості й розширюваності системи), Абстрактна фабрика (узгоджене створення об’єктів, які мають працювати разом, зберігаючи інкапсуляцію та гнучкість архітектури). |
2 |
Створення програмного модуля на основі породжувального шаблону проектування Фабричний метод відповідно до варіанту завдання. |
2 |
|
|
|
|
Створення програмного модуля на основі породжувального шаблону проектування Абстрактна фабрика відповідно до варіанту завдання. |
2 |
|
| 30 |
Породжувальні шаблони проектування Будівельник (ізоляція логіки створення об'єкта, створення різних варіантів одного об'єкта, забезпечення контролю над послідовністю побудови об'єкта), Одинак (забезпечення існування лише одного екземпляра класу, надання глобальної точки доступу), Прототип (створення нових об'єктів шляхом копіювання вже існуючих, замість створення їх "з нуля"). |
2 |
Створення програмного модуля на основі породжувального шаблону проектування Будівельник відповідно до варіанту завдання. |
2 |
|
|
|
|
Створення програмного модуля на основі породжувального шаблону проектування Прототип відповідно до варіанту завдання. |
2 |
|
|
|
|
Створення програмного модуля на основі породжувального шаблону проектування Одинак відповідно до варіанту завдання. |
2 |
|
| 31 |
Структурні шаблони проектування Адаптер (узгодження інтерфейсу одного класу з інтерфейсом, який очікує інший клас), Компонувальник (організація об'єктів у деревоподібні структури), Міст (відокремлення абстракції від її реалізації). |
2 |
Створення програмного модуля на основі структурного шаблону проектування Адаптер, Компонувальник відповідно до варіанту завдання. |
2 |
|
|
|
|
Створення програмного модуля на основі структурного шаблону проектування Міст відповідно до варіанту завдання. |
2 |
|
| 32 |
Структурні шаблони проектування Декоратор (динамічне додавання нової функціональності об'єктам, не змінюючи їхнього коду), Легковаговик (оптимізація використання пам’яті при роботі з великою кількістю однотипних об'єктів), Фасад (спрощення доступу до складних систем, об'єднуючи кілька підсистем або компонентів в один загальний інтерфейс). |
2 |
Створення програмного модуля на основі структурного шаблону проектування Декоратор, Легковаговик відповідно до варіанту завдання. |
2 |
|
|
|
|
Створення програмного модуля на основі структурного шаблону проектування Фасад відповідно до варіанту завдання. |
2 |
|
| 33 |
Поведінкові шаблони проектування Ланцюжок обов'язків (динамічне делегування запиту між обробниками, де кожен обробник вирішує: обробити запит чи передати далі), Ітератор (послідовний обхід складених об'єктів (колекцій) без розкриття їх внутрішньої структури), Посередник (спрощення архітектури шляхом централізації взаємодії між об'єктами, щоб вони не взаємодіяли напряму, а через спеціальний посередник), Відвідувач (додавання нової поведінки до об'єктів без зміни їхніх класів, реалізуючи при цьому принцип відкритості/закритості). |
2 |
Створення програмного модуля на основі поведінкового шаблону проектування Ланцюжок обов'язків, Ітератор, Посередник, Відвідувач відповідно до варіанту завдання. |
2 |
|
| 34 |
Поведінкові шаблони проектування Команда (інкапсуляція запитів як об’єктів, що дозволяє розділити відправника запиту від його виконавця), Знімок (збереження та відновлення стану об’єкта без порушення його інкапсуляції), Стан (зміна поведінки об’єкта залежно від його внутрішнього стану). |
2 |
Створення програмного модуля на основі поведінкового шаблону проектування Команда відповідно до варіанту завдання. |
2 |
|
| 35 |
Поведінкові шаблони проектування Шаблонний метод (визначення скелету алгоритму в базовому класі, але деякі кроки залишити змінними і реалізувати їх у похідних класах), Спостерігач (організація зв’язку “один до багатьох” між об’єктами, коли зміна стану одного об’єкта повинна спричинити автоматичне оновлення всіх залежних об’єктів), Стратегія (інкапсуляція різних варіантів поведінки (алгоритмів) і динамічно вибирати потрібну стратегію під час виконання). |
2 |
Створення програмного модуля на основі поведінкового шаблону проектування Знімок, Стан відповідно до варіанту завдання. |
2 |
|
|
|
|
Створення програмного модуля на основі поведінкового шаблону проектування Шаблонний метод відповідно до варіанту завдання. |
2 |
|
|
|
|
Створення програмного модуля на основі поведінкового шаблону проектування Спостерігач відповідно до варіанту завдання. |
2 |
|
|
|
|
Створення програмного модуля на основі поведінкового шаблону проектування Стратегія відповідно до варіанту завдання. |
2 |
|