Почему uml — плохой выбор для обучения аналитиков

50
Почему UML — плохой выбор для обучения начинающих аналитиков Григорий Печенкин

Upload: sqalab

Post on 15-Jul-2015

515 views

Category:

Education


2 download

TRANSCRIPT

Page 1: Почему UML — плохой выбор для обучения аналитиков

Почему UML — плохой выбордля обучения начинающих аналитиков

Григорий Печенкин

Page 2: Почему UML — плохой выбор для обучения аналитиков

Рекламная пауза — 1

http://conf.uml2.ru

Page 3: Почему UML — плохой выбор для обучения аналитиков

Рекламная пауза — 2

https://hackpad.com/--41XTdc8Ieckhttp://uml2.ru

Page 4: Почему UML — плохой выбор для обучения аналитиков

Краткая история UML

Page 5: Почему UML — плохой выбор для обучения аналитиков

UML

Page 6: Почему UML — плохой выбор для обучения аналитиков

UML захватил мир аналитиков

Page 7: Почему UML — плохой выбор для обучения аналитиков

Сезонные обострения на форуме

Page 8: Почему UML — плохой выбор для обучения аналитиков

А зачем аналитикам UML?

Page 9: Почему UML — плохой выбор для обучения аналитиков

Три уровня моделирования

1. Эксизы- общение с заказчиком и внутри команды- описание предметной области- концептуальное моделирование

2. Проектирование- модель программной архитектуры- структуры данных- сервисная архитектура

3. Программирование- генерация кода

Page 10: Почему UML — плохой выбор для обучения аналитиков

Проблема 1. Смешение уровней

Page 11: Почему UML — плохой выбор для обучения аналитиков

Уровень эскиза — пример

Page 12: Почему UML — плохой выбор для обучения аналитиков

Смешение уровней

Page 13: Почему UML — плохой выбор для обучения аналитиков

Смешение уровней

Page 14: Почему UML — плохой выбор для обучения аналитиков

Смешение уровней

Page 15: Почему UML — плохой выбор для обучения аналитиков

Строгость нотации

Page 16: Почему UML — плохой выбор для обучения аналитиков

Изучать UML без нотации? Вы шутите!

Page 17: Почему UML — плохой выбор для обучения аналитиков

Изучать UML без нотации? Вы шутите!

Page 18: Почему UML — плохой выбор для обучения аналитиков

Изучать UML без нотации? Вы шутите!

стрелочка - это просто стрелочка!

Page 19: Почему UML — плохой выбор для обучения аналитиков

Уровни моделирования. Так в чём проблема?

1. Начинающие аналитики не понимают различий в уровнях2. Строгая нотация UML нужна только на нижнем уровне

Page 20: Почему UML — плохой выбор для обучения аналитиков

Проблема 2. Терминология

Page 21: Почему UML — плохой выбор для обучения аналитиков

Ложные друзья переводчика

Page 22: Почему UML — плохой выбор для обучения аналитиков

Ложные друзья аналитика

Класс

Экземпляр

Activity

Асинхронный

Наследование

Пользователь

Model-View-ControllerFeature

Функция

Page 23: Почему UML — плохой выбор для обучения аналитиков

Класс и class

Page 24: Почему UML — плохой выбор для обучения аналитиков

Класс и class

Page 25: Почему UML — плохой выбор для обучения аналитиков

Model — View — Controller

Page 26: Почему UML — плохой выбор для обучения аналитиков

Названия диаграмм

Page 27: Почему UML — плохой выбор для обучения аналитиков

Переведите быстро!

CollaborationCooperationCommunicationInteraction

Page 28: Почему UML — плохой выбор для обучения аналитиков

Терминология. Так в чём проблема?

1. Аналитики и программисты говорят на разных языках, но одними и теми же словами

2. Терминологию UML нужно учить и переучивать3. Названия диаграмм UML унылы

Page 29: Почему UML — плохой выбор для обучения аналитиков

Проблема 3. Визуализация

Page 30: Почему UML — плохой выбор для обучения аналитиков

Принципы визуального моделирования

Различия должны быть очевидныРазные типы связей — разные диаграммыТекст вторичен

Page 31: Почему UML — плохой выбор для обучения аналитиков

Визуально неразличимые элементы

Page 32: Почему UML — плохой выбор для обучения аналитиков

Смешивание текста и графики

Page 33: Почему UML — плохой выбор для обучения аналитиков

Смешивание текста и графики

Page 34: Почему UML — плохой выбор для обучения аналитиков

Визуализация. Так в чём проблема?

1. UML нарушает принципы визуализации2. Аналитик усваивает плохие практики

Page 35: Почему UML — плохой выбор для обучения аналитиков

К чему это приводит

● Неумение моделировать● Неправильное использование UML● Отторжение UML

Page 36: Почему UML — плохой выбор для обучения аналитиков

Что с этим делать?

