SlideShare a Scribd company logo
1 of 56
Domain Driven Design 
Модель вместо требований 
Максим Цепков 
www.facebook.com/mtsepkov 
www.custis.ru
О чем этот доклад? 
 Есть разные способы работы с требованиями 
 Выбор конкретного – зависит от проекта 
 В сложных проектах уместна работа с моделями 
 И DDD – наиболее эффективный способ для этого 
DDD – ключ к построению сложных систем 
и их развитию вслед за потребностями бизнеса 
2/56
Теория 
Схема доклада 
DDD – единый язык проекта и одна модель системы 
• Модели были давно, но две: бизнес-область и система 
• Единый язык проекта создает общее поле понятий 
• И позволяет работать с одной, общей моделью 
Практика 
• Единый язык в конкретных примерах 
• DDD в корпоративных приложениях 
Заключение 
3/56
Начнем с теории 
4/56
DDD – как оно начиналось 
 Концептуальная книга Эрика Эванса 
• на английском – в 2003 г. 
• на русском – только в 2010 г. 
Практическая книга Джимми Нильссона 
• на английском – в 2006 г. 
• на русском – в 2007 г. (почти сразу!) 
5/56
Основная идея DDD 
Бизнес- 
аналитик 
Бизнес- 
модель 
Модель 
приложения 
Код 
Системный 
аналитик, 
архитектор 
Разработчик 
Заказчик 
Аналитики и архитектор 
Разработчик 
Модель на едином языке Код 
РАНЬШЕ 
DDD 
Заказчик 
6/56
Единый язык (ubiquitous language) 
 Построен на основе терминов предметной области 
 Его понимают ИТ-специалисты и эксперты бизнеса 
 На нем описана модель ИТ-системы и ее место в 
бизнес-процессах 
Понятия единого языка: 
Клиент, Накладная, платеж, Долг – 
из предметной области 
7/56
А где здесь ООП ? 
ООП – это парадигма 
моделирования 
Парадигма моделирования определяет 
 Элементы языка 
 Способ их соединения в сложные конструкции 
 Визуальный образ для представления 
 Способ отражения модели в код 
Объекты 
с атрибутами 
и методами 
Диаграмма классов и 
другие UML-диаграммы 
Типы, соответствующие 
бизнес-объектам 
Я сосредоточусь на разработке модели, 
а не на ее реализации 
8/56
Зачем нужен единый язык? 
Модель предприятия 
Представление 
о месте 
ИТ-системы 
Модель 
ИТ-системы 
Модель системы не соответствует представлению 
бизнеса о ее месте в модели предприятия. 
«Не то чтобы совсем не попал, 
но только не попал в шарик…» 
9/56
Итерационное развитие модели 
ИТ-система 
Место ИТ 
в бизнес-процессе 
Модель 
ИТ-системы 
Управляющее воздействие 
на модель 
Итерация 
Единый язык позволяет совместить модель системы 
с представлениями бизнеса о ее месте 
10/56
Единая модель 
 Аналитик собирает требования и строит модель – 
сначала предметной области, затем – системы 
 Артефакты модели описывают и систему и ее 
использование в бизнес-процессах предприятия 
 Разработчик реализует модель 
 Артефакты модели можно проследить в коде 
Модель предметной области 
становится моделью системы 
11/56
Что мы достигаем? 
 Верификация постановок бизнес-специалистами 
 Общее понимание требований на стороне бизнеса 
 Обсуждение модели бизнесом и IT, поиск баланса в 
сложных решениях 
 Перенос моделей из других предметных областей 
 Бизнес представляет потенциальные возможности 
системы и сложность различных доработок 
 На этапе эксплуатации – эффективное общение 
бизнес-пользователей и IT без квалифицированных 
переводчиков-аналитиков 
12/56
Пример: 
Виза на документы 
13/56
Задача 
Задача касается 
конкретного документа 
В процессе обработки документа (сделки, договора, 
контракта) обеспечить проверку и одобрение 
определенными сотрудниками или отделами 
14/56
Выбор проектного решения 
Существует несколько 
типовых шаблонов 
Каждая виза – со своим 
жизненным циклом 
15/56
В чем проблема? 
 Шаблоны обладают разной гибкостью и сложностью 
 Для выбора нужно понимать требуемый баланс 
между гибкостью и сложностью решения 
Традиционный подход 
 На этапе сбора требований аналитики 
формулируют задачу для конкретного документа 
 Исходя из этого в системе проектируется решение 
 Выбранное решение отражает текущую ситуацию 
Решение надо принимать с учетом 
потенциального изменения бизнес-процессов 
16/56
Примеры 
 Проверка сделки казначейством и отделом рисков – 
не получается выполнять параллельно 
 Юристы отозвали одобрение кредита, а служба 
безопасности на него опиралась – связи между 
визами не контролируются системой 
 Настройку виз для одобрения договоров с 
недвижимостью передали в IT из-за сложности 
17/56
Решение в рамках DDD 
 Представляем шаблоны, описанные применительно 
к конкретному документу, показываем разницу 
 Бизнес-специалисты оценивают потенциальную 
потребность в реализации бизнес-процессов 
 Решение принимается с учетом перспективы 
18/56
В чем Единый язык? 
 Для решения модель надо описать понятно бизнесу 
• Можно описать обобщенные решения для документов, 
«состояния» и «визы», и на них ссылаться 
• Можно описывать каждый случай отдельно 
 Термины должны быть понятны Заказчику: 
Например, «визированием» могут считать одобрение документа, 
требующее только просмотра, а если требуется дополнительная 
работа, то это называется «обработкой» или «проверкой» 
 Общий шаблон надо «перевести» на язык проекта 
19/56
Результат 
 Мы используем известные шаблоны решений 
 Заказчик оценивает вариант решения не только с 
точки зрения текущих потребностей, но и из 
предположений о развитии бизнес-процессов 
 Проектируя изменения бизнес-процессов, заказчик 
представляет потенциал гибкости системы и 
принимает решения с учетом этого 
20/56
DDD для корпоративных приложений 
Часть 1 – общая схема 
21/56
Типичное корпоративное приложение 
 Пользователи создают документы 
Объектная модель 
 По необходимости заполняют справочники 
 Потом документы исполняют 
 При этом меняются учетные данные 
 Которые влияют на исполнение документов 
 И отражаются в отчетах 
Жизненный цикл документа 
Учет – не объектная модель 
22/56
Единая модель системы 
Связь 
Учетные 
Документы показатели 
23/56
Три проекции модели системы 
Учетная модель 
(учетные показатели) 
Информационная 
модель 
(структура документов) 
Модель документооборота 
(поведение документов) 
24/56
Диаграммы для проекций 
Информационная 
модель 
(структура документов) 
Учетная модель 
(учетные показатели) 
Модель документооборота 
(поведение документов) 
Документы и 
справочники – 
диаграмма классов 
Учет – 
диаграммы учета 
Документооборот – 
диаграмма 
состояний 
25/56
Диаграммы для проекций 
26/56
DDD для корпоративных приложений 
Часть 2 - Учетная модель 
27/56
Учетная модель – не объектная 
Сложность объектного представления учета: 
 Нет идентификации единичного объекта. 
 Работа идет с показателями, текущее значение 
