SlideShare a Scribd company logo
1 of 43
Download to read offline
Независимая научно-практическая
конференция «Разработка ПО 2011»
31 октября – 3 ноября, Москва




DDD – эффективный способ работы
в условиях системой сложности

Докладчик:
Максим Цепков (M.Tsepkov@custis.ru)
www.custis.ru
Предметная область доклада
   Заказная разработка:                       Наш опыт
    •   outsourcing, inhouse
    •   решения для нескольких заказчиков
   Внедрение готовых решений с адаптацией
   Развитие эксплуатируемых систем


              Большие предприятия и большие системы.
              Высокая динамика изменений бизнеса.




                                                          2/43
План доклада
   Задачи автоматизации
   Подходы. Водопад vs DDD
   DDD на практике. Опыт CUSTIS
    •   DDD + ООП. Объектная модель
    •   DDD и документооборот. Развитие объектной модели
    •   DDD и учет. Необъектная модель
   Заключение




                                                           3/43
Задача 1: Понять предприятие
   Большие предприятия обладают системной
    сложностью.
   Достаточно снизить сложность декомпозицией
    не получается (есть много сквозных процессов
    и взаимодействия).
   Распределенные знания о предприятии.
    • Топ-менеджмент представляет общие бизнес-модели.
    • Линейные сотрудники знают детали процессов в своей
        области.
    •   Общие модели и подробности противоречат друг другу.
   Бизнес-модель предприятия сложна и плохо
    проверяема, понимается только авторами.
                                                              4/43
Задача 2: Представить ИТ-систему
   Цели автоматизации:
    •   эффективное выполнение бизнес-процессов;
    •   жесткость исполнения (исключить человеческий фактор);
    •   согласованные действия подразделений при выполнении
        процессов.

   Сложность модели системы сравнима
    со сложностью предприятия (иначе не работает).
    •   Декомпозиция нарушит согласованность или эффективность.
    •   Построение из типовых элементов сохранит человеческий
        фактор.



                                                                5/43
Модели надо совместить…

      Модель предприятия



        Представление
                                Модель
           о месте
                               ИТ-системы
         ИТ-системы




Модель системы не соответствует представлению
бизнеса о ее месте в модели предприятия.
                            «Не то чтобы совсем не попал,
                            но только не попал в шарик…»


                                                            6/43
Итерационное развитие модели

      Место ИТ
  в бизнес-процессе


                      Управляющее воздействие
                             на модель
                                                Итерация   ИТ-система



     Модель
    ИТ-системы




Требуется активное общение ИТ и бизнеса –
изменение модели системы и ее места в бизнесе.

                                                                        7/43
Проблемы водопадной модели
В процессе участвуют две сложные модели:
  •   Бизнес-модель предприятия и место системы в нем –
      на бизнес-языке.
  •   Модель ИТ-системы – на языке ИТ.
Их надо согласовывать и итеративно изменять.




                                                          8/43
Альтернатива – DDD
(предметно-ориентированное проектирование)

Вырабатываем единый язык (ubiquitous language):
  •   Он построен на основе терминов предметной области.
  •   Его понимают ИТ-специалисты и эксперты бизнеса.
  •   На нем описана модель ИТ-системы и ее место в бизнес-
      процессах.
Вместо двух сложных моделей, которые нужно
согласовывать, используется одна модель.


            DDD = Единый язык + Модель



                                                              9/43
Что такое DDD

Концептуальная книга Эрика Эванса
  •   на английском – в 2003 г.
  •   на русском – только в 2010 г.




                 Практическая книга Джимми Нильссона
                   • на английском – в 2006 г.
                    •   на русском – в 2007 г. (почти сразу!)



                                                                10/43
Практика применения DDD
при разработке корпоративных
приложений
Часть 1. DDD + ООП: Объектная модель




                                   11/43
Язык и метаязык
   Единый язык – из предметной области,
    иначе его не поймут бизнес-эксперты.
   При построении ИТ-модели эффективно применять
    общие подходы, не зависящие от области.
Как это совместить?
Общие подходы задают метаязык описания модели:
    • из каких элементов состоит модель;
    • как эти элементы комбинируются в сложные конструкции;
    • как модель визуально представляется в проекте;
    • как модель отражается в реализацию.
Но сами элементы находятся в предметной области.
                                                              12/43
Язык ООП

Элементы метаязыка Язык ООП
                          Объекты с атрибутами
        Элементы языка
                          и методами и связи
 и способ их соединения
                          между ними:
  в сложные конструкции
                          клиенты, накладные

     Визуальный образ
                          Диаграмма классов
     для эффективного
                          и другие диаграммы UML
        представления

                          Типы в программе,
     Способ отражения
                          соответствующие
  модели в реализацию
                          бизнес-объектам

                                                   13/43
ООП в DDD vs «просто ООП»
   ООП в DDD
    •   Выделяем слой бизнес-логики.
    •   Проектируем и реализуем его на основе Domain Model.
    •   Модель согласуется с заказчиком, функционал
        и интерфейсы из нее следуют.
   «Просто ООП»
    •   Объекты могут не иметь отношения к предметной области.
    •   С заказчиком согласуется только функционал и интерфейсы.
    •   Пример: приложение на VisualStudio – DataSet + Grid-
        интерфейсы.




                                                              14/43
ООП в DDD: Результат
 Модель предметной области проверяется
  заказчиком – снижается риск ошибки в постановках.
 Многие решения вынесены на уровень модели,
  их изменения надо согласовывать.
 DDD требует от разработчиков изучения бизнес-
  области и больше квалификации в целом.
 Взгляд бизнеса и ИТ на систему одинаков.
 Пользователи и разработчики понимают друг друга.




                                                  15/43
Практика: Объектная модель
1
          У контрагента есть       А может быть,
        расчетный счет в банке    у него несколько         И банки –
                                       счетов             это объекты
              2




               Но один счет –              Может, и правильно,
                  главный                  но слишком сложно

    3




               А при разборе платежей надо искать
                 контрагента по банку и его счету
                                                                 16/43
Практика: объектная модель


                         Упрощаем!




          Расчетный счет в системе нужен только для печати
                  документов и разбора платежей,
           поэтому достаточно хранить текущее значение,
             а историю посмотрим в журнале изменений



                                                             17/43
