SlideShare una empresa de Scribd logo
1 de 64
Domain-Driven Design:
Модель вместо требований
Максим Цепков
Главный архитектор дирекции развития решений
Москва, 24 мая 2014 года
 Есть разные способы работы с требованиями
 Выбор конкретного зависит от проекта
 В сложных проектах уместна работа
с моделями
 И DDD – наиболее эффективный способ
для этого
О чем этот доклад?
DDD – ключ к построению сложных систем
и их развитию вслед за потребностями
бизнеса
2/64
 Теория
 Кто и что проектирует – области и роли
 DDD – единый язык проекта и одна модель системы
 Модели были давно, но две: бизнес-области и системы
 Единый язык проекта создает общее поле понятий
 И позволяет работать с одной общей моделью
 Но в большом проекте следует выделять контексты
 Практика
 Единый язык в конкретных примерах
 DDD в корпоративных приложениях
 Заключение
Что будет в докладе?
3/64
Начнем с теории
4/64
А что такое требования? Essence (OMG, SEMAT)
Kernel Alphas
5/64
Разработчик
Аналитик
Приложение
Что мы проектируем?
Интерфейс
Бизнес-слой
Хранение
Рассмотрим на стандартной
3-уровневой схеме приложения
разделение ответственности
6/64
Проектирование от внешних требований
Интерфейс
Бизнес-слой
Хранение
Остальное проектирует
разработчик, создавая код
Требования
к пользовательскому
интерфейсу
Требования
к межсистемной интеграции
Аналитик не всегда
представляет значимость
этого «остального»,
но именно оно сшивает
систему в единое целое
7/64
Интерфейс
Бизнес-слой
Хранение
Проектирование от данных
Остальное проектирует
разработчик, создавая код
Представление данных
в интерфейсе
Модель хранимых данных,
обычно – ER-диаграмма
Межсистемная
интеграция
8/64
Интерфейс
Бизнес-слой
Хранение
Проектирование по модели
Разработчик «лишь реализовывает»
и возникают проблемы: насколько
модель хороша для реализации
Представление данных
в интерфейсе
Модель
предметной области
Межсистемная
интеграция
9/64
 Концептуальная книга Эрика Эванса
 на английском – в 2003 г.
 на русском – только в 2010 г.
DDD: как оно начиналось
 Практическая книга Джимми Нильссона
 на английском – в 2006 г.
 на русском – в 2007 г. (почти сразу!)
10/64
Основная идея DDD
Бизнес-
модель
Бизнес-
аналитик
Модель
приложения
Код
Системный
аналитик,
архитектор
Разработчик
Заказчик
Модель на едином языке Код
Аналитики и архитектор
Разработчик
РАНЬШЕ
DDD
Заказчик
11/64
 Построен на основе терминов предметной
области
 Его понимают ИТ-специалисты и эксперты
бизнеса
 На нем описана модель ИТ-системы и ее
место в бизнес-процессах
Единый язык (ubiquitous language)
Понятия единого языка:
клиент, накладная, платеж, долг –
из предметной области
12/64
 Парадигма моделирования определяет
 Элементы языка
 Способ их соединения в сложные конструкции
 Визуальный образ для представления
 Способ отражения модели в код
А где здесь ООП?
ООП –
это парадигма
моделирования
Объекты
с атрибутами
и методами
Диаграмма классов
и другие UML-диаграммы
Типы, соответствующие
бизнес-объектам
Я сосредоточусь на разработке модели,
а не на ее реализации
13/64
Модель системы не соответствует представлению
бизнеса о ее месте в модели предприятия
Зачем нужен единый язык?
Модель предприятия
Представление
о месте
ИТ-системы
Модель
ИТ-системы
«Не то чтобы совсем не попал,
но только не попал в шарик…»
14/64
Единый язык позволяет совместить модель
системы с представлениями бизнеса о ее месте
Итерационное развитие модели
ИТ-система
Модель
ИТ-системы
Место ИТ
в бизнес-процессе
Управляющее воздействие
на модель
Итерация
15/64
 Аналитик собирает требования и строит модель:
сначала – предметной области, затем – системы
 Артефакты модели описывают и систему,
и ее использование в бизнес-процессах
предприятия
 Разработчик реализует модель
 Артефакты модели можно проследить в коде
Единая модель
Модель предметной области
становится моделью системы
16/64
 Верификация постановок бизнес-специалистами
 Общее понимание требований на стороне бизнеса
 Обсуждение модели бизнесом и IT, поиск баланса
в сложных решениях
 Перенос моделей из других предметных областей
 Бизнес представляет потенциальные возможности
системы и сложность различных доработок
 На этапе эксплуатации – эффективное общение
бизнес-пользователей и IT без квалифицированных
переводчиков-аналитиков
Плюсы единой модели
17/64
Границы единого языка
Устаревшая системаНовая система
Бизнес-область
проектируемого
приложения
Единый
язык
Единый язык должен быть шире области приложения,
но не обязан охватывать всю предметную область.
И на нем описывается интеграция
18/64
Контексты и их карта
Устаревшая системаНовая система
Бизнес-область
проектируемого
приложения
Единый
язык
Контекст 1
Контекст 2 Контекст
интеграции со
старой системой
Область приложения может быть
разделена на несколько слабо
зависимых контекстов.
Об их сопряжении – позднее
Контексты интеграции
выделяются, если
сопряженные системы
имеют другой язык
19/64
Единый язык и слои приложения
Приложение
Интерфейс работает с объектами
предметной области. Язык
расширяется понятиями
конструирования интерфейса –
экраны, таблицы, кнопки…
Единый язык ориентирован
на описание модели для бизнес-
слоя, его объекты отражаются
в реализации
При описании интеграции
и хранения в единый язык
добавляются понятия описания
потоков данных, транзакций
и другого межсистемного
взаимодействия
Хранение
Бизнес-слой
Интерфейс
20/64
Пример:
Виза на документы
21/64
 В процессе обработки документа (сделки,
договора, контракта) обеспечить проверку
и одобрение определенными сотрудниками
или отделами
Задача
Задача касается
конкретного документа
22/64
Выбор проектного решения
Каждая виза – со своим
жизненным циклом
Существует несколько
типовых шаблонов
23/64
 Шаблоны обладают разной гибкостью и сложностью
 Для выбора нужно понимать требуемый баланс