которых меняется. 
 Изменение числового значения может менять 
состояние с точки зрения принятия бизнес-решения. 
 Часто интерес представляют агрегаты, а не 
отдельные значения. 
Представление учета оказалось за рамками UML. 
Для него не придумано эффективного способа. 
28/56
Учетная модель 
Для представления учетной модели мы придумали 
Диаграммы учета. 
Они показывают элементы учета: 
• какие есть синтетические счета и их аналитику 
• как проводки перемещают ресурсы по синтетическим счетам 
• с какими событиями связано исполнение проводок 
Статья 
«Диаграммы учета: мост между бухгалтером и разработчиком» 
Журнал «Бухгалтер и компьютер» 5-2011 http://lib.custis.ru/Когда_всем_понятно 
29/56
Диаграммы учета 
Показывают, как отражается 
движение ресурсов в учете 
30/56
Как живет учетная модель? 
 Уточнения 
• определяем аналитики 
• определяем источники событий учета 
 Изменения 
• добавляем новые участки учета 
• добавляем транзитные счета 
31/56
Диаграммы учета – для бизнеса 
Бухгалтеры могут применять диаграммы учета 
для разработки учетной политики. 
Они нагляднее, чем Excel. 
32/56
Отражение учетной модели в код 
Модель позволяет построить шаблон для реализации. 
Есть Patterns for Accounting Мартина Фаулера – 
отражение учета в объектную реализацию: 
• учетные счета и проводки; 
• источник проводок – события. 
У нас – более развитая реализация: 
Наш метод 
• хранение аналитических признаков на счетах и проводках; 
• ведение остатков и оборотов учетных счетов; 
• ведение детальных и агрегированных показателей. 
Есть собственный язык описания – GL-XML. 
33/56
Представить реализацию бизнесу 
 Взгляд бизнеса: 
есть журнал хозяйственных операций, 
возникающих при обработке и проведении 
документов. 
 Реализация: 
проводки создаются по событиям (Event Sourcing, 
Фаулер), которые возникают в методах документов. 
Для прозрачной модели это должно совпадать: 
учетные события – суть хозяйственные операции. 
34/56
DDD для корпоративных приложений 
Часть 3 – Документы и Справочники 
35/56
Хорошо работает объектная модель 
 Объекты с атрибутами и методами – 
элементы единого языка для предметной области и 
способ их соединения в сложные конструкции 
 Диаграмма классов и другие диаграммы UML – 
визуальный образ для наглядного представления 
 Объекты в программе – 
способ отражения модели в реализацию 
36/56
Модель должен понимать заказчик 
Классы соответствуют бизнес-объектам – 
заказчик видит знакомые названия 
Представляем 
диаграммой 
классов 
Используем 
цветовые 
выделения 
37/56
DDD для корпоративных приложений 
Часть 4. Связь документа с учетом 
38/56
Обобщенный документооборот 
 Документ обрабатывается в несколько этапов. 
 На каждом этапе определенные сотрудники 
могут совершать определенные действия. 
 Для передачи на следующий этап должны 
выполняться определенные условия. 
39/56
Модель для документооборота 
 Документу приписываем состояние. 
 Состояние определяет этап документооборота: 
• какие действия можно совершать над документом; 
• кто отвечает за обработку документа; 
• кто имеет права на совершение тех или иных действий. 
 Возможные изменения состояний документа 
образуют граф переходов. 
Используем шаблон State Entity. 
40/56
Язык модели 
 Документ – объект предметной 
области. 
 Действие над ним – вызов его метода. 
 Среди всех методов выделяем 
переходы и связываем их 
с состояниями. 
 Граф состояний – State machine 
diagram. 
UML 
Язык ООП «с расширениями». 
Названия состояний и переходов – 
на языке бизнеса. 
41/56
Наглядно представляет 
сложный документооборот 
42/56
Еще пример: 
Долг клиента 
43/56
Задача 
Ведение взаиморасчетов с клиентами по продажам 
 обеспечивающее ведение управленческих лимитов 
 и отражение расчетов в бухгалтерию 
44/56
Проблема: 
Смешение языков на бизнес-уровне 
Менеджеры по продажам: долг – основа для 
управленческих решений. Увеличивается 
как только приняли решение об отгрузке, 
уменьшается когда признали претензию 
Бухгалтеры: долг – в соответствии с ПБУ, 
с учетом оформления документов и 
прохождения процедур 
Следствие - управленческий и бухгалтерский 
долг имеют систематические различия 
45/56
46/56
Проблемы двух пониманий долга 
 Контроль правильности учета – опаздывает 
 Менеджеров не получается контролировать через 
бухгалтерию 
 Имеются две разные суммы долга, что затрудняет 
принятие управленческих решений 
 Для сверки с клиентом и решения проблем 
менеджеры должны вникать в ПБУ 
47/56
Решение от DDD 
 Вырабатываем единый язык, описывающий долг 
в терминах, понятных менеджерам и бухгалтерам 
 Строим модель, которая показывает 
управленческий и бухгалтерский долг и их различие 
 Ситуации, в которых долг различается описываем 
на едином языке, согласуем со специалистами 
 Вырабатываем требования по контролю различий, 
а также по устранению несущественных различий 
 Результат – общий взгляд на предметную область у 
бизнес-специалистов, описанный в модели, 
которая реализуется разработчиками 
48/56
Модель долга клиента 
Этого долга нет 
у бухгалтеров 
Этих платежей нет 
у менеджеров 
Овалы – счета 
стрелки – проводки 
Сверку с клиентом успешно 
выполняют менеджеры 
«Общее» понимание долга 
49/56
Результат 
 Согласовано понимание предметной области у 
различных бизнес-специалистов 
 Реализована модель, отвечающая интересам всех 
заинтересованных сторон проекта 
50/56
Практики проектирования – 
на этап бизнес-анализа 
51/56
Частные практики 
 Стратегии 
 Политики 
 Выделение общих объектов 
 Абстракция через интерфейсы 
Технические практики наполняются бизнес- 
смыслом и служат для общения с Заказчиком 
52/56
Контексты 
Перенос практик декомпозиции на бизнес-анализ 
 Понятие ограниченных контекстов 
 Различные варианты выделение общего 
• Общее ядро 
• Абстрактное ядро 
• Подключаемые компоненты 
• Крупноблочная структура 
• Уровни разделения обязанностей 
 Изоляция и карта контекстов 
53/56
Заключение 
54/56
Что же обеспечивает DDD? 
Единый язык + Единая модель: 
 обеспечивают надежную основу для общения всех 
