Почему uml — плохой выбор для обучения аналитиков
TRANSCRIPT
Почему UML — плохой выбордля обучения начинающих аналитиков
Григорий Печенкин
Рекламная пауза — 1
http://conf.uml2.ru
Рекламная пауза — 2
https://hackpad.com/--41XTdc8Ieckhttp://uml2.ru
Краткая история UML
UML
UML захватил мир аналитиков
Сезонные обострения на форуме
А зачем аналитикам UML?
Три уровня моделирования
1. Эксизы- общение с заказчиком и внутри команды- описание предметной области- концептуальное моделирование
2. Проектирование- модель программной архитектуры- структуры данных- сервисная архитектура
3. Программирование- генерация кода
Проблема 1. Смешение уровней
Уровень эскиза — пример
Смешение уровней
Смешение уровней
Смешение уровней
Строгость нотации
Изучать UML без нотации? Вы шутите!
Изучать UML без нотации? Вы шутите!
Изучать UML без нотации? Вы шутите!
стрелочка - это просто стрелочка!
Уровни моделирования. Так в чём проблема?
1. Начинающие аналитики не понимают различий в уровнях2. Строгая нотация UML нужна только на нижнем уровне
Проблема 2. Терминология
Ложные друзья переводчика
Ложные друзья аналитика
Класс
Экземпляр
Activity
Асинхронный
Наследование
Пользователь
Model-View-ControllerFeature
Функция
Класс и class
Класс и class
Model — View — Controller
Названия диаграмм
Переведите быстро!
CollaborationCooperationCommunicationInteraction
Терминология. Так в чём проблема?
1. Аналитики и программисты говорят на разных языках, но одними и теми же словами
2. Терминологию UML нужно учить и переучивать3. Названия диаграмм UML унылы
Проблема 3. Визуализация
Принципы визуального моделирования
Различия должны быть очевидныРазные типы связей — разные диаграммыТекст вторичен
Визуально неразличимые элементы
Смешивание текста и графики
Смешивание текста и графики
Визуализация. Так в чём проблема?
1. UML нарушает принципы визуализации2. Аналитик усваивает плохие практики
К чему это приводит
● Неумение моделировать● Неправильное использование UML● Отторжение UML
Что с этим делать?
● Учить не языку, а принципам моделирования● Идти от простого к сложному (UML — это сложно)● Смело менять терминологию!
Элементы универсального языка
Логический объект
Действие
Цель
Состояние
Физическийобъект
Точкавыбора
Роль
Последовательность(операция)
Данные
Связь
Комментарий Временная шкала
Элементарные примеры
Клиент
Снять наличные
Узнать остаток
Оплатить телефон
Банкомат
Ожиданиекарты
Запросить ПИН
Сформироватьи отправить запрос
Ожиданиеответа
Авторизовано?
Клиент
Запросостатка
Ответ хоста
Показать баланс Сообщить об ошибке
Вернуть карту
Ожиданиекарты
Выбороперации
Ожиданиеответахоста
Показ ответа
Карта вставлена
Ввод ПИН
Выбран «Баланс»
ПИН введен
Ответполучен
Ввод илитаймаут
Отмена
Отказ от ввода ПИН
Пример: физические и логические объекты
ПК пользователя
Браузер
Web-сервер
Apache
Обработчик PHP
Сервер БД
MySQL
Запросстраницы
Вызовскрипта
Готоваястраница
nginx
Файл-сервер
Хранилище видеофайлов
Видеоконтент
Описание видео
Страница с видео
Запросстраницы
Страницасо ссылками
на видеофайлы
Пример: авторизация
Банкомат
Клиент
Процессингэквайера
Платёжнаясистема
Процессингэмитента
Запрос наличных
Своя карта?
Запрос авторизации
Авторизация
Да
Запрос авторизацииНет
Запрос авторизации
Авторизация
Ответ
Ответ
Ответ
Выдача денег и возврат карты
Ответ
Пример: передача данных
Банкомат
Клиент
Процессингэквайера
Платёжнаясистема
Процессингэмитента
Запрос наличных
Своя карта?
Авторизация
Да
Нет
Авторизация
Выдача денег и возврат карты
Ответ
OpenWay 0200
VISA 0101
VISA 0111
Запрос авторизации
OpenWay 0210
OpenWay 0210
Но это же...
UML!
Секрет успеха Scrum
Ожиданиекарты
Запросить ПИН
Сформироватьи отправить запрос
Ожиданиеответа
Авторизовано?
Клиент
Запросостатка
Ответ хоста
Показать баланс Сообщить об ошибке
Вернуть карту
Старая добрая блок-схема
Клиент
Снять наличные
Узнать остаток
Оплатить телефон
Банкомат
Мужики и яйца
Ожиданиекарты
Выбороперации
Ожиданиеответахоста
Показ ответа
Карта вставлена
Ввод ПИН
Выбран «Баланс»
ПИН введен
Ответполучен
Ввод илитаймаут
Отмена
Отказ от ввода ПИН
Спортлото
Банкомат
Клиент
Процессингэквайера
Платёжнаясистема
Процессингэмитента
Запрос наличных
Своя карта?
Запрос авторизации
Авторизация
Да
Запрос авторизацииНет
Запрос авторизации
Авторизация
Ответ
Ответ
Ответ
Выдача денег и возврат карты
Ответ
Эстафетная диаграмма
Кубики с наклейками
ПК пользователя
Браузер
Web-сервер
Apache
Обработчик PHP
Сервер БД
MySQL
Запросстраницы
Вызовскрипта
Готоваястраница
nginx
Файл-сервер
Хранилище видеофайлов
Видеоконтент
Описание видео
Страница с видео
Запросстраницы
Страницасо ссылками
на видеофайлы
Нужны свежие метафоры!
Activity Diagram Блок-схема процесса
Старая добрая блок-схема
Use Case Diagram Диаграмма целей Мужики и яйца
Sequence Diagram Плавательные дорожки
Эстафетная диаграмма
State Machine Diagram
Конечный автомат Диаграмма Спортлото
Class Diagram Понятия предметной области
Династическая диаграмма
Deployment Diagram
Диаграмма развёртывания
Кубики с наклейками