SlideShare a Scribd company logo
1 of 143
25 сентября 2014 г.
Архитектура ПО
Управляя самым важным
Игорь Беспальчук
Руководитель проектов
дирекции по развитию технологий
Про компанию CUSTIS
2/144
Наша компания занимается:
 проектированием,
3/144
Наша компания занимается:
 …разработкой,
4/144
Наша компания занимается:
 …внедрением,
5/144
Наша компания занимается:
 …сопровождением,
6/144
Наша компания занимается:
 …развитием
7/144
Наша компания занимается:
 проектированием, разработкой, внедрением,
сопровождением, развитием…
 …заказных информационных систем
на полном жизненном цикле
t
8/144
Для
БанковТорговых сетей
Госкорпораций Предприятий ЖКХ
9/144
Структура компании
>200
10/144
Профессиональная инфраструктура
26%
11/144
Отличники 
20%
12/144
Мальчики и девочки 
30%
13/144
Про себя
14/144
Игорь Беспальчук
 (2001) Окончил
МГТУ им. Н. Э. Баумана (ИУ-8)
 Программист (Oracle, C#)
 (2006) Пришёл в CUSTIS
 (2008) Руководитель проекта
для ГК «Спортмастер»
 (2010) Руководитель отдела
технологического развития
 (2013) Руководитель проектов
дирекции по развитию технологий
15/144
Моя работа в компании сегодня
Становление и
совершенствование
Управление
проектированием
Архитектурное
проектирование
Архитектор
Управленец
16/144
Преамбула про управление
17/144
Суета вокруг архитектуры
 Проблематика – в области управления
архитектурным проектированием
 Управление архитектурным проектированием
может показаться
далекой и чуждой работой
 Но управлять можно и снизу 
 Важно
понимание происходящего
18/144
План
1. Прошлое и настоящее, теория и практика
2. Проблематика управления
3. Понятие архитектуры
4. Принципы управления
5. Паттерны и анти-паттерны
19/144
Краткая история дисциплины
“Software Architecture”
20/144
История дисциплины (1)
 1950-е: появление множества языков
программирования
 1960-е: первые соображения
(Эдсгер Дейкстра)
о необходимости структуризации программ
 1969 – вторая конференция Software
Engineering, первые упоминания
о “software architecture”
21/144
Ian P. Sharp, 1969
«Есть некое дополнение
к программированию,
и его надо вытащить на свет.
Это программная архитектура.
Архитектура и проектирование –
не одно и то же»
22/144
История дисциплины (2)
 1970-е: концепции модульности и сокрытия
информации (Парнас)
 до 1980-x: термин «архитектура» в основном
применяется к аппаратной части компьютеров
 1984: основан Software Engineering Institute
 1990-е: возрождение интереса к теме
 поздние 1990-е – бум на архитектурные тематики
 1996-2000: создание стандарта IEEE 1471
на описание программной архитектуры
23/144
История дисциплины (3)
 Слияние с движением
системной инженерии
 ISO/IEC/IEEE 42010:2011,
Systems and software engineering –
Architecture description
 (2010) Состояние дисциплины
архитектурного проектирования:
«готово к внедрению»
24/144
От теории к практике
«Кто переходит к практике
без теории, подобен моряку,
плывущему
на корабле без руля
и компаса, и не ведающему,
где он может оказаться»
25/144
The Standish Group Inc., «CHAOS manifesto-2013»
Печальная статистика
26/144
Совет Standish Group
 Для больших проектов – нет шансов быть
успешным,поэтому…
 не делайте больших проектов
«Мы верим, что нет нужды в больших
проектах и любой IT-проект можно
разбить на набор маленьких»
 Совет в целом правильный, но…
 …иногда при уменьшении проекта
полностью теряется его смысл
27/144
28/144
 B. Boehm, 2008
The ROI of System Engineering
Не отказываться, а научиться?
Размер
проекта
(KSLOC)
Оптимальные
затраты
на АП, %
Снижение
затрат
за счет АП,
%
10 5 18
100 20 38
1000 26 63
10000 33 92
29/144
Внутри больших проектов
 У управленцев запаздывает:
 понимание важности АП
 представление о зрелости дисциплины
 и внедрение
 …методов программной инженерии в целом
 …методов работы с программной архитектурой
 Болезни незрелости управления АП
 Хорошие программисты → плохие системы
30/144
«Архитектурная алхимия»
31/144
В чем затруднения практиков?
 Обычное отставание
 Сложность предмета архитектуры
 Мистификация на почве
непонимания
 Неосведомленность
о продвижениях
дисциплины
 Неготовность
учиться
32/144
Ключевое затруднение
 Без понимания предмета
управление невозможно
 Об архитектуре
говорят повсеместно,
но объяснить не могут
 Картинки зданий –
«вот, это архитектура»
33/144
«Архитектура…
 … – это все, что важно»
 … – содержит самые ранние решения»
 … – это способ координировать умы»
 … уравновешивает интересы сторон»
 … играет роль договора с заказчиком»
 … оказывает влияние на структуру коллектива»
34/144
Эволюция представлений
о программной архитектуре
35/144
Понятие и определение
 Для сложных понятий хороших
определений не бывает 
 150 определений
архитектуры
 Системный подход:
 В какое целое
вещь включена как часть
 Какую функцию она выполняет
 Как она устроена
(из чего состоит и за счет чего
выполняется функция)
Архитектура
36/144
Ian P. Sharp, 1968
«Мы говорим только о таких
спецификациях, которые определяют,
что программа должна делать….
Но нужно также определять дизайн,
форму; и в рамках этого каркаса
разработчик должен создавать что-
то… понимая, что архитектор имел в
виду»
37/144
Lane, 1990
«Архитектура включает разделение
функций между модулями, средства связи
между модулями, и представление
разделяемых данных»
38/144
Дизайн
Архитектура
Связи
Модули
Представления
данных
39/144
Royce, 1991
«Архитектура – связующее звено
между технологиями и процессами»
40/144
Dewayne Perry, Alexander Wolf, 1992
«Архитектура определяет выбор
элементов, их взаимодействий,
и ограничения на эти элементы,
и взаимодействия, необходимые, чтобы
обеспечить каркас, в котором будут
удовлетворяться требования и который
будет служить базой для дизайна.
Архитектура =
{Элементы, Формы, Объяснения} »
41/144
Технологии
ДизайнСвязи
МодулиПредставления
данных
Процессы
Взаимодействия каркас
Объяснения
Элементы
Ограничения
42/144
David Garlan, Mary Shaw, 1993
«Архитектура – уровень дизайна,
определяющий вопросы за алгоритмами
и структурами данных вычислений: общую
структуру системы, включая организацию
и глобальную систему управления, протоколы
коммуникации, синхронизации, доступа
к данным; назначение функциональности
элементам дизайна; физическое размещение;
композицию элементов; масштабирование
и производительность; выбор из альтернатив»
43/144
Barry Boehm, 1995
«Архитектура включает: набор
компонентов, связей и ограничений;
набор утверждений о потребностях
интересантов; объяснения,
показывающие что компоненты, связи
и ограничения определяют систему,
которая (если будет реализована)
ответит потребностям
интересантов»
44/144
Low Level (LL)
дизайн
Связи
каркас
Объяснения
Элементы
Ограничения
Взаимодействия
Процессы Технологии
уровень
Дизайн
Потребности
интересантов
Потребности
интересантов
Целевая
система
Разные общие
структуры
Размещение Альтернативы
45/144
Soni, Nord, and Hofmeister, 1995
«Архитектура включает четыре
представления:
1. концептуальная а. – элементы и связи
2. модульная а. – функциональная и слоевая
декомпозиция
3. а. выполнения – динамическая структура
4. а. кода – организация исходников,
бинарников и библиотек в окружении
разработки»
46/144
LL-
дизайн
Связи
каркас
Объяснения
Элементы
Ограничения
Взаимодействия
Процессы Технологии
уровень
Дизайн
Потребности
интересантов
Потребности
интересантов
Целевая
система
Разные общие
структуры
Размещение
Альтернативы
Декомпозиция
Окружение
разработки
Представления
47/144
David Garlan, 2000
«Архитектура описывает структуру
системы в крупном. Эта структура
освещает высокоуровневые
проектировочные решения, включая
то, как система составлена
из взаимодействующих частей, каковы
основные способы взаимодействия,
и каковы ключевые свойства частей»
48/144
Philippe Kruchten, 2003
«Архитектура – это набор значимых
решений по поводу организации системы,
набор структурных элементов и их
интерфейсов, при помощи которых
компонуется система,
вместе с их поведением, определяемым во
взаимодействии между этими элементами,
компоновка элементов в постепенно
укрупняющиеся подсистемы, а также стиль
архитектуры который направляет эту
организацию»
49/144
James McGovern, 2004
«Архитектура состоит из всех важных
проектных решений по поводу структур
программы и взаимодействий между этими
структурами, которые составляют системы.
Проектные решения обеспечивают желаемый
набор свойств, которые должна поддерживать
система, чтобы быть успешной. Проектные
решения предоставляют концептуальную
основу для разработки системы, ее поддержки
и обслуживания»
50/144
LL-
дизайн
Связи
каркас
Объяснения
Элементы
Ограничения
Взаимодействия
Процессы Технологии
уровень
Дизайн
Потребности
интересантов
Потребности
интересантов
Целевая
система
Разные общие
структуры
Размещение
Альтернативы
Декомпозиция
Окружение
разработки
Представления
Проектные решения
51/144
ISO 42010
«Архитектура –
фундаментальные концепции или свойства
системы в ее окружении, выраженные
в ее элементах, отношениях, и принципах
их проектирования и развития»
«Архитектура и описание архитектуры –
разные сущности»
52/144
Окружение
LL-
дизайн
Связи
каркас
Элементы
Ограничения
Взаимодействия
Процессы Технологии
уровень
Дизайн
Потребности
интересантов
Потребности
интересантов
Целевая
система
Разные общие
структуры
Размещение
Декомпозиция
Окружение
разработки
Описание
Представления
АльтернативыОбъяснения
Фундаментальные
проектные решения Концепции
Свойства
Принципы проектирования
фиксация
трансляция
53/144
Стандарт ISO 42010
 Дает приемлемое определение
 И вводит ряд связанных понятий
(stakeholder, concern, view, viewpoint, …)
 Разводит архитектуру и описание
 Содержит развернутые рекомендации
на описание архитектуры
54/144
55/144
56/144
Стандарт ISO 42010
 Очень ценен для задач документирования
 Для задач управления – недостаточно
 Нужно разобраться с тем, что такое
«фундаментальные решения»
и как они должны приниматься
57/144
Наводим резкость
58/144
Содержание архитектуры
 Элементы, модули, связи, структуры, виды,
формы, каркасы, разделения, ограничения,
интересанты, потребности окружение,
размещение, управление, интерфейсы, слои,
артефакты, технологии, статика и динамика,
поведение, свойства, отношения, принципы,
стили…
 То есть самые разнообразные
проектные решения
 Конечно, не все и не любые,
а только фундаментальные – об этом далее
59/144
Зависимость проектных решений
 Решение А зависит от решения B,
если A имеет смысл или целесообразно
только в том случае,
когда принято и актуально решение B
B
A
60/144
Система транспортной логистики
Пример
Склады в 100 городах Гарантируется интернет-доступ
Распределенный «клиент-сервер»
Кросс-платформенный «клиент» Нужна работа с оборудованием
«Клиент» пишем на Java
Для UI используем JavaFX
61/144
Главное про зависимость решений
 Зависимости не бывают цикличны,
решения образуют направленный граф
(для простоты – «дерево решений»)
 Если изменяется некоторое решение,
то придется пересмотреть все решения,
которые прямо или косвенно зависят от него
 Решения ближе к корню дерева менять сложно,
решения ближе к листьям менять проще
 Именно положение в структуре зависимостей
определяет пресловутый уровень решения
 Именно околокорневые (фундаментальные)
проектные решения
и составляют содержание архитектуры системы 62/144
Пример Система транспортной логистики
Склады в 100 городах Гарантируется интернет-доступ
Распределенный «клиент-сервер»
Кросс-платформенный «клиент» Нужна работа с оборудованием
«Клиент» пишем на Java
Для UI используем JavaFX
Нужна работа с оборудованием
«Клиент» делаем под Web
Для UI используем JavaFX
Гарантируется интернет-доступ
Файловый и почтовый обмен
Кросс-платформенный «клиент»
«Клиент» делаем под Web
Для UI используем JavaFX
63/144
Фундаментальные проектные решения
Детальные проектные решения
Дизайн
Архитектура
LL-дизайн
Связи
Элементы
Ограничения
Взаимодействия
Размещение
…
64/144
О чем недоговаривают эксперты
 Мартин Фаулер, 2003:
 Ральф Джонсон, 2003:
«Архитектура – это все важные решения...
Важные решения – это те, по которым
эксперт сказал, что они важные»
«Нет теоретических причин к тому, чтобы
какие-то решения в софте было тяжело
менять, как в строительстве»
65/144
Некоторые следствия
66/144
Области проектных решений
 Свойства целевой системы (черный ящик)
 Устройство системы (прозрачный ящик)
 Окружение целевой системы (надсистема)
 Производство (обеспечивающая система)
Производство Окружение
Устройство Свойства
67/144
А. Левенчук, 2014
«Архитектура – это те 20% решений
(относительно как требований,
так и устройства), которые
определяют остальные 80%
устройства»
68/144
Области проектных решений
 В архитектуру могут входить решения
не только об устройстве
 Если они существенно влияют на устройство
Производство Окружение
Устройство Свойства
69/144
Граница архитектуры
 Граница «архитектура–дизайн» определяется
«мерой существенности»
(«фундаментальности»), проектных решений
 То есть граница относительна
70/144
Архитектура
LL-дизайн
71/144
Гибкая архитектура
 Не бывает
 Гибкой (легко изменяемой)
может быть структура
 Ральф Джонсон:
«Мы очень легко можем сделать любой
аспект ПО гибким. И это не сложно.
Но мы не можем сделать ПО гибкими во всех
аспектах. Это породит сложность,
а сложность трудноизменяема»
72/144
Модели в архитектуре
 Основная форма представления
и описания проектных решений (ISO)
 Вся современная инженерия
моделеориентирована
 Но не все модели одинаково полезны
 Детализация
 Вид модели
 Уровень абстракции
 Некоторые решения плохо выражаются
классическими box-and-line моделями
(ограничения, принципы)
73/144
74/144
75/144
76/144
АС
Генерация данных журналов
Сохранение данных журналов
Файлы на
локальных
дисках
Журналы в
БД
Интерфейсы доступа к
журналам
первичная запись
Хранилище
журналов архивирование
чтение
Запрос данных
Запись данных
77/144
Даты
событий
Журналы в исходной БД
(фиксированный объем)
Журналы в хранилище
Перенос
данных
Удаление
данных
Создание
новых
данных
Оперативный
и отчетный контурАналитический и архивный контур
78/144
Результат прояснения
 Про архитектуру можно разговаривать предметно!
 Выделять конкретные решения
 Показывать, что они фундаментальны для устройства
 И этим обосновывать,
что решение входит
в архитектуру
(и что из этого следует)
 Находить подходящие
модели и тексты
для наилучшего
выражения решений
 Конец архитектурной
алхимии
79/144
Что остается неясным?
Архитектура
Дизайн
Технологии
Процессы
Описание
? ?
?
80/144
Перерыв
81/144
Примеры архитектурных решений
82/144
83/144
84/144
85/144
Арочный свод
86/144
87/144
Интернет
 Из чего состоит архитектура интернета?
 Элементы, соединения и топология практически
произвольны
 Ключевые решения собраны
в стеке протоколов TCP/IP
 Структура гибка
(произвольна),
архитектура – нет!
88/144
Процессор
 Фредерик Брукс:
«Архитектура процессора –
это его система команд»
89/144
Hadoop
 В основе – модель вычислений
MapReduce
90/144
91/144
Стратегия
 Например, военная
 Стратегия – архитектура действия
 Архитектура – стратегия проектирования
92/144
Личные примеры каждого
 Ремонт квартиры
 Мебель ставят в последнюю очередь
 Но протяжка проводов и установка розеток
зависит от положения мебели
 Базовая абстракция – функциональные зоны
 Строительство загородного дома
 no comments…
93/144
Резюме по примерам
 Архитектурные решения не всегда
реализуются раньше
 Они могут не относиться к структуре,
структура может быть гибкой
 Они могут плохо выражаться с помощью
структурных (box-and-line) моделей
 Они могут относиться не к устройству,
а к употреблению или производству
 Они не выражаются самой системой
(«кодом») явно
 Ищите примеры архитектур вокруг себя
94/144
Принципы управления
архитектурным проектированием
95/144
Что остается неясным?
Архитектура
Дизайн
Описание
? ?
?
96/144
Надсистема архитектуры
 Архитектура не «внутри» целевой системы
 Архитектура –
внутри производственной системы
Производство Окружение
Устройство Свойства
97/144
Архитектура
Дизайн
Описание
? ?
?
Производственная (обеспечивающая) система
Целевая
система
создает,
развивает
организует,
управляет
98/144
Функция архитектуры
 Естественные свойства
 негибкость
 подчинение детальных решений
 Отсюда – функция:
направлять детальное
проектирование
 Стратегия
проектирования
99/144
Цели архитектуры
 Назначение системы
 Атрибуты качества
 Ограничения (включая $ и t)
 Свойства окружения
 Не требования!
100/144
Принцип отражения
 (Успешная) система
отражает свойства среды
101/144
Анализ надсистемы
 Назначение и качество
тоже меняются
на жизненном цикле,
но медленно и закономерно
 Нужно понимать
динамику развития,
надсистемы
(окружение и производство)
102/144
Ответственность за архитектуру
 Архитектор или команда?
 НЕ ИМЕЕТ ЗНАЧЕНИЯ!
 До тех пор, пока
ответственность
не лежит ни на ком
и архитектуры нет
как механизма
управления
в производстве
103/144
Окружение
Целевая
системаПланирование
Ограничения
($, t, HR, …)
bin
Проектирование
LL-дизайн
Архитектура
Анализ
Потребности
Назначение
Качество
Развитие
Сборка
104/144
Анализ, архитектура и дизайн
 Связаны, логически
(как зависимые решения)
 Но не хронологически!
 Хронологически –
все сложнее,
много итераций
105/144
Принципы организации АП
 Современное проектирование
должно быть архитектурным!
 Проявить предмет!
 Ответственность – не важно, на ком,
но должна быть!
 Ориентация на назначение и качество
на ПЖЦ, (а значит – требуется аналитика
качества и стратегии развития надсистем)!
 Вплетена в интерактивный цикл детального
проектирования
 Своевременный пересмотр
106/144
Паттерны управления
Позитивные
Негативные
Негативные
Негативные
Негативные
107/144
108/144
Сборка
Окружение
Целевая
система
Планирование
Ограничения
($, t, HR, …)
Проектирование
LL-дизайн
Архитектура
Анализ
Потребности
Назначение
Качество
Развитие
?
bin
Группы паттернов
 Целое
 Объективность
 Динамика
 Цели
 Ответственность
 Компетенции
 Развитие
109/144
110/144
Лима
 Архитектуры нет (нет целого)
 Про целое ничего нельзя сказать,
кроме объема
111/144
112/144
Скрыта за кодом
 Архитектура есть,
но «скрыта за кодом» –
не выражена явно
 Кто-то придумал, остальные
постоянно «реверсируют»
(с переменным успехом),
ответственность потеряна
 Обсуждение невозможно,
т. к. предмет отсутствует
(даже когда есть объект – А.)
113/144
Memento
114/144
Memento
 Решения не фиксируются, забываются
 Принимаются заново
 Или искажаются
из-за потери
оснований
115/144
116/144
 Попытка спроектировать все до мелочей
и сразу
 Все проектирование
произвести до кодирования
 Весь дизайн
запихивается в архитектуру
Big Design Upfront
117/144
118/144
Архитектурное голодание
(tech debt)
 Осознание долга есть
 Но с ним ничего не делается
119/144
120/144
Тайное качество
 Не направленность на требуемое качество
или работа на «внутреннее» качество
 Не бывает «внутреннего качества»!
т. е. такого, которое не обеспечивает внешнее,
может быть на долгом периоде
 Само требуемое качество
(как краткосрочное, так и долгосрочное)
тоже нуждается
в анализе, и фиксации
 Здесь же: мода, авангардизм
121/144
122/144
Башня из слоновой кости
 Архитектор творит нечто, что ему кажется
прекрасным
 Всем остальным это непонятно и неудобно
 Сам архитектор при этом «код не пишет» –
он выше этого
123/144
Мы
gile!
124/144
Анархический Agile
 Отрицается любое главенство
 Страшилки Ivory Tower и BDUF как оружие
 «Мы все равны»
 И поэтому никто не отвечает
 Принцип «равенства»
важнее результата
125/144
Лебедь, рак и щука
 Каждый строит свою
архитектуру
 Каждый хочет как лучше
(в своих представлениях)
 Безответственно
к общему результату
126/144
127/144
Главенство авторитета
 Главенство авторитета над целями
 Переход на личности –
сравниваются не решения,
а регалии архитекторов
 Статус важнее результата
128/144
Лучший программист
 Архитектор = самый сильный программист?
 Специфический предмет. Специфический
материал и свойства
 Специфические компетенции
129/144
Архитектура на год
 Архитектура рассчитана только
на минимальный старт
130/144
131/144
После нас – хоть потоп
 Успех оценивается по короткому
результату (сдача системы)
132/144
133/144
Отлито в бронзе
 А) «Архитектура от старой системы проверена,
