BORO

BORO (Business Objects Reference Ontology) — метод построения онтологий, разработанный Крисом Партиджем (Chris Partridge) в середине 1990-х для решения задачи реорганизации существующих информационных систем в информационные модели.

BORO завоевал популярность благодаря своей простоте и непритязательности. На основе BORO разработана такая известная библиотека онтологий, как IDEAS.

BORO представляет собой набор принципов и правил для упрощения процесса реинженерии. В отличии от обычного инженерного процесса моделирования, здесь моделирование производится на основе существующей концептуальной схемы реорганизуемой программной системы.

Сущностные и объектные модели

BORO предлагает перейти от традиционного подхода к описанию системы как совокупности сущностей (entities) и их свойств (attributes) к объектному. Сущностная парадигма формализована Аристотелем (см. Субстанциализм) и укоренилась после изобретения письменности, поскольку сущности и свойства удобно записывать в табличном виде. У компьютерных технологий нет таких ограничений, как у двухмерной бумаги. Информацию можно хранить гораздо большим количеством способов, чем просто строки и столбцы. Вместо сущностной предлагается объектная парадигма (физические объекты, классы и отношения).

Объектная парадигма позволяет создавать значительно более компактные модели. При этом с увеличением масштаба и функциональности системы сложность и размер модели не увеличивается, поскольку добавление новых деталей в модель будет приносить дополнительные возможности для её уплотнения, обобщения и упрощения.

Increases in scope.png

Сущности, обладающие одними и теми же свойствами считаются принадлежащими одному понятию-классу. BORO методология адресована к проблеме правильного выделения классов. Для этого необходимо проделать следующее:

  1. Выделить сущности (индивиды) предметной области. Выделение производится на основе главного критерия — пространственновременной протяженности. Считается, что любой индивид существует на основе субстанции (в Аристотелевском смысле), выражающейся в пространственной или временной протяженности.
  2. Выделить классы. Любой объект концептуальной схемы, не обладающий пространственной и временной протяженностью, рассматривается как не индивидуальная сущность. Но не каждый такой объект представляет собой класс.
  3. Выделить отношения между элементами предметной области. Отношения — это сущности, не имеющие пространственно-временной протяженности и не имеющие экземпляров.

На основе указанных выше принципов предлагает следующий алгоритм:

BOROalgorithm.png

Компоненты BORO

Метод BORO состоит из двух компонентов:

  • Базовая онтология (Foundational ontology);
  • Методология реинжиниринга (Re-engeneering Methodology).

Базовая онтология

BORO - это категорическая (categorical) базовая онтология, т.е. антология, в которой эти категории верхнего уровня разобщены и образуют полное разделение всего существующего. Любой объект должен быть экземпляром одной и только одной категории верхнего уровня.

Категории верхнего уровня BORO:

  • Элементы (Elements) — отдельные объекты, идентичность которых определяется пространственно-временной протяженностью (или 4D-экстентом) элемента, т.е. пространством и временем, которое он занимает. BORO упрощает вещи, полагая, что материя и пространство-время идентичны — (суперсубъективизм по Sklar, 1974; Schaffer, 2009). Пример - человек Вася.
  • Типы (Types) — коллекции любого типа объектов (другими словами, объектов любой из трех категорий верхнего уровня). В BORO Типы играют ту же роль, что и области (universals) в других базовых онтологиях. Пример - Люди - тип, в который входят все люди, в т.ч. Вася.
  • Кортежи (Tuples) — это отношения между двумя и более объектами. Объект является кортежем, если у него есть места. Например (Вася, Петя) - кортеж, в котором элементы Вася и Петя занимают 1 и 2 места соответственно. Кортежи могут быть собраны в типы, называемые кортеж типа (tuple type). Например parentOf - совокупность всех взаимосвязей между родителями и их детьми.

Методология реинжиниринга

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

Задачу реорганизации (реинженеринг) существующей информационной системы можно условно разделить на две стадии:

  1. Обратная инженерия (reverse engineering). На этой стадии анализируется существующая система. Из кода и данных выделяются бизнес объекты и производится их документирование. Таким образом, производственный процесс, который ведется на данной стадии, идет в противоположном направлении, нежели тот, что производился при разработке данной системы.
  2. Прямая инженерия (forward engineering). На данной стадии, на основе построенной на предыдущей стадии бизнес-модели существующей системы, производится проектирование более тонкой архитектуры новой информационной системы, которая призвана заменить старую. Этот процесс уже представляет собой обычную инженерную деятельность, состоящую в осознании концептуальной схемы данной задачи.

Ссылки