Практика: объектная модель
 Для отгрузки заказов
  нужна накладная         А потом клиенту надо
   Или несколько…       выставить счета-фактуры



                                        Если нашли
                                        ошибку
                                        в
                                        документах, на
                                        пример
                                        в цене, ее надо
                                        править везде




                                                    18/43
Практика: объектная модель
                     Гораздо проще сделать
                 заказ, накладную и счет-фактуру
                         одним документом




                                                   Упрощаем!




     И сделать сервис для деления
      И сделать сервис для деления
         и объединения заказов
          и объединения заказов


                                                               19/43
Практика: объектная модель
Изоляция объектов
                  Метод резервирования заказа
               собирает товар по складам, алгоритм
                     зависит от вида заказа




                                                     20/43
Практика: объектная модель
Изоляция объектов
    Метод заказа зависит
    от вспомогательных
    данных
                             Делаем данные
                                для гибкой
                             настройки сбора
                                  товара




                                           21/43
Практика: объектная модель
Изоляция объектов




                             Выносим поиск товара
                             в отдельный класс
                             без данных




                                            22/43
Как ограничить сложность модели
   Модель верхнего уровня – основные объекты.
   Вспомогательные объекты – на схемах
    фрагментов, они используются только локально.
   Технические шаблоны в модели не отражаются,
    достаточно указать использование.




                                                    23/43
Практика применения DDD
при разработке корпоративных
приложений
Часть 2. Документооборот –
«почти» объектная модель



                               24/43
Обобщенный документооборот
   Документ обрабатывается в несколько этапов.
   На каждом этапе определенные сотрудники
    могут совершать определенные действия.
   Для передачи на следующий этап должны
    выполняться определенные условия.




                                                  25/43
Модель для документооборота
   Документу приписываем состояние.
   Состояние определяет этап документооборота:
    • какие действия можно совершать над документом;
    • кто отвечает за обработку документа;
    • кто имеет права на совершение тех или иных действий.
   Возможные изменения состояний документа
    образуют граф переходов.


            Используем шаблон State Entity.




                                                             26/43
Язык модели
   Документ – объект предметной
                                             UML

    области.
   Действие над ним – вызов его метода.
   Среди всех методов выделяем
    переходы и связываем их
    с состояниями.
   Граф состояний – State machine
    diagram.

          Язык ООП «с расширениями».
          Названия состояний и переходов –
          на языке бизнеса.

                                               27/43
Наглядно представляет
сложный документооборот




                          28/43
Практика применения DDD
при разработке корпоративных
приложений
Часть 3. Учет – необъектная модель




                                     29/43
Бизнес-задача: учет остатков
и потоков товаров, денег, других ресурсов
   Исполнение документов изменяет
    учетные показатели.
   Учетные показатели влияют
    на обработку документов
    и решения пользователей.




          Нужно в большинстве корпоративных
          систем, а не только в бухгалтерии.


                                               30/43
Примеры показателей и отчетов
   Показатели: остатки и обороты
    в разрезе аналитик (товаров, клиентов):
    •   остаток на складе по ответственным;
    •   поступление товара за период;
    •   поставка в магазины за месяц.
   Отчеты содержат остатки и обороты совместно.

         Товар       Было     Пришло    Ушло   Стало
Куртка К12-S          122       40       75     87
Куртка К15-M          187       50       90    147
…



                                                       31/43
Язык предметной области
Элементы учета:
  • синтетические счета и их аналитические признаки;
  • аналитические счета;
  • проводки;
  • показатели – остатки и обороты на счетах.




          Используется общая методология учета,
          а не конкретные правила бухгалтерского учета.



                                                          32/43
Представление учетной модели
Сложность объектного представления учета:
  •   Нет идентификации единичного объекта.
  •   Работа идет с показателями, текущее значение которых
      меняется.
  •   Изменение числового значения может менять состояние
      с точки зрения принятия бизнес-решения.
  •   Часто интерес представляют агрегаты, а не отдельные
      значения.
Учетная модель – не объектная.

            Представление учета оказалось за рамками UML.
            Для него не придумано эффективного
            представления.

                                                             33/43
Диаграммы учета – способ борьбы
со сложностью учетной модели

                        Наше
                       ноу-хау




                                  34/43
Подробно о диаграммах учета
   Презентация и видео «Диаграммы планов счетов –
    средство моделирования и проектирования учета»
    ЛАФ-2010 – http://lib.custis.ru/Accounting-diagrams
   Презентация и статья «Учет ценных бумаг:
    Сделать сложное простым»
    SECR-2010 – http://lib.custis.ru/Simplify-security-accounting
   Статья «Диаграммы учета: мост между
    бухгалтером и разработчиком»
    Журнал «Бухгалтер и компьютер» №5 (май) 2011 –
    http://lib.custis.ru/Когда_всем_понятно



                                                                    35/43
Диаграммы учета для бизнеса
Бухгалтеры могут применять диаграммы учета
для разработки учетной политики.
Они нагляднее, чем Excel.




                                             36/43
Реализация учетной модели
Модель позволяет построить шаблон для реализации.
Есть Patterns for Accounting Мартина Фаулера –
отражение учета в объектную реализацию:
  •   учетные счета и проводки;
  •   источник проводок – события.
                                               Наш метод
У нас – более развитая реализация:
  •   хранение аналитических признаков на счетах и проводках;
  •   ведение остатков и оборотов учетных счетов;
  •   ведение детальных и агрегированных показателей.
Есть собственный язык описания – GL-XML.


                                                                37/43
Представить реализацию бизнесу
   Взгляд бизнеса:
    есть журнал хозяйственных операций,
    возникающих при обработке и проведении
    документов.
   Реализация:
    проводки создаются по событиям (Event Sourcing,
    Фаулер), которые возникают в методах документов.


          Для прозрачной модели это должно совпадать:
          учетные события – суть хозяйственные операции.



                                                           38/43
Подводя итоги




                39/43
Единая модель системы




                         Учетные
   Документы            показатели




               Связь


                                     40/43
Единая модель системы
                           Документы
                        и справочники –
                       диаграмма классов




                                            Учетные
    Документы                              показатели



                                                      Учет –
  Документооборот –                              диаграмма учета
 диаграмма состояний
                        Связь


                                                             41/43
Почему DDD – эффективно?
Единый язык + Единая модель:
   позволяют эффективно развивать сложную систему;
   обеспечивают понимание всем участникам проекта;
   избавляют от поддержки нескольких моделей;
   поддерживают итеративное проектирование
    и разработку;
   применяются для разных парадигм моделирования.

          DDD не убирает системную сложность,
          а позволяет эффективно работать
          при ее наличии.

                                                  42/43
