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

Архитектура - это что?

  • Upload
    sqalab

  • View
    687

  • Download
    2

Embed Size (px)

DESCRIPTION

Доклад Заборова Михаила на конференции Analyst Days-2. 25 мая, Санкт-Петербург. www.analystdays.com

Citation preview

Page 1: Архитектура - это что?

Архитектура: что это?

Михаил Заборов

Москва, 2013

Page 2: Архитектура - это что?

больших (40–100 человеко-лет)

корпоративных

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

на заказ

2/60(65)

занимается разработкой

Page 3: Архитектура - это что?

Обо мне

>10 лет в компании

Участвовалв существенной части проектов компаниив качестве руководителяи архитектора

Работаю в одной из групп развития бизнеса

3/60(65)

Page 4: Архитектура - это что?

Понятно ли вам, что такое архитектура? Конечно, понятно, это 100500 раз описано в стандартах

Мне все понятно, но я замечаю, что некоторые имеютв виду что-то другое

В теории понятно, а на практике есть проблемы

Это Buzzword (как ERP, SOA и т. д.).Все про него говорят, но никто точно не знает, что это

У меня есть свое истинное определение

Не думал об этом

Свой вариант

Вопросы слушателям

4/60(65)

Page 5: Архитектура - это что?

Архитектура как Buzzword

Разговоры с упоминанием архитектуры ведутся постоянно и повсеместно

Каждый понимает под этим словом что-то свое

Известно несколько сотен формальных определений архитектуры

Многие формулировки носят характер скорее эмоциональных высказываний, чем определений

Многие определения существенно неполны(описывают только один из аспектов)

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

5/60(65)

Page 6: Архитектура - это что?

6/60(65)

Когда у нас слишком абстрактное и интуитивное представлениеоб объекте, мы не можем с ним реально ничего сделать.

А если этот объект критически влияет на успех проекта, то мы становимся заложниками случаяи стечения обстоятельств.

Мы не можем существенно влиятьна результат.

!

Page 7: Архитектура - это что?

Конфуций:

Первейшей задачей управления является выбор правильных названий... Если названия неверны, то язык не будет соответствовать правде.

Если язык не будет соответствовать правде, тогда вещи не достигнут совершенства.

Если вещи не достигнут совершенства, то церемонии и музыкане будут процветать.

Если церемонии и музыка не будут процветать, то наказания не будут справедливыми.

Если наказания не будут справедливыми, люди не будут знать,что нужно делать.

Поэтому начальник должен давать только такие названия, которые могут быть выражены словами, а приказывать только то, что может быть выполнено на практике.

Page 8: Архитектура - это что?

ArchLabs 2009

8/60(65)

Page 9: Архитектура - это что?

ArchLabs 2009

9/60(65)

Page 10: Архитектура - это что?

http://www.slideshare.net/AndreyVerbitsky/ss-2738439

ArchLabs 2009

10/60(65)

Page 11: Архитектура - это что?

Наша попытка сформулироватьпонятие об архитектурекак об объекте более строго

В какой системе находится

С чем взаимодействует

Как устроена внутри

Какие функции выполняет

Каковы последствия от ее отсутствия

11/60(65)

Page 12: Архитектура - это что?

Система,в которой находится архитектура

Большая часть терминов заимствована из стандарта ISO/IEC/IEEE 42010

12/60(65)

i

Page 13: Архитектура - это что?

Архитектура приложенияи архитектура предприятия (Enterprise Architecture)

TOGAF Захман FEAF Over 9000

ISO/IEC/IEEE 42010 IEEE 1471:2000 

13/60(65)

Page 14: Архитектура - это что?

Stakeholder, который хочет что-то сделать с изделием

14/60(65)

Page 15: Архитектура - это что?

Stakeholder’ов многои у них много разных интересов

15/60(65)

Page 16: Архитектура - это что?

Перейдем к ИТ

16/60(65)

Page 17: Архитектура - это что?

17/60(65)

Анализ

Анализ

и формализация

Выпуск релизов

Система производства приложения(простой вариант)

Page 18: Архитектура - это что?

Риски

18/60(65)

Page 19: Архитектура - это что?

Система производства приложения(более сложный вариант)

Дизайн

Анализ

и формализацияВыпуск релизов

Анализ

Page 20: Архитектура - это что?

Система представленийо внутреннем устройстве приложения

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

Решения находятся в отношении зависимости

20/60(65)

Page 21: Архитектура - это что?

Решение B зависит от решения A

Изменение A неизбежно влечет за собой пересмотр B

Бывают ситуации когда не очевидно какое решение базовое

21/60(65)

A

B

Базовое

Зависимое (детализирующее)

Page 22: Архитектура - это что?

22/60(65)

Зависимости между решениями

Решения выстраиваютсяв цепочки

Решение может зависетьот нескольких решений

A

B

C A B C

D

Page 23: Архитектура - это что?

Граф решений

23/60(65)

Болеебазовые

Болеедетальные

Сложнее (дороже) пересматривать

Проще (дешевле) пересматривать

Page 24: Архитектура - это что?

Слои графа решений

24/60(65)

Граф решений

Page 25: Архитектура - это что?

Grady Booch, Martin Fowler:

Архитектура – это все решения, которые, сделав однажды, затем трудно изменить.

25/60(65)

Page 26: Архитектура - это что?

Вывод

26/60(65)

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

Page 27: Архитектура - это что?

27/60(65)

Вывод:

Слои архитектуры имеют собственную логику построенияи зависят не только от прихоти архитектора.

!

Page 28: Архитектура - это что?