гибкости и сложности решения
Традиционный подход
 На этапе сбора требований аналитики
формулируют задачу для конкретного документа
 Исходя из этого в системе проектируется решение
 Выбранное решение отражает текущую ситуацию
В чем проблема?
Решение надо принимать с учетом
потенциального изменения бизнес-процессов
24/64
 Проверка сделки казначейством и отделом
рисков – не получается выполнять
параллельно
 Юристы отозвали одобрение кредита,
а служба безопасности на него опиралась –
связи между визами не контролируются
системой
 Настройку виз для одобрения договоров
с недвижимостью передали в IT из-за
сложности
Примеры
25/64
 Представляем шаблоны, описанные
применительно к конкретному документу,
показываем разницу
 Бизнес-специалисты оценивают
потенциальную потребность в реализации
бизнес-процессов
 Решение принимается с учетом
перспективы
Решение в рамках DDD
26/64
 Для решения модель надо описать
понятно бизнесу
 Можно описать обобщенные решения для документов,
«состояния» и «визы», и на них ссылаться
 Можно описывать каждый случай отдельно
 Термины должны быть понятны заказчику
 Например, «визированием» могут считать одобрение
документа, требующее только просмотра, а если
требуется дополнительная работа, то это называется
«обработкой» или «проверкой»
 Общий шаблон надо «перевести»
на язык проекта
В чем единый язык?
27/64
 Мы используем известные шаблоны решений
 Заказчик оценивает вариант решения
не только с точки зрения текущих
потребностей, но и из предположений
о развитии бизнес-процессов
 Проектируя изменения бизнес-процессов,
заказчик представляет потенциал гибкости
системы и принимает решения с учетом этого
Результат
28/64
Вопрос: Как обеспечить легкое развитие системы при
изменениях правил проверки и одобрения документа?
Ответ: Для этого нужны точки расширения.
 Стратегии – именованные алгоритмы обработки,
включаемые в определенных точках
 Проверки или обработка при переходе в состояние
 Алгоритм определения состояния документа по визам
 Стратегии дополняем спецификациями –
декларативными описаниями условий, применяемых
для выбора стратегий по параметрам документа
 Декларативное описание графа перехода документа
и набора виз, связанных с переходами
Точки расширения
29/64
DDD
для корпоративных приложений
Часть 1. Общая схема
30/64
 Пользователи создают документы
 По необходимости заполняют справочники
 Потом документы исполняют
 При этом меняются учетные данные
 Которые влияют на исполнение
документов
 И отражаются в отчетах
Типичное корпоративное приложение
Жизненный цикл документа
31/64
Объектная модель
Учет –
не объектная модель
Одна модель или несколько?
Связь
Учетные
показателиДокументы
Если учет существенно влияет
на исполнение документов,
то необходима единая модель
А то при документах
появляется свой
«маленький учет»
32/64
Модель документооборота
(поведение документов)
Учетная модель
(учетные показатели)
Информационная
модель
(структура документов)
Три проекции модели системы
33/64
Информационная
модель
(структура документов)
Модель документооборота
(поведение документов)
Учетная модель
(учетные показатели)
Документы
и справочники –
диаграмма классов
Учет –
диаграммы учета
Документооборот –
диаграмма состояний
Диаграммы для проекций
34/64
Диаграммы для проекций
35/64
DDD
для корпоративных приложений
Часть 2. Учетная модель
36/64
Сложность объектного представления учета:
 Нет идентификации единичного объекта
 Работа идет с показателями, текущее значение
которых меняется
 Изменение числового значения может менять
состояние с точки зрения принятия бизнес-
решения
 Часто интерес представляют агрегаты,
а не отдельные значения
Учетная модель – не объектная
Представление учета оказалось за рамками
UML. Для него не придумано эффективного
представления
37/64
 Для представления учетной модели
мы придумали диаграммы учета
 Они показывают элементы учета
 Какие есть синтетические счета и их аналитику
 Как проводки перемещают ресурсы по синтетическим
счетам
 С какими событиями связано исполнение проводок
Статья «Диаграммы учета:
мост между бухгалтером и разработчиком»
(журнал «Бухгалтер и компьютер», №5-2011)
Учетная модель
38/64
Диаграммы учета
Показывают, как
отражается движение
ресурсов в учете
39/64
Бухгалтеры могут применять диаграммы
учета для разработки учетной политики.
Диаграммы учета для бизнеса
Они нагляднее,
чем Excel
40/64
DDD
для корпоративных приложений
Часть 3. Документооборот
41/64
 Объекты с атрибутами и методами –
элементы единого языка для предметной
области и способ их соединения в сложные
конструкции
 Для отражения документооборота
используем состояние документа
 Диаграмма классов и диаграмма состояний
UML – визуальный образ для наглядного
представления
 Объекты в программе – способ отражения
модели в реализацию
Хорошо работает объектная модель
42/64
Классы соответствуют бизнес-объектам –
заказчик видит знакомые названия
Модель должен понимать заказчик
Представляем
диаграммой
классов
Используем цветовые
выделения
43/64
 Не нужно
 Стараться изобразить
все классы на одной диаграмме
 Отображать
вспомогательные атрибуты
 Использовать
технические коды
 Использовать
сложную нотацию
 Диаграммы должны
понимать заказчики,
а не только разработчики
Не нужно усложнять диаграмму
44/64
 Документу приписываем состояние,
оно определяет этап жизненного
цикла
 Какие действия можно совершать и кому
 Кто отвечает за обработку документа
 Возможные изменения состояний
документа образуют граф переходов –
State machine diagram
Модель документооборота
UML
Язык ООП «с расширениями».
Названия состояний и переходов –
на языке бизнеса
45/64
Наглядно представляет
сложный документооборот
46/64
 Сочетание декларативного и императивного
 Типизация документов, графы при наследовании
 Если граф переходов настраивается – надо уметь
подхватывать настройки в интерфейсе и логике
 Если в любом случае требуется кодирование –
