От монолитных моделей предметной области - к модульным (Максим Цепков на WIAD-2017)

Материал из MaksWiki
Перейти к: навигация, поиск
Доклад прочитан 18.02 на World Information Architecture Day-2017 в Петербурге
Программа встречи 
Анонс выступления в блоге
Презентация на slideshare
Видео начало 09:25

Доклад про построение моделей предметной области. 20 лет назад делали большие монолитные ERP, но сейчас нет сомнений, что гибкий и быстро развиваемый софт должен быть модульным, а объекты – инкапсулировать сложность. Тот же путь проходят системы понятий и модели, описывающие предметную область, и Domain-Driven Design перенес наследование, полиморфизм, инкапсуляцию, плагины и другие подходы к разработке софта на работу с онтологиями и моделями предметной области.

Краткое содержание

Use OOP for Domain Ontology - Tsepkov WIAD-2017.pdf
Use OOP for Domain Ontology - Tsepkov WIAD-2017.pdf
Use OOP for Domain Ontology - Tsepkov WIAD-2017.pdf

Цельная модель предметной области - идеалистичный миф прошлого

  • Приложения давно модульные, а модель предметной области часто хотят построить на общей непротиворечивой системе понятий
  • Это основано на убеждении, что существует непротиворечивая и целостная картина мира, которую мы можем не знать, но выясняем
  • Может быть, в мире идеальных объектов Платона и Декарта так и есть, но на практике целостная картина оказывается слишком жесткой

Разрабатывая Domain Driven Design, Эрик Эванс осознал эту проблему и предложил решение - Ограниченный контекст (bounded context) (Эрик Эванс. DDD. Часть IV «Стратегическое проектирование»)

  • Предметную область следует разделить на ограниченные контексты (bounded context)
  • Целостность удерживается за счет карты этих контекстов (context map)
  • Имена (понятия) включаются в единый язык
  • Для изоляции контекстов применяем те же подходы ООП, что и для разработки софта
  • Для работы с похожими контекстами тоже применяем подходы ООП

Эрик Эванс описывает конкретные шаблоны, на основе которых формулируется взаимодействие контекстов.

Но в докладе я не пересказывал книгу, а рассмотрел задачу построения контекстов для двух задач

  • Контексты для операционных документов - на примере оптовой торговли
  • Контексты для справочников - на примере каталога товаров

Отзывы

Подробное изложение Дмитрия Кудрявцева в отзыве на конференцию.

Вначале был интересный и непростой (полезно ещё дома пересматривать слайды) Maxim Tsepkov про разделение моделей предметных областей на отдельные контекстно-ориентированные фрагменты, в рамках которых обеспечивается непротиворечивость информации.

Доклад Максима напомнил мне про подобные идеи, заложенные в базе знаний CYC http://www.cyc.com/kb/: "The Cyc KB is divided into many (currently thousands of) “contexts” (or “microtheories”), each of which is essentially a collection of assertions that share a common set of assumptions; some microtheories are focused on a particular domain of knowledge, some a particular interval in time, some a particular level of detail, etc. The microtheory mechanism allows Cyc to independently maintain assertions which are prima facie contradictory, and enhances the performance of the Cyc system by focusing the inferencing process", подробнее тут http://www.cyc.com/wp-content/uploads/…/07/Microtheories.pdf

Понравился пример про контексты для каталога/справочников: "Одна классификация – удобно, но чью точку зрения брать за основу? - Закупающих товар (разделение по группам производства)? - Менеджеров по оптовым продажам (разделение по группам клиентов)? - Тех, кто размещает товар в магазине (разделение по тематике размещения)?" Перекликается с моими первыми шагами в науке http://raai.lgg.ru/resurs/papers/kii-2006/doklad/Kudryavtsev.doc :)

Особенно у Максима ценны связки с конкретными реализациями в стандартных системах (ERP, ...) в общем, такой контекстно-ориентированный подход кажется очень здравым.

Кстати, на эту тему даже отдельная конференция обнаружилась: International Workshop on Ontology Modularity, Contextuality, and Evolution (WOMoCoE 2016) http://iaoa.org/womocoe/2016/

Владимир Смирнов На заметку от Максим Цепков про убогость концепции единой модели и про переход к концепции карты контекстов.

Видео доклада

Начало 09:25

Презентация

Use OOP for Domain Ontology - Tsepkov WIAD-2017.pdf Use OOP for Domain Ontology - Tsepkov WIAD-2017.pdf Use OOP for Domain Ontology - Tsepkov WIAD-2017.pdf Use OOP for Domain Ontology - Tsepkov WIAD-2017.pdf Use OOP for Domain Ontology - Tsepkov WIAD-2017.pdf Use OOP for Domain Ontology - Tsepkov WIAD-2017.pdf Use OOP for Domain Ontology - Tsepkov WIAD-2017.pdf Use OOP for Domain Ontology - Tsepkov WIAD-2017.pdf Use OOP for Domain Ontology - Tsepkov WIAD-2017.pdf Use OOP for Domain Ontology - Tsepkov WIAD-2017.pdf Use OOP for Domain Ontology - Tsepkov WIAD-2017.pdf Use OOP for Domain Ontology - Tsepkov WIAD-2017.pdf Use OOP for Domain Ontology - Tsepkov WIAD-2017.pdf Use OOP for Domain Ontology - Tsepkov WIAD-2017.pdf Use OOP for Domain Ontology - Tsepkov WIAD-2017.pdf Use OOP for Domain Ontology - Tsepkov WIAD-2017.pdf Use OOP for Domain Ontology - Tsepkov WIAD-2017.pdf Use OOP for Domain Ontology - Tsepkov WIAD-2017.pdf Use OOP for Domain Ontology - Tsepkov WIAD-2017.pdf Use OOP for Domain Ontology - Tsepkov WIAD-2017.pdf Use OOP for Domain Ontology - Tsepkov WIAD-2017.pdf