28/60(65)

Вывод:

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

!

Page 29: Архитектура - это что?

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

29/60(65)

Page 30: Архитектура - это что?

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

30/60(65)

Page 31: Архитектура - это что?

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

31/60(65)

Page 32: Архитектура - это что?

32/60(65)

Software Engineering Institute:

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

Page 33: Архитектура - это что?

Архитектура – сложный объект

33/60(65)

ViewАспекты

Слои

Viewpoint

Page 34: Архитектура - это что?

Стандарты по архитектуре (предприятия)

Таксономия и образцы моделей

Zachman Framework

FEAF

TEAF

Методы разработки архитектуры

TOGAF (ADM)

FEAF

EAP

34/60(65)

Page 35: Архитектура - это что?

Функции архитектурыв процессе производства

35/60(65)

Изменение системы производства

Запросна изменение

Δ изменения продукта

Page 36: Архитектура - это что?

Функции архитектуры

1. Используется как модель приложения

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

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

4. Используется как контракт в части SCOPE

36/60(65)

Page 37: Архитектура - это что?

1. Архитектура как модель приложения

Модель объекта – это что-то, что позволяет отвечатьна вопросы об объекте

37/60(65)

Page 38: Архитектура - это что?

Декомпозиция работ по изменению

Разделение работы на независимые части

Запуск параллельных потоков работ

Интеграция результатов работ

Подзадача 1

Подзадача 2

Подзадача 3

Результат

38/60(65)

Исходная задача

Page 39: Архитектура - это что?

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

Incredible Machine

Page 40: Архитектура - это что?

Оценка масштаба (класса) предлагаемых изменений

Просто или сложно?

http://domvsegda.ru/

40/60(65)

Page 41: Архитектура - это что?

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

41/60(65)

Page 42: Архитектура - это что?

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

42/60(65)

Page 43: Архитектура - это что?

Минимизация пересмотра принятых ранее решений

A’

43/60(65)

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

Page 44: Архитектура - это что?

44/60(65)

Определение с сайта 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.

Page 45: Архитектура - это что?

Возможность посмотреть вперед и представить, как будет выглядеть изделие в целом

Минимизация пересмотра принятых ранее решений

Continuous Refactoring

45/60(65)

Вельянинова А. C.
Повторяющийся заголовок? :(
Page 46: Архитектура - это что?

Согласование действий проектировщиков

Благодаря принятым более высокоуровневым решениям

Минимизация объемапроектирования для типовых задач

46/60(65)

Page 47: Архитектура - это что?

47/60(65)

Питер Хрущка:

Архитектура – способ координировать умы.

Page 48: Архитектура - это что?

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

48/60(65)

Page 49: Архитектура - это что?

Описание работоспособной конструкции в целом

49/60(65)

Нарисованная архитектура – гарантия того, что это вообще будет построено

Page 50: Архитектура - это что?

50/60(65)

Андрей Вербицкий:

Хорошая архитектура – это удачный компромисс между желаниямии ограничениями.

Page 51: Архитектура - это что?

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

Несущие стены

51/60(65)

Page 52: Архитектура - это что?

52/60(65)

Анатолий Левенчук:

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

Page 53: Архитектура - это что?

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

53/60(65)

Page 54: Архитектура - это что?

Фиксация назначения и границ продукта

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

54/60(65)

Page 55: Архитектура - это что?

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

55/60(65)

Page 56: Архитектура - это что?

56/60(65)

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

!

Page 57: Архитектура - это что?

57/60(65)

В результате мы получили модель, которая позволяет вести более содержательные разговоры об архитектуре

Например, задавать вопросы по конкретным функциям и диагностировать проблемыболее точно

«С архитектурой все плохо»

Page 58: Архитектура - это что?

Типичные проблемы с архитектурой Не отражает актуальное внутреннее устройство

приложенияНе работает как модель приложения

Структура модулей – «поперек» возникающих задачНе помогает декомпозировать большие задачи

Внесение изменений приводит к непредсказуемым последствиямНе помогает локализовать изменения

Необходимые изменения в системе требуют постоянного пересмотра базовых решенийНе обеспечивает минимизацию пересмотра решений

«Разношерстные» решения типовых задачНе выполняет функцию координации 58/60(65)

Page 59: Архитектура - это что?

Типичные проблемыс управлением архитектурой

Случайные решения становятся базовымиРешение приняли походя, а от него теперь многое зависит. Нет осознанного управления архитектурой

Проектировщики нижнего уровняне руководствуются базовыми решениямиНе выполняется функция нормирования. Теряется целостное представление об устройстве приложения

Базовые решения не пересматриваются вовремяВоспринимаются как жесткие ограничения. Несмотряна очевидные проблемы при принятии решений на более детальном уровне

59/60(65)

Page 60: Архитектура - это что?

60/60(65)

Спасибо!

Вопросы?

Page 61: Архитектура - это что?

61/60(65)

Бонус- слайды

Page 62: Архитектура - это что?

62/60(65)

Page 63: Архитектура - это что?

63/60(65)

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

Page 64: Архитектура - это что?

Связь технологии и архитектуры

Деятельность архитектора направленана изготовление конкретного (одного) изделия. Архитектура описывает именно его

Деятельность технолога направленана повышение эффективности и качества процесса изготовления изделия (обычнодля массовых операций)

Технология предоставляет архитектору кирпичи (материал), из которого архитектор может делать все более сложную архитектуру

64/60(65)

Page 65: Архитектура - это что?

Возможностьне принимать решение повторно

65/60(65)

Решения,определяемые

технологией