Без темы
<<  Наши друзья-витамины Нетрадиционная религиозность и образование в современной Беларуси  >>
Необъектные модели предметной области
Необъектные модели предметной области
О чем будет доклад
О чем будет доклад
Немного истории
Немного истории
DDD – эффективный способ проектирования
DDD – эффективный способ проектирования
Что такое DDD
Что такое DDD
DDD – проектирование по модели
DDD – проектирование по модели
Требования к модели
Требования к модели
Парадигмы построения моделей
Парадигмы построения моделей
Что есть парадигма моделирования на примере объектной модели…
Что есть парадигма моделирования на примере объектной модели…
Достоинства объектной модели
Достоинства объектной модели
Недостатки объектной модели
Недостатки объектной модели
Как отражать модель в реализацию
Как отражать модель в реализацию
Как сделать необъектную модель
Как сделать необъектную модель
Документооборот и State Entity
Документооборот и State Entity
Бизнес-задача – обобщенный документооборот
Бизнес-задача – обобщенный документооборот
Идея решения
Идея решения
Язык модели
Язык модели
Варианты шаблона реализации
Варианты шаблона реализации
Что выбрать
Что выбрать
Почему не иерархия состояний
Почему не иерархия состояний
Сравним модели…
Сравним модели…
Реализация на разных платформах
Реализация на разных платформах
Реализация на разных платформах
Реализация на разных платформах
Учет модель и реализация
Учет модель и реализация
Бизнес-задача: учет остатков и потоков товаров, денег, других ресурсов
Бизнес-задача: учет остатков и потоков товаров, денег, других ресурсов
Примеры показателей
Примеры показателей
Учетная модель – не объектная
Учетная модель – не объектная
Что входит в учетную модель
Что входит в учетную модель
Диаграммы учета
Диаграммы учета
Подробно о диаграммах учета
Подробно о диаграммах учета
Способ реализации учета
Способ реализации учета
Реализация учета – классы
Реализация учета – классы
Реализация учета разработчиком
Реализация учета разработчиком
А специальные учетные системы
А специальные учетные системы
Модель или иллюстрация
Модель или иллюстрация
Диаграмма – не всегда модель
Диаграмма – не всегда модель
ЗАКЛЮЧЕНИЕ (что я хотел сказать)
ЗАКЛЮЧЕНИЕ (что я хотел сказать)
Модель – основа взаимопонимания
Модель – основа взаимопонимания
Спасибо
Спасибо

Презентация на тему: «Необъектные модели предметной области». Автор: Максим Цепков. Файл: «Необъектные модели предметной области.ppt». Размер zip-архива: 2099 КБ.

Необъектные модели предметной области

содержание презентации «Необъектные модели предметной области.ppt»
СлайдТекст
1 Необъектные модели предметной области

Необъектные модели предметной области

Докладчик: Максим Цепков (M.Tsepkov@custis.ru) www.CUSTIS.ru

Опыт CUSTIS

2 О чем будет доклад

О чем будет доклад

DDD – эффективный способ проектирования Объектная модель предметной области – понятно ? Необъектная модель Зачем? И что это такое? Чем они полезны? Рассмотрим на примерах…

2/39

3 Немного истории

Немного истории

Объектная модель – не первая Реляционная модель – вместе с базами данных Функциональная модель (Lisp) Исчисление предикатов (Prolog) Объектная модель проработана в начале 90-x является основной в настоящее время Появляются новые и композитные модели Модель взаимодействующих лиц с обменом сообщениями (Erlang) Модель многомерных показателей (гиперкубов) В объектную модель добавляют другие парадигмы (LINQ) И так далее, идет активное развитие…

3/39

4 DDD – эффективный способ проектирования

DDD – эффективный способ проектирования

4/39

5 Что такое DDD

Что такое DDD

Концептуальная книга Эрика Эванса на английском – в 2003 г. на русском – только в 2010 г. Практическая книга Джимми Нильссона на английском – в 2006 г. на русском – в 2007 г. (почти сразу!) Для знакомства – можно смотреть материалы, ссылки, слайды и видеозапись тренинга Андрея Бибичева: http://lib.custis.ru/ddd-training

5/39

6 DDD – проектирование по модели

DDD – проектирование по модели

Строим модель предметной области, вырабатываем для этого единый язык Воспроизводим модель в архитектуре программы и коде – соответствие должно быть очевидным Модель предметной области становится моделью системы

6/39

7 Требования к модели

Требования к модели

Заказчик владеет единым языком и понимает модель без перевода Разработчик может реализовать модель в коде без дополнительного проектирования Модель можно проследить в бизнесе и в коде P.S. Аналитик тоже есть – он строит модель

