Как понимать: -driven, -based, -oriented, -centric

В инженерии существует устойчивая практика категоризовать подходы с использованием суффиксов -driven, -based, -oriented, -centric и нескольких иных. Однако, строго определения, объяснения различий и семантик найти пока не удалось. При том, что часть терминов, построенных с использованием этих суффиксов более или менее чётко определены (например, в документах OMG или INCOSE), вполне возможно, что сами суффиксы, как семантические элементы существуют в качестве коллоквиальных эвристик, наивно используемых терминологических декораторов, а не часть некоего стандарта наименования.

Попытки что-то как-то разграничить предпринимались, но систематичности в них всё ещё недостаточно:
https://www.ppi-int.com/newsletter/SyEN-046.php#definitions
https://enterprisecraftsmanship.com/2015/11/19/domain-centric-vs-data-centric-approaches-to-software-development/
https://modeling-languages.com/clarifying-concepts-mbe-vs-mde-vs-mdd-vs-mda/
http://simulation.su/uploads/files/default/2013-mittal-martin.pdf
https://ailev.livejournal.com/1015692.html

Также, такая ситуация предполагает наличие различных точек зрения на эти семантики, как и полное смешение смыслов в тех или иных ситуациях использования.

Ниже приводится попытка чётко определить семантики использования суффиксов с привязкой к метаклассам систем, традиционным для современной системной инженерии. Предполагается, что задача категоризации с помощью данных суффиксов — различать подходы к построению систем по ключевым сущностям и методам, используемым в целевых и обеспечивающих системах. При том, что в речевом сообществе (speech community) с людьми разных взглядов и разнообразными практиками жёстко закрепить какую-то семантику достаточно сложно, смысл таковой установки для отдельных специалистов — как минимум в ответственном использовании терминов, чтобы на вопрос «а что вы имеете ввиду под N-driven M» был внятный ответ, согласованный с симметричными конструкциями.

В формуле N-предикат M, M — это обычно некая практика: engineering, architecture (в смысле архитектурная работа), или просто approach — подход как совокупность практик.

Предикат Определение Вопрос Примеры
based N — основной материал, используемый для построения целевой системы. Что используем для получения результата? Model-based: берём модели, превращаем в практики.
Document-based: берём документы, превращаем в инженерные системы.
Text-based: для построения предиктивных моделей берём текст, а не, например, геометрические вектора.
oriented N — то, что мы пытаемся собрать, как целевую систему Что хотим получить? Object-oriented: берём средства функционального (function-based) или структурного программирования (structure-based) и пытаемся хитрыми способами эмулировать объектное, с его «инкапсуляцией», «наследованием» и пр. концептами. Или сразу пишем на объектном языке (object-based), где объект — это сущность первого класса, поддерживаемое синтаксом языка и виртуальной машиной, а не что-то собираемое из иного материала.
centric N — основной метод целевой системы Как хотим получить? Data-centric: целевая система всё что угодно превращает в «данные» для «обработки», т.е. класс операций и соответствующие представления целевой системы «центрируют» всё остальное.
Domain-centric: целевая система опирается на представления и операции предметной области. Даёшь ей текст (text-based), она его переваривает в терминах доменной модели (специализированные операции), а не просто численные данные (data-centric, более общие операции и представления).
Language-centric: используем языковые модели, а не, например, физические.
driven N-основной метод, используемый для построения целевой системы; основной материал конструирующей или обеспечивающей системы Чем обеспечиваем получение? Как понимаем получение?

Model-driven: думаем в моделях, но работаем, например, с документами (document-based), в результате получаем практики или инженерные системы.
Policy-driven: думаем в терминах политик, работаем с процессами (process-based), пытаемся получить рабочую административную структуру (administration-oriented).

Перевод английских терминов на русский с сохранением удобного синтаксиса — отдельная проблема. Например, в силу сложности с подбором адекватного и удобного варианта перевода «-based» также переводят, как «-ориентированный». Что для данной схемы является коллизией. Можно рекомендовать следующий вариант, как уже более или менее адаптированный:
-based: -зависимый, -основанный, -использующий
-oriented: -ориентированный
-centric: -центричный
-driven: -ведомый, -управляемый

1 комментарий

  1. 2019-01-25

    […] Как понимать: -driven, -based, -oriented, -centric […]

Добавить комментарий