06 Архитектура информационных систем. Паттерны и...

27
Архитектура информационных систем Паттерны и фреймворки

Transcript of 06 Архитектура информационных систем. Паттерны и...

Page 1: 06 Архитектура информационных систем. Паттерны и фреймворки

Архитектура информационных систем

Паттерны и фреймворки

Page 2: 06 Архитектура информационных систем. Паттерны и фреймворки

2

Паттерн (шаблон)

• Набор объектов, организованных определенным образом для решения конкретного класса задач

• Набор абстрактных классов, ориентированных на решение задач, относящихся к определенному домену

Page 3: 06 Архитектура информационных систем. Паттерны и фреймворки

3

Классификация паттернов

• Концептуальные паттерны– Паттерны в терминах предметной области– Относятся к приложению в целом, крупным

подсистемам ИС• Паттерны проектирования– паттерны в терминах разработки программных

систем• Программные паттерны– Паттерны для описания низкоуровневых понятий

Page 4: 06 Архитектура информационных систем. Паттерны и фреймворки

4

Классификация паттернов

• Архитектурный паттерн– Структура программной системы– Определяет состав подсистем, их основные функции и

допустимые способы компоновки• Системный паттерны

– Приложение на верхнем (системной) уровне• Структурный паттерн

– Для разделения и ли объединения элементов приложения• Поведенческий паттерн

– Для передачи управления в системе• Производящий паттерн

– Для создания объектов в систем

Page 5: 06 Архитектура информационных систем. Паттерны и фреймворки

5

Системные паттерны• Модель-Представление-Контроллер

– Model-View-Controller• Сессия, Рабочая нить

– Session, Worker Thread• Обратный вызов

– Callback• Текущие обновления

– Successive Update• Маршрутизатор

– Router• Транзакция

– Transaction

Page 6: 06 Архитектура информационных систем. Паттерны и фреймворки

6

Структурные паттерны

• Адаптер (Adapter)• Мост (Bridge)• Композит (Composite)• Декоратор (Decorator)• Фасад (Facade)• Приспособление (Flyweight)• Полуобъект и протокол (Half-Object Plus

Protocol)• Прокси (Proxy)

Page 7: 06 Архитектура информационных систем. Паттерны и фреймворки

7

Поведенческие паттерны

• Цепочка ответственности (Chain of Responsibility)• Команда (Command)• Интерпретатор (Interpreter)• Итератор (Iterator)• Медиатор (Mediator)• Моментальный снимок (Memento)• Состояние (State)• Посетитель (Visitor)• Метод шаблона (Template Method)

Page 8: 06 Архитектура информационных систем. Паттерны и фреймворки

8

Производящие паттерны

• Абстрактная фабрика– Abstract Factory

• Строитель– Builder

• Метод фабрики– Factory Method

• Прототип– Prototype

• Одиночка– Singleton

Page 9: 06 Архитектура информационных систем. Паттерны и фреймворки

9

Паттерны параллельного программирования

• Однопоточное выполнение• Охраняемая приостановка• Объект блокировки• Отмена• Планировщик• Блокировка чтения/записи• Производитель-потребитель• Двухфазное завершение• Двойная буферизация• Асинхронная обработка• Будущее

Page 10: 06 Архитектура информационных систем. Паттерны и фреймворки

10

Описание паттерна• Название и тип• Назначение• Другие названия• Мотивация (решаемые проблемы)• Условия применения• Структура паттерна в ОО нотации• Используемые объекты и паттерны• Результаты работы• Рекомендации по применению• Пример кода• Пример использования• Родственные паттерны

Page 11: 06 Архитектура информационных систем. Паттерны и фреймворки

11

Антипаттерны

• или ловушки – классы наиболее часто внедряемых плохих решений проблем

• В управлении разработкой• В разработке• В объектно-ориентированном

проектировании• В области программирования• Методологические• Организационные

Самостоятельно

Page 12: 06 Архитектура информационных систем. Паттерны и фреймворки

12

Фреймворки

• Фреймворк (каркас) – набор типовых решений, методик проектирования и классов, которые могут быть использованы для решения множества сходных задач

• Общепринятые архитектурно-структурные решения и подходы к проектированию ИС

Page 13: 06 Архитектура информационных систем. Паттерны и фреймворки

13

Классификация

Page 14: 06 Архитектура информационных систем. Паттерны и фреймворки

14

По месту применения• Инфраструктурные

– Упрощает разработку инфраструктурных элементов– Операционные системы– Внутренне использование