возьмем для новой системы её»
 Б) «Архитектуру системы мы сделали три года
назад, и теперь менять в ней ничего нельзя»
 Фрэнк Ллойд Райт:
«Забудьте обо всех архитектурах
мира, если не понимаете того,
что они были хороши
в своём роде и в своё время»
134/144
135/144
Швейцарский нож
 Универсальная архитектура –
одна на сильно непохожие (но кажущиеся
похожими) проекты
 «Там же везде БД, документы, трехзвенка
и гриды»
 Неверно выбран масштаб повторного
использования
 Software Product Lines
136/144
Пара позитивных паттернов
137/144
Review
 Экспертная оценка архитектуры
138/144
Архитектура для клиента
 Обсуждение архитектуры
с представителями
заказчика и другими
интересантами
 В адекватных для них
представлениях,
отражающих их
(различные!)
интересы
139/144
Резюме (в форме советов-директив)
 Управляйте или «оно» будет управлять вашим
проектом. Архитектура в любом случае будет
влиять. И никогда не будет гибкой. Сделайте ее
инструментом управления
 Для этого – объективируйте предмет, возложите
ответственность, обеспечьте полномочиями
и ресурсами. Направляйте на цель (анализ)
 Утвердите и держите в голове понятие:
20% фундаментальных решений, которые потом
не пересмотришь, но на которых стоит все
остальное. Из понятия все остальное следует
140/144
Литература
 Филипп Кратчен «Ретроспектива программных архитектур»
 Сайт стандарта ISO 42010 http://www.iso-architecture.org/ieee-1471/index.html
 L. Bass, et al. «Software Architecture in Practice»
 P. Clements, et al. «Documenting Software Architectures: Views and Beyond»
 Блог А. Левенчука http://ailev.ru
 Мартин Фаулер «Who Needs an Architect?»
 Филипп Кратчен «Common Misconceptions about Software Architecture»
 CHAOS manifesto 2013
 Девид Гарлан «Software Architecture: a Roadmap»
 D. Dikel «Software Architecture: Organizational Principles and Patterns»
 P. Eeles «Что такое архитектура программного обеспечения?»
 Определения архитектуры на сайте SEI
 B. Boehm «The ROI of System Engineering»
 Ф. Брукс «Проектирование процесса проектирования»
 Geek & Poke 