участников проекта при принятии решений; 
 успешно заменяют мелкую россыпь требований; 
 позволяют эффективно развивать сложную систему. 
Это требует дополнительных усилий: 
 формирование единого языка; 
 понимание разработчиками предметной области. 
По опыту, результат окупает усилия. 
DDD позволяет успешно создавать сложные 
проектные решения и развивать их 
55/56
Спасибо! 
Вопросы? 
Другие доклады lib.custis.ru/MaksTsepkov 
Максим Цепков www.facebook.com/mtsepkov

More Related Content

What's hot

Itgm #9. dmn. как моделировать принимаемые решения
Itgm #9. dmn. как моделировать принимаемые решенияItgm #9. dmn. как моделировать принимаемые решения
Itgm #9. dmn. как моделировать принимаемые решенияSPbCoA
 
Внедрение Бизнес-Анализа, ИТ Бизнес-Аналитиков и UML
Внедрение Бизнес-Анализа, ИТ Бизнес-Аналитиков и UMLВнедрение Бизнес-Анализа, ИТ Бизнес-Аналитиков и UML
Внедрение Бизнес-Анализа, ИТ Бизнес-Аналитиков и UMLEdgar Khachatryan
 
моделирование бизнес процессов с B pwin 4.0
моделирование бизнес процессов с B pwin 4.0моделирование бизнес процессов с B pwin 4.0
моделирование бизнес процессов с B pwin 4.0vaha1411
 
Введение в моделирование бизнес процессов
Введение в моделирование бизнес процессовВведение в моделирование бизнес процессов
Введение в моделирование бизнес процессовNatalia Zhelnova
 
должностные обязанности
должностные обязанностидолжностные обязанности
должностные обязанностиNatalia Zhelnova
 
Нотации оформления требований
Нотации оформления требованийНотации оформления требований
Нотации оформления требованийJaneKozmina
 
Ddd softwarepeople-2012-tsepkov
Ddd softwarepeople-2012-tsepkovDdd softwarepeople-2012-tsepkov
Ddd softwarepeople-2012-tsepkovMaxim Tsepkov
 
Domain Driven Design: модель вместо требования
Domain Driven Design: модель вместо требованияDomain Driven Design: модель вместо требования
Domain Driven Design: модель вместо требованияCUSTIS
 
Практический анализ и визуальное моделирование на UML
Практический анализ и визуальное моделирование на UMLПрактический анализ и визуальное моделирование на UML
Практический анализ и визуальное моделирование на UMLNikolai Kireev
 
Практика применения Enterprise Architect и T4-шаблонов для разработки систем...
Практика применения Enterprise Architect и T4-шаблонов для разработки систем...Практика применения Enterprise Architect и T4-шаблонов для разработки систем...
Практика применения Enterprise Architect и T4-шаблонов для разработки систем...CUSTIS
 
Специфика работы бизнес-аналитика в зависимости от типов проектов и методологий
Специфика работы бизнес-аналитика в зависимости от типов проектов и методологийСпецифика работы бизнес-аналитика в зависимости от типов проектов и методологий
Специфика работы бизнес-аналитика в зависимости от типов проектов и методологийSQALab
 
Необъектные модели предметной области
Необъектные модели предметной областиНеобъектные модели предметной области
Необъектные модели предметной областиCUSTIS
 
Практический анализ по RUP
Практический анализ по RUPПрактический анализ по RUP
Практический анализ по RUPSQALab
 
требования к кандидату
требования к кандидатутребования к кандидату
требования к кандидатуNatalia Zhelnova
 
Модель системы — архитектура для Agile-разработки
Модель системы — архитектура для Agile-разработкиМодель системы — архитектура для Agile-разработки
Модель системы — архитектура для Agile-разработкиCUSTIS
 
Babok v2.0 перевод на русский язык свод знаний по бизнес анализу
Babok v2.0 перевод на русский язык свод знаний по бизнес анализуBabok v2.0 перевод на русский язык свод знаний по бизнес анализу
Babok v2.0 перевод на русский язык свод знаний по бизнес анализуIvan Shamaev
 
DDD — правильный курс в потоке изменений требований
DDD — правильный курс в потоке изменений требованийDDD — правильный курс в потоке изменений требований
DDD — правильный курс в потоке изменений требованийSQALab
 

What's hot (20)

Itgm #9. dmn. как моделировать принимаемые решения
Itgm #9. dmn. как моделировать принимаемые решенияItgm #9. dmn. как моделировать принимаемые решения
Itgm #9. dmn. как моделировать принимаемые решения
 
Киев, BA Con 2017
Киев, BA Con 2017Киев, BA Con 2017
Киев, BA Con 2017
 
Внедрение Бизнес-Анализа, ИТ Бизнес-Аналитиков и UML
Внедрение Бизнес-Анализа, ИТ Бизнес-Аналитиков и UMLВнедрение Бизнес-Анализа, ИТ Бизнес-Аналитиков и UML
Внедрение Бизнес-Анализа, ИТ Бизнес-Аналитиков и UML
 
Nfr and quality-models
Nfr and quality-modelsNfr and quality-models
Nfr and quality-models
 
моделирование бизнес процессов с B pwin 4.0
моделирование бизнес процессов с B pwin 4.0моделирование бизнес процессов с B pwin 4.0
моделирование бизнес процессов с B pwin 4.0
 
Введение в моделирование бизнес процессов
Введение в моделирование бизнес процессовВведение в моделирование бизнес процессов
Введение в моделирование бизнес процессов
 
должностные обязанности
должностные обязанностидолжностные обязанности
должностные обязанности
 
Нотации оформления требований
Нотации оформления требованийНотации оформления требований
Нотации оформления требований
 
Ddd softwarepeople-2012-tsepkov
Ddd softwarepeople-2012-tsepkovDdd softwarepeople-2012-tsepkov
Ddd softwarepeople-2012-tsepkov
 
Domain Driven Design: модель вместо требования
Domain Driven Design: модель вместо требованияDomain Driven Design: модель вместо требования
Domain Driven Design: модель вместо требования
 
Практический анализ и визуальное моделирование на UML
Практический анализ и визуальное моделирование на UMLПрактический анализ и визуальное моделирование на UML
Практический анализ и визуальное моделирование на UML
 
Практика применения Enterprise Architect и T4-шаблонов для разработки систем...
Практика применения Enterprise Architect и T4-шаблонов для разработки систем...Практика применения Enterprise Architect и T4-шаблонов для разработки систем...
Практика применения Enterprise Architect и T4-шаблонов для разработки систем...
 
Специфика работы бизнес-аналитика в зависимости от типов проектов и методологий
Специфика работы бизнес-аналитика в зависимости от типов проектов и методологийСпецифика работы бизнес-аналитика в зависимости от типов проектов и методологий
Специфика работы бизнес-аналитика в зависимости от типов проектов и методологий
 
Необъектные модели предметной области
Необъектные модели предметной областиНеобъектные модели предметной области
Необъектные модели предметной области
 
