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