в чем будет выгода от настроек?
 Развитие правил обработки на переходе
 В коде через наследование объектов
 Через стратегии в точках расширения
 Через декларативное описание правил выбора стратегий
 Настройка прав доступа
Точки расширения в логике переходов
47/64
DDD
для корпоративных приложений
Часть 4. Разделение контекстов
48/64
Контексты в единой модели
Связь
Учетные
показателиДокументы
Документы
Справочники
Показатели
Отчеты
Счета
Проводки
Контекст
документооборота
Контекст учета
49/64
 Розничный магазин
 Продажи и Склад магазина
 Продажи, Склад магазина, Заказы товара
 Торговая компания
 Закупки и Продажи
 Закупки, Продажи и Склад
 Оптовые продажи
 Заказы и Отгрузки
 Заказы, Отгрузки, Оплаты
Вертикальная декомпозиция
50/64
Вертикальная декомпозиция
Подсистема 1
Документы
и справочники 1
Подсистема 2
Учет 1
Отчеты
и показатели
Документы
и справочники 2
Учет 2
Отчеты
и показатели
Общие
справочники
Общий учет
Отчеты
и показатели
51/64
 Примеры
 Магазин: со складом и без склада, продажа с заказом
 Логистика и склад: много систем с заказами товара
 Банк: Главная книга и много систем по банковским
продуктам
 Подходы
 Смысловое ядро
 Общее ядро
 Абстрактное ядро
 Подключаемые компоненты
 Крупноблочная структура
 Уровни разделения обязанностей
Сопряжение контекстов
52/64
Еще пример:
Долг клиента
53/64
Ведение взаиморасчетов с клиентами
по продажам
 Обеспечивающее ведение управленческих
лимитов
 И отражение расчетов в бухгалтерию
Задача
54/64
 Менеджеры по продажам: долг –
основа для управленческих решений.
Увеличивается, как только приняли
решение об отгрузке, уменьшается,
когда признали претензию
 Бухгалтеры: долг – в соответствии с ПБУ,
с учетом оформления документов
и прохождения процедур
 Следствие: управленческий и бухгалтерский
долг имеют систематические различия
Проблема:
Смешение языков на бизнес-уровне
55/64
Процесс отгрузки товара
56/64
 Контроль правильности учета запаздывает
 Менеджеров не получается контролировать
через бухгалтерию
 Имеются две разные суммы долга,
что затрудняет принятие управленческих
решений
 Для сверки с клиентом и решения проблем
менеджеры должны вникать в ПБУ
Проблемы двух пониманий долга
57/64
 Вырабатываем единый язык, описывающий долг
в терминах, понятных менеджерам и бухгалтерам
 Строим модель, которая показывает управленческий
и бухгалтерский долг и их различие
 Ситуации, в которых долг различается, описываем
на едином языке, согласуем со специалистами
 Вырабатываем требования по контролю различий,
а также по устранению несущественных различий
 Результат – общий взгляд у бизнес-специалистов
на предметную область, описанный в модели,
которая реализуется разработчиками
Решение от DDD
58/64
Модель долга клиента
Этого долга нет
у бухгалтеров
Этих платежей нет
у менеджеров
Овалы – счета
стрелки – проводки
«Общее» понимание долга
Сверку с клиентом
успешно выполняют
менеджеры
59/64
 Согласовано понимание предметной
области у различных бизнес-специалистов
 Реализована модель, отвечающая
интересам всех заинтересованных сторон
проекта
Результат
60/64
Заключение
61/64
 Ограниченные контексты и их изоляция
 Способы выделения общего в контекстах
 Стратегии и Политики
 Выделение общих объектов
 Абстракция через интерфейсы
Практики проектирования
применяем для бизнес-анализа
Технические практики наполняются бизнес-
смыслом и служат для общения с заказчиком
62/64
 Единый язык + Единая модель:
 Дают надежную основу для общения всех
участников проекта при принятии решений
 Успешно заменяют мелкую россыпь требований
 Позволяют эффективно развивать сложную
систему
 Это требует дополнительных усилий:
 Формирование единого языка
 Понимание разработчиками предметной области
 По опыту, результат окупает усилия
Что же достигает DDD?
63/64
Спасибо!
Вопросы?
Максим Цепков
maks@custis.ru
www.facebook.com/mtsepkov
64/64

Más contenido relacionado

La actualidad más candente

Domain Driven Design - как, почему и зачем?
Domain Driven Design - как, почему и зачем?Domain Driven Design - как, почему и зачем?
Domain Driven Design - как, почему и зачем?ngrebnev
 
Ddd softwarepeople-2013-tsepkov
Ddd softwarepeople-2013-tsepkovDdd softwarepeople-2013-tsepkov
Ddd softwarepeople-2013-tsepkovMaxim Tsepkov
 
Ddd softwarepeople-2012-tsepkov
Ddd softwarepeople-2012-tsepkovDdd softwarepeople-2012-tsepkov
Ddd softwarepeople-2012-tsepkovMaxim Tsepkov
 
Requirement modelling in software creation process
Requirement modelling in software creation processRequirement modelling in software creation process
Requirement modelling in software creation processDima Dzuba
 
Специфика работы бизнес-аналитика в зависимости от типов проектов и методологий
Специфика работы бизнес-аналитика в зависимости от типов проектов и методологийСпецифика работы бизнес-аналитика в зависимости от типов проектов и методологий
Специфика работы бизнес-аналитика в зависимости от типов проектов и методологийSQALab
 
DDD — правильный курс в потоке изменений требований
DDD — правильный курс в потоке изменений требованийDDD — правильный курс в потоке изменений требований
DDD — правильный курс в потоке изменений требованийSQALab
 
DEV Labs 2013. Can C++ Code Effeciency Be Comparable to That of Middle-Level ...
DEV Labs 2013. Can C++ Code Effeciency Be Comparable to That of Middle-Level ...DEV Labs 2013. Can C++ Code Effeciency Be Comparable to That of Middle-Level ...
DEV Labs 2013. Can C++ Code Effeciency Be Comparable to That of Middle-Level ...Alex V. Petrov
 
Domain Driven Design: модель вместо требования
Domain Driven Design: модель вместо требованияDomain Driven Design: модель вместо требования
Domain Driven Design: модель вместо требованияCUSTIS
 