141/144
Расширенный список
 Развитие успешных систем
не в области инженерии
 Р. Докинз «Эгоистичный ген»
 Т. Кун «Структура научных революций»
142/144
Спасибо!
Вопросы?
Игорь Беспальчук
ibespalchuk@custis.ru
http://iamhere.moikrug.ru
143/144

More Related Content

What's hot

ISUCT & BSUIR. Successful Communication of the Process Architecture [1.0, RUS]
ISUCT & BSUIR. Successful Communication of the Process Architecture [1.0, RUS]ISUCT & BSUIR. Successful Communication of the Process Architecture [1.0, RUS]
ISUCT & BSUIR. Successful Communication of the Process Architecture [1.0, RUS]Alex V. Petrov
 
ITGM #5. System Duality and Its Practical Effect on Business Analysis [1.0, RUS]
ITGM #5. System Duality and Its Practical Effect on Business Analysis [1.0, RUS]ITGM #5. System Duality and Its Practical Effect on Business Analysis [1.0, RUS]
ITGM #5. System Duality and Its Practical Effect on Business Analysis [1.0, RUS]Alex V. Petrov
 
DEV Labs 2013. Can C++ Code Effeciency Be Comparable to That of Middle-Level ...
DEV Labs 2013. Can C++ Code Effeciency Be Comparable to That of Middle-Level ...DEV Labs 2013. Can C++ Code Effeciency Be Comparable to That of Middle-Level ...
DEV Labs 2013. Can C++ Code Effeciency Be Comparable to That of Middle-Level ...Alex V. Petrov
 
Бизнес и системный анализ весна 2013 лекция 7
Бизнес и системный анализ весна 2013 лекция 7Бизнес и системный анализ весна 2013 лекция 7
Бизнес и системный анализ весна 2013 лекция 7Technopark
 
Собираем кубик Рубика
Собираем кубик РубикаСобираем кубик Рубика
Собираем кубик РубикаCEE-SEC(R)
 
INFOSYSTEMS. How to Measure Software Architecture [1.01, RUS]
INFOSYSTEMS. How to Measure Software Architecture [1.01, RUS]INFOSYSTEMS. How to Measure Software Architecture [1.01, RUS]
INFOSYSTEMS. How to Measure Software Architecture [1.01, RUS]Alex V. Petrov
 
UML2. Eleven Trivial Tips for BPMN Modellers [1.01, RUS]
UML2. Eleven Trivial Tips for BPMN Modellers [1.01, RUS]UML2. Eleven Trivial Tips for BPMN Modellers [1.01, RUS]
UML2. Eleven Trivial Tips for BPMN Modellers [1.01, RUS]Alex V. Petrov
 
Бизнес весна 2014 лекция 3
Бизнес весна 2014 лекция 3Бизнес весна 2014 лекция 3
Бизнес весна 2014 лекция 3Technopark
 
Ответственность за качество в разных ИТ-проектах: в чем она и как ее разделять
Ответственность за качество в разных ИТ-проектах: в чем она и как ее разделятьОтветственность за качество в разных ИТ-проектах: в чем она и как ее разделять
Ответственность за качество в разных ИТ-проектах: в чем она и как ее разделятьCUSTIS
 
Системная инженерия: вызовы времени По результатам конференции RuSEC2010
Системная инженерия: вызовы времени По результатам конференции RuSEC2010Системная инженерия: вызовы времени По результатам конференции RuSEC2010
Системная инженерия: вызовы времени По результатам конференции RuSEC2010Marcus Akoev
 
SPb BA & SA Night. Learning a New Business Domain [1.01, RUS]
SPb BA & SA Night. Learning a New Business Domain [1.01, RUS]SPb BA & SA Night. Learning a New Business Domain [1.01, RUS]
SPb BA & SA Night. Learning a New Business Domain [1.01, RUS]Alex V. Petrov
 