7/39

8 Парадигмы построения моделей

Парадигмы построения моделей

8/39

9 Что есть парадигма моделирования на примере объектной модели…

Что есть парадигма моделирования на примере объектной модели…

Элементы единого языка для предметной области и способ их соединения в сложные конструкции Объекты с атрибутами и методами Визуальный образ для эффективного представления Диаграмма классов и другие диаграммы UML Способ отражения модели в реализацию Объекты в программе

9/39

10 Достоинства объектной модели

Достоинства объектной модели

? Соответствует парадигме современных языков ? Понятна разработчикам и аналитикам ? Имеет эффективные визуальное представление ? Соответствует реальному миру и понимается заказчиком – если проектировать бизнес-объекты

10/39

11 Недостатки объектной модели

Недостатки объектной модели

? Плохо представляет цикл жизни объекта ? Плохо подходит для отражения потоков ресурсов ? Плохо подходит для систем связанных показателей Если для области автоматизации эти аспекты важны, можно применять другие парадигмы

По опыту разработки корпоративных приложений

11/39

12 Как отражать модель в реализацию

Как отражать модель в реализацию

Язык, реализующий парадигму Framework, часто с диаграммами например, MS Workflow Foundation для реализации документооборота DSL, лучше графический, с компилятором или интерпретатором Диаграммы и понятия единого языка и шаблоны их отражения в реализацию

Если нет готового – приходится разрабатывать

Для сложных областей

12/39

13 Как сделать необъектную модель

Как сделать необъектную модель

Выбрать или придумать парадигму моделирования Объекты обмениваются сообщениями Ресурс выделяется действующим лицам Определить визуальный образ единого языка Диаграммы взаимодействия и синхронизации Образ разрезания пиццы Разработать правила отражения модели в код – иначе элементы модели не найти в реализации Лучше, если отражение будет по шаблонам

13/39

14 Документооборот и State Entity

Документооборот и State Entity

14/39

15 Бизнес-задача – обобщенный документооборот

Бизнес-задача – обобщенный документооборот

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

15/39

16 Идея решения

Идея решения

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

Шаблон State Entity

16/39

17 Язык модели

Язык модели

Структура документов – объектная модель Действие над документом – вызов метода Состояния документа и методы- переходы между ними, Граф состояний – State machine diagram Названия состояний и переходов – на языке бизнеса

UML

17/39

18 Варианты шаблона реализации

Варианты шаблона реализации

Из книги Нильссона Императивно в коде конкретных методов Императивно в едином методе смены состояния Декларативно – через таблицу переходов и состояний Через иерархию классов-состояний

18/39

19 Что выбрать

Что выбрать

Модель должна прозрачно отражаться в реализацию Используем декларативное описание (3) Или комбинацию (1) и (3): императивно изменяем состояние в методе перехода контролируем, что изменение соответствует декларативной разметке Таблица метаданных – декларативное описание – однозначно соответствует диаграмме состояний

19/39

20 Почему не иерархия состояний

Почему не иерархия состояний

Иерархия классов-состояний – в объектной модели Полнее выразить реализацию в диаграмме классов Но поведение документа – за рамками, оно только в графе переходов Поэтому для единого языка, понимаемого заказчиком – не подходит Реализация через метаданные Таблица переходов отражает поведение документа в коде И однозначно соответствует диаграмме переходов Диаграмма переходов понимается заказчиком – единый язык При этом иерархия состояний становится излишней Однако, реализация требует выхода из объектной модели

20/39

21 Сравним модели…

Сравним модели…

Модель

Это – лишнее

Диаграмма состояний

Диаграмма классов

21/39

22 Реализация на разных платформах

Реализация на разных платформах

Отдельный проект Инициализация таблицы переходов для каждого документа Общая функция проверки перехода для всех методов (вместе с логом) Таблица допустимых действий для каждого состояния (тоже с логом) Собственный объектный framework в Oracle Таблица переходов и прав в метаданных Вызов процедур-методов динамически с проверками

1998

22/39

23 Реализация на разных платформах

Реализация на разных платформах

Собственный ORM на C# Разметка методов метаданными – состояния, права Описание в метаданных графа состояний и условий Обработка на посткомпиляции при создании реализации

2008

Об описании графа и условий доклад Гребнева и Алексеева на ADD-2010 http://lib.custis.ru/217-Static-checking-with-DDD-add-2010