• Уровня промежуточного ПО– Интеграция распределенных приложений и компонентов

• Ориентированные на приложения– Поддержание процесса разработки систем, ориентированных на

конечного пользователя и принадлежащих определенному домену• Архитектурные

– Совокупность соглашений, принципов и практик, используемых для описаний архитектур и принятых применительно к некоторому предметному домену (ISO/IEC 42010)

Page 15: 06 Архитектура информационных систем. Паттерны и фреймворки

15

По способу использования

• Белый ящик– Архитектурные фреймворки– Используется наследование и динамическое связывание– Требуется информация о классах фреймворка

• Черный ящик– Фреймворки, управляемые данными– Композиция компонентов и их параметризация– Проще использовать, сложнее разрабатывать

• Серый ящик– Комбинация белого и черного ящика

Page 16: 06 Архитектура информационных систем. Паттерны и фреймворки

16

По масштабу применения

• Уровень приложения– Полный набор функций– Microsoft Foundation Classes

• Уровень домена– Для приложений, относящихся к определенному

предметному домену• Вспомогательные– Решение частных задач– Управление памятью– Управление файловой системой

Page 17: 06 Архитектура информационных систем. Паттерны и фреймворки

17

Классификация архитектурных фреймворков

Page 18: 06 Архитектура информационных систем. Паттерны и фреймворки

18

Модель Захмана

Page 19: 06 Архитектура информационных систем. Паттерны и фреймворки

19

Модель Захмана

Page 20: 06 Архитектура информационных систем. Паттерны и фреймворки

20

Модель Захмана. Правила заполнения

• Колонки можно менять местами• Нельзя добавлять новые колонки• Нельзя удалять имеющиеся колонки• Каждой колонке соответствует собственная модель, и

она должна быть уникальна• Каждая строка – отдельный вид (представление)• Каждая ячейка уникальна и содержит описание аспекта

реализации системы в виде модели или документа• Заполнение ячеек производится последовательно

«сверху вниз»

Page 21: 06 Архитектура информационных систем. Паттерны и фреймворки

21

Модель Захмана. Плюсы и минусы

• Простота для понимания• Возможность поддержки обсуждений

сложных вопросов• Нейтральность относительно

инструментальных средств• Не описывает поведение системы в

динамике• Отсутствует механизм распространения

изменений

Page 22: 06 Архитектура информационных систем. Паттерны и фреймворки

22

TOGAF

• Детализированный метод и набор поддерживающих инструментов для разработки корпоративной архитектуры

Page 23: 06 Архитектура информационных систем. Паттерны и фреймворки

23

TOGAF. Архитектурные домены• Бизнес-архитектура

– описывает бизнес-процессы, соответствующие целям предприятия• Архитектура приложений

– описывает, как конкретные приложения спроектированы и как они взаимодействуют

• Архитектура данных – описывает организацию хранилищ данных предприятия и способы

доступа к ним• Техническая (технологическая)архитектура

– описывает программную и техническую инфраструктуру, обеспечивающую поддержку и взаимодействие бизнес-приложений

Page 24: 06 Архитектура информационных систем. Паттерны и фреймворки

24

TOGAF. Структура

• Методика, определяющая процесс разработки архитектуры (ADM)

• Руководства и методики проектирования• Фреймворк архитектурного описания и

архитектурные блоки• Эталонные модели, включающие техническую

эталонную модель (TRM) и интегрированную модель информационной инфраструктуры (III-RM)

• Фреймворк, описывающий организацию, структуру организации, персонал, роли и ответственности

Page 25: 06 Архитектура информационных систем. Паттерны и фреймворки

25

TOGAF. Методика ADM• Предварительная фаза• Разработка общего

представления• Разработка бизнес-архитектуры• Разработка архитектуры ИС• Разработка технологической

архитектуры• Возможности и решения• Планирование перехода к новой

архитектуре• Формирование системы

управления реализацией• Управление изменением

архитектуры

Page 26: 06 Архитектура информационных систем. Паттерны и фреймворки

26

Используемые источники

• Архитектура информационных систем: учебник для студ. учреждений высш. проф. образования / Б. Я. Советов, А. И. Водяхо, В.А. Дубенецкий, В.В. Цехановский. – М.: Издательский центр «Академия», 2012. – 288 с.

Page 27: 06 Архитектура информационных систем. Паттерны и фреймворки

27

Используемые источники

• Обзор фреймворка Захмана. Видеодемонстрация от Enterprise Architect. 6 минут

• Welcome to TOGAF® Version 9.1, an Open Group Standard