АРХИТЕКТУРА И ДИЗАЙН 
надежнобыстровместительнобезопасновездепроходимый автомобиль 
Yury Chernushenko
ГРЕКАМ И НЕ СНИЛОСЬ 
Yury Chernushenko 
2 
АРХИТЕКТУРА) 
• Типичные ошибки) 
• Драйверы архитектуры) 
• Типы представлений) 
• Примеры шаблонов
БОЕВОЙ НАБОР ИНЖЕНЕРА 
Yury Chernushenko 
3 
Архитектура 
Планирование и 
управление командой 
Дизайн и Разработка 
Упраление 
требованиями
ПОКАЖИТЕ АРХИТЕКТУРУ 
Yury Chernushenko 
4 
FAIL
… ПОЛУЧИЛОСЬ КАК ВСЕГДА - 1 
это слои? как связаны элементы? что такое внутренний компонент? 
Yury Chernushenko 
5
… ПОЛУЧИЛОСЬ КАК ВСЕГДА -2 
где легенда? что означают стрелочки? это взаимодействие в runtime? 
Yury Chernushenko 
6
… ПОЛУЧИЛОСЬ КАК ВСЕГДА - 3 
все на одной диаграмме. что означает форма? что означает цвет? 
Yury Chernushenko 
7
«КТО ВИНОВАТ?» 
ПЛОХО, НЕТ СТРАТЕГИИ РАЗРАБОТКИ 
Требования Спецификация (ТЗ) Приложение 
Yury Chernushenko 
ЕЩЕ ХУЖЕ 
8
«ЧТО ДЕЛАТЬ?» 
На основе 
требований 
На основе 
архитектуры 
Требования АРХИТЕКТУРАСпецификация (ТЗ) Приложение 
Yury Chernushenko 9 
На основе 
дизайна 
АРХИТЕКТУРНЫЕ 
ДРАЙВЕРЫ 
ПРЕДСТАВЛЕНИЯ 
(ДИАГРАММЫ) 
ОПИСАНИЕ ПРИНЯТЫХ РЕШЕНИЙ 
(В ЧЕМ КОМПРОМИСС)
Архитектурный 
«астронавт» 
ЗНАКОМЬТЕСЬ 
ТЕМНАЯ СТОРОНА АРХИТЕКТУРЫ: 
! 
✴ СЛИШКОМ АБСТРАКТНАЯ АРХИТЕКТУРА 
✴ НЕ АДАПТИРОВАННА ПОД СИТУАЦИЮ ПРОЕКТА 
✴ ДЕЛАЕТСЯ НЕТЕХНИЧЕСКИМИ СПЕЦИАЛИСТАМИ 
✴ «ИСТОРИЧЕСКИ СЛОЖИЛОСЬ» 
✴ «ИСПОЛЬЗУЮ MVC ДЛЯ ВСЕГО!» 
Yury Chernushenko 
10
ДРАЙВЕРЫ АРХИТЕКТУРЫ 
Yury Chernushenko 
11 
ФУНКЦИОНАЛЬНЫЕ 
ТРЕБОВАНИЯ 
ТЕХНИЧЕСКИЕ И БИЗНЕС 
АТТРИБУТЫ 
КАЧЕСТВА 
ОГРАНИЧЕНИЯ
ТИПЫ ПРЕДСТАВЛЕНИЙ 
ДИНАМИЧЕСКОЕ - показывает структуру системы как 
набора блоков кода! 
СТАТИЧЕСКОЕ - показывает поведение и 
взаимодействие элементов системы при выполнении 
(runtime)! 
ФИЗИЧЕСКОЕ - показывает конфигурацию 
непрограммных элементов системы 
Yury Chernushenko 
12
ДИНАМИЧЕСКОЕ ПРЕДСТАВЛЕНИЕ 
Yury Chernushenko 
13
СТАТИЧЕСКОЕ ПРЕДСТАВЛЕНИЕ 
Yury Chernushenko 
14
ФИЗИЧЕСКОЕ ПРЕДСТАВЛЕНИЕ 
Yury Chernushenko 
15
АРХИТЕКТУРНЫЕ ШАБЛОНЫ 
• Их много (Client-Server, Broker, Middleware, Publisher- 
Subscriber, Pipe and Filter, Tiers/Layers, и др.)! 
• Они определяют типовую декомпозицию на 
основные элементы и их взаимодействие! 
• Их всегда нужно адаптировать под вашу ситуацию! 
• Нужо понимать и фиксировать все за и против 
использования того или иного решения, это всегда 
компромисс) 
Yury Chernushenko 
16 
Не знаете что выбрать? 
Попробуйте использовать процесс ACDM 
(Architecture-centric design method) 
для определения архитектуры
ПРИМЕРЫ ШАБЛОНОВ - MIDDLEWARE 
Yury Chernushenko 
17
ПРИМЕРЫ ШАБЛОНОВ - PIPE AND FILTER 
Yury Chernushenko 
18
ЧТО ПОЧИТАТЬ 
Yury Chernushenko 
ACMD Шаблоны 
19
Yury Chernushenko 
Robert C. Martin 
(Uncle Bob) 
! 
Выступления про Clean Architecture 
на youtube 
! 
«Architecture create structures that 
allow decisions to be defined later» 
! 
«Good Architects code» 
! 
КОГО ПОСЛУШАТЬ 
20
ИНСТРУМЕНТЫ 
Yury Chernushenko 
Microsoft Visio - основной 
инструмент для построения 
диаграмм 
Keynote или Power Point - хорошее 
качество работы с этими 
инструментами требует высокой 
самодисциплины! 
21
ДИЗАЙН 
Описание конкретных технических решений) 
• Функциональный или ООП подход) 
• Алгоритмы) 
• Описание функций) 
• Описание структур данных) 
• … 
Yury Chernushenko 
про это и многое другое 
COMPUTER SCIENCE 
22
ЧТО ПОЧИТАТЬ 
Yury Chernushenko 
23 
x 3
КОГО ПОСЛУШАТЬ 
Yury Chernushenko 
Олег Бунин 
архитектор высоконагруженных систем 
! 
Выступление на iForum 2013 
! 
Вебинар по проектированию 
высоконагруженных систем 
! 
Материалы конференции HighLoad++ 
24
ЧТО ПОЧИТАТЬ 
Yury Chernushenko 
25
ЧТО ДАЛЬШЕ 
Сбор и определение требований 
Планирование и контроль 
Архитектура и дизайн 
Управление качеством 
Управление рисками 
Yury Chernushenko 
26 
Процессы