Спасибо!

Вопросы?


Максим Цепков (M.Tsepkov@custis.ru)




                                      43/43

More Related Content

What's hot

DDD-secon-2014-tsepkov
DDD-secon-2014-tsepkovDDD-secon-2014-tsepkov
DDD-secon-2014-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
 
DDD — правильный курс в потоке изменений требований
DDD — правильный курс в потоке изменений требованийDDD — правильный курс в потоке изменений требований
DDD — правильный курс в потоке изменений требованийSQALab
 
Задачи системного аналитика (конспект лекций Школы системного анализа)
Задачи системного аналитика (конспект лекций Школы системного анализа)Задачи системного аналитика (конспект лекций Школы системного анализа)
Задачи системного аналитика (конспект лекций Школы системного анализа)Anton Konstantinov
 
Практика применения Enterprise Architect и T4-шаблонов для разработки систем...
Практика применения Enterprise Architect и T4-шаблонов для разработки систем...Практика применения Enterprise Architect и T4-шаблонов для разработки систем...
Практика применения Enterprise Architect и T4-шаблонов для разработки систем...CUSTIS
 
Domain Driven Design: модель вместо требования
Domain Driven Design: модель вместо требованияDomain Driven Design: модель вместо требования
Domain Driven Design: модель вместо требованияCUSTIS
 
Модель системы — архитектура для Agile-разработки
Модель системы — архитектура для Agile-разработкиМодель системы — архитектура для Agile-разработки
Модель системы — архитектура для Agile-разработкиCUSTIS
 
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
 
Как выбрать для проекта практики проектирования и работы с требованиями
Как выбрать для проекта практики проектирования и работы с требованиямиКак выбрать для проекта практики проектирования и работы с требованиями
Как выбрать для проекта практики проектирования и работы с требованиямиCUSTIS
 
Itgm #9. dmn. как моделировать принимаемые решения
Itgm #9. dmn. как моделировать принимаемые решенияItgm #9. dmn. как моделировать принимаемые решения
Itgm #9. dmn. как моделировать принимаемые решенияSPbCoA
 
3 средства автоматизации проектирования корпоративных приложений
3 средства автоматизации проектирования корпоративных приложений3 средства автоматизации проектирования корпоративных приложений
3 средства автоматизации проектирования корпоративных приложенийKewpaN
 
INFOSYSTEMS. How to Measure Software Architecture [1.01, RUS]
INFOSYSTEMS. How to Measure Software Architecture [1.01, RUS]INFOSYSTEMS. How to Measure Software Architecture [1.01, RUS]
INFOSYSTEMS. How to Measure Software Architecture [1.01, RUS]Alex V. Petrov
 
Практический анализ по RUP
Практический анализ по RUPПрактический анализ по RUP
Практический анализ по RUPSQALab
 
Опыт госпроектов и взаимодействия с корпоративными структурами
Опыт госпроектов и взаимодействия с корпоративными структурамиОпыт госпроектов и взаимодействия с корпоративными структурами
Опыт госпроектов и взаимодействия с корпоративными структурамиПрофсоUX
 
STRATOPLAN. Efficient Object-Oriented Design and Structured Quality of Softwa...
STRATOPLAN. Efficient Object-Oriented Design and Structured Quality of Softwa...STRATOPLAN. Efficient Object-Oriented Design and Structured Quality of Softwa...
STRATOPLAN. Efficient Object-Oriented Design and Structured Quality of Softwa...Alex V. Petrov
 
CEE-SECR'2011 Бизнес-процессы
CEE-SECR'2011 Бизнес-процессыCEE-SECR'2011 Бизнес-процессы
CEE-SECR'2011 Бизнес-процессыYury Kupriyanov
 
Agile — ответ на вызовы третьей промышленной революции
Agile — ответ на вызовы третьей промышленной революцииAgile — ответ на вызовы третьей промышленной революции
Agile — ответ на вызовы третьей промышленной революцииCUSTIS
 
HTP. Business Requirements Elicitation & Documentation [1.01, RUS]
HTP. Business Requirements Elicitation & Documentation [1.01, RUS]HTP. Business Requirements Elicitation & Documentation [1.01, RUS]
HTP. Business Requirements Elicitation & Documentation [1.01, RUS]Alex V. Petrov
 
UML2. Eleven Trivial Tips for BPMN Modellers [1.01, RUS]
UML2. Eleven Trivial Tips for BPMN Modellers [1.01, RUS]UML2. Eleven Trivial Tips for BPMN Modellers [1.01, RUS]
UML2. Eleven Trivial Tips for BPMN Modellers [1.01, RUS]Alex V. Petrov
 

What's hot (20)

DDD Workshop
DDD WorkshopDDD Workshop
DDD Workshop
 
DDD-secon-2014-tsepkov
DDD-secon-2014-tsepkovDDD-secon-2014-tsepkov
DDD-secon-2014-tsepkov
 
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 — правильный курс в потоке изменений требований
 
Задачи системного аналитика (конспект лекций Школы системного анализа)
Задачи системного аналитика (конспект лекций Школы системного анализа)Задачи системного аналитика (конспект лекций Школы системного анализа)
Задачи системного аналитика (конспект лекций Школы системного анализа)
 
Практика применения Enterprise Architect и T4-шаблонов для разработки систем...
Практика применения Enterprise Architect и T4-шаблонов для разработки систем...Практика применения Enterprise Architect и T4-шаблонов для разработки систем...
Практика применения Enterprise Architect и T4-шаблонов для разработки систем...
 
Domain Driven Design: модель вместо требования
Domain Driven Design: модель вместо требованияDomain Driven Design: модель вместо требования
Domain Driven Design: модель вместо требования
 
Модель системы — архитектура для Agile-разработки
Модель системы — архитектура для Agile-разработкиМодель системы — архитектура для Agile-разработки
Модель системы — архитектура для Agile-разработки
 
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 ...
 
Как выбрать для проекта практики проектирования и работы с требованиями
Как выбрать для проекта практики проектирования и работы с требованиямиКак выбрать для проекта практики проектирования и работы с требованиями
Как выбрать для проекта практики проектирования и работы с требованиями
 
