Архитектура: что это? Михаил Заборов Москва, 2013.

Презентация:



Advertisements
Похожие презентации
1. Определить последовательность проезда перекрестка
Advertisements


Урок повторения по теме: «Сила». Задание 1 Задание 2.
1 Знаток математики Тренажер Таблица умножения 2 класс Школа 21 века ®м®м.
Рисуем параллелепипед Известно, что параллельная проекция тетраэдра, без учета пунктирных линий, однозначно определяется заданием проекций его вершин (рис.
Развивающая викторина для детей "Самый-самый " Муниципальное общеобразовательное учреждение средняя общеобразовательная школа 7 ст. Беломечётской.
Масштаб 1 : 5000 Приложение 1 к решению Совета депутатов города Новосибирска от _____________ ______.
Школьная форма Презентация для родительского собрания.
Таблица умножения на 8. Разработан: Бычкуновой О.В. г.Красноярск год.
Фрагмент карты градостроительного зонирования территории города Новосибирска Масштаб 1 : 6000 Приложение 7 к решению Совета депутатов города Новосибирска.
Разработал: Учитель химии, биологии высшей квалификационной категории Баженов Алексей Анатольевич.
Фрагмент карты градостроительного зонирования территории города Новосибирска Масштаб 1 : 6000 Приложение 7 к решению Совета депутатов города Новосибирска.
Тем, кто учит математику, Тем, кто учит математике, Тем, кто любит математику, Тем, кто ещё не знает, Что может полюбить математику Посвящается…
Набор игр Создание игровых ситуаций на уроках математики повышает интерес к математике, вносит разнообразие и эмоциональную окраску в учебную работу, снимает.
Проектирование архитектуры ИСО 1. UML 2 Структура определения языка 4.
Урок-обобщение (7 класс – алгебра) МОУ "СОШ 45 г. Чебоксары" Кабуркина М. Н.1.
КОНЦЕПЦИЯ РАЗВИТИЯ ЗДРАВООХРАНЕНИЯ РФ ДО 2020 ГОДА РОССИЯ 2009.
1 Знаток математики Тренажер Таблица умножения 3 класс Школа России Масько Любовь Георгиевна Муниципальное общеобразовательное учреждение средняя общеобразовательная.
Ребусы Свириденковой Лизы Ученицы 6 класса «А». 10.
Ф. Т. Алескеров, Л. Г. Егорова НИУ ВШЭ VI Московская международная конференция по исследованию операций (ORM2010) Москва, октября 2010 Так ли уж.
Транксрипт:

Архитектура: что это? Михаил Заборов Москва, 2013

больших (40–100 человеко-лет) корпоративных информационных систем на заказ 2/62 занимается разработкой

Обо мне >10 лет в компании Участвовал в существенной части проектов компании в качестве руководителя и архитектора Работаю в одной из групп развития бизнеса 3/62

В какой роли вы соприкасаетесь с архитектурой в своей работе? (1. архитектор / 2. аналитик / 3. разработчик / 4. руководитель /...) Понятно ли вам, что такое архитектура? 1. Конечно, понятно, это раз описано в стандартах 2. Мне все понятно, но я замечаю, что некоторые имеют в виду что-то другое 3. В теории понятно, а на практике есть проблемы 4. Это Buzzword (как ERP, SOA и т. д.). Все про него говорят, но никто точно не знает, что это 5. У меня есть свое истинное определение 6. Не думал об этом 7. Свой вариант Вопросы слушателям 4/62

Архитектура как Buzzword Разговоры с упоминанием архитектуры ведутся постоянно и повсеместно Каждый понимает под этим словом что-то свое Известно несколько сотен формальных определений архитектуры Многие формулировки носят характер скорее эмоциональных высказываний, чем определений Многие определения существенно неполны (описывают только один из аспектов) Существующие стандарты описывают, что такое архитектура, слишком абстрактно и интуитивно 5/62

6/62 Когда у нас слишком абстрактное и интуитивное представление об объекте, мы не можем с ним реально ничего сделать. А если этот объект критически влияет на успех проекта, то мы становимся заложниками случая и стечения обстоятельств. Мы не можем существенно влиять на результат. !

Конфуций: Первейшей задачей управления является выбор правильных названий... Если названия неверны, то язык не будет соответствовать правде. Если язык не будет соответствовать правде, тогда вещи не достигнут совершенства. Если вещи не достигнут совершенства, то церемонии и музыка не будут процветать. Если церемонии и музыка не будут процветать, то наказания не будут справедливыми. Если наказания не будут справедливыми, люди не будут знать, что нужно делать. Поэтому начальник должен давать только такие названия, которые могут быть выражены словами, а приказывать только то, что может быть выполнено на практике.

ArchLabs /62

ArchLabs /62

ArchLabs /62

Наша попытка сформулировать понятие об архитектуре как об объекте более строго В какой системе находится С чем взаимодействует Как устроена внутри Какие функции выполняет Каковы последствия от ее отсутствия 11/62

Система, в которой находится архитектура Большая часть терминов заимствована из стандарта ISO/IEC/IEEE /62 i

Архитектура приложения и архитектура предприятия (Enterprise Architecture) TOGAF Захман FEAF Over 9000 ISO/IEC/IEEE IEEE 1471: /62

Схема объектов Concern (Интерес)

Система производства приложения (простой вариант) Concern (Интерес) Анализ и формализация Выпуск релизов

Риски 16/62

Система производства приложения (более сложный вариант) Concern (Интерес) Дизайн Анализ и формализация Выпуск релизов

Система представлений о внутреннем устройстве приложения Состоит из решений (мы используем термин утверждение) о внутреннем устройстве (конструкции) приложения Решения находятся в отношении зависимости 18/62

Решение B зависит от решения A Изменение A неизбежно влечет за собой пересмотр B 19/62 A B Базовое Зависимое (детализирующее)

Граф решений 20/62 Более базовые Более детальные Сложнее (дороже) пересматривать Проще (дешевле) пересматривать

Вопрос к аудитории Какое решение более базовое? 1. Система должна быть кроссплатформенной 2. Система должна быть написана на Java 21/62

Слои графа решений 22/62 Граф решений

Grady Booch, Martin Fowler: Архитектура – это все решения, которые, сделав однажды, затем трудно изменить. 23/62

24/62 Вывод: Слои архитектуры имеют собственную логику построения и зависят не только от прихоти архитектора. !

25/62 Вывод: Одна из главных задач архитектора – чувствовать последствия решений. (что будет действительно важным, а что нет). !

Решения удобно формировать группой (в виде моделей) 26/62

При этом модель может фиксировать решения разных уровней значимости 27/62

Одна из самых важных моделей – схема функциональных модулей 28/62

29/62 Software Engineering Institute: Архитектура – это структура вычислительной системы, которая включает программные компоненты, внешние свойства этих компонентов, а также отношения между ними.

Архитектура – сложный объект 30/62 View Аспекты Слои Viewpoint

Стандарты по архитектуре (предприятия) Таксономия и образцы моделей Zachman Framework FEAF TEAF Методы разработки архитектуры TOGAF (ADM) FEAF EAP 31/62

32/62 Concern (Интерес)

33/62 Вывод: У приложения нет архитектуры; она есть у людей, которые его модифицируют. !

Соответствие архитектуры и продукта 34/62

Связь технологии и архитектуры Деятельность архитектора направлена на изготовление конкретного (одного) изделия. Архитектура описывает именно его Деятельность технолога направлена на повышение эффективности и качества процесса изготовления изделия (обычно для массовых операций) Технология предоставляет архитектору кирпичи (материал), из которого архитектор может делать все более сложную архитектуру 35/62

Возможность не принимать решение повторно 36/62 Решения, определяемые технологией

Функции архитектуры в процессе производства 37/62 Изменение системы производства Запрос на изменение Δ изменения продукта

Функции архитектуры 1. Используется как модель приложения 2. Нормирование и технологизация работ по проектированию 3. Минимизация рисков 4. Используется как контракт в части SCOPE 38/62

1. Архитектура как модель приложения Модель объекта – это что-то, что позволяет отвечать на вопросы об объекте 39/62

Декомпозиция работ по изменению Разделение работы на независимые части Запуск параллельных потоков работ Интеграция результатов работ Подзадача 1 Подзадача 2 Подзадача 3 Результат 40/62 Исходная задача

Анализ зависимостей (что будет, если) Incredible Machine 41/62

Оценка масштаба (класса) предлагаемых изменений Просто или сложно? 42/62

2. Нормирование и технологизация работ по проектированию 43/62

Локализация места модификации приложения 44/62

Минимизация пересмотра принятых ранее решений 45/62 Приложения с хорошей архитектурой меньше подвержены постоянным переделкам

46/62 Определение с сайта SEI (какой-то индус ): A good architecture is that which is totally secured, which can accommodate future changes without affecting the software as a whole, and which has no redundant functionalities.

Возможность посмотреть вперед и представить, как будет выглядеть изделие в целом Минимизация пересмотра принятых ранее решений Continuous Refactoring 47/62

Согласование действий проектировщиков Благодаря принятым более высокоуровневым решениям Минимизация объема проектирования для типовых задач 48/62

49/62 Питер Хрущка: Архитектура – способ координировать умы.

3. Минимизация рисков 50/62

Описание работоспособной конструкции в целом 51/62 Нарисованная архитектура – гарантия того, что это вообще будет построено

52/62 Андрей Вербицкий: Хорошая архитектура – это удачный компромисс между желаниями и ограничениями.

Определение ключевых элементов конструкции, обеспечивающих качество продукта Несущие стены 53/62

54/62 Анатолий Левенчук: Архитектура – это то, каким образом конструкция поддерживает требуемую функцию/назначение системы.

4. Архитектура как контракт в части SCOPE 55/62

Фиксация назначения и границ продукта А также задач, которые в принципе могут этим продуктом решаться 56/62

Определение реальных потребительских свойств приложения 57/62

58/62 Качество архитектуры определяется ее способностью выполнять перечисленные функции. !

59/62 В результате мы получили модель, которая позволяет вести более содержательные разговоры об архитектуре Например, задавать вопросы по конкретным функциям и диагностировать проблемы более точно «С архитектурой все плохо»

Типичные проблемы с архитектурой Не отражает актуальное внутреннее устройство приложения Не работает как модель приложения Структура модулей – «поперек» возникающих задач Не помогает декомпозировать большие задачи Внесение изменений приводит к непредсказуемым последствиям Не помогает локализовать изменения Необходимые изменения в системе требуют постоянного пересмотра базовых решений Не обеспечивает минимизацию пересмотра решений «Разношерстные» решения типовых задач Не выполняет функцию координации 60/62

Типичные проблемы с управлением архитектурой Случайные решения становятся базовыми Решение приняли походя, а от него теперь многое зависит. Нет осознанного управления архитектурой Проектировщики нижнего уровня не руководствуются базовыми решениями Не выполняется функция нормирования. Теряется целостное представление об устройстве приложения Базовые решения не пересматриваются вовремя Воспринимаются как жесткие ограничения. Несмотря на очевидные проблемы при принятии решений на более детальном уровне 61/62

62/62 Спасибо! Вопросы?