Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

2,933 views

Published on

Доклад Григория Печенкина на конференции Analyst Days-4,
17-18 апреля 2015 г., Минск
www.analystdays.com

Published in: Education
  • Be the first to comment

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

  1. 1. Почему UML — плохой выбор для обучения начинающих аналитиков Григорий Печенкин
  2. 2. Рекламная пауза — 1 http://conf.uml2.ru
  3. 3. Рекламная пауза — 2 https://hackpad.com/--41XTdc8Ieck http://uml2.ru
  4. 4. Краткая история UML
  5. 5. UML
  6. 6. UML захватил мир аналитиков
  7. 7. Сезонные обострения на форуме
  8. 8. А зачем аналитикам UML?
  9. 9. Три уровня моделирования 1. Эксизы - общение с заказчиком и внутри команды - описание предметной области - концептуальное моделирование 2. Проектирование - модель программной архитектуры - структуры данных - сервисная архитектура 3. Программирование - генерация кода
  10. 10. Проблема 1. Смешение уровней
  11. 11. Уровень эскиза — пример
  12. 12. Смешение уровней
  13. 13. Смешение уровней
  14. 14. Смешение уровней
  15. 15. Строгость нотации
  16. 16. Изучать UML без нотации? Вы шутите!
  17. 17. Изучать UML без нотации? Вы шутите!
  18. 18. Изучать UML без нотации? Вы шутите! стрелочка - это просто стрелочка!
  19. 19. Уровни моделирования. Так в чём проблема? 1. Начинающие аналитики не понимают различий в уровнях 2. Строгая нотация UML нужна только на нижнем уровне
  20. 20. Проблема 2. Терминология
  21. 21. Ложные друзья переводчика
  22. 22. Ложные друзья аналитика Класс Экземпляр Activity Асинхронный Наследование Пользователь Model-View-Controller Feature Функция
  23. 23. Класс и class
  24. 24. Класс и class
  25. 25. Model — View — Controller
  26. 26. Названия диаграмм
  27. 27. Переведите быстро! Collaboration Cooperation Communication Interaction
  28. 28. Терминология. Так в чём проблема? 1. Аналитики и программисты говорят на разных языках, но одними и теми же словами 2. Терминологию UML нужно учить и переучивать 3. Названия диаграмм UML унылы
  29. 29. Проблема 3. Визуализация
  30. 30. Принципы визуального моделирования Различия должны быть очевидны Разные типы связей — разные диаграммы Текст вторичен
  31. 31. Визуально неразличимые элементы
  32. 32. Смешивание текста и графики
  33. 33. Смешивание текста и графики
  34. 34. Визуализация. Так в чём проблема? 1. UML нарушает принципы визуализации 2. Аналитик усваивает плохие практики
  35. 35. К чему это приводит ● Неумение моделировать ● Неправильное использование UML ● Отторжение UML
  36. 36. Что с этим делать? ● Учить не языку, а принципам моделирования ● Идти от простого к сложному (UML — это сложно) ● Смело менять терминологию!
  37. 37. Элементы универсального языка Логический объект Действие Цель Состояние Физический объект Точка выбора Роль Последовательность (операция) Данные Связь Комментарий Временная шкала
  38. 38. Элементарные примеры Клиент Снять наличные Узнать остаток Оплатить телефон Банкомат Ожидание карты Запросить ПИН Сформировать и отправить запрос Ожидание ответа Авторизовано? Клиент Запрос остатка Ответ хоста Показать баланс Сообщить об ошибке Вернуть карту Ожидание карты Выбор операции Ожидание ответа хоста Показ ответа Карта вставлена Ввод ПИН Выбран «Баланс» ПИН введен Ответ получен Ввод или таймаут Отмена Отказ от ввода ПИН
  39. 39. Пример: физические и логические объекты ПК пользователя Браузер Web-сервер Apache Обработчик PHP Сервер БД MySQL Запрос страницы Вызов скрипта Готовая страница nginx Файл-сервер Хранилище видеофайлов Видеоконтент Описание видео Страница с видео Запрос страницы Страница со ссылками на видеофайлы
  40. 40. Пример: авторизация Банкомат Клиент Процессинг эквайера Платёжная система Процессинг эмитента Запрос наличных Своя карта? Запрос авторизации Авторизация Да Запрос авторизации Нет Запрос авторизации Авторизация Ответ Ответ Ответ Выдача денег и возврат карты Ответ
  41. 41. Пример: передача данных Банкомат Клиент Процессинг эквайера Платёжная система Процессинг эмитента Запрос наличных Своя карта? Авторизация Да Нет Авторизация Выдача денег и возврат карты Ответ OpenWay 0200 VISA 0101 VISA 0111 Запрос авторизации OpenWay 0210 OpenWay 0210
  42. 42. Но это же... UML!
  43. 43. Секрет успеха Scrum
  44. 44. Ожидание карты Запросить ПИН Сформировать и отправить запрос Ожидание ответа Авторизовано? Клиент Запрос остатка Ответ хоста Показать баланс Сообщить об ошибке Вернуть карту Старая добрая блок-схема
  45. 45. Клиент Снять наличные Узнать остаток Оплатить телефон Банкомат Мужики и яйца
  46. 46. Ожидание карты Выбор операции Ожидание ответа хоста Показ ответа Карта вставлена Ввод ПИН Выбран «Баланс» ПИН введен Ответ получен Ввод или таймаут Отмена Отказ от ввода ПИН Спортлото
  47. 47. Банкомат Клиент Процессинг эквайера Платёжная система Процессинг эмитента Запрос наличных Своя карта? Запрос авторизации Авторизация Да Запрос авторизации Нет Запрос авторизации Авторизация Ответ Ответ Ответ Выдача денег и возврат карты Ответ Эстафетная диаграмма
  48. 48. Кубики с наклейками ПК пользователя Браузер Web-сервер Apache Обработчик PHP Сервер БД MySQL Запрос страницы Вызов скрипта Готовая страница nginx Файл-сервер Хранилище видеофайлов Видеоконтент Описание видео Страница с видео Запрос страницы Страница со ссылками на видеофайлы
  49. 49. Нужны свежие метафоры! Activity Diagram Блок-схема процесса Старая добрая блок-схема Use Case Diagram Диаграмма целей Мужики и яйца Sequence Diagram Плавательные дорожки Эстафетная диаграмма State Machine Diagram Конечный автомат Диаграмма Спортлото Class Diagram Понятия предметной области Династическая диаграмма Deployment Diagram Диаграмма развёртывания Кубики с наклейками

×