SWEBOK. Область знаний «Проектирование ПО».�III. Типовые решения
МСПИСТ
13.09.2016 г.
Лекция 10
Типовые решения в проектировании ПО
Кристофер Александер:
Стиль мышления эксперта
Кристофер Александер:
Причины возникновения типовых решений в проектировании ПО
Зачем нужны шаблоны
Определение шаблона (Pattern)
Свойства шаблонов
Иерархия типовых решений
Шаблоны архитектуры ПО
Шаблоны архитектуры ПО (2)
Примеры архитектурных шаблонов
Шаблоны проектирования
Появление паттернов проектирования
Развитие идеи паттернов
Развитие идеи паттернов (2)
Robert C. Martin
President and Chief Executive Officer
Object Mentor
Понятие паттерна проектирования
Описание паттернов
2. Задача описывает ситуацию, в которой можно применять паттерн.
3. Решения задачи проектирования в виде паттерна определяет общие функции каждого элемента дизайна и отношения между ними.
4. Результаты представляют следствия применения паттерна.
Классификация шаблонов �Gamma и др.
Организация каталога шаблонов
Критерии классификации
Классификация по целям паттернов проектирования
Классификация по уровням паттернов проектирования
Сводная таблица�паттернов проектирования
Цель Уровень | Порождающие паттерны | Структурные паттерны | Паттерны поведения |
Класс | Factory Method | Adapter (класса) | Interpreter Template Method |
Объект | Abstract Factory Singleton Prototype Builder | Adapter (объекта) Decorator Proxy Composite Bridge Flyweight Facade | Iterator Command Observer Visitor Mediator State Strategy Memento Chain of Responsibility |
Список паттернов проектирования�(порождающие)
Список паттернов проектирования (структурные )
Список паттернов проектирования (структурные) (2)
Список паттернов проектирования (поведения)
Список паттернов проектирования (поведения) (2)
Список паттернов проектирования (поведения) (3)
Список паттернов проектирования (5)
Список паттернов проектирования (поведения) (4)
Классификация архитектурных стилей Show&Garlan
Архитектура потоков данных
Архитектура каналов и фильтров
Классификация архитектур Show&Garlan
Архитектура независимых компонент
Клиент-серверная архитектура
Шаблон «Фасад»
Архитектура библиотечной системы фильмов и фотографий
Архитектура параллельно взаимодействующих процессов
Шаблон «Наблюдатель»
Архитектура событийно-управляемых систем
Шаблон «State»
Архитектура виртуальных машин
Репозиторные архитектуры
Архитектура набора CASE-средств
Шаблон «Iterator»
Уровневые архитектуры
Эталонная трехслойная модель
Преимущества «расслоения»
М. Фаулер. Архитектура корпоративных программных приложений
• "расслоение" приложения по уровням;
• структурирование логики предметной области;
• разработка пользовательского Web-интерфейса;
• связывание модулей, размещаемых в памяти (в частности, объектов), с реляционной базой данных;
• принципы распределения программных компонентов и данных.
Область знаний «проектирование ПО» в SWEBOK
3.2. Архитектурные стили
Примеры:
3.3. Шаблоны проектирования
Классификации архитектур (архитектурных стилей)