Itgm #9. dmn. как моделировать принимаемые решения
Itgm #9. dmn. как моделировать принимаемые решенияItgm #9. dmn. как моделировать принимаемые решения
Itgm #9. dmn. как моделировать принимаемые решения
 
3 средства автоматизации проектирования корпоративных приложений
3 средства автоматизации проектирования корпоративных приложений3 средства автоматизации проектирования корпоративных приложений
3 средства автоматизации проектирования корпоративных приложений
 
INFOSYSTEMS. How to Measure Software Architecture [1.01, RUS]
INFOSYSTEMS. How to Measure Software Architecture [1.01, RUS]INFOSYSTEMS. How to Measure Software Architecture [1.01, RUS]
INFOSYSTEMS. How to Measure Software Architecture [1.01, RUS]
 
Практический анализ по RUP
Практический анализ по RUPПрактический анализ по RUP
Практический анализ по RUP
 
Опыт госпроектов и взаимодействия с корпоративными структурами
Опыт госпроектов и взаимодействия с корпоративными структурамиОпыт госпроектов и взаимодействия с корпоративными структурами
Опыт госпроектов и взаимодействия с корпоративными структурами
 
STRATOPLAN. Efficient Object-Oriented Design and Structured Quality of Softwa...
STRATOPLAN. Efficient Object-Oriented Design and Structured Quality of Softwa...STRATOPLAN. Efficient Object-Oriented Design and Structured Quality of Softwa...
STRATOPLAN. Efficient Object-Oriented Design and Structured Quality of Softwa...
 
CEE-SECR'2011 Бизнес-процессы
CEE-SECR'2011 Бизнес-процессыCEE-SECR'2011 Бизнес-процессы
CEE-SECR'2011 Бизнес-процессы
 
Agile — ответ на вызовы третьей промышленной революции
Agile — ответ на вызовы третьей промышленной революцииAgile — ответ на вызовы третьей промышленной революции
Agile — ответ на вызовы третьей промышленной революции
 
HTP. Business Requirements Elicitation & Documentation [1.01, RUS]
HTP. Business Requirements Elicitation & Documentation [1.01, RUS]HTP. Business Requirements Elicitation & Documentation [1.01, RUS]
HTP. Business Requirements Elicitation & Documentation [1.01, RUS]
 
UML2. Eleven Trivial Tips for BPMN Modellers [1.01, RUS]
UML2. Eleven Trivial Tips for BPMN Modellers [1.01, RUS]UML2. Eleven Trivial Tips for BPMN Modellers [1.01, RUS]
UML2. Eleven Trivial Tips for BPMN Modellers [1.01, RUS]
 

Similar to DDD — эффективный способ работы в условиях системной сложности

Ddd happy dev-2013-tsepkov
Ddd happy dev-2013-tsepkovDdd happy dev-2013-tsepkov
Ddd happy dev-2013-tsepkovMaxim Tsepkov
 
Ddd softwarepeople-2012-tsepkov
Ddd softwarepeople-2012-tsepkovDdd softwarepeople-2012-tsepkov
Ddd softwarepeople-2012-tsepkovMaxim Tsepkov
 
Особенности описания процессов для целей его менеджмента
Особенности описания процессов для целей его менеджментаОсобенности описания процессов для целей его менеджмента
Особенности описания процессов для целей его менеджментаSQALab
 
Описания бизнес-процессов - waste?
Описания бизнес-процессов - waste?Описания бизнес-процессов - waste?
Описания бизнес-процессов - waste?CUSTIS
 
Описание бизнес-процессов — waste?
Описание бизнес-процессов — waste?Описание бизнес-процессов — waste?
Описание бизнес-процессов — waste?SQALab
 
Необъектные модели предметной области
Необъектные модели предметной областиНеобъектные модели предметной области
Необъектные модели предметной областиCUSTIS
 
Моделирование бизнес-процессов (Analyst Days 2016, СПб)
Моделирование бизнес-процессов (Analyst Days 2016, СПб)Моделирование бизнес-процессов (Analyst Days 2016, СПб)
Моделирование бизнес-процессов (Analyst Days 2016, СПб)Natalia Zhelnova
 
Практический анализ и визуальное моделирование на UML
Практический анализ и визуальное моделирование на UMLПрактический анализ и визуальное моделирование на UML
Практический анализ и визуальное моделирование на UMLNikolai Kireev
 
Проектирование больших ИС в Agile (статья)
Проектирование больших ИС в Agile (статья)Проектирование больших ИС в Agile (статья)
Проектирование больших ИС в Agile (статья)Andrey Bibichev
 
моделирование бизнес процессов с B pwin 4.0
моделирование бизнес процессов с B pwin 4.0моделирование бизнес процессов с B pwin 4.0
моделирование бизнес процессов с B pwin 4.0vaha1411
 
Docflow 2013
Docflow 2013Docflow 2013
Docflow 2013vipatov
 
Системная архитектура вместо требований
Системная архитектура вместо требованийСистемная архитектура вместо требований
Системная архитектура вместо требованийМихаил Заборов
 
Взаимодействие бизнес-аналитика с командой проекта и Заказчиком, Людмила Гули...
Взаимодействие бизнес-аналитика с командой проекта и Заказчиком, Людмила Гули...Взаимодействие бизнес-аналитика с командой проекта и Заказчиком, Людмила Гули...
Взаимодействие бизнес-аналитика с командой проекта и Заказчиком, Людмила Гули...DataArt
 
Моделирование бизнес-процессов: методы и инструменты
Моделирование бизнес-процессов: методы и инструментыМоделирование бизнес-процессов: методы и инструменты
Моделирование бизнес-процессов: методы и инструментыSQALab
 
Agile и управление знаниями в ИТ-проектах
Agile и управление знаниями в ИТ-проектахAgile и управление знаниями в ИТ-проектах
Agile и управление знаниями в ИТ-проектахCUSTIS
 
Agile и управление знаниями в ИТ-проектах
Agile и управление знаниями в ИТ-проектахAgile и управление знаниями в ИТ-проектах
Agile и управление знаниями в ИТ-проектахMaxim Tsepkov
 
Как выжить глобальной корпорации?
Как выжить глобальной корпорации?Как выжить глобальной корпорации?
Как выжить глобальной корпорации?CEE-SEC(R)
 
Сбор и анализ данных для моделирования деятельности организации
Сбор и анализ данных для моделирования деятельности организацииСбор и анализ данных для моделирования деятельности организации
Сбор и анализ данных для моделирования деятельности организацииOlya Kollen, PhD
 