Практика применения Enterprise Architect и T4-шаблонов для разработки систем...
Практика применения Enterprise Architect и T4-шаблонов для разработки систем...Практика применения Enterprise Architect и T4-шаблонов для разработки систем...
Практика применения Enterprise Architect и T4-шаблонов для разработки систем...CUSTIS
 
Необъектные модели предметной области
Необъектные модели предметной областиНеобъектные модели предметной области
Необъектные модели предметной областиCUSTIS
 
Модель системы — архитектура для Agile-разработки
Модель системы — архитектура для Agile-разработкиМодель системы — архитектура для Agile-разработки
Модель системы — архитектура для Agile-разработкиCUSTIS
 
должностные обязанности
должностные обязанностидолжностные обязанности
должностные обязанностиNatalia Zhelnova
 
Практический анализ по RUP
Практический анализ по RUPПрактический анализ по RUP
Практический анализ по RUPSQALab
 
МАПО 2013 Лекция 07 Моделирование IDEF
МАПО 2013 Лекция 07 Моделирование IDEFМАПО 2013 Лекция 07 Моделирование IDEF
МАПО 2013 Лекция 07 Моделирование IDEFОлег Гудаев
 
требования к кандидату
требования к кандидатутребования к кандидату
требования к кандидатуNatalia Zhelnova
 
Babok v2.0 перевод на русский язык свод знаний по бизнес анализу
Babok v2.0 перевод на русский язык свод знаний по бизнес анализуBabok v2.0 перевод на русский язык свод знаний по бизнес анализу
Babok v2.0 перевод на русский язык свод знаний по бизнес анализуIvan Shamaev
 
Практический анализ и визуальное моделирование на UML
Практический анализ и визуальное моделирование на UMLПрактический анализ и визуальное моделирование на UML
Практический анализ и визуальное моделирование на UMLNikolai Kireev
 

La actualidad más candente (20)

Domain Driven Design - как, почему и зачем?
Domain Driven Design - как, почему и зачем?Domain Driven Design - как, почему и зачем?
Domain Driven Design - как, почему и зачем?
 
Ddd softwarepeople-2013-tsepkov
Ddd softwarepeople-2013-tsepkovDdd softwarepeople-2013-tsepkov
Ddd softwarepeople-2013-tsepkov
 
Ddd softwarepeople-2012-tsepkov
Ddd softwarepeople-2012-tsepkovDdd softwarepeople-2012-tsepkov
Ddd softwarepeople-2012-tsepkov
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven Design
 
Requirement modelling in software creation process
Requirement modelling in software creation processRequirement modelling in software creation process
Requirement modelling in software creation process
 
Специфика работы бизнес-аналитика в зависимости от типов проектов и методологий
Специфика работы бизнес-аналитика в зависимости от типов проектов и методологийСпецифика работы бизнес-аналитика в зависимости от типов проектов и методологий
Специфика работы бизнес-аналитика в зависимости от типов проектов и методологий
 
DDD — правильный курс в потоке изменений требований
DDD — правильный курс в потоке изменений требованийDDD — правильный курс в потоке изменений требований
DDD — правильный курс в потоке изменений требований
 
DEV Labs 2013. Can C++ Code Effeciency Be Comparable to That of Middle-Level ...
DEV Labs 2013. Can C++ Code Effeciency Be Comparable to That of Middle-Level ...DEV Labs 2013. Can C++ Code Effeciency Be Comparable to That of Middle-Level ...
DEV Labs 2013. Can C++ Code Effeciency Be Comparable to That of Middle-Level ...
 
Domain Driven Design: модель вместо требования
Domain Driven Design: модель вместо требованияDomain Driven Design: модель вместо требования
Domain Driven Design: модель вместо требования
 
Практика применения Enterprise Architect и T4-шаблонов для разработки систем...
Практика применения Enterprise Architect и T4-шаблонов для разработки систем...Практика применения Enterprise Architect и T4-шаблонов для разработки систем...
Практика применения Enterprise Architect и T4-шаблонов для разработки систем...
 
Необъектные модели предметной области
Необъектные модели предметной областиНеобъектные модели предметной области
Необъектные модели предметной области
 
Модель системы — архитектура для Agile-разработки
Модель системы — архитектура для Agile-разработкиМодель системы — архитектура для Agile-разработки
Модель системы — архитектура для Agile-разработки
 
Nfr and quality-models
Nfr and quality-modelsNfr and quality-models
Nfr and quality-models
 
должностные обязанности
должностные обязанностидолжностные обязанности
должностные обязанности
 
Практический анализ по RUP
Практический анализ по RUPПрактический анализ по RUP
Практический анализ по RUP
 
Киев, BA Con 2017
Киев, BA Con 2017Киев, BA Con 2017
Киев, BA Con 2017
 
МАПО 2013 Лекция 07 Моделирование IDEF
МАПО 2013 Лекция 07 Моделирование IDEFМАПО 2013 Лекция 07 Моделирование IDEF
МАПО 2013 Лекция 07 Моделирование IDEF
 
требования к кандидату
требования к кандидатутребования к кандидату
требования к кандидату
 
Babok v2.0 перевод на русский язык свод знаний по бизнес анализу
Babok v2.0 перевод на русский язык свод знаний по бизнес анализуBabok v2.0 перевод на русский язык свод знаний по бизнес анализу
Babok v2.0 перевод на русский язык свод знаний по бизнес анализу
 
Практический анализ и визуальное моделирование на UML
Практический анализ и визуальное моделирование на UMLПрактический анализ и визуальное моделирование на UML
Практический анализ и визуальное моделирование на UML
 

Similar a DDD requirements AnalystDays-2014 Tsepkov

Как выбрать для проекта практики проектирования и работы с требованиями
Как выбрать для проекта практики проектирования и работы с требованиямиКак выбрать для проекта практики проектирования и работы с требованиями
Как выбрать для проекта практики проектирования и работы с требованиямиSQALab
 
Как выбрать для проекта практики проектирования и работы с требованиями
Как выбрать для проекта практики проектирования и работы с требованиямиКак выбрать для проекта практики проектирования и работы с требованиями
Как выбрать для проекта практики проектирования и работы с требованиямиCUSTIS
 
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
 