Практический анализ по RUP
Практический анализ по RUPПрактический анализ по RUP
Практический анализ по RUP
 
требования к кандидату
требования к кандидатутребования к кандидату
требования к кандидату
 
Модель системы — архитектура для Agile-разработки
Модель системы — архитектура для Agile-разработкиМодель системы — архитектура для Agile-разработки
Модель системы — архитектура для Agile-разработки
 
Babok v2.0 перевод на русский язык свод знаний по бизнес анализу
Babok v2.0 перевод на русский язык свод знаний по бизнес анализуBabok v2.0 перевод на русский язык свод знаний по бизнес анализу
Babok v2.0 перевод на русский язык свод знаний по бизнес анализу
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven Design
 
DDD — правильный курс в потоке изменений требований
DDD — правильный курс в потоке изменений требованийDDD — правильный курс в потоке изменений требований
DDD — правильный курс в потоке изменений требований
 

Viewers also liked

Медіацентр Черкаського Факультету КНУКіМ
Медіацентр Черкаського Факультету КНУКіММедіацентр Черкаського Факультету КНУКіМ
Медіацентр Черкаського Факультету КНУКіМYulia Gonchar
 
Showcase Melies
Showcase MeliesShowcase Melies
Showcase Meliesmscicchi
 
Слайд-презентація доповіді "Здійснення громадськими радами громадського контр...
Слайд-презентація доповіді "Здійснення громадськими радами громадського контр...Слайд-презентація доповіді "Здійснення громадськими радами громадського контр...
Слайд-презентація доповіді "Здійснення громадськими радами громадського контр...Mike Lebed
 

Viewers also liked (9)

Медіацентр Черкаського Факультету КНУКіМ
Медіацентр Черкаського Факультету КНУКіММедіацентр Черкаського Факультету КНУКіМ
Медіацентр Черкаського Факультету КНУКіМ
 
Bondia Lleida 21022012
Bondia Lleida 21022012Bondia Lleida 21022012
Bondia Lleida 21022012
 
Showcase Melies
Showcase MeliesShowcase Melies
Showcase Melies
 
MIXX + MOMA 2011
MIXX + MOMA 2011MIXX + MOMA 2011
MIXX + MOMA 2011
 
Encuentro septiembre
Encuentro septiembreEncuentro septiembre
Encuentro septiembre
 
Paoli gil-whiler-gelhorn-chichizola
Paoli gil-whiler-gelhorn-chichizolaPaoli gil-whiler-gelhorn-chichizola
Paoli gil-whiler-gelhorn-chichizola
 
We B 2
We B 2We B 2
We B 2
 
Слайд-презентація доповіді "Здійснення громадськими радами громадського контр...
Слайд-презентація доповіді "Здійснення громадськими радами громадського контр...Слайд-презентація доповіді "Здійснення громадськими радами громадського контр...
Слайд-презентація доповіді "Здійснення громадськими радами громадського контр...
 
Bondia.cat 25/07/2014
Bondia.cat 25/07/2014Bondia.cat 25/07/2014
Bondia.cat 25/07/2014
 

Similar to Ddd happy dev-2013-tsepkov

DDD - модель вместо требований
DDD - модель вместо требованийDDD - модель вместо требований
DDD - модель вместо требованийSQALab
 
Три точки опоры в архитектуре корпоративных систем
Три точки опоры в архитектуре корпоративных системТри точки опоры в архитектуре корпоративных систем
Три точки опоры в архитектуре корпоративных системCUSTIS
 
2012 04 05_моделирование бизнес-процессов
2012 04 05_моделирование бизнес-процессов2012 04 05_моделирование бизнес-процессов
2012 04 05_моделирование бизнес-процессовReshetnikov Alexander
 
Проектирование_и_архитектура_ПС_2022_L06.ppt
Проектирование_и_архитектура_ПС_2022_L06.pptПроектирование_и_архитектура_ПС_2022_L06.ppt
Проектирование_и_архитектура_ПС_2022_L06.pptdinarium2016
 
Как выжить глобальной корпорации?
Как выжить глобальной корпорации?Как выжить глобальной корпорации?
Как выжить глобальной корпорации?CEE-SEC(R)
 
Методология ведения проектов
Методология ведения проектовМетодология ведения проектов
Методология ведения проектовAlexanderAvva
 
Взаимодействие бизнес-аналитика с командой проекта и Заказчиком, Людмила Гули...
Взаимодействие бизнес-аналитика с командой проекта и Заказчиком, Людмила Гули...Взаимодействие бизнес-аналитика с командой проекта и Заказчиком, Людмила Гули...
Взаимодействие бизнес-аналитика с командой проекта и Заказчиком, Людмила Гули...DataArt
 
Roles happy dev-2013-tsepkov
Roles happy dev-2013-tsepkovRoles happy dev-2013-tsepkov
Roles happy dev-2013-tsepkovMaxim Tsepkov
 
МАПО 2013 Лекция 07 Моделирование IDEF
МАПО 2013 Лекция 07 Моделирование IDEFМАПО 2013 Лекция 07 Моделирование IDEF
МАПО 2013 Лекция 07 Моделирование IDEFОлег Гудаев
 
Practice of enterprice development ProfsoUX-2017
Practice of enterprice development  ProfsoUX-2017Practice of enterprice development  ProfsoUX-2017
Practice of enterprice development ProfsoUX-2017Maxim Tsepkov
 
Сотрудничество с корпорациями: рецепты из практики
Сотрудничество с корпорациями: рецепты из практикиСотрудничество с корпорациями: рецепты из практики
Сотрудничество с корпорациями: рецепты из практикиCUSTIS
 
Опыт госпроектов и взаимодействия с корпоративными структурами
Опыт госпроектов и взаимодействия с корпоративными структурамиОпыт госпроектов и взаимодействия с корпоративными структурами
Опыт госпроектов и взаимодействия с корпоративными структурамиПрофсоUX
 
Проектирование программных систем. Занятие 4
Проектирование программных систем. Занятие 4Проектирование программных систем. Занятие 4
Проектирование программных систем. Занятие 4Dima Dzuba
 
DIRECTUM: возможности системы электронного документооборота
DIRECTUM: возможности системы электронного документооборотаDIRECTUM: возможности системы электронного документооборота
DIRECTUM: возможности системы электронного документооборотаDIRECTUM
 
Аліна Петренко: “Майстер-клас: Виявлення ключових вимог на предпроектній фазі...
Аліна Петренко: “Майстер-клас: Виявлення ключових вимог на предпроектній фазі...Аліна Петренко: “Майстер-клас: Виявлення ключових вимог на предпроектній фазі...
Аліна Петренко: “Майстер-клас: Виявлення ключових вимог на предпроектній фазі...Dakiry
 
Пространство вариантов_final
Пространство вариантов_finalПространство вариантов_final
Пространство вариантов_finalVlad Berezin, PMP
 