HTP. Business Requirements Elicitation & Documentation [1.01, RUS]
HTP. Business Requirements Elicitation & Documentation [1.01, RUS]HTP. Business Requirements Elicitation & Documentation [1.01, RUS]
HTP. Business Requirements Elicitation & Documentation [1.01, RUS]Alex V. Petrov
 
SPb BA & SA Night. Stakeholder Management Essentials [1.01, RUS]
SPb BA & SA Night. Stakeholder Management Essentials [1.01, RUS]SPb BA & SA Night. Stakeholder Management Essentials [1.01, RUS]
SPb BA & SA Night. Stakeholder Management Essentials [1.01, RUS]Alex V. Petrov
 
Software People 2010
Software People 2010Software People 2010
Software People 2010Sergey Orlik
 
Современна Программная инженерия. Системная инженерия
Современна Программная инженерия. Системная инженерияСовременна Программная инженерия. Системная инженерия
Современна Программная инженерия. Системная инженерияMarcus Akoev
 
Проектирование больших ИС в Agile (статья)
Проектирование больших ИС в Agile (статья)Проектирование больших ИС в Agile (статья)
Проектирование больших ИС в Agile (статья)Andrey Bibichev
 
REQ Labs 2014. Smart Business Modelling: A Key to Success in Enterprise Autom...
REQ Labs 2014. Smart Business Modelling: A Key to Success in Enterprise Autom...REQ Labs 2014. Smart Business Modelling: A Key to Success in Enterprise Autom...
REQ Labs 2014. Smart Business Modelling: A Key to Success in Enterprise Autom...Alex V. Petrov
 
Бизнес весна 2014 лекция 2
Бизнес весна 2014 лекция 2Бизнес весна 2014 лекция 2
Бизнес весна 2014 лекция 2Technopark
 
О.Савин -- Modelica в архитектурном моделировании
О.Савин -- Modelica в архитектурном моделированииО.Савин -- Modelica в архитектурном моделировании
О.Савин -- Modelica в архитектурном моделированииAnatoly Levenchuk
 
Пост-корпоративные архитектуры и архитектура совместного социального действия
Пост-корпоративные архитектуры и архитектура совместного социального действияПост-корпоративные архитектуры и архитектура совместного социального действия
Пост-корпоративные архитектуры и архитектура совместного социального действияDmitry Kozhevnikov
 

What's hot (20)

ISUCT & BSUIR. Successful Communication of the Process Architecture [1.0, RUS]
ISUCT & BSUIR. Successful Communication of the Process Architecture [1.0, RUS]ISUCT & BSUIR. Successful Communication of the Process Architecture [1.0, RUS]
ISUCT & BSUIR. Successful Communication of the Process Architecture [1.0, RUS]
 
ITGM #5. System Duality and Its Practical Effect on Business Analysis [1.0, RUS]
ITGM #5. System Duality and Its Practical Effect on Business Analysis [1.0, RUS]ITGM #5. System Duality and Its Practical Effect on Business Analysis [1.0, RUS]
ITGM #5. System Duality and Its Practical Effect on Business Analysis [1.0, RUS]
 
DEV Labs 2013. Can C++ Code Effeciency Be Comparable to That of Middle-Level ...
DEV Labs 2013. Can C++ Code Effeciency Be Comparable to That of Middle-Level ...DEV Labs 2013. Can C++ Code Effeciency Be Comparable to That of Middle-Level ...
DEV Labs 2013. Can C++ Code Effeciency Be Comparable to That of Middle-Level ...
 
Бизнес и системный анализ весна 2013 лекция 7
Бизнес и системный анализ весна 2013 лекция 7Бизнес и системный анализ весна 2013 лекция 7
Бизнес и системный анализ весна 2013 лекция 7
 
Собираем кубик Рубика
Собираем кубик РубикаСобираем кубик Рубика
Собираем кубик Рубика
 
INFOSYSTEMS. How to Measure Software Architecture [1.01, RUS]
INFOSYSTEMS. How to Measure Software Architecture [1.01, RUS]INFOSYSTEMS. How to Measure Software Architecture [1.01, RUS]
INFOSYSTEMS. How to Measure Software Architecture [1.01, RUS]
 
UML2. Eleven Trivial Tips for BPMN Modellers [1.01, RUS]
UML2. Eleven Trivial Tips for BPMN Modellers [1.01, RUS]UML2. Eleven Trivial Tips for BPMN Modellers [1.01, RUS]
UML2. Eleven Trivial Tips for BPMN Modellers [1.01, RUS]
 
Бизнес весна 2014 лекция 3
Бизнес весна 2014 лекция 3Бизнес весна 2014 лекция 3
Бизнес весна 2014 лекция 3
 
Ответственность за качество в разных ИТ-проектах: в чем она и как ее разделять
Ответственность за качество в разных ИТ-проектах: в чем она и как ее разделятьОтветственность за качество в разных ИТ-проектах: в чем она и как ее разделять
Ответственность за качество в разных ИТ-проектах: в чем она и как ее разделять
 
Системная инженерия: вызовы времени По результатам конференции RuSEC2010
Системная инженерия: вызовы времени По результатам конференции RuSEC2010Системная инженерия: вызовы времени По результатам конференции RuSEC2010
Системная инженерия: вызовы времени По результатам конференции RuSEC2010
 
SPb BA & SA Night. Learning a New Business Domain [1.01, RUS]
SPb BA & SA Night. Learning a New Business Domain [1.01, RUS]SPb BA & SA Night. Learning a New Business Domain [1.01, RUS]
SPb BA & SA Night. Learning a New Business Domain [1.01, RUS]
 
HTP. Business Requirements Elicitation & Documentation [1.01, RUS]
HTP. Business Requirements Elicitation & Documentation [1.01, RUS]HTP. Business Requirements Elicitation & Documentation [1.01, RUS]
HTP. Business Requirements Elicitation & Documentation [1.01, RUS]
 
SPb BA & SA Night. Stakeholder Management Essentials [1.01, RUS]
SPb BA & SA Night. Stakeholder Management Essentials [1.01, RUS]SPb BA & SA Night. Stakeholder Management Essentials [1.01, RUS]
SPb BA & SA Night. Stakeholder Management Essentials [1.01, RUS]
 
Software People 2010
Software People 2010Software People 2010
Software People 2010
 
Современна Программная инженерия. Системная инженерия
Современна Программная инженерия. Системная инженерияСовременна Программная инженерия. Системная инженерия
Современна Программная инженерия. Системная инженерия
 
Проектирование больших ИС в Agile (статья)
Проектирование больших ИС в Agile (статья)Проектирование больших ИС в Agile (статья)
Проектирование больших ИС в Agile (статья)
 
REQ Labs 2014. Smart Business Modelling: A Key to Success in Enterprise Autom...
REQ Labs 2014. Smart Business Modelling: A Key to Success in Enterprise Autom...REQ Labs 2014. Smart Business Modelling: A Key to Success in Enterprise Autom...
REQ Labs 2014. Smart Business Modelling: A Key to Success in Enterprise Autom...
 
Бизнес весна 2014 лекция 2
Бизнес весна 2014 лекция 2Бизнес весна 2014 лекция 2
Бизнес весна 2014 лекция 2
 
О.Савин -- Modelica в архитектурном моделировании
О.Савин -- Modelica в архитектурном моделированииО.Савин -- Modelica в архитектурном моделировании
О.Савин -- Modelica в архитектурном моделировании
 
Пост-корпоративные архитектуры и архитектура совместного социального действия
Пост-корпоративные архитектуры и архитектура совместного социального действияПост-корпоративные архитектуры и архитектура совместного социального действия
Пост-корпоративные архитектуры и архитектура совместного социального действия
 

Similar to Архитектура ПО: управляя самым важным

2013-04-06 01 Максим Юнусов. Архитектура в agile-проекте
2013-04-06 01 Максим Юнусов. Архитектура в agile-проекте2013-04-06 01 Максим Юнусов. Архитектура в agile-проекте
2013-04-06 01 Максим Юнусов. Архитектура в agile-проектеОмские ИТ-субботники
 
Системный архитектор и поиск нирваны
Системный архитектор и поиск нирваныСистемный архитектор и поиск нирваны
Системный архитектор и поиск нирваныYehor Churilov
 
Архитектура в Agile проекте
Архитектура в Agile проектеАрхитектура в Agile проекте
Архитектура в Agile проектеLuxoftTraining
 
Клуб Архитекторов 22.04.2010
Клуб Архитекторов 22.04.2010Клуб Архитекторов 22.04.2010
Клуб Архитекторов 22.04.2010Sergey Orlik
 
Enterprise Architeсture from MA - definition v 6-1
Enterprise Architeсture from MA - definition v 6-1Enterprise Architeсture from MA - definition v 6-1
Enterprise Architeсture from MA - definition v 6-1Victor Rud
 
Cистемная инженерия безопасности объектов недвижимости и бизнес-процессов.
Cистемная инженерия безопасности объектов недвижимости и бизнес-процессов.Cистемная инженерия безопасности объектов недвижимости и бизнес-процессов.
Cистемная инженерия безопасности объектов недвижимости и бизнес-процессов.Yuri Bubnov
 
2012 andieva e_ju_innovative_management_of_complex_software_projects
2012 andieva e_ju_innovative_management_of_complex_software_projects2012 andieva e_ju_innovative_management_of_complex_software_projects
2012 andieva e_ju_innovative_management_of_complex_software_projectsdataomsk
 