Три точки опоры в архитектуре корпоративных систем
Три точки опоры в архитектуре корпоративных системТри точки опоры в архитектуре корпоративных систем
Три точки опоры в архитектуре корпоративных системCUSTIS
 
Проектирование_и_архитектура_ПС_2022_L06.ppt
Проектирование_и_архитектура_ПС_2022_L06.pptПроектирование_и_архитектура_ПС_2022_L06.ppt
Проектирование_и_архитектура_ПС_2022_L06.pptdinarium2016
 
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
 
Аліна Петренко: “Майстер-клас: Виявлення ключових вимог на предпроектній фазі...
Аліна Петренко: “Майстер-клас: Виявлення ключових вимог на предпроектній фазі...Аліна Петренко: “Майстер-клас: Виявлення ключових вимог на предпроектній фазі...
Аліна Петренко: “Майстер-клас: Виявлення ключових вимог на предпроектній фазі...Dakiry
 
2012 04 05_моделирование бизнес-процессов
2012 04 05_моделирование бизнес-процессов2012 04 05_моделирование бизнес-процессов
2012 04 05_моделирование бизнес-процессовReshetnikov Alexander
 
Проектирование программных систем. Занятие 4
Проектирование программных систем. Занятие 4Проектирование программных систем. Занятие 4
Проектирование программных систем. Занятие 4Dima Dzuba
 
Roles happy dev-2013-tsepkov
Roles happy dev-2013-tsepkovRoles happy dev-2013-tsepkov
Roles happy dev-2013-tsepkovMaxim Tsepkov
 
Как выжить глобальной корпорации?
Как выжить глобальной корпорации?Как выжить глобальной корпорации?
Как выжить глобальной корпорации?CEE-SEC(R)
 
Agile и управление знаниями в ИТ-проектах
Agile и управление знаниями в ИТ-проектахAgile и управление знаниями в ИТ-проектах
Agile и управление знаниями в ИТ-проектахCUSTIS
 
Agile и управление знаниями в ИТ-проектах
Agile и управление знаниями в ИТ-проектахAgile и управление знаниями в ИТ-проектах
Agile и управление знаниями в ИТ-проектахMaxim Tsepkov
 
Онтологические стандарты организационной модели
Онтологические стандарты организационной моделиОнтологические стандарты организационной модели
Онтологические стандарты организационной моделиAnatoly Levenchuk
 
Руководство MS по проектированию архитектуры приложений
Руководство MS по проектированию архитектуры приложенийРуководство MS по проектированию архитектуры приложений
Руководство MS по проектированию архитектуры приложенийgovbooks
 
Внедрение CASE-технологий
Внедрение CASE-технологийВнедрение CASE-технологий
Внедрение CASE-технологийОтшельник
 
Будущее уже наступило: от Agile к бирюзовым организациям
Будущее уже наступило: от Agile к бирюзовым организациямБудущее уже наступило: от Agile к бирюзовым организациям
Будущее уже наступило: от Agile к бирюзовым организациямCUSTIS
 
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
 

Similar a DDD requirements AnalystDays-2014 Tsepkov (20)

Как выбрать для проекта практики проектирования и работы с требованиями
Как выбрать для проекта практики проектирования и работы с требованиямиКак выбрать для проекта практики проектирования и работы с требованиями
Как выбрать для проекта практики проектирования и работы с требованиями
 
Как выбрать для проекта практики проектирования и работы с требованиями
Как выбрать для проекта практики проектирования и работы с требованиямиКак выбрать для проекта практики проектирования и работы с требованиями
Как выбрать для проекта практики проектирования и работы с требованиями
 
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
 
Три точки опоры в архитектуре корпоративных систем
Три точки опоры в архитектуре корпоративных системТри точки опоры в архитектуре корпоративных систем
Три точки опоры в архитектуре корпоративных систем
 
Проектирование_и_архитектура_ПС_2022_L06.ppt
Проектирование_и_архитектура_ПС_2022_L06.pptПроектирование_и_архитектура_ПС_2022_L06.ppt
Проектирование_и_архитектура_ПС_2022_L06.ppt
 
Practice of enterprice development ProfsoUX-2017
Practice of enterprice development  ProfsoUX-2017Practice of enterprice development  ProfsoUX-2017
Practice of enterprice development ProfsoUX-2017
 
Сотрудничество с корпорациями: рецепты из практики
Сотрудничество с корпорациями: рецепты из практикиСотрудничество с корпорациями: рецепты из практики
Сотрудничество с корпорациями: рецепты из практики
 
Опыт госпроектов и взаимодействия с корпоративными структурами
Опыт госпроектов и взаимодействия с корпоративными структурамиОпыт госпроектов и взаимодействия с корпоративными структурами
Опыт госпроектов и взаимодействия с корпоративными структурами
 
Аліна Петренко: “Майстер-клас: Виявлення ключових вимог на предпроектній фазі...
Аліна Петренко: “Майстер-клас: Виявлення ключових вимог на предпроектній фазі...Аліна Петренко: “Майстер-клас: Виявлення ключових вимог на предпроектній фазі...
Аліна Петренко: “Майстер-клас: Виявлення ключових вимог на предпроектній фазі...
 
2012 04 05_моделирование бизнес-процессов
2012 04 05_моделирование бизнес-процессов2012 04 05_моделирование бизнес-процессов
2012 04 05_моделирование бизнес-процессов
 
Проектирование программных систем. Занятие 4
Проектирование программных систем. Занятие 4Проектирование программных систем. Занятие 4
Проектирование программных систем. Занятие 4
 
Roles happy dev-2013-tsepkov
Roles happy dev-2013-tsepkovRoles happy dev-2013-tsepkov
Roles happy dev-2013-tsepkov
 
Как выжить глобальной корпорации?
Как выжить глобальной корпорации?Как выжить глобальной корпорации?
Как выжить глобальной корпорации?
 
Agile и управление знаниями в ИТ-проектах
Agile и управление знаниями в ИТ-проектахAgile и управление знаниями в ИТ-проектах
Agile и управление знаниями в ИТ-проектах
 
