Модель системы –  архитектура для  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 Days 2011)
Модель системы — архитектура для Agile-разработки (Максим Цепков, Agile Days 2011)
Модель системы — архитектура для Agile-разработки (Максим Цепков, Agile Days 2011)
Модель системы — архитектура для Agile-разработки (Максим Цепков, Agile Days 2011)
Модель системы — архитектура для Agile-разработки (Максим Цепков, Agile Days 2011)
Upcoming SlideShare
Loading in...5
×

Модель системы — архитектура для Agile-разработки (Максим Цепков, Agile Days 2011)

1,336

Published on

Published in: Technology
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,336
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
30
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

Модель системы — архитектура для Agile-разработки (Максим Цепков, Agile Days 2011)

  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>
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×