Процесс проектирования ИТ-решений
Процесс проектирования ИТ-решенийПроцесс проектирования ИТ-решений
Процесс проектирования ИТ-решенийМаксим Смирнов
 
Тренды в инженерии требований и управлении требованиями
Тренды в инженерии требований и управлении требованиямиТренды в инженерии требований и управлении требованиями
Тренды в инженерии требований и управлении требованиямиAnatoly Levenchuk
 
Conception
ConceptionConception
Conceptionbiv63
 
технология разработки программного обеспечения
технология разработки программного обеспечениятехнология разработки программного обеспечения
технология разработки программного обеспеченияRauan Ibraikhan
 
Технология разработки программного обеспечения
Технология разработки программного обеспеченияТехнология разработки программного обеспечения
Технология разработки программного обеспеченияRauan Ibraikhan
 
А.Левенчук -- SysArchi
А.Левенчук -- SysArchiА.Левенчук -- SysArchi
А.Левенчук -- SysArchiAnatoly Levenchuk
 
Доклад и реферат по теме системной инженерии "Управление архитектурой при про...
Доклад и реферат по теме системной инженерии "Управление архитектурой при про...Доклад и реферат по теме системной инженерии "Управление архитектурой при про...
Доклад и реферат по теме системной инженерии "Управление архитектурой при про...Anatoly Simkin
 
Проектирование программных систем. Занятие 4
Проектирование программных систем. Занятие 4Проектирование программных систем. Занятие 4
Проектирование программных систем. Занятие 4Dima Dzuba
 

Similar to Архитектура ПО: управляя самым важным (20)

2013-04-06 01 Максим Юнусов. Архитектура в agile-проекте
2013-04-06 01 Максим Юнусов. Архитектура в agile-проекте2013-04-06 01 Максим Юнусов. Архитектура в agile-проекте
2013-04-06 01 Максим Юнусов. Архитектура в agile-проекте
 
Системный архитектор и поиск нирваны
Системный архитектор и поиск нирваныСистемный архитектор и поиск нирваны
Системный архитектор и поиск нирваны
 
Архитектура в Agile проекте
Архитектура в Agile проектеАрхитектура в Agile проекте
Архитектура в Agile проекте
 
Клуб Архитекторов 22.04.2010
Клуб Архитекторов 22.04.2010Клуб Архитекторов 22.04.2010
Клуб Архитекторов 22.04.2010
 
Present architect
Present architectPresent architect
Present architect
 
Enterprise Architeсture from MA - definition v 6-1
Enterprise Architeсture from MA - definition v 6-1Enterprise Architeсture from MA - definition v 6-1
Enterprise Architeсture from MA - definition v 6-1
 
Cистемная инженерия безопасности объектов недвижимости и бизнес-процессов.
Cистемная инженерия безопасности объектов недвижимости и бизнес-процессов.Cистемная инженерия безопасности объектов недвижимости и бизнес-процессов.
Cистемная инженерия безопасности объектов недвижимости и бизнес-процессов.
 
IT Project Life cycle
IT Project Life cycleIT Project Life cycle
IT Project Life cycle
 
Архитектура - что это?
Архитектура - что это?Архитектура - что это?
Архитектура - что это?
 
2012 andieva e_ju_innovative_management_of_complex_software_projects
2012 andieva e_ju_innovative_management_of_complex_software_projects2012 andieva e_ju_innovative_management_of_complex_software_projects
2012 andieva e_ju_innovative_management_of_complex_software_projects
 
Системный инжиниринг
Системный инжинирингСистемный инжиниринг
Системный инжиниринг
 
Системный инжиниринг
Системный инжинирингСистемный инжиниринг
Системный инжиниринг
 
Процесс проектирования ИТ-решений
Процесс проектирования ИТ-решенийПроцесс проектирования ИТ-решений
Процесс проектирования ИТ-решений
 
Тренды в инженерии требований и управлении требованиями
Тренды в инженерии требований и управлении требованиямиТренды в инженерии требований и управлении требованиями
Тренды в инженерии требований и управлении требованиями
 
Conception
ConceptionConception
Conception
 
технология разработки программного обеспечения
технология разработки программного обеспечениятехнология разработки программного обеспечения
технология разработки программного обеспечения
 
Технология разработки программного обеспечения
Технология разработки программного обеспеченияТехнология разработки программного обеспечения
Технология разработки программного обеспечения
 
А.Левенчук -- SysArchi
А.Левенчук -- SysArchiА.Левенчук -- SysArchi
А.Левенчук -- SysArchi
 
Доклад и реферат по теме системной инженерии "Управление архитектурой при про...
Доклад и реферат по теме системной инженерии "Управление архитектурой при про...Доклад и реферат по теме системной инженерии "Управление архитектурой при про...
Доклад и реферат по теме системной инженерии "Управление архитектурой при про...
 
Проектирование программных систем. Занятие 4
Проектирование программных систем. Занятие 4Проектирование программных систем. Занятие 4
Проектирование программных систем. Занятие 4
 

More from CUSTIS

Три истории микросервисов, или MSA для Enterprise
Три истории микросервисов, или MSA для EnterpriseТри истории микросервисов, или MSA для Enterprise
Три истории микросервисов, или MSA для EnterpriseCUSTIS
 
Долгоживущие ИТ в динамичном ритейле
Долгоживущие ИТ в динамичном ритейлеДолгоживущие ИТ в динамичном ритейле
Долгоживущие ИТ в динамичном ритейлеCUSTIS
 
Будущее уже наступило: от Agile к бирюзовым организациям
Будущее уже наступило: от Agile к бирюзовым организациямБудущее уже наступило: от Agile к бирюзовым организациям
Будущее уже наступило: от Agile к бирюзовым организациямCUSTIS
 
Как выбрать для проекта практики проектирования и работы с требованиями
Как выбрать для проекта практики проектирования и работы с требованиямиКак выбрать для проекта практики проектирования и работы с требованиями
Как выбрать для проекта практики проектирования и работы с требованиямиCUSTIS
 
Диаграммы учета как средство для наглядного и целостного отображения правил у...
Диаграммы учета как средство для наглядного и целостного отображения правил у...Диаграммы учета как средство для наглядного и целостного отображения правил у...
Диаграммы учета как средство для наглядного и целостного отображения правил у...CUSTIS
 
Сотрудничество с корпорациями: рецепты из практики
Сотрудничество с корпорациями: рецепты из практикиСотрудничество с корпорациями: рецепты из практики
Сотрудничество с корпорациями: рецепты из практикиCUSTIS
 
Agile — ответ на вызовы третьей промышленной революции
Agile — ответ на вызовы третьей промышленной революцииAgile — ответ на вызовы третьей промышленной революции
Agile — ответ на вызовы третьей промышленной революцииCUSTIS
 
Опыт построения микросервисной архитектуры в цифровом банке
Опыт построения микросервисной архитектуры в цифровом банкеОпыт построения микросервисной архитектуры в цифровом банке
Опыт построения микросервисной архитектуры в цифровом банкеCUSTIS
 
Золотая лихорадка MSA: почему нам не подошли микросервисы?
Золотая лихорадка MSA: почему нам не подошли микросервисы?Золотая лихорадка MSA: почему нам не подошли микросервисы?
Золотая лихорадка MSA: почему нам не подошли микросервисы?CUSTIS
 
Барьеры микросервисной архитектуры
Барьеры микросервисной архитектурыБарьеры микросервисной архитектуры
Барьеры микросервисной архитектурыCUSTIS
 
Три истории микросервисов
Три истории микросервисовТри истории микросервисов
Три истории микросервисовCUSTIS
 
От монолитных моделей предметной области — к модульным
От монолитных моделей предметной области — к модульнымОт монолитных моделей предметной области — к модульным
От монолитных моделей предметной области — к модульнымCUSTIS
 
Проблемы управления правами доступа к информационным системам крупной торгово...
Проблемы управления правами доступа к информационным системам крупной торгово...Проблемы управления правами доступа к информационным системам крупной торгово...
Проблемы управления правами доступа к информационным системам крупной торгово...CUSTIS
 
Будущее omni-channel маркетинга: инструменты, кейсы и цифры
Будущее omni-channel маркетинга: инструменты, кейсы и цифрыБудущее omni-channel маркетинга: инструменты, кейсы и цифры
Будущее omni-channel маркетинга: инструменты, кейсы и цифрыCUSTIS
 
Agile и управление знаниями в ИТ-проектах
Agile и управление знаниями в ИТ-проектахAgile и управление знаниями в ИТ-проектах
Agile и управление знаниями в ИТ-проектахCUSTIS
 
State of the .Net Performance
State of the .Net PerformanceState of the .Net Performance
State of the .Net PerformanceCUSTIS
 
Опыт применения метода ATAM для оценки архитектуры
Опыт применения метода ATAM для оценки архитектурыОпыт применения метода ATAM для оценки архитектуры
Опыт применения метода ATAM для оценки архитектурыCUSTIS
 
Гибридный подход к управлению правами доступа: когда стандартного IDM не хватает
Гибридный подход к управлению правами доступа: когда стандартного IDM не хватаетГибридный подход к управлению правами доступа: когда стандартного IDM не хватает
Гибридный подход к управлению правами доступа: когда стандартного IDM не хватаетCUSTIS
 