Agile и управление знаниями в ИТ-проектах
Agile и управление знаниями в ИТ-проектахAgile и управление знаниями в ИТ-проектах
Agile и управление знаниями в ИТ-проектах
 
Онтологические стандарты организационной модели
Онтологические стандарты организационной моделиОнтологические стандарты организационной модели
Онтологические стандарты организационной модели
 
Руководство MS по проектированию архитектуры приложений
Руководство MS по проектированию архитектуры приложенийРуководство MS по проектированию архитектуры приложений
Руководство MS по проектированию архитектуры приложений
 
Внедрение CASE-технологий
Внедрение CASE-технологийВнедрение CASE-технологий
Внедрение CASE-технологий
 
Будущее уже наступило: от Agile к бирюзовым организациям
Будущее уже наступило: от Agile к бирюзовым организациямБудущее уже наступило: от Agile к бирюзовым организациям
Будущее уже наступило: от Agile к бирюзовым организациям
 
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
 

Más de Maxim 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
 
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
 
Ответственность за качество в разных ИТ-проектах
Ответственность за качество в разных ИТ-проектахОтветственность за качество в разных ИТ-проектах
Ответственность за качество в разных ИТ-проектах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
 
You and Сustomer: Solve problems Tsepkov Myasnikov Uzhevko SQAdays-15
You and Сustomer: Solve problems Tsepkov Myasnikov Uzhevko SQAdays-15You and Сustomer: Solve problems Tsepkov Myasnikov Uzhevko SQAdays-15
You and Сustomer: Solve problems Tsepkov Myasnikov Uzhevko SQAdays-15Maxim Tsepkov
 
Agile and usual_managerment-sp_mconf-2013-tsepkov
Agile and usual_managerment-sp_mconf-2013-tsepkovAgile and usual_managerment-sp_mconf-2013-tsepkov
Agile and usual_managerment-sp_mconf-2013-tsepkovMaxim Tsepkov
 
Belbin team spmconf-2012-tsepkov
Belbin team spmconf-2012-tsepkovBelbin team spmconf-2012-tsepkov
Belbin team spmconf-2012-tsepkovMaxim Tsepkov
 

Más de Maxim Tsepkov (20)

Самоопределяйся технологично!
Самоопределяйся технологично!Самоопределяйся технологично!
Самоопределяйся технологично!
 
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
 
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 вашей компании
 
Ответственность за качество в разных ИТ-проектах
Ответственность за качество в разных ИТ-проектахОтветственность за качество в разных ИТ-проектах
Ответственность за качество в разных ИТ-проектах
 
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
 
You and Сustomer: Solve problems Tsepkov Myasnikov Uzhevko SQAdays-15
You and Сustomer: Solve problems Tsepkov Myasnikov Uzhevko SQAdays-15You and Сustomer: Solve problems Tsepkov Myasnikov Uzhevko SQAdays-15
You and Сustomer: Solve problems Tsepkov Myasnikov Uzhevko SQAdays-15
 
Agile and usual_managerment-sp_mconf-2013-tsepkov
Agile and usual_managerment-sp_mconf-2013-tsepkovAgile and usual_managerment-sp_mconf-2013-tsepkov
Agile and usual_managerment-sp_mconf-2013-tsepkov
 
Belbin team spmconf-2012-tsepkov
Belbin team spmconf-2012-tsepkovBelbin team spmconf-2012-tsepkov
Belbin team spmconf-2012-tsepkov
 

