06 Архитектура информационных систем. Паттерны и...
-
Upload
edward-galiaskarov -
Category
Education
-
view
860 -
download
9
Transcript of 06 Архитектура информационных систем. Паттерны и...
Архитектура информационных систем
Паттерны и фреймворки
2
Паттерн (шаблон)
• Набор объектов, организованных определенным образом для решения конкретного класса задач
• Набор абстрактных классов, ориентированных на решение задач, относящихся к определенному домену
3
Классификация паттернов
• Концептуальные паттерны– Паттерны в терминах предметной области– Относятся к приложению в целом, крупным
подсистемам ИС• Паттерны проектирования– паттерны в терминах разработки программных
систем• Программные паттерны– Паттерны для описания низкоуровневых понятий
4
Классификация паттернов
• Архитектурный паттерн– Структура программной системы– Определяет состав подсистем, их основные функции и
допустимые способы компоновки• Системный паттерны
– Приложение на верхнем (системной) уровне• Структурный паттерн
– Для разделения и ли объединения элементов приложения• Поведенческий паттерн
– Для передачи управления в системе• Производящий паттерн
– Для создания объектов в систем
5
Системные паттерны• Модель-Представление-Контроллер
– Model-View-Controller• Сессия, Рабочая нить
– Session, Worker Thread• Обратный вызов
– Callback• Текущие обновления
– Successive Update• Маршрутизатор
– Router• Транзакция
– Transaction
6
Структурные паттерны
• Адаптер (Adapter)• Мост (Bridge)• Композит (Composite)• Декоратор (Decorator)• Фасад (Facade)• Приспособление (Flyweight)• Полуобъект и протокол (Half-Object Plus
Protocol)• Прокси (Proxy)
7
Поведенческие паттерны
• Цепочка ответственности (Chain of Responsibility)• Команда (Command)• Интерпретатор (Interpreter)• Итератор (Iterator)• Медиатор (Mediator)• Моментальный снимок (Memento)• Состояние (State)• Посетитель (Visitor)• Метод шаблона (Template Method)
8
Производящие паттерны
• Абстрактная фабрика– Abstract Factory
• Строитель– Builder
• Метод фабрики– Factory Method
• Прототип– Prototype
• Одиночка– Singleton
9
Паттерны параллельного программирования
• Однопоточное выполнение• Охраняемая приостановка• Объект блокировки• Отмена• Планировщик• Блокировка чтения/записи• Производитель-потребитель• Двухфазное завершение• Двойная буферизация• Асинхронная обработка• Будущее
10
Описание паттерна• Название и тип• Назначение• Другие названия• Мотивация (решаемые проблемы)• Условия применения• Структура паттерна в ОО нотации• Используемые объекты и паттерны• Результаты работы• Рекомендации по применению• Пример кода• Пример использования• Родственные паттерны
11
Антипаттерны
• или ловушки – классы наиболее часто внедряемых плохих решений проблем
• В управлении разработкой• В разработке• В объектно-ориентированном
проектировании• В области программирования• Методологические• Организационные
Самостоятельно
12
Фреймворки
• Фреймворк (каркас) – набор типовых решений, методик проектирования и классов, которые могут быть использованы для решения множества сходных задач
• Общепринятые архитектурно-структурные решения и подходы к проектированию ИС
13
Классификация
14
По месту применения• Инфраструктурные
– Упрощает разработку инфраструктурных элементов– Операционные системы– Внутренне использование
• Уровня промежуточного ПО– Интеграция распределенных приложений и компонентов
• Ориентированные на приложения– Поддержание процесса разработки систем, ориентированных на
конечного пользователя и принадлежащих определенному домену• Архитектурные
– Совокупность соглашений, принципов и практик, используемых для описаний архитектур и принятых применительно к некоторому предметному домену (ISO/IEC 42010)
15
По способу использования
• Белый ящик– Архитектурные фреймворки– Используется наследование и динамическое связывание– Требуется информация о классах фреймворка
• Черный ящик– Фреймворки, управляемые данными– Композиция компонентов и их параметризация– Проще использовать, сложнее разрабатывать
• Серый ящик– Комбинация белого и черного ящика
16
По масштабу применения
• Уровень приложения– Полный набор функций– Microsoft Foundation Classes
• Уровень домена– Для приложений, относящихся к определенному
предметному домену• Вспомогательные– Решение частных задач– Управление памятью– Управление файловой системой
17
Классификация архитектурных фреймворков
18
Модель Захмана
19
Модель Захмана
20
Модель Захмана. Правила заполнения
• Колонки можно менять местами• Нельзя добавлять новые колонки• Нельзя удалять имеющиеся колонки• Каждой колонке соответствует собственная модель, и
она должна быть уникальна• Каждая строка – отдельный вид (представление)• Каждая ячейка уникальна и содержит описание аспекта
реализации системы в виде модели или документа• Заполнение ячеек производится последовательно
«сверху вниз»
21
Модель Захмана. Плюсы и минусы
• Простота для понимания• Возможность поддержки обсуждений
сложных вопросов• Нейтральность относительно
инструментальных средств• Не описывает поведение системы в
динамике• Отсутствует механизм распространения
изменений
22
TOGAF
• Детализированный метод и набор поддерживающих инструментов для разработки корпоративной архитектуры
23
TOGAF. Архитектурные домены• Бизнес-архитектура
– описывает бизнес-процессы, соответствующие целям предприятия• Архитектура приложений
– описывает, как конкретные приложения спроектированы и как они взаимодействуют
• Архитектура данных – описывает организацию хранилищ данных предприятия и способы
доступа к ним• Техническая (технологическая)архитектура
– описывает программную и техническую инфраструктуру, обеспечивающую поддержку и взаимодействие бизнес-приложений
24
TOGAF. Структура
• Методика, определяющая процесс разработки архитектуры (ADM)
• Руководства и методики проектирования• Фреймворк архитектурного описания и
архитектурные блоки• Эталонные модели, включающие техническую
эталонную модель (TRM) и интегрированную модель информационной инфраструктуры (III-RM)
• Фреймворк, описывающий организацию, структуру организации, персонал, роли и ответственности
25
TOGAF. Методика ADM• Предварительная фаза• Разработка общего
представления• Разработка бизнес-архитектуры• Разработка архитектуры ИС• Разработка технологической
архитектуры• Возможности и решения• Планирование перехода к новой
архитектуре• Формирование системы
управления реализацией• Управление изменением
архитектуры
26
Используемые источники
• Архитектура информационных систем: учебник для студ. учреждений высш. проф. образования / Б. Я. Советов, А. И. Водяхо, В.А. Дубенецкий, В.В. Цехановский. – М.: Издательский центр «Академия», 2012. – 288 с.
27
Используемые источники
• Обзор фреймворка Захмана. Видеодемонстрация от Enterprise Architect. 6 минут
• Welcome to TOGAF® Version 9.1, an Open Group Standard