Собираем кубик Рубика: восстановление архитектурного описания корпоративной р...
Собираем кубик Рубика: восстановление архитектурного описания корпоративной р...Собираем кубик Рубика: восстановление архитектурного описания корпоративной р...
Собираем кубик Рубика: восстановление архитектурного описания корпоративной р...CUSTIS
 
Process и Case Management в информационной системе: от автоматизации As Is к ...
Process и Case Management в информационной системе: от автоматизации As Is к ...Process и Case Management в информационной системе: от автоматизации As Is к ...
Process и Case Management в информационной системе: от автоматизации As Is к ...CUSTIS
 

More from CUSTIS (20)

Три истории микросервисов, или MSA для Enterprise
Три истории микросервисов, или MSA для EnterpriseТри истории микросервисов, или MSA для Enterprise
Три истории микросервисов, или MSA для Enterprise
 
Долгоживущие ИТ в динамичном ритейле
Долгоживущие ИТ в динамичном ритейлеДолгоживущие ИТ в динамичном ритейле
Долгоживущие ИТ в динамичном ритейле
 
Будущее уже наступило: от Agile к бирюзовым организациям
Будущее уже наступило: от Agile к бирюзовым организациямБудущее уже наступило: от Agile к бирюзовым организациям
Будущее уже наступило: от Agile к бирюзовым организациям
 
Как выбрать для проекта практики проектирования и работы с требованиями
Как выбрать для проекта практики проектирования и работы с требованиямиКак выбрать для проекта практики проектирования и работы с требованиями
Как выбрать для проекта практики проектирования и работы с требованиями
 
Диаграммы учета как средство для наглядного и целостного отображения правил у...
Диаграммы учета как средство для наглядного и целостного отображения правил у...Диаграммы учета как средство для наглядного и целостного отображения правил у...
Диаграммы учета как средство для наглядного и целостного отображения правил у...
 
Сотрудничество с корпорациями: рецепты из практики
Сотрудничество с корпорациями: рецепты из практикиСотрудничество с корпорациями: рецепты из практики
Сотрудничество с корпорациями: рецепты из практики
 
Agile — ответ на вызовы третьей промышленной революции
Agile — ответ на вызовы третьей промышленной революцииAgile — ответ на вызовы третьей промышленной революции
Agile — ответ на вызовы третьей промышленной революции
 
Опыт построения микросервисной архитектуры в цифровом банке
Опыт построения микросервисной архитектуры в цифровом банкеОпыт построения микросервисной архитектуры в цифровом банке
Опыт построения микросервисной архитектуры в цифровом банке
 
Золотая лихорадка MSA: почему нам не подошли микросервисы?
Золотая лихорадка MSA: почему нам не подошли микросервисы?Золотая лихорадка MSA: почему нам не подошли микросервисы?
Золотая лихорадка MSA: почему нам не подошли микросервисы?
 
Барьеры микросервисной архитектуры
Барьеры микросервисной архитектурыБарьеры микросервисной архитектуры
Барьеры микросервисной архитектуры
 
Три истории микросервисов
Три истории микросервисовТри истории микросервисов
Три истории микросервисов
 
От монолитных моделей предметной области — к модульным
От монолитных моделей предметной области — к модульнымОт монолитных моделей предметной области — к модульным
От монолитных моделей предметной области — к модульным
 
Проблемы управления правами доступа к информационным системам крупной торгово...
Проблемы управления правами доступа к информационным системам крупной торгово...Проблемы управления правами доступа к информационным системам крупной торгово...
Проблемы управления правами доступа к информационным системам крупной торгово...
 
Будущее omni-channel маркетинга: инструменты, кейсы и цифры
Будущее omni-channel маркетинга: инструменты, кейсы и цифрыБудущее omni-channel маркетинга: инструменты, кейсы и цифры
Будущее omni-channel маркетинга: инструменты, кейсы и цифры
 
Agile и управление знаниями в ИТ-проектах
Agile и управление знаниями в ИТ-проектахAgile и управление знаниями в ИТ-проектах
Agile и управление знаниями в ИТ-проектах
 
State of the .Net Performance
State of the .Net PerformanceState of the .Net Performance
State of the .Net Performance
 
Опыт применения метода ATAM для оценки архитектуры
Опыт применения метода ATAM для оценки архитектурыОпыт применения метода ATAM для оценки архитектуры
Опыт применения метода ATAM для оценки архитектуры
 
Гибридный подход к управлению правами доступа: когда стандартного IDM не хватает
Гибридный подход к управлению правами доступа: когда стандартного IDM не хватаетГибридный подход к управлению правами доступа: когда стандартного IDM не хватает
Гибридный подход к управлению правами доступа: когда стандартного IDM не хватает
 
Собираем кубик Рубика: восстановление архитектурного описания корпоративной р...
Собираем кубик Рубика: восстановление архитектурного описания корпоративной р...Собираем кубик Рубика: восстановление архитектурного описания корпоративной р...
Собираем кубик Рубика: восстановление архитектурного описания корпоративной р...
 
Process и Case Management в информационной системе: от автоматизации As Is к ...
Process и Case Management в информационной системе: от автоматизации As Is к ...Process и Case Management в информационной системе: от автоматизации As Is к ...
Process и Case Management в информационной системе: от автоматизации As Is к ...
 

Архитектура ПО: управляя самым важным

