на главную поиск и карта сайта отправить сообщение

ГК «Константа»

InfoDesigner

InfoDesignerWeb

новая версия сайта

Контактная информация

+7 (495) 229-85-42

 

Система управления информационным пространством InfoDesigner

версия для печати

О метамоделировании

 

История термина

 

Это слово не совсем обычное. Оно активно используется в англоязычных текстах в целой серии значений со множеством смысловых оттенков. И все эти значения любопытны, так как включают в себя элемент мистической, но бесспорной возможности получить необходимое решение в общем виде, добраться до сути, воплотить идеальные представления об организации данных в нечто материальное и работающее. 15 лет назад смысл этого термина был более прозрачным. Его использовал узкий круг людей, работающих в самых разных областях — самолётостроении, химической промышленности, программировании, управлении и автоматизации бизнеса. Эти люди вдруг осознали, что занимаются одним и тем же видом деятельности — созданием точного формального описания некоторой предметной области. Необходимо было решать насущные проблемы, связанные с преодолением сложности — сложности конструирования и моделирования самолётов, сложности организации данных, сложности управления многоуровневой и активно растущей организацией, сложности классификации и структуризации огромного архива взаимосвязанных фактов. Описания строились с целью автоматизировать или упростить тот или иной аспект деятельности; навести порядок, структурировать, но сохранить определённый уровень гибкости и расширяемости. Общее накопившееся желание было сделать это раз и навсегда, чтобы никогда больше не возвращаться к вопросу реорганизации и переделки. Метамоделирование долгое время имело ряд других имён — семантическое моделирование, описание на основе расширенной схемы, просто описание или формализация предметной области.

 

Метамоделирование в примерах

 

Для начала приведём короткие определения.

 

Метамоделирование — это процесс создание метамоделей.

 

Метамодели — это средства построения моделей (например, формальные языки или графические нотации для описания структуры классов, свойств и связей).

 

Модели — это описание структуры данных (например, информация о том какие есть свойства и связи между объектами).

 

Данные — это множество простейших единиц информации, которые касаются не абстрактных, а конкретных сущностей (например, значение определённого свойства определённого элемента).

 

Метамоделирование в примерах

 

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

 

Надежды, возлагаемые на метамоделирование

 

«Лучше день потерять, а потом за пять минут долететь» — так коротко можно выразить основную надежду, возлагаемую на метамоделирование. Надежда заключается в том, что метамоделирование позволит нам летать — быстро и в общем случае решать возникающие проблемы и легко расширять систему. Также есть вполне обоснованная надежда, что моделирование позволит сделать данные более семантически насыщенными, явно выразить (формально описать) скрытую семантику структуры данных. Эти свойства необходимы для расширения возможностей интерпретации данных компьютерными программами. Семантика — это волшебное слово, непосредственно связанное с метамоделированием. Оно означает скрытое (в обычных базах данных) смысловое значение данных. Введя отношения «friend», «sister», «parent»… мы ничего не написали про их смысл. И хоть компьютер стал «понимать», что такие отношения есть, и они устанавливаются между экземплярами класса «man», он всё же знает про них не всё. Возможно, есть ещё кое-что, во что мы хотели бы посвятить компьютер? Нет, мы не хотим, чтобы компьютер был как человек и разбирался во всех тонкостях человеческих отношений. И нам не нужен искусственный интеллект с мощью естественного интеллекта.

 

Но кое-чему научить компьютер хочется. На практике возникают хитрые задачи, где семантика играет ключевую роль: анализ кредитной истории, анализ неисправностей в машине, анализ и классификация текстов на естественном языке, принятие решений по управлению бизнесом — при автоматизации решений этих задач естественным образом всплывает необходимость описывать очень сложные и тонкие вещи. Более того, описав их, нужно суметь построить автоматическую систему, использующую эти данные. И здесь пригодится гибкость, расширяемость и глубина описания данных, достигаемая при метамоделировании.

 

Почему метамоделирование такое популярное?

 

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

 

Метамоделирование — это способ обобщения решений и возможностей.

 

Решая проблему, лучше решить её не в частном, а в общем случае. Трудозатрат будет несколько больше, но в перспективе это окупится с лихвой. Добавляя в систему какую-то возможность, лучше постараться её обобщить и добавить в систему не специальную единичную фичу, а принципиально расширить класс возможностей. Будьте уверены — они понадобятся в будущем. Безусловно, увлекаться поиском универсальных и общих решений не нужно. Как и везде, здесь достигается разумный баланс между универсальными сложными и простыми частными решениями. Раньше, когда задавали вопрос «А нужна ли настолько многоуровневая модель данных?», ответ был неоднозначен. Модель, безусловно, нужна. Но программ, работающих на надлежащем уровне — на уровне метамодели — не было. Софт, теория и технологии метамоделирования не были развиты. Но сегодня ситуация изменилась, и ответ на вопрос однозначен: «Метамоделируйте на здоровье! Вот вам софт, а вот тщательно продуманная парадигма.»

 

Во-вторых, метамоделирование — это фундаментальный, давно известный принцип, описанный и используемый в философии, математике, естествознании, который просто получил новое имя и обрёл новую жизнь. Метамоделирование всегда являлось основой всякого рода интеграции и обобщения (даже если этот термин явно не использовался). Сегодня метамоделирование стало важным шагом при решении задач интеграции бизнеса и данных, создании долгоживущих, сложных, расширяемых систем.

 

Рассмотрим два важных свойства, относящихся к математике и философии, на которых базируется метамоделирование.

 

Замкнутость.

Замкнутость означает, что осуществляя действия в выбранной формальной модели, мы не выйдем за её пределы и нам не встретятся неформализуемые (неописываемые) объекты.

 

Полнота.

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

 

Перспективы

 

Выражения «metamodel-driven software» сейчас уже воспринимается как единственный путь достижения нужного уровня расширяемости (адаптивности), универсальности (общности). Термин метамоделирование встречается в сочетании с программами автоматизации бизнеса, компьютерными технологиями и в индустрии. И приятно, что метамоделирование обещает не только функциональные, но и дешёвые решения. Дорогие и сомнительные удовольствия уже не прельщают современных бизнесменов. Путь внедрения технологий метамоделирования в бизнесе не только обозначен, но и в значительной степени пройден. Остаётся только ждать, когда плод дозреет и будет готов к употреблению.

 

Данная информация публикуется по материалам Википедии.

 

От разработчиков: плод созрел и готов к употреблению, приглашаем на дегустацию.

Copyright © 2005-2011 ГК «Константа». Система InfoDesigner. Система InfoDesignerWeb. Все права защищены.

Участник проекта CMS Magazine