● Учить не языку, а принципам моделирования● Идти от простого к сложному (UML — это сложно)● Смело менять терминологию!

Page 37: Почему UML — плохой выбор для обучения аналитиков

Элементы универсального языка

Логический объект

Действие

Цель

Состояние

Физическийобъект

Точкавыбора

Роль

Последовательность(операция)

Данные

Связь

Комментарий Временная шкала

Page 38: Почему UML — плохой выбор для обучения аналитиков

Элементарные примеры

Клиент

Снять наличные

Узнать остаток

Оплатить телефон

Банкомат

Ожиданиекарты

Запросить ПИН

Сформироватьи отправить запрос

Ожиданиеответа

Авторизовано?

Клиент

Запросостатка

Ответ хоста

Показать баланс Сообщить об ошибке

Вернуть карту

Ожиданиекарты

Выбороперации

Ожиданиеответахоста

Показ ответа

Карта вставлена

Ввод ПИН

Выбран «Баланс»

ПИН введен

Ответполучен

Ввод илитаймаут

Отмена

Отказ от ввода ПИН

Page 39: Почему UML — плохой выбор для обучения аналитиков

Пример: физические и логические объекты

ПК пользователя

Браузер

Web-сервер

Apache

Обработчик PHP

Сервер БД

MySQL

Запросстраницы

Вызовскрипта

Готоваястраница

nginx

Файл-сервер

Хранилище видеофайлов

Видеоконтент

Описание видео

Страница с видео

Запросстраницы

Страницасо ссылками

на видеофайлы

Page 40: Почему UML — плохой выбор для обучения аналитиков

Пример: авторизация

Банкомат

Клиент

Процессингэквайера

Платёжнаясистема

Процессингэмитента

Запрос наличных

Своя карта?

Запрос авторизации

Авторизация

Да

Запрос авторизацииНет

Запрос авторизации

Авторизация

Ответ

Ответ

Ответ

Выдача денег и возврат карты

Ответ

Page 41: Почему UML — плохой выбор для обучения аналитиков

Пример: передача данных

Банкомат

Клиент

Процессингэквайера

Платёжнаясистема

Процессингэмитента

Запрос наличных

Своя карта?

Авторизация

Да

Нет

Авторизация

Выдача денег и возврат карты

Ответ

OpenWay 0200

VISA 0101

VISA 0111

Запрос авторизации

OpenWay 0210

OpenWay 0210

Page 42: Почему UML — плохой выбор для обучения аналитиков

Но это же...

UML!

Page 43: Почему UML — плохой выбор для обучения аналитиков

Секрет успеха Scrum

Page 44: Почему UML — плохой выбор для обучения аналитиков

Ожиданиекарты

Запросить ПИН

Сформироватьи отправить запрос

Ожиданиеответа

Авторизовано?

Клиент

Запросостатка

Ответ хоста

Показать баланс Сообщить об ошибке

Вернуть карту

Старая добрая блок-схема

Page 45: Почему UML — плохой выбор для обучения аналитиков

Клиент

Снять наличные

Узнать остаток

Оплатить телефон

Банкомат

Мужики и яйца

Page 46: Почему UML — плохой выбор для обучения аналитиков

Ожиданиекарты

Выбороперации

Ожиданиеответахоста

Показ ответа

Карта вставлена

Ввод ПИН

Выбран «Баланс»

ПИН введен

Ответполучен

Ввод илитаймаут

Отмена

Отказ от ввода ПИН

Спортлото

Page 47: Почему UML — плохой выбор для обучения аналитиков

Банкомат

Клиент

Процессингэквайера

Платёжнаясистема

Процессингэмитента

Запрос наличных

Своя карта?

Запрос авторизации

Авторизация

Да

Запрос авторизацииНет

Запрос авторизации

Авторизация

Ответ

Ответ

Ответ

Выдача денег и возврат карты

Ответ

Эстафетная диаграмма

Page 48: Почему UML — плохой выбор для обучения аналитиков

Кубики с наклейками

ПК пользователя

Браузер

Web-сервер

Apache

Обработчик PHP

Сервер БД

MySQL

Запросстраницы

Вызовскрипта

Готоваястраница

nginx

Файл-сервер

Хранилище видеофайлов

Видеоконтент

Описание видео

Страница с видео

Запросстраницы

Страницасо ссылками

на видеофайлы

Page 49: Почему UML — плохой выбор для обучения аналитиков

Нужны свежие метафоры!

Activity Diagram Блок-схема процесса

Старая добрая блок-схема

Use Case Diagram Диаграмма целей Мужики и яйца

Sequence Diagram Плавательные дорожки

Эстафетная диаграмма

State Machine Diagram

Конечный автомат Диаграмма Спортлото

Class Diagram Понятия предметной области

Династическая диаграмма

Deployment Diagram

Диаграмма развёртывания

Кубики с наклейками

Page 50: Почему UML — плохой выбор для обучения аналитиков