САПР и ГИС
САПР и ГИССАПР и ГИС
САПР и ГИСSoftline
 
Requirement modelling in software creation process
Requirement modelling in software creation processRequirement modelling in software creation process
Requirement modelling in software creation processDima Dzuba
 
Бизнес процессы в Битрикс24 семинар часть 1
Бизнес процессы в Битрикс24 семинар часть 1Бизнес процессы в Битрикс24 семинар часть 1
Бизнес процессы в Битрикс24 семинар часть 1Алексей Модель
 
2012 03 22_бизнес-процессы
2012 03 22_бизнес-процессы2012 03 22_бизнес-процессы
2012 03 22_бизнес-процессыReshetnikov Alexander
 

Similar to Ddd happy dev-2013-tsepkov (20)

DDD - модель вместо требований
DDD - модель вместо требованийDDD - модель вместо требований
DDD - модель вместо требований
 
Три точки опоры в архитектуре корпоративных систем
Три точки опоры в архитектуре корпоративных системТри точки опоры в архитектуре корпоративных систем
Три точки опоры в архитектуре корпоративных систем
 
2012 04 05_моделирование бизнес-процессов
2012 04 05_моделирование бизнес-процессов2012 04 05_моделирование бизнес-процессов
2012 04 05_моделирование бизнес-процессов
 
Проектирование_и_архитектура_ПС_2022_L06.ppt
Проектирование_и_архитектура_ПС_2022_L06.pptПроектирование_и_архитектура_ПС_2022_L06.ppt
Проектирование_и_архитектура_ПС_2022_L06.ppt
 
Как выжить глобальной корпорации?
Как выжить глобальной корпорации?Как выжить глобальной корпорации?
Как выжить глобальной корпорации?
 
Методология ведения проектов
Методология ведения проектовМетодология ведения проектов
Методология ведения проектов
 
Взаимодействие бизнес-аналитика с командой проекта и Заказчиком, Людмила Гули...
Взаимодействие бизнес-аналитика с командой проекта и Заказчиком, Людмила Гули...Взаимодействие бизнес-аналитика с командой проекта и Заказчиком, Людмила Гули...
Взаимодействие бизнес-аналитика с командой проекта и Заказчиком, Людмила Гули...
 
Roles happy dev-2013-tsepkov
Roles happy dev-2013-tsepkovRoles happy dev-2013-tsepkov
Roles happy dev-2013-tsepkov
 
МАПО 2013 Лекция 07 Моделирование IDEF
МАПО 2013 Лекция 07 Моделирование IDEFМАПО 2013 Лекция 07 Моделирование IDEF
МАПО 2013 Лекция 07 Моделирование IDEF
 
Practice of enterprice development ProfsoUX-2017
Practice of enterprice development  ProfsoUX-2017Practice of enterprice development  ProfsoUX-2017
Practice of enterprice development ProfsoUX-2017
 
Сотрудничество с корпорациями: рецепты из практики
Сотрудничество с корпорациями: рецепты из практикиСотрудничество с корпорациями: рецепты из практики
Сотрудничество с корпорациями: рецепты из практики
 
Опыт госпроектов и взаимодействия с корпоративными структурами
Опыт госпроектов и взаимодействия с корпоративными структурамиОпыт госпроектов и взаимодействия с корпоративными структурами
Опыт госпроектов и взаимодействия с корпоративными структурами
 
Проектирование программных систем. Занятие 4
Проектирование программных систем. Занятие 4Проектирование программных систем. Занятие 4
Проектирование программных систем. Занятие 4
 
DIRECTUM: возможности системы электронного документооборота
DIRECTUM: возможности системы электронного документооборотаDIRECTUM: возможности системы электронного документооборота
DIRECTUM: возможности системы электронного документооборота
 
Аліна Петренко: “Майстер-клас: Виявлення ключових вимог на предпроектній фазі...
Аліна Петренко: “Майстер-клас: Виявлення ключових вимог на предпроектній фазі...Аліна Петренко: “Майстер-клас: Виявлення ключових вимог на предпроектній фазі...
Аліна Петренко: “Майстер-клас: Виявлення ключових вимог на предпроектній фазі...
 
Пространство вариантов_final
Пространство вариантов_finalПространство вариантов_final
Пространство вариантов_final
 
САПР и ГИС
САПР и ГИССАПР и ГИС
САПР и ГИС
 
Requirement modelling in software creation process
Requirement modelling in software creation processRequirement modelling in software creation process
Requirement modelling in software creation process
 
Бизнес процессы в Битрикс24 семинар часть 1
Бизнес процессы в Битрикс24 семинар часть 1Бизнес процессы в Битрикс24 семинар часть 1
Бизнес процессы в Битрикс24 семинар часть 1
 
2012 03 22_бизнес-процессы
2012 03 22_бизнес-процессы2012 03 22_бизнес-процессы
2012 03 22_бизнес-процессы
 

More from Maxim Tsepkov

From Agile to Teal Organization PRyug-2017
From Agile to Teal Organization PRyug-2017From Agile to Teal Organization PRyug-2017
From Agile to Teal Organization PRyug-2017Maxim Tsepkov
 
Самоопределяйся технологично!
Самоопределяйся технологично!Самоопределяйся технологично!
Самоопределяйся технологично!Maxim Tsepkov
 
Agile and the Third Wave (IT Spring 2017)
Agile and the Third Wave (IT Spring 2017)Agile and the Third Wave (IT Spring 2017)
Agile and the Third Wave (IT Spring 2017)Maxim Tsepkov
 
Accounting diagram - Tsepkov EconConf-2017
Accounting diagram - Tsepkov EconConf-2017Accounting diagram - Tsepkov EconConf-2017
Accounting diagram - Tsepkov EconConf-2017Maxim Tsepkov
 
Choose method for requirements Tsepkov Analyst Days-2017
Choose method for requirements Tsepkov Analyst Days-2017Choose method for requirements Tsepkov Analyst Days-2017
Choose method for requirements Tsepkov Analyst Days-2017Maxim Tsepkov
 
Agile - ответ на вызовы третьей промышленной революции - цепков custis
Agile - ответ на вызовы третьей промышленной революции - цепков custisAgile - ответ на вызовы третьей промышленной революции - цепков custis
Agile - ответ на вызовы третьей промышленной революции - цепков custisMaxim Tsepkov
 
Use OOP for domain ontology WIAD-2017
Use OOP for domain ontology WIAD-2017Use OOP for domain ontology WIAD-2017
Use OOP for domain ontology WIAD-2017Maxim Tsepkov
 
Agile и управление знаниями в ИТ-проектах
Agile и управление знаниями в ИТ-проектахAgile и управление знаниями в ИТ-проектах
Agile и управление знаниями в ИТ-проектахMaxim Tsepkov
 