DDD requirements AnalystDays-2014 Tsepkov

  • 1. Domain-Driven Design: Модель вместо требований Максим Цепков Главный архитектор дирекции развития решений Москва, 24 мая 2014 года
  • 2.  Есть разные способы работы с требованиями  Выбор конкретного зависит от проекта  В сложных проектах уместна работа с моделями  И DDD – наиболее эффективный способ для этого О чем этот доклад? DDD – ключ к построению сложных систем и их развитию вслед за потребностями бизнеса 2/64
  • 3.  Теория  Кто и что проектирует – области и роли  DDD – единый язык проекта и одна модель системы  Модели были давно, но две: бизнес-области и системы  Единый язык проекта создает общее поле понятий  И позволяет работать с одной общей моделью  Но в большом проекте следует выделять контексты  Практика  Единый язык в конкретных примерах  DDD в корпоративных приложениях  Заключение Что будет в докладе? 3/64
  • 5. А что такое требования? Essence (OMG, SEMAT) Kernel Alphas 5/64
  • 6. Разработчик Аналитик Приложение Что мы проектируем? Интерфейс Бизнес-слой Хранение Рассмотрим на стандартной 3-уровневой схеме приложения разделение ответственности 6/64
  • 7. Проектирование от внешних требований Интерфейс Бизнес-слой Хранение Остальное проектирует разработчик, создавая код Требования к пользовательскому интерфейсу Требования к межсистемной интеграции Аналитик не всегда представляет значимость этого «остального», но именно оно сшивает систему в единое целое 7/64
  • 8. Интерфейс Бизнес-слой Хранение Проектирование от данных Остальное проектирует разработчик, создавая код Представление данных в интерфейсе Модель хранимых данных, обычно – ER-диаграмма Межсистемная интеграция 8/64
  • 9. Интерфейс Бизнес-слой Хранение Проектирование по модели Разработчик «лишь реализовывает» и возникают проблемы: насколько модель хороша для реализации Представление данных в интерфейсе Модель предметной области Межсистемная интеграция 9/64
  • 10.  Концептуальная книга Эрика Эванса  на английском – в 2003 г.  на русском – только в 2010 г. DDD: как оно начиналось  Практическая книга Джимми Нильссона  на английском – в 2006 г.  на русском – в 2007 г. (почти сразу!) 10/64
  • 12.  Построен на основе терминов предметной области  Его понимают ИТ-специалисты и эксперты бизнеса  На нем описана модель ИТ-системы и ее место в бизнес-процессах Единый язык (ubiquitous language) Понятия единого языка: клиент, накладная, платеж, долг – из предметной области 12/64
  • 13.  Парадигма моделирования определяет  Элементы языка  Способ их соединения в сложные конструкции  Визуальный образ для представления  Способ отражения модели в код А где здесь ООП? ООП – это парадигма моделирования Объекты с атрибутами и методами Диаграмма классов и другие UML-диаграммы Типы, соответствующие бизнес-объектам Я сосредоточусь на разработке модели, а не на ее реализации 13/64
  • 14. Модель системы не соответствует представлению бизнеса о ее месте в модели предприятия Зачем нужен единый язык? Модель предприятия Представление о месте ИТ-системы Модель ИТ-системы «Не то чтобы совсем не попал, но только не попал в шарик…» 14/64
  • 15. Единый язык позволяет совместить модель системы с представлениями бизнеса о ее месте Итерационное развитие модели ИТ-система Модель ИТ-системы Место ИТ в бизнес-процессе Управляющее воздействие на модель Итерация 15/64
  • 16.  Аналитик собирает требования и строит модель: сначала – предметной области, затем – системы  Артефакты модели описывают и систему, и ее использование в бизнес-процессах предприятия  Разработчик реализует модель  Артефакты модели можно проследить в коде Единая модель Модель предметной области становится моделью системы 16/64
  • 17.  Верификация постановок бизнес-специалистами  Общее понимание требований на стороне бизнеса  Обсуждение модели бизнесом и IT, поиск баланса в сложных решениях  Перенос моделей из других предметных областей  Бизнес представляет потенциальные возможности системы и сложность различных доработок  На этапе эксплуатации – эффективное общение бизнес-пользователей и IT без квалифицированных переводчиков-аналитиков Плюсы единой модели 17/64
  • 18. Границы единого языка Устаревшая системаНовая система Бизнес-область проектируемого приложения Единый язык Единый язык должен быть шире области приложения, но не обязан охватывать всю предметную область. И на нем описывается интеграция 18/64
  • 19. Контексты и их карта Устаревшая системаНовая система Бизнес-область проектируемого приложения Единый язык Контекст 1 Контекст 2 Контекст интеграции со старой системой Область приложения может быть разделена на несколько слабо зависимых контекстов. Об их сопряжении – позднее Контексты интеграции выделяются, если сопряженные системы имеют другой язык 19/64
  • 20. Единый язык и слои приложения Приложение Интерфейс работает с объектами предметной области. Язык расширяется понятиями конструирования интерфейса – экраны, таблицы, кнопки… Единый язык ориентирован на описание модели для бизнес- слоя, его объекты отражаются в реализации При описании интеграции и хранения в единый язык добавляются понятия описания потоков данных, транзакций и другого межсистемного взаимодействия Хранение Бизнес-слой Интерфейс 20/64
  • 22.  В процессе обработки документа (сделки, договора, контракта) обеспечить проверку и одобрение определенными сотрудниками или отделами Задача Задача касается конкретного документа 22/64
  • 23. Выбор проектного решения Каждая виза – со своим жизненным циклом Существует несколько типовых шаблонов 23/64
  • 24.  Шаблоны обладают разной гибкостью и сложностью  Для выбора нужно понимать требуемый баланс гибкости и сложности решения Традиционный подход  На этапе сбора требований аналитики формулируют задачу для конкретного документа  Исходя из этого в системе проектируется решение  Выбранное решение отражает текущую ситуацию В чем проблема? Решение надо принимать с учетом потенциального изменения бизнес-процессов 24/64
  • 25.  Проверка сделки казначейством и отделом рисков – не получается выполнять параллельно  Юристы отозвали одобрение кредита, а служба безопасности на него опиралась – связи между визами не контролируются системой  Настройку виз для одобрения договоров с недвижимостью передали в IT из-за сложности Примеры 25/64
  • 26.  Представляем шаблоны, описанные применительно к конкретному документу, показываем разницу  Бизнес-специалисты оценивают потенциальную потребность в реализации бизнес-процессов  Решение принимается с учетом перспективы Решение в рамках DDD 26/64
  • 27.  Для решения модель надо описать понятно бизнесу  Можно описать обобщенные решения для документов, «состояния» и «визы», и на них ссылаться  Можно описывать каждый случай отдельно  Термины должны быть понятны заказчику  Например, «визированием» могут считать одобрение документа, требующее только просмотра, а если требуется дополнительная работа, то это называется «обработкой» или «проверкой»  Общий шаблон надо «перевести» на язык проекта В чем единый язык? 27/64
  • 28.  Мы используем известные шаблоны решений  Заказчик оценивает вариант решения не только с точки зрения текущих потребностей, но и из предположений о развитии бизнес-процессов  Проектируя изменения бизнес-процессов, заказчик представляет потенциал гибкости системы и принимает решения с учетом этого Результат 28/64
  • 29. Вопрос: Как обеспечить легкое развитие системы при изменениях правил проверки и одобрения документа? Ответ: Для этого нужны точки расширения.  Стратегии – именованные алгоритмы обработки, включаемые в определенных точках  Проверки или обработка при переходе в состояние  Алгоритм определения состояния документа по визам  Стратегии дополняем спецификациями – декларативными описаниями условий, применяемых для выбора стратегий по параметрам документа  Декларативное описание графа перехода документа и набора виз, связанных с переходами Точки расширения 29/64
  • 31.  Пользователи создают документы  По необходимости заполняют справочники  Потом документы исполняют  При этом меняются учетные данные  Которые влияют на исполнение документов  И отражаются в отчетах Типичное корпоративное приложение Жизненный цикл документа 31/64 Объектная модель Учет – не объектная модель
  • 32. Одна модель или несколько? Связь Учетные показателиДокументы Если учет существенно влияет на исполнение документов, то необходима единая модель А то при документах появляется свой «маленький учет» 32/64
  • 33. Модель документооборота (поведение документов) Учетная модель (учетные показатели) Информационная модель (структура документов) Три проекции модели системы 33/64
  • 34. Информационная модель (структура документов) Модель документооборота (поведение документов) Учетная модель (учетные показатели) Документы и справочники – диаграмма классов Учет – диаграммы учета Документооборот – диаграмма состояний Диаграммы для проекций 34/64
  • 37. Сложность объектного представления учета:  Нет идентификации единичного объекта  Работа идет с показателями, текущее значение которых меняется  Изменение числового значения может менять состояние с точки зрения принятия бизнес- решения  Часто интерес представляют агрегаты, а не отдельные значения Учетная модель – не объектная Представление учета оказалось за рамками UML. Для него не придумано эффективного представления 37/64
  • 38.  Для представления учетной модели мы придумали диаграммы учета  Они показывают элементы учета  Какие есть синтетические счета и их аналитику  Как проводки перемещают ресурсы по синтетическим счетам  С какими событиями связано исполнение проводок Статья «Диаграммы учета: мост между бухгалтером и разработчиком» (журнал «Бухгалтер и компьютер», №5-2011) Учетная модель 38/64
  • 39. Диаграммы учета Показывают, как отражается движение ресурсов в учете 39/64
  • 40. Бухгалтеры могут применять диаграммы учета для разработки учетной политики. Диаграммы учета для бизнеса Они нагляднее, чем Excel 40/64
  • 42.  Объекты с атрибутами и методами – элементы единого языка для предметной области и способ их соединения в сложные конструкции  Для отражения документооборота используем состояние документа  Диаграмма классов и диаграмма состояний UML – визуальный образ для наглядного представления  Объекты в программе – способ отражения модели в реализацию Хорошо работает объектная модель 42/64
  • 43. Классы соответствуют бизнес-объектам – заказчик видит знакомые названия Модель должен понимать заказчик Представляем диаграммой классов Используем цветовые выделения 43/64
  • 44.  Не нужно  Стараться изобразить все классы на одной диаграмме  Отображать вспомогательные атрибуты  Использовать технические коды  Использовать сложную нотацию  Диаграммы должны понимать заказчики, а не только разработчики Не нужно усложнять диаграмму 44/64
  • 45.  Документу приписываем состояние, оно определяет этап жизненного цикла  Какие действия можно совершать и кому  Кто отвечает за обработку документа  Возможные изменения состояний документа образуют граф переходов – State machine diagram Модель документооборота UML Язык ООП «с расширениями». Названия состояний и переходов – на языке бизнеса 45/64
  • 47.  Сочетание декларативного и императивного  Типизация документов, графы при наследовании  Если граф переходов настраивается – надо уметь подхватывать настройки в интерфейсе и логике  Если в любом случае требуется кодирование – в чем будет выгода от настроек?  Развитие правил обработки на переходе  В коде через наследование объектов  Через стратегии в точках расширения  Через декларативное описание правил выбора стратегий  Настройка прав доступа Точки расширения в логике переходов 47/64
  • 48. DDD для корпоративных приложений Часть 4. Разделение контекстов 48/64
  • 49. Контексты в единой модели Связь Учетные показателиДокументы Документы Справочники Показатели Отчеты Счета Проводки Контекст документооборота Контекст учета 49/64
  • 50.  Розничный магазин  Продажи и Склад магазина  Продажи, Склад магазина, Заказы товара  Торговая компания  Закупки и Продажи  Закупки, Продажи и Склад  Оптовые продажи  Заказы и Отгрузки  Заказы, Отгрузки, Оплаты Вертикальная декомпозиция 50/64
  • 51. Вертикальная декомпозиция Подсистема 1 Документы и справочники 1 Подсистема 2 Учет 1 Отчеты и показатели Документы и справочники 2 Учет 2 Отчеты и показатели Общие справочники Общий учет Отчеты и показатели 51/64
  • 52.  Примеры  Магазин: со складом и без склада, продажа с заказом  Логистика и склад: много систем с заказами товара  Банк: Главная книга и много систем по банковским продуктам  Подходы  Смысловое ядро  Общее ядро  Абстрактное ядро  Подключаемые компоненты  Крупноблочная структура  Уровни разделения обязанностей Сопряжение контекстов 52/64
  • 54. Ведение взаиморасчетов с клиентами по продажам  Обеспечивающее ведение управленческих лимитов  И отражение расчетов в бухгалтерию Задача 54/64
  • 55.  Менеджеры по продажам: долг – основа для управленческих решений. Увеличивается, как только приняли решение об отгрузке, уменьшается, когда признали претензию  Бухгалтеры: долг – в соответствии с ПБУ, с учетом оформления документов и прохождения процедур  Следствие: управленческий и бухгалтерский долг имеют систематические различия Проблема: Смешение языков на бизнес-уровне 55/64
  • 57.  Контроль правильности учета запаздывает  Менеджеров не получается контролировать через бухгалтерию  Имеются две разные суммы долга, что затрудняет принятие управленческих решений  Для сверки с клиентом и решения проблем менеджеры должны вникать в ПБУ Проблемы двух пониманий долга 57/64
  • 58.  Вырабатываем единый язык, описывающий долг в терминах, понятных менеджерам и бухгалтерам  Строим модель, которая показывает управленческий и бухгалтерский долг и их различие  Ситуации, в которых долг различается, описываем на едином языке, согласуем со специалистами  Вырабатываем требования по контролю различий, а также по устранению несущественных различий  Результат – общий взгляд у бизнес-специалистов на предметную область, описанный в модели, которая реализуется разработчиками Решение от DDD 58/64
  • 59. Модель долга клиента Этого долга нет у бухгалтеров Этих платежей нет у менеджеров Овалы – счета стрелки – проводки «Общее» понимание долга Сверку с клиентом успешно выполняют менеджеры 59/64
  • 60.  Согласовано понимание предметной области у различных бизнес-специалистов  Реализована модель, отвечающая интересам всех заинтересованных сторон проекта Результат 60/64
  • 62.  Ограниченные контексты и их изоляция  Способы выделения общего в контекстах  Стратегии и Политики  Выделение общих объектов  Абстракция через интерфейсы Практики проектирования применяем для бизнес-анализа Технические практики наполняются бизнес- смыслом и служат для общения с заказчиком 62/64
  • 63.  Единый язык + Единая модель:  Дают надежную основу для общения всех участников проекта при принятии решений  Успешно заменяют мелкую россыпь требований  Позволяют эффективно развивать сложную систему  Это требует дополнительных усилий:  Формирование единого языка  Понимание разработчиками предметной области  По опыту, результат окупает усилия Что же достигает DDD? 63/64