Editor's Notes

  1. 0:00
  2. 0:02 Заказная разработка иногда напоминает создание летающих слонов: Нужно сделать то, чего нигде нет Это мало кому действительно нужно И (поэтому) стоит весьма дорого
  3. Большие системы Тематика учета в широком смысле слова
  4. Сейчас в компании немногим больше 200 человек.
  5. Четверть из них – профессиональная инфраструктура (маркетологи, бухгалтеры, юристы, специалисты отдела персонала), остальные заняты в проектных командах.
  6. Каждый пятый специалист компании окончил вуз с отличием 
  7. 30% всех сотрудников компании – девушки и женщины; в производстве 22% девушек и 78% ребят, в инфраструктуре мужчин и женщин поровну.
  8. 0:03
  9. * Разделены три процесса. Процесс проектирования и две управляющие надстройки. * Мы сегодня обзорно, на уровне понятий и принципов, поговорим про нижние две стрелки.
  10. * 0:05 Про архитектуру в жизни студента и молодого специалиста
  11. Мы будем в конце концов выходить на управление архитектурой. То есть к работе менеджера-организатора над архитектором. Многие хотят вырасти из программиста в менеджеры, но далеко не всем эта работа действительно придется по вкусу. То же самое – с работой архитектора. Многие хотят, но действительная работа архитектора – это совсем не то же самое, что работа «самого умного и главного программиста». Основным результатом становятся документы, а не программы, а основным средством – способность разговаривать, а не думать в одиночку. Подходит тоже далеко не всем. Вам до таких позиций еще далеко. Будете долго работать внутри команд, не управляя, а подчиняясь архитектуре. Потому что опыт необходим. НО! Будете смотреть, что происходит. Не думайте, что начальники всегда точно знают что делают и делают правильно. Задавайте вопросы, проясняйте, подсказывайте. Понимание происходящего – это главный момент в управлении, а не официальная должность и полномочия.
  12. 0:06 О чем примерно говорим
  13. 0:07 Мы говорим именно про программную архитектуру, «Software Architecture». Хотя в большинстве случаев принципы будут подходить к любым системам. Коротко, у нас не урок истории. Просто чтобы подойти к пониманию текущей ситуации. История дисциплины, т.е. методов работы
  14. Программная инженерия создавалась как средство в борьбе со сложностью, направленное против ухудшающегося качества программных систем. Стенограммы обсуждений открыты, можно почитать, в них участвуют Дейкстра, Вирт. Тони Хоар, Эдсгер Дейкстра, Алан Перлис, Пер Бринч Хансен, Фридрих Бауэр и Никлаус Вирт. Термин «SA» используется одним человеком, в одном сообщении.
  15. «Есть некое дополнение к программированию, и его надо вытащить на свет. Это программная архитектура. Архитектура и проектирование — не одно и то же. » Они дискутировали и называли это «теорией» против «практики»
  16. Стандарты выбраны как средство распространения знаний, причем именно понятийно-концептуального характера, а не справочного
  17. В системной инженерии также есть понятие архитектуры Очень многие методы работы оказываются общими Стандарт про документирование – основополагающий, с ним нужно быть знакомым всем. Но мы сегодня много о документировании говорить не будем. В целом состояние дисциплины такое, что можно говгорить о возможности внедрения подходов и методов
  18. 0:10 Кто такие практики? Не академическая среда исследовательского института, а реальные бизнес-разработки софта.
  19. Ситуация не самая благоприятная, ОСОБЕННО для больших проектов Фиксируют улучшение ситуации, но только для маленьких проектов Любопытно, что среди факторов успеха собственно архитектурную работу не называют, и даже не исследуют
  20. Смена точки управления снабжением в торговой сети (переход к централизованному управлению).
  21. Мы видим, что недостаток архитектурной работы очень сильно влияет именно на большие проекты Гипотеза: это и есть тот неучтенный фактор Кроме того, даже для маленьких проектов оказывается заметное влияние при совсем небольших вложениях, ROI даже выше И затраты – это не единственный и не самый главный результат АП
  22. Умы были больше заняты Agile Быстро адаптировать теоретические изыскания к практике не получается. Несмотря на огромное количество литературы (преимущественно на английском) до сих пор к этой деятельности очень многие компании подходят не систематически, а полагаясь на искусство отдельных разработчиков. Если для других дисциплин программной инженерии — управления требованиями, контроля качества, или собственно кодирования целесообразность достаточно очевидна, то для выделения архитектурного дизайна в отдельную управляемую область очень часто руководители не находят достаточных оснований. Ведь есть же программисты, и причем очень компетентные, пусть они и думают как сделать лучше. Статья Дэвида Гарлана в 2000м году предрекала 10летие программной архитектуры на западе
  23. Аналогия хорошая Отношения руководителя с архитектором напоминают отношения короля с придворным алхимиком Никто не понимает, как они творят чудеса превращений И они сами тоже не понимают У них это не всегда получается, хотя они используют много средств – заговоры, заклинания, ритуалы, особые игридиенты, выбор фазы луны Точно также как химия пришла на смену алхимии, и архитектурная работа должна де-алхимизироваться. Фактически это уже произошло, только практики не в курсе. Болезни незрелости: проектирование от моды, от традиции, от авторитета, ad hoc, только при старте, обучение на жесточайших ошибках, невозможность говорить о самом предметно об объекте архитектуры. От технологий и инструментов. Мистификация архитектуры. Алхимия. Спиральная динамика – красные и фиолетовые мемы, местами догматично-синие, вместо прагматично-оранжевых. Управленцы не знают, что с этим делать!
  24. 0:25 Затруднения управленцев, на самом деле. Первые три мы пытаемся забороть
  25. Абстрактное и интуитивное представление не позволяет управлять. Становимся заложниками обстоятельств.
  26. Крайне метафоричны и бесполезны, хотя иногда – эмоциональны и вдохновляющи Говорят скорее о пользе, чем о сути Все правда – но не помогает разобраться НЕ ОПЕРАЦИОНАЛЬНЫ
  27. 0:30 Мы увидим, как все эти определения ходят вокруг да около…
  28. Примеры сложных понятий: семья, государство, человек, организация, ответственность. 150 определений архитектуры «Определение – гробик для мысли.» Пример – аэропорт как часть транспортной системы. Система аварийного пожаротушения самолета. Позже покажем схему как альтернативный способ сжатого задания понятий
  29. Начнем с самых первых попыток определить архитектуру Направляющий характер Про то, что снаружи
  30. Про то, что внутри
  31. Представления до 90х Только статическая структура Очень ограниченный набор Представления о каркасе просты – «что внутри модуля – то дизайн»
  32. Любопытно. Процессы разработки сюда попали. Про внешнее. Пока метафора.
  33. Про внутреннее (и внешнее – тоже каркас) Модули превратились в более абстрактные «элементы», данные – в более абстрактные «взаимодействия» Ограничения – это очень интересно – это то, чего НЕТ в реализации. Тавтология про «архитектурные элементы» Указана прагматика Еще интереснее – указаны «объяснения» Взаимодействия добавляют что-то про динамику
  34. Начала 90х – начались усложнения представлений. Явно появились штуки, не входящие в целевую систему – ограничения, объяснения Появилась динамика
  35. Много перечислений Определения пухнут в размерах и в количестве Вводится понятие об «уровне дизайна», но непонятно, что это за уровень такой, как его увидеть. Но утверждается, что архитектура – тоже дизайн, т.е. это две части одного общего. «Дизайн» теперь надо называть «low-level» Утверждается общая природа, общий материал и законы существования для всего проектирования.
  36. Интересно – возникли интересанты и их потребности, архитектура как-то и провязывается к ним, и включает их (?!). В остальном – все просто – элементы, связи, ограничения Любопытно, что ЕСЛИ будет реализована. Это явно отделяет архитектуру во времени существования от самой системы.
  37. Вторая половина 90х Целевая система отделена от архитектуры Потребности отделены от утверждений Дизайн делится на архитектурный и LL Содержание пухнет и размывается
  38. Разные представления Есть окружение разработки
  39. Разные представления – это значит, нет уже «одной диаграммы», есть множество взглядов Разные декомпозиции Окружение разработки
  40. Архитектура = Описание Проектировочные решения «Высокоуровневые» - ?!
  41. Архитектура – не описание, а собственно набор решений Появился стиль
  42. Состоит – это значит, внутри решения Обеспечивают – это значит, снаружи Концептуальная основа – роль Не = описание Что такое «важные»?
  43. Разные представления – это значит, нет уже «одной диаграммы», одной структуры, есть множество разнородных взглядов/видов/планов Разные декомпозиции, design-time, runtime Окружение разработки Обобщение всех деталей до «проектных решений» Структуры и связи – частный случай, не схватывающий главного
  44. Развели архитектуру с описанием Появляется развитие. Появляется окружение. Появляется «фундаментальные», впрочем, плохо раскрытые. Фундаментальные – это не все, а «самые важные»  Появляются «принципы». Описание отделено от архитектуры. В целом уровень абстракции нарастает. Многие предыдущие определения и их части впитаны в абстрактной форме. Элементы стали формой выражения концепций и свойств. Большое описание, как непросто приходили к этому определению. concepts or properties – отдельная ржака. Идеалисты/эмпирики. Не дает понимания того, откуда брать эти «концепции и свойства».
  45. Описание – отдельно Система в окружении Развитие Элементы, связи и принципы проектирования – это только средство выражения концепций и свойств
  46. Было поломано много копий на обсуждении предмета К консенсусу до конца не пришли На их счастье, с документированием можно было разбираться без полного понимания, что они и сделали Для управления важно понимать суть
  47. Структура описания из стандарта, отношение описания и А.
  48. Структура описания из стандарта, отношение описания и А.
  49. 0:50 Нужно разлепить слепленные вещи, выделить главное, добавить четкости
  50. Перечисление здесь не работает. Необходимо обобщение. Абстрактное проектное решение – такое обобщение. Которое позволит работать со всем разнообразием, если мы выделим общие свойства для всех решений и через эти свойства сможем говорить про архитектуру. Но нужно что-то, что позволит отличить архитектурные решения от неархитектурных Что такое «самые важные»?
  51. Решения включают требования, ограничения, окружение! Решения могут быть довольно абстрактны («любая ОС на клиенте») и не-модельны
  52. Пытаемся локализовать изменения в листьях, тогда это будет дешево Именно в этой логике кроются все поиски архитектуры с 1968 года – модули, связи, интерфейсы
  53. Статья Фаулера «Кому нужен архитектор» 2003 год Ральф Джонсон – один из «банды четырех» Фаулер – логический перескок причины. Почему эксперт так говорит? Потому что он понимает зависимости. Джонсон – ошибка, зависимость решений – такая причина.
  54. 1:00 Следствия, которые могут показаться неожиданными На самом деле, они совершенно естественны, если мы взглянем с позиции использования и управления архитектурой
  55. Свойства системы – то, что наблюдается извне, в процессе функционирования. Требования и ограничения. Перетипизовали наше множество решений (структуры, связи, и т.д.)
  56. Очень близкое. То же самое, но лаконично, хорошо для запоминания. 20% - конечно условно Уточнение про 80% именно устройства. Т.е. архитектура – это то, что направляет проектировщиков, а не то, что направляет инженеров по требованию или еще кого-то.
  57. Свойства системы – то, что наблюдается извне, в процессе функционирования. Требования и ограничения. Перетипизовали наше множество решений (структуры, связи, и т.д.)
  58. Но не обоснования
  59. Это ровно тот смысл, который имел в виду Фаулер – «важные – это те, которые эксперт считает важными». Только мы теперь можем это объяснить
  60. Далеко не все, что здесь отражено – действительно архитектурные решения. И заранее даже не скажешь. Нужно понимать контекст. На самом деле архитектурным решением может быть не ВСЕ, что сказано в этой модели, а только пара связей или отношений, или какой-то общий тип данных во всех таблицах, или разделение этой модели на две подобласти – DDD. Пример не-модельного решения: в доме НЕ ДОЛЖНЫ использоваться материалы, содержащие опасные вещества ИЛИ: при выборе технологий следует пользоваться ТОЛЬКО внешними технологиями и компонентами с качественной поддержкой (проприетарными или OpenSource) Модели могут быть не-структурными, например модель математической функции.
  61. Алхимия закончилась, у нас появились представления о молекулах, с которых начинается и заканчивается все. Фазы луны и заклинаний нет. Определение универсально и для строительства, и для железной инженерии, и для софта, и для деятельности
  62. 1:10
  63. 1:30 Определение универсально и для строительства, и для железной инженерии, и для софта, и для деятельности Примеру будем смотреть везде (и надо учиться их искать везде) И только теперь, с новым пониманием – смотрим картинки – для закрепления Со строительной архитектурой – сложно, т.к. часть ее направлена на выражение и эстетику. Но можно смотреть ту часть, которая на функциональность.
  64. Является ли архитектурным решением граница между 10 и 11 блоком? Да их вообще можно оба выкинуть легко вместе с границей! Есть решение – о том, что все модули одинаковые, и какие Есть принцип организации (плохо выражающийся box-and-line-диаграммой) Количество блоков – произвольно и архитектурным решением не является А вот угол поворота - является
  65. Винтовые лестницы в башнях средневековых за́мков строились таким образом, чтобы подъём по ним осуществлялся по часовой стрелке. Это делалось для того, чтобы, в случае осады замка, защитники башни имели преимущество во время рукопашной схватки, так как наиболее сильный удар правой рукой можно нанести только справа налево, что было недоступно атакующим. Кроме того, если атакующий будет использовать для защиты щит, то он не сможет использовать оружие.[4] Однако подобная винтовая лестница в виде левой спирали характерна не для всех замков. Так в родовом замке графов Вальдштейнов (на немецкий лад Валленштейнов) лестницы были закручены наоборот – против часовой стрелки. Изучив историю этого знатнейшего рода Богемии, исследователи пришли к выводу, что причина кроется в таком, незначительном на первый взгляд, факте – среди рыцарей преобладали левши, а все преимущества для защитников «стандартной» закрутки винтовой лестницы распространяются только на правшей.
  66. Все – из белого мрамора Очень много шпилей На каждом шпиле - скульптуры
  67. В мосту – определяющие два элемента – арка и горизонталь. Остальная структура – по ситуации, в зависимости от рельефа. Фундаментальные решения не обязательно реализуются раньше!
  68. Это структура интернета
  69. Точнее будет сказать, что система команд составляет очень существенную часть архитектуры процессора
  70. Концентрация ресурсов.
  71. 1:45
  72. 1:45
  73. Архитектура - элемент производства
  74. Архитектура - стратегия проектирования. Стратегия – архитектура действия. Возникает вопрос – на что направлять? На то, что требуется и то, что стабильно. Направлять – это значит экономить усилия проектирования за счет узко определенной области Это ключевая функция, есть ряд других. Например, архитектура полезна и для оценки и для управления и для общения с заказчиком…
  75. Эти цели стабильны! Назначение - не равно требования! Назначение и качество более абстрактны и более стабильны. Требования могут меняться. Возникает вопрос – на что направлять? На то, что требуется и то, что стабильно. Чтобы понимать назначение и динамику – нужно понимать надсистему.
  76. Почему необходимо обратное проектирование? Нужно проектировать в т.ч. от среды. Проектируя самолет, нужно все знать про воздух, а корабль – про море.
  77. Ок, но кто все это должен делать? ИНТЕРАКТИВ! Сначала – архитектура, потом – архитектор В нормальной команде люди всегда найдут способ подкинуть хорошие идеи и покритиковать существующие
  78. Описание – отдельно Система в окружении Развитие Элементы, связи и принципы проектирования – это только средство выражения концепций и свойств
  79. 2:00 Больше - антипаттерны
  80. Забота управленца-организатора – выстроить именно такую машину В т.ч. обозначить ответственности Негативные паттерны вызваны тем, что представления в голове управленца или архитектора – НЕ ТАКИЕ, а БОЛЕЕ БЕДНЫЕ
  81. 2:00 Не негатив! Так бывает. Начальная точка.
  82. Столица Перу Очень частый случай Это может быть нормально, когда к целому нет никаких требований. Эта система – успешна (раз живет). Оптимальна на некотором этапе. Но неуправляема как целое и обладает только сложившимися качествами. Лоскутная автоматизация в IT – то же самое, нет проблем до определенных пор. Иногда складываются вполне хорошие общесистемные качества, однородность, порожденная ментальной схожестью авторов. Источник – ни у кого нет понимания архитектуры, (иногда нет и потребности) Случайная однородность – это еще не решение. Решение – это нечто осознанное и управляемое.
  83. 2:06
  84. Непонимание того, что код не может выразить архитектуру. Описание нуждается в других формах! Обсуждать невозможно, хотя интуитивно кто-то может и придумал некоторую цельную конструкцию. Порождается отсутствием представления, что А – важный объект управления, не выражаемый кодом, и должна быть объективирована отдельно.
  85. 2:16 Нет артефакта и все решения, принятые ранее и их обоснования – забываются Принимаются заново или ломаются Вызвано тем, что считается, что «слишком дорого документировать, никто не читает, все изменится». Если изменится – значит, либо документируете что-то другое, или этому надо уделить такое большое внимание, что стоимость документирования – мелочь. Отсутствие понимания ценности, важности объекта А как средства управления.
  86. 2:03
  87. * Обратный случай – попытка запихнуть все в архитектуру и управлять дизайном централизованно. Должна быть золотая середина между BDUF и полным отсутствием архитектурного проектирования «Все» запихивается в архитектуру
  88. 2:36
  89. Не понимание управленцев, что они губят продукт, не уделяя внимание. Не образуется направление, теряется целостность, удорожают изменения. Вызвано не ценностью для менеджера. А также не ценностью для клиента Нужно транслировать свое понимание ценности управленцам и клиентам, в терминах ВНЕШНЕГО качества. Хотя это сложно, т.к. очень часто всем-всем краткосрочные цели кажутся важнее долгосрочных.
  90. 2:23 Вызвано непониманием функций архитектуры. Отсутствием информации о качестве (плохим анализом). Архитектор должен чувствовать плохой анализ и, понимая, что не сможет сделать успешную систему без качественного анализа, решать эту проблему любыми способами. «Внутренняя красота» – не критерий. Даже от менеджеров можно слышать «я, конечно, понимаю, что внутренняя красота тоже важна» - это чушь. Это признак уступки и признак отсутствия ценности для менеджера.
  91. * 2:10
  92. Объект есть, предмет есть, но они оторваны от функций архитектуры. Архитектор делает ее «потому что он архитектор». Такое отношение поддерживается также страшилками про «архитектора в башне из слоновой кости» и «Big Design Up Front» (страшилки, конечно же, имеют под собой почву). Если архитектор сам не пишет код. Вызвано непониманием функций и качества архитектуры.
  93. 2:13 «Mы agile» - анархия agile. Страшилки Ivory Tower и BigDesignUpfront в арсенале. И этими страшилками из жизни – порождается. Никто не отвечает, потому что «все равны». Чтобы с этим разобраться, нужно очень хорошо понимать, что такое ответственность, а это штука тоже мутно понимаемая. «Никто не может мне сказать, как писать код! Или пишите сами! Если я не согласен – вы не должны ничего делать! Только 100% консенсус.» - узурпация власти посредством призыва к консенсусу и блокировки решения. Искаженные понимания Agile’а (воинствующий зеленый) как отсутствия дисциплины. Мне самому эти искажения были свойственны, возможно, через них проходит каждый (или не проходит). Также порождается отсутствием понимания, что А – это такой же цельный результат работы всей команды, имеющий определенное назначение и качество. Вряд ли про функционал системы кто-то из анархистов agile скажет «никто мне не указ, что система должна делать». Также порождается ошибочными представлениями, что единственный полезный результат – это функционал. См. доклад «прекратите думать о конвейере». Производство – саморазвивающаяся система, и один из элементов – архитектура.
  94. * 2:20 * Есть интуиция и знания Есть какие-то представления Нет ответственности за целое Этим и вызвано Может сочетаться с «Mы agile!»
  95. 2:30
  96. Фаулер Непонимание того, что архитектура – не алхимия, а вполне предметная и рациональная вещь. Ее нужно обосновывать через рацио, а не через регалии. Схожая проблема – с модой. Вызвано тем же – непониманием того, что архитектура – это не про опыт, не про доверие, и вообще не про личность. Есть конкретный объективный объект и у него есть объективное качество, и разговаривать можно и нужно о нем, а не о личностях.
  97. 2:40 Например, оценка жизнеспособности технологий на интервале 5-1 Очень много коммуникаций, высокие требования к коммуникабельности, умению говорить, объяснять, выражать мысли устно и письменно, компактно и самую суть. Может говорить не на C++, а с заказчиком. С теми, с кем нужно, на нужном языке. Может быть не-специалистом в отдельных областях. Но нужен широкий кругозор, и охват. Метафора Декатлона. Вызвано: непониманием сущности объекта архитектуры, функций и ответственности архитектора. Нормально, но нужно доучивать и прокачивать soft skills.
  98. 2:43 Развивающаяся надсистема. Сечения цилиндра. Не от стратегии на ПЖЦ, на роста объемов, изменения бизнеса и технологий.
  99. 2:50
  100. Может быть вызвано тем, что архитектор = руководитель проекта, и его ответственность заканчивается проектом Это может быть не со зла и не сознательно Исправляться может оценкой качества архитектуры при сдаче Связано с «архитектура на год»
  101. 2:33
  102. Две формы – архитектура переносится из системы в систему Архитектура не пересматривается в рамках одной сильно меняющейся системы Ведет к тому, что архитектура плохо работает для новых условий Вызвано и экономико-юридическими сложностями отношений с заказчиком (нужно говорить с ним об архитектуре) и убеждениями, что «архитектура – это то, Что было сделано в начале и не должно меняьтся» Что «лучше взять архитектуру от старой системы, это менее рисковано»
  103. * 2:46
  104. Желание сэкономить через повторное использование Но неверно выбрано масштаб Повторное использование возможно только в том же контексте, и для архитектуры целиком этот контекст слишком специфичен, чтобы повториться Вместо этого надо нарабатывать (или брать готовыми) более мелкие фрагменты архитектуры и выстраивать заново (возможно, быстрее) на новых проектах Концепия Software Product Lines
  105. 2:50
  106. Архитектор присутствует на ключевых совещаниях
  107. 3:00