Software Engineering Bootcamp - Meeting 4

  • 1.
    АРХИТЕКТУРА И ДИЗАЙН надежнобыстровместительнобезопасновездепроходимый автомобиль Yury Chernushenko
  • 2.
    ГРЕКАМ И НЕСНИЛОСЬ Yury Chernushenko 2 АРХИТЕКТУРА) • Типичные ошибки) • Драйверы архитектуры) • Типы представлений) • Примеры шаблонов
  • 3.
    БОЕВОЙ НАБОР ИНЖЕНЕРА Yury Chernushenko 3 Архитектура Планирование и управление командой Дизайн и Разработка Упраление требованиями
  • 4.
  • 5.
    … ПОЛУЧИЛОСЬ КАКВСЕГДА - 1 это слои? как связаны элементы? что такое внутренний компонент? Yury Chernushenko 5
  • 6.
    … ПОЛУЧИЛОСЬ КАКВСЕГДА -2 где легенда? что означают стрелочки? это взаимодействие в runtime? Yury Chernushenko 6
  • 7.
    … ПОЛУЧИЛОСЬ КАКВСЕГДА - 3 все на одной диаграмме. что означает форма? что означает цвет? Yury Chernushenko 7
  • 8.
    «КТО ВИНОВАТ?» ПЛОХО,НЕТ СТРАТЕГИИ РАЗРАБОТКИ Требования Спецификация (ТЗ) Приложение Yury Chernushenko ЕЩЕ ХУЖЕ 8
  • 9.
    «ЧТО ДЕЛАТЬ?» Наоснове требований На основе архитектуры Требования АРХИТЕКТУРАСпецификация (ТЗ) Приложение Yury Chernushenko 9 На основе дизайна АРХИТЕКТУРНЫЕ ДРАЙВЕРЫ ПРЕДСТАВЛЕНИЯ (ДИАГРАММЫ) ОПИСАНИЕ ПРИНЯТЫХ РЕШЕНИЙ (В ЧЕМ КОМПРОМИСС)
  • 10.
    Архитектурный «астронавт» ЗНАКОМЬТЕСЬ ТЕМНАЯ СТОРОНА АРХИТЕКТУРЫ: ! ✴ СЛИШКОМ АБСТРАКТНАЯ АРХИТЕКТУРА ✴ НЕ АДАПТИРОВАННА ПОД СИТУАЦИЮ ПРОЕКТА ✴ ДЕЛАЕТСЯ НЕТЕХНИЧЕСКИМИ СПЕЦИАЛИСТАМИ ✴ «ИСТОРИЧЕСКИ СЛОЖИЛОСЬ» ✴ «ИСПОЛЬЗУЮ MVC ДЛЯ ВСЕГО!» Yury Chernushenko 10
  • 11.
    ДРАЙВЕРЫ АРХИТЕКТУРЫ YuryChernushenko 11 ФУНКЦИОНАЛЬНЫЕ ТРЕБОВАНИЯ ТЕХНИЧЕСКИЕ И БИЗНЕС АТТРИБУТЫ КАЧЕСТВА ОГРАНИЧЕНИЯ
  • 12.
    ТИПЫ ПРЕДСТАВЛЕНИЙ ДИНАМИЧЕСКОЕ- показывает структуру системы как набора блоков кода! СТАТИЧЕСКОЕ - показывает поведение и взаимодействие элементов системы при выполнении (runtime)! ФИЗИЧЕСКОЕ - показывает конфигурацию непрограммных элементов системы Yury Chernushenko 12
  • 13.
  • 14.
  • 15.
  • 16.
    АРХИТЕКТУРНЫЕ ШАБЛОНЫ •Их много (Client-Server, Broker, Middleware, Publisher- Subscriber, Pipe and Filter, Tiers/Layers, и др.)! • Они определяют типовую декомпозицию на основные элементы и их взаимодействие! • Их всегда нужно адаптировать под вашу ситуацию! • Нужо понимать и фиксировать все за и против использования того или иного решения, это всегда компромисс) Yury Chernushenko 16 Не знаете что выбрать? Попробуйте использовать процесс ACDM (Architecture-centric design method) для определения архитектуры
  • 17.
    ПРИМЕРЫ ШАБЛОНОВ -MIDDLEWARE Yury Chernushenko 17
  • 18.
    ПРИМЕРЫ ШАБЛОНОВ -PIPE AND FILTER Yury Chernushenko 18
  • 19.
    ЧТО ПОЧИТАТЬ YuryChernushenko ACMD Шаблоны 19
  • 20.
    Yury Chernushenko RobertC. Martin (Uncle Bob) ! Выступления про Clean Architecture на youtube ! «Architecture create structures that allow decisions to be defined later» ! «Good Architects code» ! КОГО ПОСЛУШАТЬ 20
  • 21.
    ИНСТРУМЕНТЫ Yury Chernushenko Microsoft Visio - основной инструмент для построения диаграмм Keynote или Power Point - хорошее качество работы с этими инструментами требует высокой самодисциплины! 21
  • 22.
    ДИЗАЙН Описание конкретныхтехнических решений) • Функциональный или ООП подход) • Алгоритмы) • Описание функций) • Описание структур данных) • … Yury Chernushenko про это и многое другое COMPUTER SCIENCE 22
  • 23.
    ЧТО ПОЧИТАТЬ YuryChernushenko 23 x 3
  • 24.
    КОГО ПОСЛУШАТЬ YuryChernushenko Олег Бунин архитектор высоконагруженных систем ! Выступление на iForum 2013 ! Вебинар по проектированию высоконагруженных систем ! Материалы конференции HighLoad++ 24
  • 25.
  • 26.
    ЧТО ДАЛЬШЕ Сбори определение требований Планирование и контроль Архитектура и дизайн Управление качеством Управление рисками Yury Chernushenko 26 Процессы