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.
Модель системы –  архитектура для  Agile- разработки   <ul><li>Докладчик: </li></ul><ul><li>Максим   Цепков  (M.Tsepkov@cu...
Проблема <ul><li>Как при итеративной разработке обеспечивать  целостность   архитектуры системы </li></ul><ul><li>? </li><...
Водопад целостность обеспечивал… 1. Бизнес-анализ (сбор требований) 3. Реализация (кодирование) 4. Отладка, тестирование 5...
Можно проектирование оставить… 1. Бизнес-анализ (сбор требований) 2. Сист. анализ, проектирование А это назовем первой ите...
Но лучше – запустить два конвейера <ul><li>Это могут быть две команды: аналитики и разработчики </li></ul><ul><li>Или одна...
Что есть в мире? <ul><li>Хорошо работает  DDD  – </li></ul><ul><li>архитектура на основе модели предметной области </li></...
Увы, объектной модели не хватает <ul><ul><li>Почему? </li></ul></ul><ul><ul><li>Недостаточно для понимания </li></ul></ul>...
Надо дополнить модель <ul><li>Какие требования? </li></ul><ul><ul><li>Возможность итеративного проектирования </li></ul></...
Как дополнить модель? <ul><li>Общего решения для всех – увы, не знаем </li></ul><ul><li>Но расскажем о том, чем пользуемся...
Главное – метафора системы <ul><li>Хорошая метафора – визуальный образ  </li></ul><ul><li>Это основа успеха модели </li></...
Используем стандартные образы Варианты бизнес-процессов в простой нотации Схемы понимаются на лету Система деления товара ...
Идем от бизнес-процессов <ul><li>Комплексная схема : </li></ul><ul><li>бизнес-процессы, </li></ul><ul><li>документы, </li>...
Придумываем свой образ «Лупа» – смотрим на сложную структуру Единая витрина для многих взаимодействующих систем
Образ есть – что дальше? <ul><li>? </li></ul>
Делаем стандартные проекции <ul><li>Сложную систему понимают через  проекции </li></ul><ul><li>Метафора – проекция, наибол...
Доменная модель <ul><li>Rich domain model –  знакомые заказчику названия </li></ul>Единый язык
Инкрементальное развитие <ul><li>Сначала –  в крупном , основные классы без деталей </li></ul><ul><li>Подробности – по ход...
Рефакторинг доменной модели <ul><li>Бывают ли изменения ранее реализованного? –  Да . </li></ul><ul><ul><li>Может меняться...
Важно – не усложняйте образ <ul><li>Не надо </li></ul><ul><ul><li>Стараться изобразить все классы на одной диаграмме </li>...
Учетным системам – учетную модель <ul><li>Мы разрабатываем учетно-аналитические системы </li></ul><ul><li>Представление уч...
Что такое учет? <ul><li>Учет – не только бухгалтерия </li></ul><ul><li>Это отражение  реальных  потоков обобщенных ресурсо...
Диаграммы учета <ul><li>Показывают как отражается движение ресурсов  в учете системы </li></ul>
Подробнее о диаграммах учета Доклад на ЛАФ-2010 http://conf.uml2.ru/class/diagrammy-planov-schetov---sredstvo-modelirovani...
Жизнь учета с развитием проекта <ul><li>Уточнения </li></ul><ul><ul><li>определяем аналитики </li></ul></ul><ul><ul><li>оп...
Что дают диаграммы учета <ul><li>Позволяют представляют учет в виде, понятном и разработчикам и заказчикам Позволяют заказ...
Учет и Документы <ul><li>Учетная и объектная модель связаны </li></ul><ul><ul><li>Движения ресурсов фиксируются документам...
Состояние документа <ul><li>Используем шаблон  State Entity  для документов </li></ul><ul><ul><li>У документов есть атрибу...
Итак,  Единая модель <ul><li>Единая модель представляется в проекциях </li></ul><ul><ul><li>метафора системы – неформально...
Связанный документооборот Сложный пример Диаграмма классов Диаграмма состояний Диаграмма учета
<ul><li>Заключение </li></ul><ul><li>(что я хотел сказать) </li></ul>
Да будет итеративная архитектура! <ul><li>Архитектуру можно делать итеративно </li></ul><ul><li>При этом – сохранять её це...
Для понимания нужны образы <ul><li>Визуальная метафора – великая вещь Стоит потратить время и силы, чтобы найти образ </li...
Да поймет заказчик разработчика! <ul><li>Модель системы можно превратить  в мост между разработчиком и заказчиком </li></u...
Спасибо! <ul><li>Вопросы? </li></ul><ul><li>Максим Цепков  ( [email_address] ) </li></ul>
Модель системы — архитектура для Agile-разработки
Модель системы — архитектура для Agile-разработки
Модель системы — архитектура для Agile-разработки
Модель системы — архитектура для Agile-разработки
Модель системы — архитектура для Agile-разработки
Upcoming SlideShare
Loading in …5
×

Модель системы — архитектура для Agile-разработки

1,809 views

Published on

Выступление Максима Цепкова, нашего главного архитектора дирекции по развитию решений, на конференции Agile Days (4–5 марта 2011 года).

Published in: Technology
  • Be the first to comment

Модель системы — архитектура для Agile-разработки

  1. 1. Модель системы – архитектура для Agile- разработки <ul><li>Докладчик: </li></ul><ul><li>Максим Цепков (M.Tsepkov@custis.ru) </li></ul><ul><li>www. CUSTIS .ru </li></ul>
  2. 2. Проблема <ul><li>Как при итеративной разработке обеспечивать целостность архитектуры системы </li></ul><ul><li>? </li></ul>КРИТИЧНО для БОЛЬШИХ (многолетних) проектов
  3. 3. Водопад целостность обеспечивал… 1. Бизнес-анализ (сбор требований) 3. Реализация (кодирование) 4. Отладка, тестирование 5. Внедрение, сопровождение 2. Сист. анализ, проектирование Или пытался – за счет полного проектирования Следующая версия…
  4. 4. Можно проектирование оставить… 1. Бизнес-анализ (сбор требований) 2. Сист. анализ, проектирование А это назовем первой итерацией Но полное проектирование – не быстро…
  5. 5. Но лучше – запустить два конвейера <ul><li>Это могут быть две команды: аналитики и разработчики </li></ul><ul><li>Или одна команда проекта вместе с разработкой готовит задачи к следующей итерации </li></ul>Vision Реализация Проектирование МЫ
  6. 6. Что есть в мире? <ul><li>Хорошо работает DDD – </li></ul><ul><li>архитектура на основе модели предметной области </li></ul><ul><ul><li>объектная модель – хорошая основа разработки </li></ul></ul><ul><ul><li>можно строить итеративно, начав с основных классов </li></ul></ul><ul><ul><li>компактное описание диаграммой классов </li></ul></ul><ul><ul><li>понятный всем IT- специалистам механизм </li></ul></ul><ul><ul><li>можно оценивать объем изменений </li></ul></ul><ul><li>DDD – уже классика </li></ul><ul><li>Эрик Эванс, Джимми Нильсон </li></ul><ul><li>для знакомства – смотри материалы, ссылки, слайды и видеозапись http :// lib.custis.ru / Тренинг_Андрея_Бибичева_по_ «DDD»_(2010-03-03) </li></ul>
  7. 7. Увы, объектной модели не хватает <ul><ul><li>Почему? </li></ul></ul><ul><ul><li>Недостаточно для понимания </li></ul></ul><ul><ul><li>Разработчику достаточно диаграммы классов, чтобы многое сказать о системе, а заказчику этого не хватает… </li></ul></ul><ul><li>Недостаточно для целостной картины </li></ul><ul><ul><li>Мы занимаемся разработкой учетных приложений, автоматизацией документооборота, а эту часть диаграмма классов не отражает… </li></ul></ul><ul><li>Эрик Эванс этого и не отрицает, призывая искать… </li></ul>У Вас могут быть другие особенности…
  8. 8. Надо дополнить модель <ul><li>Какие требования? </li></ul><ul><ul><li>Возможность итеративного проектирования </li></ul></ul><ul><ul><li>Единый язык описания – понятен и заказчику и разработчикам </li></ul></ul><ul><ul><li>Цельный и компактный взгляд на систему </li></ul></ul>Желателен визуальный образ
  9. 9. Как дополнить модель? <ul><li>Общего решения для всех – увы, не знаем </li></ul><ul><li>Но расскажем о том, чем пользуемся сами – надеемся, это поможет Вам найти свои решения </li></ul>ДЕЛИМСЯ ОПЫТОМ
  10. 10. Главное – метафора системы <ul><li>Хорошая метафора – визуальный образ </li></ul><ul><li>Это основа успеха модели </li></ul><ul><li>Поиск начинается с vision проекта </li></ul><ul><li>Основа может быть стандартна или придумана </li></ul>© XP
  11. 11. Используем стандартные образы Варианты бизнес-процессов в простой нотации Схемы понимаются на лету Система деления товара Вар.1 Вар.2 Вар.3
  12. 12. Идем от бизнес-процессов <ul><li>Комплексная схема : </li></ul><ul><li>бизнес-процессы, </li></ul><ul><li>документы, </li></ul><ul><li>информационные системы </li></ul>Система снабжения магазинов Вар.1 Вар.2 Вар.2
  13. 13. Придумываем свой образ «Лупа» – смотрим на сложную структуру Единая витрина для многих взаимодействующих систем
  14. 14. Образ есть – что дальше? <ul><li>? </li></ul>
  15. 15. Делаем стандартные проекции <ul><li>Сложную систему понимают через проекции </li></ul><ul><li>Метафора – проекция, наиболее адекватная системе </li></ul><ul><li>Для разработки нужны стандартные проекции </li></ul><ul><li>Мы применяем три основных вида: </li></ul><ul><ul><li>диаграмму классов </li></ul></ul><ul><ul><li>диаграмму учета </li></ul></ul><ul><ul><li>диаграмму состояний </li></ul></ul>
  16. 16. Доменная модель <ul><li>Rich domain model – знакомые заказчику названия </li></ul>Единый язык
  17. 17. Инкрементальное развитие <ul><li>Сначала – в крупном , основные классы без деталей </li></ul><ul><li>Подробности – по ходу разработки </li></ul><ul><ul><li>Уточняем иерархию типов </li></ul></ul><ul><ul><li>Определяем атрибуты и методы </li></ul></ul><ul><ul><li>Проектируем вспомогательные классы </li></ul></ul><ul><ul><li>Уточняем структуру ассоциаций </li></ul></ul>Итерации
  18. 18. Рефакторинг доменной модели <ul><li>Бывают ли изменения ранее реализованного? – Да . </li></ul><ul><ul><li>Может меняться набор атрибутов, появляться методы </li></ul></ul><ul><ul><li>Может меняться структура ассоциаций </li></ul></ul><ul><li>Но постоянный рефакторинг – практика agile </li></ul><ul><li>А общая диаграмма классов – снижает его объем </li></ul>Целостность
  19. 19. Важно – не усложняйте образ <ul><li>Не надо </li></ul><ul><ul><li>Стараться изобразить все классы на одной диаграмме </li></ul></ul><ul><ul><li>Отображать вспомогательные атрибуты </li></ul></ul><ul><ul><li>Использовать технические коды </li></ul></ul><ul><ul><li>Использовать сложную нотацию </li></ul></ul><ul><li>Диаграммы должны понимать заказчики, а не только разработчики </li></ul>Единый язык
  20. 20. Учетным системам – учетную модель <ul><li>Мы разрабатываем учетно-аналитические системы </li></ul><ul><li>Представление учета – оказалось за рамками UML  </li></ul><ul><li>И вообще шаблонов разработки… </li></ul><ul><li>Есть шаблоны Фаулера , но там – нижний уровень </li></ul><ul><li>Нам пришлось придумать Диаграммы учета </li></ul><ul><li>Они дают целостную учетную модель системы </li></ul>
  21. 21. Что такое учет? <ul><li>Учет – не только бухгалтерия </li></ul><ul><li>Это отражение реальных потоков обобщенных ресурсов – товаров, денег, долгов и других </li></ul><ul><li>В системе фиксируется документами </li></ul><ul><li>Бухгалтерия же отражает реальные потоки весьма опосредованно </li></ul>
  22. 22. Диаграммы учета <ul><li>Показывают как отражается движение ресурсов в учете системы </li></ul>
  23. 23. Подробнее о диаграммах учета Доклад на ЛАФ-2010 http://conf.uml2.ru/class/diagrammy-planov-schetov---sredstvo-modelirovaniya-i-proektirovaniya-ucheta.html Доклад на SECR-2010 http://lib.custis.ru/Учет_ценных_бумаг_-_сделать_сложное_простым_(Цепков_на_SECR-2010)
  24. 24. Жизнь учета с развитием проекта <ul><li>Уточнения </li></ul><ul><ul><li>определяем аналитики </li></ul></ul><ul><ul><li>определяем источники событий учета </li></ul></ul><ul><li>Изменения </li></ul><ul><ul><li>добавляем новые участки учета </li></ul></ul><ul><ul><li>добавляем транзитные счета </li></ul></ul>Итерации
  25. 25. Что дают диаграммы учета <ul><li>Позволяют представляют учет в виде, понятном и разработчикам и заказчикам Позволяют заказчику проверить учетную модель </li></ul><ul><li>Дают целостное представление об учете системы </li></ul><ul><li>Позволяют менять доменную модель и документооборот, контролируя работу учета </li></ul>Целостность Единый язык
  26. 26. Учет и Документы <ul><li>Учетная и объектная модель связаны </li></ul><ul><ul><li>Движения ресурсов фиксируются документами </li></ul></ul><ul><ul><li>Точка зрения бизнеса: есть журнал хозяйственных операций , возникающих при обработке и проведении документов </li></ul></ul><ul><ul><li>Реализация: источник учета – события ( Event Sourcing Фаулер), которые возникают в методах документов </li></ul></ul><ul><li>Для прозрачной модели это должно совпадать: учетные события – суть хозяйственные операции </li></ul><ul><li>Как это эффективно представить? </li></ul>Единый язык
  27. 27. Состояние документа <ul><li>Используем шаблон State Entity для документов </li></ul><ul><ul><li>У документов есть атрибут – состояние </li></ul></ul><ul><ul><li>Есть граф состояний документа, ребра – переходы </li></ul></ul><ul><ul><li>Реализация перехода – метод объекта </li></ul></ul><ul><ul><li>Граф изображается на State Machine Diagram (UML) </li></ul></ul><ul><ul><li>Учетные события – на переходах документов </li></ul></ul><ul><li>Состояние документа определяет: </li></ul><ul><ul><li>текущий этап обработки документа </li></ul></ul><ul><ul><li>отражение документа в учете </li></ul></ul><ul><ul><li>ответственность за документ </li></ul></ul><ul><ul><li>права на совершение действий </li></ul></ul><ul><li>Состояния и методы называем в терминах бизнеса </li></ul>Несколько расширили Состояния заказа Единый язык
  28. 28. Итак, Единая модель <ul><li>Единая модель представляется в проекциях </li></ul><ul><ul><li>метафора системы – неформально и в крупном </li></ul></ul><ul><ul><li>диаграмма классов – структура объектов и их методы </li></ul></ul><ul><ul><li>диаграмма учета – учетная модель системы </li></ul></ul><ul><ul><li>диаграмма состояний документов – документооборот </li></ul></ul><ul><ul><li>связь компонент – через методы-переходы, они на всех диаграммах </li></ul></ul><ul><li>Разрабатывается итеративно </li></ul><ul><ul><li>сначала – основные классы и учет в крупном </li></ul></ul><ul><ul><li>затем, по областям – детальная проработка классов и учета, проработка состояний документов </li></ul></ul>В терминах предметной области Единый язык Целостность Итерации
  29. 29. Связанный документооборот Сложный пример Диаграмма классов Диаграмма состояний Диаграмма учета
  30. 30. <ul><li>Заключение </li></ul><ul><li>(что я хотел сказать) </li></ul>
  31. 31. Да будет итеративная архитектура! <ul><li>Архитектуру можно делать итеративно </li></ul><ul><li>При этом – сохранять её целостность </li></ul><ul><li>Это можно делать с помощью модели </li></ul>
  32. 32. Для понимания нужны образы <ul><li>Визуальная метафора – великая вещь Стоит потратить время и силы, чтобы найти образ </li></ul><ul><li>Диаграммы – служат основой общения </li></ul>Все начинается с доски…
  33. 33. Да поймет заказчик разработчика! <ul><li>Модель системы можно превратить в мост между разработчиком и заказчиком </li></ul><ul><li>Их общение делает разработку эффективной </li></ul>
  34. 34. Спасибо! <ul><li>Вопросы? </li></ul><ul><li>Максим Цепков ( [email_address] ) </li></ul>

×