DEV-DP100. Введение в шаблоны проектирования
Длительность дисциплины: 32 ак.ч.
Аннотация
Целью реализации программы модуля «DEV-DP100. Введение в шаблоны проектирования» является изучение шаблонов проектирования и получения навыков их применения в процессе разработки программного обеспечения.
Знания и умения, полученные в результате изучения
В результате освоения программы обучающийся должен уметь:
• выбирать шаблоны проектирования на основе анализа поставленной задачи;
• оценивать позитивные и возможные негативные последствия применения шаблона проектировании в реализации конкретного приложения или системы.
В результате освоения программы обучающийся должен знать:
• основные шаблоны проектирования и условия их применения;
• структуры и особенности реализации основных шаблонов проектирования.
В результате освоения программы обучающийся должен приобрести практический опыт:
• реализации программного обеспечения с использованием шаблонов проектирования.
Содержание дисциплины
Тема 1. Понятие о шаблонах проектирования
1.1 Введение в шаблоны проектирования. Общие свойства и структура шаблонов
Определение шаблона проектирования.
Назначение и роль шаблонов проектирования в процессе разработки программного обеспечения.
Классификация шаблонов.
Классические шаблоны GoF.
Общие свойства шаблонов проектирования.
Структура шаблонов.
Общепринятое описание шаблонов.
1.2 Общий подход к проектированию на основе шаблонов
Общие принципы объектно-ориентированного анализа.
Основы языка UML.
Представление шаблонов с использованием нотации языка UML.
Разработка объектной модели предметной области.
Разработка поведенческой модели предметной области.
Выявление возможности применения шаблона.
Практические занятия
1. Объектно-ориентированный анализ задачи.
Тема 2. Основные шаблоны проектирования
2.1 Общие шаблоны проектирования.
Назначение и особенности применения общих шаблонов проектирования.
2.2 Шаблон Delegation
Общее описание шаблона.
Решаемые задачи.
Последствия применения.
Реализация шаблона.
Примеры применения.
2.3 Шаблоны Interface
Общее описание шаблона.
Решаемые задачи.
Последствия применения.
Реализация шаблона.
Примеры применения.
2.4 Шаблон Abstract Superclass
Общее описание шаблона.
Решаемые задачи.
Последствия применения.
Реализация шаблона.
Примеры применения.
2.5 Шаблоны Marker Interface и Immutable
Описание шаблона Marker Interface и его применения.
Описание и применение шаблона Immutable.
Практические занятия
1. Применение общих шаблонов в проектировании.
2. Реализация общих шаблонов в исходном коде.
Тема 3. Структурные шаблоны
3.1 Обзор структурных шаблонов
Назначение структурных шаблонов.
Общие свойства структурных шаблонов.
3.2 Шаблон Adapter
Общее описание шаблона.
Решаемые задачи.
Последствия применения.
Реализация шаблона.
Примеры применения.
3.3 Шаблон Proxy
Общее описание шаблона.
Решаемые задачи.
Последствия применения.
Реализация шаблона.
Примеры применения.
3.4 Шаблон Decorator
Общее описание шаблона.
Решаемые задачи.
Последствия применения.
Реализация шаблона.
Примеры применения.
3.5 Шаблон Façade
Общее описание шаблона.
Решаемые задачи.
Последствия применения.
Реализация шаблона.
Примеры применения.
3.6 Шаблон Composite
Общее описание шаблона.
Решаемые задачи.
Последствия применения.
Реализация шаблона.
Примеры применения.
3.7 Шаблон Bridge
Общее описание шаблона.
Решаемые задачи.
Последствия применения.
Реализация шаблона.
Примеры применения.
3.8 Шаблон Flyweight
Общее описание шаблона.
Решаемые задачи.
Последствия применения.
Реализация шаблона.
Примеры применения.
Практические занятия
1. Определение различий в реализации шаблонов Adapter, Decorator и Proxy.
2. Реализация шаблонов в приложении.
Тема 4. Порождающие шаблоны
4.1 Общий обзор порождающих шаблонов
Назначение порождающих шаблонов.
Общие свойства порождающих шаблонов.
Особенности применения.
4.2 Шаблон Factory method
Общее описание шаблона.
Решаемые задачи.
Последствия применения.
Реализация шаблона.
Примеры применения.
4.3 Шаблон Abstract Factory
Общее описание шаблона.
Решаемые задачи.
Последствия применения.
Реализация шаблона.
Примеры применения.
4.4 Шаблон Builder
Общее описание шаблона.
Решаемые задачи.
Последствия применения.
Реализация шаблона.
Примеры применения.
4.5 Шаблон Prototype
Общее описание шаблона.
Решаемые задачи.
Последствия применения.
Реализация шаблона.
Примеры применения.
4.6 Шаблон Syngleton
Общее описание шаблона.
Решаемые задачи.
Последствия применения.
Реализация шаблона.
Примеры применения.
4.7 Шаблон Object Pool
Общее описание шаблона.
Решаемые задачи.
Последствия применения.
Реализация шаблона.
Примеры применения.
Практические занятия
1. Реализация шаблонов Factory method и Abstract Factory.
2. Реализация шаблона Builder.
3. Реализация шаблона Object Pool.
Тема 5. Поведенческие шаблоны
5.1 Шаблон Chain of responsibility
Общее описание шаблона.
Решаемые задачи.
Последствия применения.
Реализация шаблона.
Примеры применения.
5.2 Шаблон Command
Общее описание шаблона.
Решаемые задачи.
Последствия применения.
Реализация шаблона.
Примеры применения.
5.3 Шаблон Iterator
Общее описание шаблона.
Решаемые задачи.
Последствия применения.
Реализация шаблона.
Примеры применения.
5.4 Шаблоны Memento и Mediator
Общее описание шаблона.
Решаемые задачи.
Последствия применения.
Реализация шаблона.
Примеры применения.
5.5 Шаблон State
Общее описание шаблона.
Решаемые задачи.
Последствия применения.
Реализация шаблона.
Примеры применения.
5.6 Шаблон Strategy
Общее описание шаблона.
Решаемые задачи.
Последствия применения.
Реализация шаблона.
Примеры применения.
5.7 Шаблон Observer
Общее описание шаблона.
Решаемые задачи.
Последствия применения.
Реализация шаблона.
Примеры применения.
5.8 Шаблон Visitor
Общее описание шаблона.
Решаемые задачи.
Последствия применения.
Реализация шаблона.
Примеры применения.
Практические занятия
1. Реализация шаблона Chain of Responsibility.
2. Реализация шаблона Observer.
3. Реализация шаблона Visitor.
Тема 6. Промежуточная аттестация
Практические занятия Зачет