software engineering bootcamp - meeting 4

26
Yury Chernushenko АРХИТЕКТУРА И ДИЗАЙН надежнобыстровместительнобезопасновездепроходимый автомобиль

Upload: yury-chernushenko

Post on 13-Jan-2017

594 views

Category:

Software


0 download

TRANSCRIPT

Yury Chernushenko

АРХИТЕКТУРА И ДИЗАЙНнадежнобыстровместительнобезопасновездепроходимый автомобиль

Yury Chernushenko

ГРЕКАМ И НЕ СНИЛОСЬ

2

АРХИТЕКТУРА)• Типичные ошибки)• Драйверы архитектуры)• Типы представлений)• Примеры шаблонов

Yury Chernushenko

БОЕВОЙ НАБОР ИНЖЕНЕРА

3

Архитектура

Планирование и управление командой

Дизайн и Разработка

Упраление требованиями

Yury Chernushenko

ПОКАЖИТЕ АРХИТЕКТУРУ

4

FAIL

Yury Chernushenko

… ПОЛУЧИЛОСЬ КАК ВСЕГДА - 1

5

это слои? как связаны элементы? что такое внутренний компонент?

Yury Chernushenko

… ПОЛУЧИЛОСЬ КАК ВСЕГДА -2

6

где легенда? что означают стрелочки? это взаимодействие в runtime?

Yury Chernushenko

… ПОЛУЧИЛОСЬ КАК ВСЕГДА - 3

7

все на одной диаграмме. что означает форма? что означает цвет?

Yury Chernushenko

«КТО ВИНОВАТ?»

8

Требования Спецификация (ТЗ) Приложение

ЕЩЕ ХУЖЕ

ПЛОХО, НЕТ СТРАТЕГИИ РАЗРАБОТКИ

Yury Chernushenko 9

Требования Спецификация (ТЗ) ПриложениеАРХИТЕКТУРА

«ЧТО ДЕЛАТЬ?»

На основе требований

На основе архитектуры

На основе дизайна

АРХИТЕКТУРНЫЕ ДРАЙВЕРЫ

ПРЕДСТАВЛЕНИЯ (ДИАГРАММЫ)

ОПИСАНИЕ ПРИНЯТЫХ РЕШЕНИЙ(В ЧЕМ КОМПРОМИСС)

Архитектурный «астронавт»

ТЕМНАЯ СТОРОНА АРХИТЕКТУРЫ: !✴ СЛИШКОМ АБСТРАКТНАЯ АРХИТЕКТУРА

✴ НЕ АДАПТИРОВАННА ПОД СИТУАЦИЮ ПРОЕКТА

✴ ДЕЛАЕТСЯ НЕТЕХНИЧЕСКИМИ СПЕЦИАЛИСТАМИ

✴ «ИСТОРИЧЕСКИ СЛОЖИЛОСЬ»

✴ «ИСПОЛЬЗУЮ MVC ДЛЯ ВСЕГО!»

Yury Chernushenko

ЗНАКОМЬТЕСЬ

10

Yury Chernushenko

ДРАЙВЕРЫ АРХИТЕКТУРЫ

11

ФУНКЦИОНАЛЬНЫЕ ТРЕБОВАНИЯ

АТТРИБУТЫ КАЧЕСТВА

ТЕХНИЧЕСКИЕ И БИЗНЕС ОГРАНИЧЕНИЯ

Yury Chernushenko

ТИПЫ ПРЕДСТАВЛЕНИЙ

12

ДИНАМИЧЕСКОЕ - показывает структуру системы как набора блоков кода!

СТАТИЧЕСКОЕ - показывает поведение и взаимодействие элементов системы при выполнении (runtime)!

ФИЗИЧЕСКОЕ - показывает конфигурацию непрограммных элементов системы

Yury Chernushenko

ДИНАМИЧЕСКОЕ ПРЕДСТАВЛЕНИЕ

13

Yury Chernushenko

СТАТИЧЕСКОЕ ПРЕДСТАВЛЕНИЕ

14

Yury Chernushenko

ФИЗИЧЕСКОЕ ПРЕДСТАВЛЕНИЕ

15

Yury Chernushenko

АРХИТЕКТУРНЫЕ ШАБЛОНЫ

16

• Их много (Client-Server, Broker, Middleware, Publisher-Subscriber, Pipe and Filter, Tiers/Layers, и др.)!

• Они определяют типовую декомпозицию на основные элементы и их взаимодействие!

• Их всегда нужно адаптировать под вашу ситуацию!• Нужо понимать и фиксировать все за и против использования того или иного решения, это всегда компромисс)

Не знаете что выбрать? Попробуйте использовать процесс ACDM

(Architecture-centric design method) для определения архитектуры

Yury Chernushenko

ПРИМЕРЫ ШАБЛОНОВ - MIDDLEWARE

17

Yury Chernushenko

ПРИМЕРЫ ШАБЛОНОВ - PIPE AND FILTER

18

Yury Chernushenko

ЧТО ПОЧИТАТЬ

19

ACMD Шаблоны

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

ИНСТРУМЕНТЫ

21

Microsoft Visio - основной инструмент для построения диаграмм

Keynote или Power Point - хорошее качество работы с этими инструментами требует высокой самодисциплины!

Yury Chernushenko

ДИЗАЙН

22

Описание конкретных технических решений)• Функциональный или ООП подход)• Алгоритмы)• Описание функций)• Описание структур данных)• …

про это и многое другоеCOMPUTER SCIENCE

Yury Chernushenko

ЧТО ПОЧИТАТЬ

23

3x

Yury Chernushenko

Олег Бунин архитектор высоконагруженных систем

!Выступление на iForum 2013

!Вебинар по проектированию высоконагруженных систем

!Материалы конференции HighLoad++

КОГО ПОСЛУШАТЬ

24

Yury Chernushenko

ЧТО ПОЧИТАТЬ

25

Yury Chernushenko

ЧТО ДАЛЬШЕ

Архитектура и дизайн

Управление качеством

Сбор и определение требований

Планирование и контроль

Управление рисками

26

Процессы