Как понять, подходит ли Agile вашей компании
Как понять, подходит ли Agile вашей компанииКак понять, подходит ли Agile вашей компании
Как понять, подходит ли Agile вашей компанииMaxim Tsepkov
 
Ответственность за качество в разных ИТ-проектах
Ответственность за качество в разных ИТ-проектахОтветственность за качество в разных ИТ-проектах
Ответственность за качество в разных ИТ-проектахMaxim Tsepkov
 
Process and Case Management together (SECR-2016)
Process and Case Management together (SECR-2016)Process and Case Management together (SECR-2016)
Process and Case Management together (SECR-2016)Maxim Tsepkov
 
Эволюция организаций и эволюция сотрудника – как изменяется понятие о прави...
Эволюция организаций и эволюция сотрудника – как изменяется понятие о прави...Эволюция организаций и эволюция сотрудника – как изменяется понятие о прави...
Эволюция организаций и эволюция сотрудника – как изменяется понятие о прави...Maxim Tsepkov
 
Process and Case Management together
Process and Case Management togetherProcess and Case Management together
Process and Case Management togetherMaxim Tsepkov
 
Taxonomy vs folksonomy Tsepkov Analyst Days 2016
Taxonomy vs folksonomy Tsepkov Analyst Days 2016Taxonomy vs folksonomy Tsepkov Analyst Days 2016
Taxonomy vs folksonomy Tsepkov Analyst Days 2016Maxim Tsepkov
 
Agile то что на самом деле нужно госзаказчикам - Максим Цепков на AgileDays-2016
Agile то что на самом деле нужно госзаказчикам - Максим Цепков на AgileDays-2016Agile то что на самом деле нужно госзаказчикам - Максим Цепков на AgileDays-2016
Agile то что на самом деле нужно госзаказчикам - Максим Цепков на AgileDays-2016Maxim Tsepkov
 
действуй опираясь на ценности а не просто применяй инструменты максим цепков
действуй опираясь на ценности а не просто применяй инструменты максим цепковдействуй опираясь на ценности а не просто применяй инструменты максим цепков
действуй опираясь на ценности а не просто применяй инструменты максим цепковMaxim Tsepkov
 
Responsibilities in software development tsepkov analyst days 2015
Responsibilities in software development tsepkov analyst days 2015Responsibilities in software development tsepkov analyst days 2015
Responsibilities in software development tsepkov analyst days 2015Maxim Tsepkov
 
Big picture of it project managerment Tsepkov AgileDays 2015
Big picture of it project managerment Tsepkov AgileDays 2015Big picture of it project managerment Tsepkov AgileDays 2015
Big picture of it project managerment Tsepkov AgileDays 2015Maxim Tsepkov
 
Spiral dynamics in use tsepkov sqadays-16
Spiral dynamics in use tsepkov sqadays-16Spiral dynamics in use tsepkov sqadays-16
Spiral dynamics in use tsepkov sqadays-16Maxim Tsepkov
 
Spiral dynamics InUse Tsepkov Testclub 2014-07
Spiral dynamics InUse Tsepkov Testclub 2014-07Spiral dynamics InUse Tsepkov Testclub 2014-07
Spiral dynamics InUse Tsepkov Testclub 2014-07Maxim Tsepkov
 

More from Maxim Tsepkov (20)

From Agile to Teal Organization PRyug-2017
From Agile to Teal Organization PRyug-2017From Agile to Teal Organization PRyug-2017
From Agile to Teal Organization PRyug-2017
 
Самоопределяйся технологично!
Самоопределяйся технологично!Самоопределяйся технологично!
Самоопределяйся технологично!
 
Agile and the Third Wave (IT Spring 2017)
Agile and the Third Wave (IT Spring 2017)Agile and the Third Wave (IT Spring 2017)
Agile and the Third Wave (IT Spring 2017)
 
Accounting diagram - Tsepkov EconConf-2017
Accounting diagram - Tsepkov EconConf-2017Accounting diagram - Tsepkov EconConf-2017
Accounting diagram - Tsepkov EconConf-2017
 
Choose method for requirements Tsepkov Analyst Days-2017
Choose method for requirements Tsepkov Analyst Days-2017Choose method for requirements Tsepkov Analyst Days-2017
Choose method for requirements Tsepkov Analyst Days-2017
 
Agile - ответ на вызовы третьей промышленной революции - цепков custis
Agile - ответ на вызовы третьей промышленной революции - цепков custisAgile - ответ на вызовы третьей промышленной революции - цепков custis
Agile - ответ на вызовы третьей промышленной революции - цепков custis
 
Use OOP for domain ontology WIAD-2017
Use OOP for domain ontology WIAD-2017Use OOP for domain ontology WIAD-2017
Use OOP for domain ontology WIAD-2017
 
Agile и управление знаниями в ИТ-проектах
Agile и управление знаниями в ИТ-проектахAgile и управление знаниями в ИТ-проектах
Agile и управление знаниями в ИТ-проектах
 
Как понять, подходит ли Agile вашей компании
Как понять, подходит ли Agile вашей компанииКак понять, подходит ли Agile вашей компании
Как понять, подходит ли Agile вашей компании
 
Ответственность за качество в разных ИТ-проектах
Ответственность за качество в разных ИТ-проектахОтветственность за качество в разных ИТ-проектах
Ответственность за качество в разных ИТ-проектах
 
Process and Case Management together (SECR-2016)
Process and Case Management together (SECR-2016)Process and Case Management together (SECR-2016)
Process and Case Management together (SECR-2016)
 
Эволюция организаций и эволюция сотрудника – как изменяется понятие о прави...
Эволюция организаций и эволюция сотрудника – как изменяется понятие о прави...Эволюция организаций и эволюция сотрудника – как изменяется понятие о прави...
Эволюция организаций и эволюция сотрудника – как изменяется понятие о прави...
 
Process and Case Management together
Process and Case Management togetherProcess and Case Management together
Process and Case Management together
 
Taxonomy vs folksonomy Tsepkov Analyst Days 2016
Taxonomy vs folksonomy Tsepkov Analyst Days 2016Taxonomy vs folksonomy Tsepkov Analyst Days 2016
Taxonomy vs folksonomy Tsepkov Analyst Days 2016
 
Agile то что на самом деле нужно госзаказчикам - Максим Цепков на AgileDays-2016
Agile то что на самом деле нужно госзаказчикам - Максим Цепков на AgileDays-2016Agile то что на самом деле нужно госзаказчикам - Максим Цепков на AgileDays-2016
Agile то что на самом деле нужно госзаказчикам - Максим Цепков на AgileDays-2016
 
действуй опираясь на ценности а не просто применяй инструменты максим цепков
действуй опираясь на ценности а не просто применяй инструменты максим цепковдействуй опираясь на ценности а не просто применяй инструменты максим цепков
действуй опираясь на ценности а не просто применяй инструменты максим цепков
 
Responsibilities in software development tsepkov analyst days 2015
Responsibilities in software development tsepkov analyst days 2015Responsibilities in software development tsepkov analyst days 2015
Responsibilities in software development tsepkov analyst days 2015
 