МАПО 2013 Лекция 07 Моделирование IDEF
МАПО 2013 Лекция 07 Моделирование IDEFМАПО 2013 Лекция 07 Моделирование IDEF
МАПО 2013 Лекция 07 Моделирование IDEFОлег Гудаев
 

Similar to DDD — эффективный способ работы в условиях системной сложности (20)

Ddd happy dev-2013-tsepkov
Ddd happy dev-2013-tsepkovDdd happy dev-2013-tsepkov
Ddd happy dev-2013-tsepkov
 
Ddd softwarepeople-2012-tsepkov
Ddd softwarepeople-2012-tsepkovDdd softwarepeople-2012-tsepkov
Ddd softwarepeople-2012-tsepkov
 
Особенности описания процессов для целей его менеджмента
Особенности описания процессов для целей его менеджментаОсобенности описания процессов для целей его менеджмента
Особенности описания процессов для целей его менеджмента
 
Описания бизнес-процессов - waste?
Описания бизнес-процессов - waste?Описания бизнес-процессов - waste?
Описания бизнес-процессов - waste?
 
Описание бизнес-процессов — waste?
Описание бизнес-процессов — waste?Описание бизнес-процессов — waste?
Описание бизнес-процессов — waste?
 
Необъектные модели предметной области
Необъектные модели предметной областиНеобъектные модели предметной области
Необъектные модели предметной области
 
Киев, BA Con 2017
Киев, BA Con 2017Киев, BA Con 2017
Киев, BA Con 2017
 
Моделирование бизнес-процессов (Analyst Days 2016, СПб)
Моделирование бизнес-процессов (Analyst Days 2016, СПб)Моделирование бизнес-процессов (Analyst Days 2016, СПб)
Моделирование бизнес-процессов (Analyst Days 2016, СПб)
 
Практический анализ и визуальное моделирование на UML
Практический анализ и визуальное моделирование на UMLПрактический анализ и визуальное моделирование на UML
Практический анализ и визуальное моделирование на UML
 
Проектирование больших ИС в Agile (статья)
Проектирование больших ИС в Agile (статья)Проектирование больших ИС в Agile (статья)
Проектирование больших ИС в Agile (статья)
 
моделирование бизнес процессов с B pwin 4.0
моделирование бизнес процессов с B pwin 4.0моделирование бизнес процессов с B pwin 4.0
моделирование бизнес процессов с B pwin 4.0
 
Docflow 2013
Docflow 2013Docflow 2013
Docflow 2013
 
Системная архитектура вместо требований
Системная архитектура вместо требованийСистемная архитектура вместо требований
Системная архитектура вместо требований
 
Взаимодействие бизнес-аналитика с командой проекта и Заказчиком, Людмила Гули...
Взаимодействие бизнес-аналитика с командой проекта и Заказчиком, Людмила Гули...Взаимодействие бизнес-аналитика с командой проекта и Заказчиком, Людмила Гули...
Взаимодействие бизнес-аналитика с командой проекта и Заказчиком, Людмила Гули...
 
Моделирование бизнес-процессов: методы и инструменты
Моделирование бизнес-процессов: методы и инструментыМоделирование бизнес-процессов: методы и инструменты
Моделирование бизнес-процессов: методы и инструменты
 
Agile и управление знаниями в ИТ-проектах
Agile и управление знаниями в ИТ-проектахAgile и управление знаниями в ИТ-проектах
Agile и управление знаниями в ИТ-проектах
 
Agile и управление знаниями в ИТ-проектах
Agile и управление знаниями в ИТ-проектахAgile и управление знаниями в ИТ-проектах
Agile и управление знаниями в ИТ-проектах
 
Как выжить глобальной корпорации?
Как выжить глобальной корпорации?Как выжить глобальной корпорации?
Как выжить глобальной корпорации?
 
Сбор и анализ данных для моделирования деятельности организации
Сбор и анализ данных для моделирования деятельности организацииСбор и анализ данных для моделирования деятельности организации
Сбор и анализ данных для моделирования деятельности организации
 
МАПО 2013 Лекция 07 Моделирование IDEF
МАПО 2013 Лекция 07 Моделирование IDEFМАПО 2013 Лекция 07 Моделирование IDEF
МАПО 2013 Лекция 07 Моделирование IDEF
 

More from CUSTIS

Три истории микросервисов, или MSA для Enterprise
Три истории микросервисов, или MSA для EnterpriseТри истории микросервисов, или MSA для Enterprise
Три истории микросервисов, или MSA для EnterpriseCUSTIS
 
Долгоживущие ИТ в динамичном ритейле
Долгоживущие ИТ в динамичном ритейлеДолгоживущие ИТ в динамичном ритейле
Долгоживущие ИТ в динамичном ритейлеCUSTIS
 
Будущее уже наступило: от Agile к бирюзовым организациям
Будущее уже наступило: от Agile к бирюзовым организациямБудущее уже наступило: от Agile к бирюзовым организациям
Будущее уже наступило: от Agile к бирюзовым организациямCUSTIS
 
Диаграммы учета как средство для наглядного и целостного отображения правил у...
Диаграммы учета как средство для наглядного и целостного отображения правил у...Диаграммы учета как средство для наглядного и целостного отображения правил у...
Диаграммы учета как средство для наглядного и целостного отображения правил у...CUSTIS
 
Сотрудничество с корпорациями: рецепты из практики
Сотрудничество с корпорациями: рецепты из практикиСотрудничество с корпорациями: рецепты из практики
Сотрудничество с корпорациями: рецепты из практикиCUSTIS
 
Опыт построения микросервисной архитектуры в цифровом банке
Опыт построения микросервисной архитектуры в цифровом банкеОпыт построения микросервисной архитектуры в цифровом банке
Опыт построения микросервисной архитектуры в цифровом банкеCUSTIS
 
Золотая лихорадка MSA: почему нам не подошли микросервисы?
Золотая лихорадка MSA: почему нам не подошли микросервисы?Золотая лихорадка MSA: почему нам не подошли микросервисы?
Золотая лихорадка MSA: почему нам не подошли микросервисы?CUSTIS
 
Барьеры микросервисной архитектуры
Барьеры микросервисной архитектурыБарьеры микросервисной архитектуры
Барьеры микросервисной архитектурыCUSTIS
 