[Method(AutoSave = true)] [StateRestriction(RequestForShipmentState.New)] [StateTransition(RequestForShipmentState.New, RequestForShipmentState.Created)] [GrantInvocation(RmsRole.Manager)] public virtual void PrepareForShipment() { State = RequestForShipmentState.Created; ...

23/39

24 Учет модель и реализация

Учет модель и реализация

24/39

25 Бизнес-задача: учет остатков и потоков товаров, денег, других ресурсов

Бизнес-задача: учет остатков и потоков товаров, денег, других ресурсов

Исполнение документов изменяет учетные показатели – остатки и обороты в разрезе аналитик (товаров, клиентов) Учетные показатели влияют на обработку документов и решения пользователей Нужно в большинстве управленческих систем, а не только в бухгалтерии

25/39

26 Примеры показателей

Примеры показателей

Остаток на складе по ответственным Поступление товара за период Поставка в магазины за месяц

Куртка К12-S

122

40

75

87

Куртка К15-M

187

50

90

147

Товар

Было

Пришло

Ушло

Стало

26/39

27 Учетная модель – не объектная

Учетная модель – не объектная

Сложность объектного представления учета Нет идентификации единичного объекта Работа идет с показателями, текущее значение которых меняется Изменение числового значения может менять состояние с точки зрения принятия бизнес-решения Часто интерес представляют агрегаты, а не отдельные значения Представление учета оказалось за рамками UML И вообще эффективного представления ?

27/39

28 Что входит в учетную модель

Что входит в учетную модель

Элементы учета Синтетические счета и их аналитика Проводки Показатели – остатки и обороты Для представления учетной модели мы придумали Диаграммы учета Диаграммы показывают как проводки перемещают ресурсы по синтетическим счетам какая аналитика счетов по каким переходам исполняются проводки

28/39

29 Диаграммы учета

Диаграммы учета

Показывают, как отражается движение ресурсов в учете

29/39

30 Подробно о диаграммах учета

Подробно о диаграммах учета

К сожалению, подробного описания нет ? Есть выступления на конференциях ЛАФ-2010 – http://lib.custis.ru/Accounting-diagrams «Диаграммы планов счетов – средство моделирования и проектирования учета» SECR-2010 – http://lib.custis.ru/Simplify-security-accounting «Учет ценных бумаг – сделать сложное простым»

Презентация и видео

Презентация и статья

30/39

31 Способ реализации учета

Способ реализации учета

Есть Patterns for Accounting Мартина Фаулера – отражение учета в объектную реализацию учетные счета и проводки источник проводок – события У нас – более развитая реализация хранение аналитических признаков на счетах и проводках ведение остатков и оборотов учетных счетов ведение детальных и агрегированных показателей Есть собственный язык описания – GL-XML

Наш метод

31/39

32 Реализация учета – классы

Реализация учета – классы

Реализация учета выполняется по шаблону Классы и таблицы имеют стандартную структуру Она порождается по описанию на GL-XML Диаграмма классов – не интересна

32/39

33 Реализация учета разработчиком

Реализация учета разработчиком

Сделать реализацию по диаграмме учета – описать набор счетов, аналитику счетов и проводок Описать хранимые показатели Обеспечить создание проводок на учетных событиях – переходах документов, императивно или декларативно

GL-XML

GL-XML

33/39

34 А специальные учетные системы

А специальные учетные системы

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

Например, 1С

34/39

35 Модель или иллюстрация

Модель или иллюстрация

Эванс выделяет диаграммы – иллюстрации, не образующие модель

35/39

36 Диаграмма – не всегда модель

Диаграмма – не всегда модель

В процессе проектирования часто используют диаграммы, описывающие предметную область Когда диаграммы становятся моделью? Они входят в единый язык, их понимают разработчики Их можно сопоставить с реализацией, то есть кодом Проектирование реализации по диаграмме носит технический характер, часто это применение шаблона Иначе это не модель, а иллюстративные диаграммы

36/39

37 ЗАКЛЮЧЕНИЕ (что я хотел сказать)

ЗАКЛЮЧЕНИЕ (что я хотел сказать)

37/39

38 Модель – основа взаимопонимания

Модель – основа взаимопонимания

Используйте модели, понятные заказчику Шаблоны – способ перевода с языка модели в код Необъектные модели – эффективно, хотя непривычно Программисты – умные и поймут незнакомые модели!

38/39

39 Спасибо

Спасибо

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

39/39

«Необъектные модели предметной области»
http://900igr.net/prezentacija/doshkolnoe-obrazovanie/neobektnye-modeli-predmetnoj-oblasti-169971.html
cсылка на страницу
Урок

Дошкольное образование

34 темы
Слайды
900igr.net > Презентации по дошкольному образованию > Без темы > Необъектные модели предметной области