Big picture of it project managerment Tsepkov AgileDays 2015
Big picture of it project managerment Tsepkov AgileDays 2015Big picture of it project managerment Tsepkov AgileDays 2015
Big picture of it project managerment Tsepkov AgileDays 2015
 
Spiral dynamics in use tsepkov sqadays-16
Spiral dynamics in use tsepkov sqadays-16Spiral dynamics in use tsepkov sqadays-16
Spiral dynamics in use tsepkov sqadays-16
 
Spiral dynamics InUse Tsepkov Testclub 2014-07
Spiral dynamics InUse Tsepkov Testclub 2014-07Spiral dynamics InUse Tsepkov Testclub 2014-07
Spiral dynamics InUse Tsepkov Testclub 2014-07
 

Ddd happy dev-2013-tsepkov

  • 1. Domain Driven Design Модель вместо требований Максим Цепков www.facebook.com/mtsepkov www.custis.ru
  • 2. О чем этот доклад?  Есть разные способы работы с требованиями  Выбор конкретного – зависит от проекта  В сложных проектах уместна работа с моделями  И DDD – наиболее эффективный способ для этого DDD – ключ к построению сложных систем и их развитию вслед за потребностями бизнеса 2/56
  • 3. Теория Схема доклада DDD – единый язык проекта и одна модель системы • Модели были давно, но две: бизнес-область и система • Единый язык проекта создает общее поле понятий • И позволяет работать с одной, общей моделью Практика • Единый язык в конкретных примерах • DDD в корпоративных приложениях Заключение 3/56
  • 5. DDD – как оно начиналось  Концептуальная книга Эрика Эванса • на английском – в 2003 г. • на русском – только в 2010 г. Практическая книга Джимми Нильссона • на английском – в 2006 г. • на русском – в 2007 г. (почти сразу!) 5/56
  • 6. Основная идея DDD Бизнес- аналитик Бизнес- модель Модель приложения Код Системный аналитик, архитектор Разработчик Заказчик Аналитики и архитектор Разработчик Модель на едином языке Код РАНЬШЕ DDD Заказчик 6/56
  • 7. Единый язык (ubiquitous language)  Построен на основе терминов предметной области  Его понимают ИТ-специалисты и эксперты бизнеса  На нем описана модель ИТ-системы и ее место в бизнес-процессах Понятия единого языка: Клиент, Накладная, платеж, Долг – из предметной области 7/56
  • 8. А где здесь ООП ? ООП – это парадигма моделирования Парадигма моделирования определяет  Элементы языка  Способ их соединения в сложные конструкции  Визуальный образ для представления  Способ отражения модели в код Объекты с атрибутами и методами Диаграмма классов и другие UML-диаграммы Типы, соответствующие бизнес-объектам Я сосредоточусь на разработке модели, а не на ее реализации 8/56
  • 9. Зачем нужен единый язык? Модель предприятия Представление о месте ИТ-системы Модель ИТ-системы Модель системы не соответствует представлению бизнеса о ее месте в модели предприятия. «Не то чтобы совсем не попал, но только не попал в шарик…» 9/56
  • 10. Итерационное развитие модели ИТ-система Место ИТ в бизнес-процессе Модель ИТ-системы Управляющее воздействие на модель Итерация Единый язык позволяет совместить модель системы с представлениями бизнеса о ее месте 10/56
  • 11. Единая модель  Аналитик собирает требования и строит модель – сначала предметной области, затем – системы  Артефакты модели описывают и систему и ее использование в бизнес-процессах предприятия  Разработчик реализует модель  Артефакты модели можно проследить в коде Модель предметной области становится моделью системы 11/56
  • 12. Что мы достигаем?  Верификация постановок бизнес-специалистами  Общее понимание требований на стороне бизнеса  Обсуждение модели бизнесом и IT, поиск баланса в сложных решениях  Перенос моделей из других предметных областей  Бизнес представляет потенциальные возможности системы и сложность различных доработок  На этапе эксплуатации – эффективное общение бизнес-пользователей и IT без квалифицированных переводчиков-аналитиков 12/56
  • 13. Пример: Виза на документы 13/56
  • 14. Задача Задача касается конкретного документа В процессе обработки документа (сделки, договора, контракта) обеспечить проверку и одобрение определенными сотрудниками или отделами 14/56
  • 15. Выбор проектного решения Существует несколько типовых шаблонов Каждая виза – со своим жизненным циклом 15/56
  • 16. В чем проблема?  Шаблоны обладают разной гибкостью и сложностью  Для выбора нужно понимать требуемый баланс между гибкостью и сложностью решения Традиционный подход  На этапе сбора требований аналитики формулируют задачу для конкретного документа  Исходя из этого в системе проектируется решение  Выбранное решение отражает текущую ситуацию Решение надо принимать с учетом потенциального изменения бизнес-процессов 16/56
  • 17. Примеры  Проверка сделки казначейством и отделом рисков – не получается выполнять параллельно  Юристы отозвали одобрение кредита, а служба безопасности на него опиралась – связи между визами не контролируются системой  Настройку виз для одобрения договоров с недвижимостью передали в IT из-за сложности 17/56
  • 18. Решение в рамках DDD  Представляем шаблоны, описанные применительно к конкретному документу, показываем разницу  Бизнес-специалисты оценивают потенциальную потребность в реализации бизнес-процессов  Решение принимается с учетом перспективы 18/56
  • 19. В чем Единый язык?  Для решения модель надо описать понятно бизнесу • Можно описать обобщенные решения для документов, «состояния» и «визы», и на них ссылаться • Можно описывать каждый случай отдельно  Термины должны быть понятны Заказчику: Например, «визированием» могут считать одобрение документа, требующее только просмотра, а если требуется дополнительная работа, то это называется «обработкой» или «проверкой»  Общий шаблон надо «перевести» на язык проекта 19/56
  • 20. Результат  Мы используем известные шаблоны решений  Заказчик оценивает вариант решения не только с точки зрения текущих потребностей, но и из предположений о развитии бизнес-процессов  Проектируя изменения бизнес-процессов, заказчик представляет потенциал гибкости системы и принимает решения с учетом этого 20/56
  • 21. DDD для корпоративных приложений Часть 1 – общая схема 21/56
  • 22. Типичное корпоративное приложение  Пользователи создают документы Объектная модель  По необходимости заполняют справочники  Потом документы исполняют  При этом меняются учетные данные  Которые влияют на исполнение документов  И отражаются в отчетах Жизненный цикл документа Учет – не объектная модель 22/56
  • 23. Единая модель системы Связь Учетные Документы показатели 23/56
  • 24. Три проекции модели системы Учетная модель (учетные показатели) Информационная модель (структура документов) Модель документооборота (поведение документов) 24/56
  • 25. Диаграммы для проекций Информационная модель (структура документов) Учетная модель (учетные показатели) Модель документооборота (поведение документов) Документы и справочники – диаграмма классов Учет – диаграммы учета Документооборот – диаграмма состояний 25/56
  • 27. DDD для корпоративных приложений Часть 2 - Учетная модель 27/56
  • 28. Учетная модель – не объектная Сложность объектного представления учета:  Нет идентификации единичного объекта.  Работа идет с показателями, текущее значение которых меняется.  Изменение числового значения может менять состояние с точки зрения принятия бизнес-решения.  Часто интерес представляют агрегаты, а не отдельные значения. Представление учета оказалось за рамками UML. Для него не придумано эффективного способа. 28/56
  • 29. Учетная модель Для представления учетной модели мы придумали Диаграммы учета. Они показывают элементы учета: • какие есть синтетические счета и их аналитику • как проводки перемещают ресурсы по синтетическим счетам • с какими событиями связано исполнение проводок Статья «Диаграммы учета: мост между бухгалтером и разработчиком» Журнал «Бухгалтер и компьютер» 5-2011 http://lib.custis.ru/Когда_всем_понятно 29/56
  • 30. Диаграммы учета Показывают, как отражается движение ресурсов в учете 30/56
  • 31. Как живет учетная модель?  Уточнения • определяем аналитики • определяем источники событий учета  Изменения • добавляем новые участки учета • добавляем транзитные счета 31/56
  • 32. Диаграммы учета – для бизнеса Бухгалтеры могут применять диаграммы учета для разработки учетной политики. Они нагляднее, чем Excel. 32/56
  • 33. Отражение учетной модели в код Модель позволяет построить шаблон для реализации. Есть Patterns for Accounting Мартина Фаулера – отражение учета в объектную реализацию: • учетные счета и проводки; • источник проводок – события. У нас – более развитая реализация: Наш метод • хранение аналитических признаков на счетах и проводках; • ведение остатков и оборотов учетных счетов; • ведение детальных и агрегированных показателей. Есть собственный язык описания – GL-XML. 33/56
  • 34. Представить реализацию бизнесу  Взгляд бизнеса: есть журнал хозяйственных операций, возникающих при обработке и проведении документов.  Реализация: проводки создаются по событиям (Event Sourcing, Фаулер), которые возникают в методах документов. Для прозрачной модели это должно совпадать: учетные события – суть хозяйственные операции. 34/56
  • 35. DDD для корпоративных приложений Часть 3 – Документы и Справочники 35/56
  • 36. Хорошо работает объектная модель  Объекты с атрибутами и методами – элементы единого языка для предметной области и способ их соединения в сложные конструкции  Диаграмма классов и другие диаграммы UML – визуальный образ для наглядного представления  Объекты в программе – способ отражения модели в реализацию 36/56
  • 37. Модель должен понимать заказчик Классы соответствуют бизнес-объектам – заказчик видит знакомые названия Представляем диаграммой классов Используем цветовые выделения 37/56
  • 38. DDD для корпоративных приложений Часть 4. Связь документа с учетом 38/56
  • 39. Обобщенный документооборот  Документ обрабатывается в несколько этапов.  На каждом этапе определенные сотрудники могут совершать определенные действия.  Для передачи на следующий этап должны выполняться определенные условия. 39/56
  • 40. Модель для документооборота  Документу приписываем состояние.  Состояние определяет этап документооборота: • какие действия можно совершать над документом; • кто отвечает за обработку документа; • кто имеет права на совершение тех или иных действий.  Возможные изменения состояний документа образуют граф переходов. Используем шаблон State Entity. 40/56
  • 41. Язык модели  Документ – объект предметной области.  Действие над ним – вызов его метода.  Среди всех методов выделяем переходы и связываем их с состояниями.  Граф состояний – State machine diagram. UML Язык ООП «с расширениями». Названия состояний и переходов – на языке бизнеса. 41/56
  • 42. Наглядно представляет сложный документооборот 42/56
  • 43. Еще пример: Долг клиента 43/56
  • 44. Задача Ведение взаиморасчетов с клиентами по продажам  обеспечивающее ведение управленческих лимитов  и отражение расчетов в бухгалтерию 44/56
  • 45. Проблема: Смешение языков на бизнес-уровне Менеджеры по продажам: долг – основа для управленческих решений. Увеличивается как только приняли решение об отгрузке, уменьшается когда признали претензию Бухгалтеры: долг – в соответствии с ПБУ, с учетом оформления документов и прохождения процедур Следствие - управленческий и бухгалтерский долг имеют систематические различия 45/56
  • 46. 46/56
  • 47. Проблемы двух пониманий долга  Контроль правильности учета – опаздывает  Менеджеров не получается контролировать через бухгалтерию  Имеются две разные суммы долга, что затрудняет принятие управленческих решений  Для сверки с клиентом и решения проблем менеджеры должны вникать в ПБУ 47/56
  • 48. Решение от DDD  Вырабатываем единый язык, описывающий долг в терминах, понятных менеджерам и бухгалтерам  Строим модель, которая показывает управленческий и бухгалтерский долг и их различие  Ситуации, в которых долг различается описываем на едином языке, согласуем со специалистами  Вырабатываем требования по контролю различий, а также по устранению несущественных различий  Результат – общий взгляд на предметную область у бизнес-специалистов, описанный в модели, которая реализуется разработчиками 48/56
  • 49. Модель долга клиента Этого долга нет у бухгалтеров Этих платежей нет у менеджеров Овалы – счета стрелки – проводки Сверку с клиентом успешно выполняют менеджеры «Общее» понимание долга 49/56
  • 50. Результат  Согласовано понимание предметной области у различных бизнес-специалистов  Реализована модель, отвечающая интересам всех заинтересованных сторон проекта 50/56
  • 51. Практики проектирования – на этап бизнес-анализа 51/56
  • 52. Частные практики  Стратегии  Политики  Выделение общих объектов  Абстракция через интерфейсы Технические практики наполняются бизнес- смыслом и служат для общения с Заказчиком 52/56
  • 53. Контексты Перенос практик декомпозиции на бизнес-анализ  Понятие ограниченных контекстов  Различные варианты выделение общего • Общее ядро • Абстрактное ядро • Подключаемые компоненты • Крупноблочная структура • Уровни разделения обязанностей  Изоляция и карта контекстов 53/56
  • 55. Что же обеспечивает DDD? Единый язык + Единая модель:  обеспечивают надежную основу для общения всех участников проекта при принятии решений;  успешно заменяют мелкую россыпь требований;  позволяют эффективно развивать сложную систему. Это требует дополнительных усилий:  формирование единого языка;  понимание разработчиками предметной области. По опыту, результат окупает усилия. DDD позволяет успешно создавать сложные проектные решения и развивать их 55/56
  • 56. Спасибо! Вопросы? Другие доклады lib.custis.ru/MaksTsepkov Максим Цепков www.facebook.com/mtsepkov