Три истории микросервисов
Три истории микросервисовТри истории микросервисов
Три истории микросервисовCUSTIS
 
От монолитных моделей предметной области — к модульным
От монолитных моделей предметной области — к модульнымОт монолитных моделей предметной области — к модульным
От монолитных моделей предметной области — к модульнымCUSTIS
 
Проблемы управления правами доступа к информационным системам крупной торгово...
Проблемы управления правами доступа к информационным системам крупной торгово...Проблемы управления правами доступа к информационным системам крупной торгово...
Проблемы управления правами доступа к информационным системам крупной торгово...CUSTIS
 
Будущее omni-channel маркетинга: инструменты, кейсы и цифры
Будущее omni-channel маркетинга: инструменты, кейсы и цифрыБудущее omni-channel маркетинга: инструменты, кейсы и цифры
Будущее omni-channel маркетинга: инструменты, кейсы и цифрыCUSTIS
 
State of the .Net Performance
State of the .Net PerformanceState of the .Net Performance
State of the .Net PerformanceCUSTIS
 
Ответственность за качество в разных ИТ-проектах: в чем она и как ее разделять
Ответственность за качество в разных ИТ-проектах: в чем она и как ее разделятьОтветственность за качество в разных ИТ-проектах: в чем она и как ее разделять
Ответственность за качество в разных ИТ-проектах: в чем она и как ее разделятьCUSTIS
 
Опыт применения метода ATAM для оценки архитектуры
Опыт применения метода ATAM для оценки архитектурыОпыт применения метода ATAM для оценки архитектуры
Опыт применения метода ATAM для оценки архитектурыCUSTIS
 
Гибридный подход к управлению правами доступа: когда стандартного IDM не хватает
Гибридный подход к управлению правами доступа: когда стандартного IDM не хватаетГибридный подход к управлению правами доступа: когда стандартного IDM не хватает
Гибридный подход к управлению правами доступа: когда стандартного IDM не хватаетCUSTIS
 
Собираем кубик Рубика: восстановление архитектурного описания корпоративной р...
Собираем кубик Рубика: восстановление архитектурного описания корпоративной р...Собираем кубик Рубика: восстановление архитектурного описания корпоративной р...
Собираем кубик Рубика: восстановление архитектурного описания корпоративной р...CUSTIS
 
Process и Case Management в информационной системе: от автоматизации As Is к ...
Process и Case Management в информационной системе: от автоматизации As Is к ...Process и Case Management в информационной системе: от автоматизации As Is к ...
Process и Case Management в информационной системе: от автоматизации As Is к ...CUSTIS
 
RBAC & ABAC: гибридное решение для управления правами доступа
RBAC & ABAC: гибридное решение для управления правами доступаRBAC & ABAC: гибридное решение для управления правами доступа
RBAC & ABAC: гибридное решение для управления правами доступаCUSTIS
 
Омниканальная модель в ритейле: решения и кейсы
Омниканальная модель в ритейле: решения и кейсыОмниканальная модель в ритейле: решения и кейсы
Омниканальная модель в ритейле: решения и кейсыCUSTIS
 

More from CUSTIS (20)

Три истории микросервисов, или MSA для Enterprise
Три истории микросервисов, или MSA для EnterpriseТри истории микросервисов, или MSA для Enterprise
Три истории микросервисов, или MSA для Enterprise
 
Долгоживущие ИТ в динамичном ритейле
Долгоживущие ИТ в динамичном ритейлеДолгоживущие ИТ в динамичном ритейле
Долгоживущие ИТ в динамичном ритейле
 
Будущее уже наступило: от Agile к бирюзовым организациям
Будущее уже наступило: от Agile к бирюзовым организациямБудущее уже наступило: от Agile к бирюзовым организациям
Будущее уже наступило: от Agile к бирюзовым организациям
 
Диаграммы учета как средство для наглядного и целостного отображения правил у...
Диаграммы учета как средство для наглядного и целостного отображения правил у...Диаграммы учета как средство для наглядного и целостного отображения правил у...
Диаграммы учета как средство для наглядного и целостного отображения правил у...
 
Сотрудничество с корпорациями: рецепты из практики
Сотрудничество с корпорациями: рецепты из практикиСотрудничество с корпорациями: рецепты из практики
Сотрудничество с корпорациями: рецепты из практики
 
Опыт построения микросервисной архитектуры в цифровом банке
Опыт построения микросервисной архитектуры в цифровом банкеОпыт построения микросервисной архитектуры в цифровом банке
Опыт построения микросервисной архитектуры в цифровом банке
 
Золотая лихорадка MSA: почему нам не подошли микросервисы?
Золотая лихорадка MSA: почему нам не подошли микросервисы?Золотая лихорадка MSA: почему нам не подошли микросервисы?
Золотая лихорадка MSA: почему нам не подошли микросервисы?
 
Барьеры микросервисной архитектуры
Барьеры микросервисной архитектурыБарьеры микросервисной архитектуры
Барьеры микросервисной архитектуры
 
Три истории микросервисов
Три истории микросервисовТри истории микросервисов
Три истории микросервисов
 
От монолитных моделей предметной области — к модульным
От монолитных моделей предметной области — к модульнымОт монолитных моделей предметной области — к модульным
От монолитных моделей предметной области — к модульным
 
Проблемы управления правами доступа к информационным системам крупной торгово...
Проблемы управления правами доступа к информационным системам крупной торгово...Проблемы управления правами доступа к информационным системам крупной торгово...
Проблемы управления правами доступа к информационным системам крупной торгово...
 
Будущее omni-channel маркетинга: инструменты, кейсы и цифры
Будущее omni-channel маркетинга: инструменты, кейсы и цифрыБудущее omni-channel маркетинга: инструменты, кейсы и цифры
Будущее omni-channel маркетинга: инструменты, кейсы и цифры
 
State of the .Net Performance
State of the .Net PerformanceState of the .Net Performance
State of the .Net Performance
 
Ответственность за качество в разных ИТ-проектах: в чем она и как ее разделять
Ответственность за качество в разных ИТ-проектах: в чем она и как ее разделятьОтветственность за качество в разных ИТ-проектах: в чем она и как ее разделять
Ответственность за качество в разных ИТ-проектах: в чем она и как ее разделять
 
Опыт применения метода ATAM для оценки архитектуры
Опыт применения метода ATAM для оценки архитектурыОпыт применения метода ATAM для оценки архитектуры
Опыт применения метода ATAM для оценки архитектуры
 
Гибридный подход к управлению правами доступа: когда стандартного IDM не хватает
Гибридный подход к управлению правами доступа: когда стандартного IDM не хватаетГибридный подход к управлению правами доступа: когда стандартного IDM не хватает
Гибридный подход к управлению правами доступа: когда стандартного IDM не хватает
 
Собираем кубик Рубика: восстановление архитектурного описания корпоративной р...
Собираем кубик Рубика: восстановление архитектурного описания корпоративной р...Собираем кубик Рубика: восстановление архитектурного описания корпоративной р...
Собираем кубик Рубика: восстановление архитектурного описания корпоративной р...
 
Process и Case Management в информационной системе: от автоматизации As Is к ...
Process и Case Management в информационной системе: от автоматизации As Is к ...Process и Case Management в информационной системе: от автоматизации As Is к ...
Process и Case Management в информационной системе: от автоматизации As Is к ...
 
RBAC & ABAC: гибридное решение для управления правами доступа
RBAC & ABAC: гибридное решение для управления правами доступаRBAC & ABAC: гибридное решение для управления правами доступа
RBAC & ABAC: гибридное решение для управления правами доступа
 
Омниканальная модель в ритейле: решения и кейсы
Омниканальная модель в ритейле: решения и кейсыОмниканальная модель в ритейле: решения и кейсы
Омниканальная модель в ритейле: решения и кейсы
 

DDD — эффективный способ работы в условиях системной сложности

  • 1. Независимая научно-практическая конференция «Разработка ПО 2011» 31 октября – 3 ноября, Москва DDD – эффективный способ работы в условиях системой сложности Докладчик: Максим Цепков (M.Tsepkov@custis.ru) www.custis.ru
  • 2. Предметная область доклада  Заказная разработка: Наш опыт • outsourcing, inhouse • решения для нескольких заказчиков  Внедрение готовых решений с адаптацией  Развитие эксплуатируемых систем Большие предприятия и большие системы. Высокая динамика изменений бизнеса. 2/43
  • 3. План доклада  Задачи автоматизации  Подходы. Водопад vs DDD  DDD на практике. Опыт CUSTIS • DDD + ООП. Объектная модель • DDD и документооборот. Развитие объектной модели • DDD и учет. Необъектная модель  Заключение 3/43
  • 4. Задача 1: Понять предприятие  Большие предприятия обладают системной сложностью.  Достаточно снизить сложность декомпозицией не получается (есть много сквозных процессов и взаимодействия).  Распределенные знания о предприятии. • Топ-менеджмент представляет общие бизнес-модели. • Линейные сотрудники знают детали процессов в своей области. • Общие модели и подробности противоречат друг другу.  Бизнес-модель предприятия сложна и плохо проверяема, понимается только авторами. 4/43
  • 5. Задача 2: Представить ИТ-систему  Цели автоматизации: • эффективное выполнение бизнес-процессов; • жесткость исполнения (исключить человеческий фактор); • согласованные действия подразделений при выполнении процессов.  Сложность модели системы сравнима со сложностью предприятия (иначе не работает). • Декомпозиция нарушит согласованность или эффективность. • Построение из типовых элементов сохранит человеческий фактор. 5/43
  • 6. Модели надо совместить… Модель предприятия Представление Модель о месте ИТ-системы ИТ-системы Модель системы не соответствует представлению бизнеса о ее месте в модели предприятия. «Не то чтобы совсем не попал, но только не попал в шарик…» 6/43
  • 7. Итерационное развитие модели Место ИТ в бизнес-процессе Управляющее воздействие на модель Итерация ИТ-система Модель ИТ-системы Требуется активное общение ИТ и бизнеса – изменение модели системы и ее места в бизнесе. 7/43
  • 8. Проблемы водопадной модели В процессе участвуют две сложные модели: • Бизнес-модель предприятия и место системы в нем – на бизнес-языке. • Модель ИТ-системы – на языке ИТ. Их надо согласовывать и итеративно изменять. 8/43
  • 9. Альтернатива – DDD (предметно-ориентированное проектирование) Вырабатываем единый язык (ubiquitous language): • Он построен на основе терминов предметной области. • Его понимают ИТ-специалисты и эксперты бизнеса. • На нем описана модель ИТ-системы и ее место в бизнес- процессах. Вместо двух сложных моделей, которые нужно согласовывать, используется одна модель. DDD = Единый язык + Модель 9/43
  • 10. Что такое DDD Концептуальная книга Эрика Эванса • на английском – в 2003 г. • на русском – только в 2010 г. Практическая книга Джимми Нильссона • на английском – в 2006 г. • на русском – в 2007 г. (почти сразу!) 10/43
  • 11. Практика применения DDD при разработке корпоративных приложений Часть 1. DDD + ООП: Объектная модель 11/43
  • 12. Язык и метаязык  Единый язык – из предметной области, иначе его не поймут бизнес-эксперты.  При построении ИТ-модели эффективно применять общие подходы, не зависящие от области. Как это совместить? Общие подходы задают метаязык описания модели: • из каких элементов состоит модель; • как эти элементы комбинируются в сложные конструкции; • как модель визуально представляется в проекте; • как модель отражается в реализацию. Но сами элементы находятся в предметной области. 12/43
  • 13. Язык ООП Элементы метаязыка Язык ООП Объекты с атрибутами Элементы языка и методами и связи и способ их соединения между ними: в сложные конструкции клиенты, накладные Визуальный образ Диаграмма классов для эффективного и другие диаграммы UML представления Типы в программе, Способ отражения соответствующие модели в реализацию бизнес-объектам 13/43
  • 14. ООП в DDD vs «просто ООП»  ООП в DDD • Выделяем слой бизнес-логики. • Проектируем и реализуем его на основе Domain Model. • Модель согласуется с заказчиком, функционал и интерфейсы из нее следуют.  «Просто ООП» • Объекты могут не иметь отношения к предметной области. • С заказчиком согласуется только функционал и интерфейсы. • Пример: приложение на VisualStudio – DataSet + Grid- интерфейсы. 14/43
  • 15. ООП в DDD: Результат  Модель предметной области проверяется заказчиком – снижается риск ошибки в постановках.  Многие решения вынесены на уровень модели, их изменения надо согласовывать.  DDD требует от разработчиков изучения бизнес- области и больше квалификации в целом.  Взгляд бизнеса и ИТ на систему одинаков.  Пользователи и разработчики понимают друг друга. 15/43
  • 16. Практика: Объектная модель 1 У контрагента есть А может быть, расчетный счет в банке у него несколько И банки – счетов это объекты 2 Но один счет – Может, и правильно, главный но слишком сложно 3 А при разборе платежей надо искать контрагента по банку и его счету 16/43
  • 17. Практика: объектная модель Упрощаем! Расчетный счет в системе нужен только для печати документов и разбора платежей, поэтому достаточно хранить текущее значение, а историю посмотрим в журнале изменений 17/43
  • 18. Практика: объектная модель Для отгрузки заказов нужна накладная А потом клиенту надо Или несколько… выставить счета-фактуры Если нашли ошибку в документах, на пример в цене, ее надо править везде 18/43
  • 19. Практика: объектная модель Гораздо проще сделать заказ, накладную и счет-фактуру одним документом Упрощаем! И сделать сервис для деления И сделать сервис для деления и объединения заказов и объединения заказов 19/43
  • 20. Практика: объектная модель Изоляция объектов Метод резервирования заказа собирает товар по складам, алгоритм зависит от вида заказа 20/43
  • 21. Практика: объектная модель Изоляция объектов Метод заказа зависит от вспомогательных данных Делаем данные для гибкой настройки сбора товара 21/43
  • 22. Практика: объектная модель Изоляция объектов Выносим поиск товара в отдельный класс без данных 22/43
  • 23. Как ограничить сложность модели  Модель верхнего уровня – основные объекты.  Вспомогательные объекты – на схемах фрагментов, они используются только локально.  Технические шаблоны в модели не отражаются, достаточно указать использование. 23/43
  • 24. Практика применения DDD при разработке корпоративных приложений Часть 2. Документооборот – «почти» объектная модель 24/43
  • 25. Обобщенный документооборот  Документ обрабатывается в несколько этапов.  На каждом этапе определенные сотрудники могут совершать определенные действия.  Для передачи на следующий этап должны выполняться определенные условия. 25/43
  • 26. Модель для документооборота  Документу приписываем состояние.  Состояние определяет этап документооборота: • какие действия можно совершать над документом; • кто отвечает за обработку документа; • кто имеет права на совершение тех или иных действий.  Возможные изменения состояний документа образуют граф переходов. Используем шаблон State Entity. 26/43
  • 27. Язык модели  Документ – объект предметной UML области.  Действие над ним – вызов его метода.  Среди всех методов выделяем переходы и связываем их с состояниями.  Граф состояний – State machine diagram. Язык ООП «с расширениями». Названия состояний и переходов – на языке бизнеса. 27/43
  • 29. Практика применения DDD при разработке корпоративных приложений Часть 3. Учет – необъектная модель 29/43
  • 30. Бизнес-задача: учет остатков и потоков товаров, денег, других ресурсов  Исполнение документов изменяет учетные показатели.  Учетные показатели влияют на обработку документов и решения пользователей. Нужно в большинстве корпоративных систем, а не только в бухгалтерии. 30/43
  • 31. Примеры показателей и отчетов  Показатели: остатки и обороты в разрезе аналитик (товаров, клиентов): • остаток на складе по ответственным; • поступление товара за период; • поставка в магазины за месяц.  Отчеты содержат остатки и обороты совместно. Товар Было Пришло Ушло Стало Куртка К12-S 122 40 75 87 Куртка К15-M 187 50 90 147 … 31/43
  • 32. Язык предметной области Элементы учета: • синтетические счета и их аналитические признаки; • аналитические счета; • проводки; • показатели – остатки и обороты на счетах. Используется общая методология учета, а не конкретные правила бухгалтерского учета. 32/43
  • 33. Представление учетной модели Сложность объектного представления учета: • Нет идентификации единичного объекта. • Работа идет с показателями, текущее значение которых меняется. • Изменение числового значения может менять состояние с точки зрения принятия бизнес-решения. • Часто интерес представляют агрегаты, а не отдельные значения. Учетная модель – не объектная. Представление учета оказалось за рамками UML. Для него не придумано эффективного представления. 33/43
  • 34. Диаграммы учета – способ борьбы со сложностью учетной модели Наше ноу-хау 34/43
  • 35. Подробно о диаграммах учета  Презентация и видео «Диаграммы планов счетов – средство моделирования и проектирования учета» ЛАФ-2010 – http://lib.custis.ru/Accounting-diagrams  Презентация и статья «Учет ценных бумаг: Сделать сложное простым» SECR-2010 – http://lib.custis.ru/Simplify-security-accounting  Статья «Диаграммы учета: мост между бухгалтером и разработчиком» Журнал «Бухгалтер и компьютер» №5 (май) 2011 – http://lib.custis.ru/Когда_всем_понятно 35/43
  • 36. Диаграммы учета для бизнеса Бухгалтеры могут применять диаграммы учета для разработки учетной политики. Они нагляднее, чем Excel. 36/43
  • 37. Реализация учетной модели Модель позволяет построить шаблон для реализации. Есть Patterns for Accounting Мартина Фаулера – отражение учета в объектную реализацию: • учетные счета и проводки; • источник проводок – события. Наш метод У нас – более развитая реализация: • хранение аналитических признаков на счетах и проводках; • ведение остатков и оборотов учетных счетов; • ведение детальных и агрегированных показателей. Есть собственный язык описания – GL-XML. 37/43
  • 38. Представить реализацию бизнесу  Взгляд бизнеса: есть журнал хозяйственных операций, возникающих при обработке и проведении документов.  Реализация: проводки создаются по событиям (Event Sourcing, Фаулер), которые возникают в методах документов. Для прозрачной модели это должно совпадать: учетные события – суть хозяйственные операции. 38/43
  • 40. Единая модель системы Учетные Документы показатели Связь 40/43
  • 41. Единая модель системы Документы и справочники – диаграмма классов Учетные Документы показатели Учет – Документооборот – диаграмма учета диаграмма состояний Связь 41/43
  • 42. Почему DDD – эффективно? Единый язык + Единая модель:  позволяют эффективно развивать сложную систему;  обеспечивают понимание всем участникам проекта;  избавляют от поддержки нескольких моделей;  поддерживают итеративное проектирование и разработку;  применяются для разных парадигм моделирования. DDD не убирает системную сложность, а позволяет эффективно работать при ее наличии. 42/43