В ноябре 2003 года целевая группа OMG по архитектурно-ориентированной модернизации рекомендовала, а технический комитет платформы выпустил запрос предложений по метамодели обнаружения знаний (KDM). Целью этого запроса предложений было предоставление общей структуры репозитория для представления информации о существующих программных активах и их операционной среде. Цель KDM была определена как обмен информацией, связанной с преобразованием существующих программных активов . В запросе предложений указывалось, что KDM должна предоставлять возможность документировать существующие системы, обнаруживать повторно используемые компоненты в существующем программном обеспечении, поддерживать преобразования в другие языки и в MDA или обеспечивать другие потенциальные преобразования. Метамодель обнаружения знаний также позволит обмениваться информацией о существующих программных артефактах между различными инструментами. Это позволит поставщикам, которые специализируются на определенных языках, платформах или типах преобразований, предоставлять решения для клиентов совместно с другими поставщиками.
Оригинальный запрос предложений KDM доступен для скачивания членам OMG. [1]
В течение 2004 и 2005 годов 12 компаний сотрудничали для подготовки совместного ответа на запрос предложений KDM. Более 30 организаций из 5 стран внесли свой вклад в разработку и рассмотрение спецификации KDM.
В мае 2006 года представление Команды — Knowledge Discovery Metamodel (KDM) — перешло в стадию завершения процесса принятия стандартов OMG. Принятая OMG Спецификация для KDM стала общедоступной (документ OMG ptc/06-06-07).
В марте 2007 года рабочая группа по завершению KDM завершила этап завершения процесса принятия стандартов OMG. Формальная спецификация KDM KDM 1.0 доступна на сайте OMG. [2]
Последняя версия спецификации была завершена в июле 2011 года, что делает KDM 1.3 самой последней версией.
KDM Analytics поддерживает открытый портал для новостей KDM, справочных и образовательных материалов и инструментов [3]
Обзор
Целью KDM является обеспечение взаимодействия между инструментами для обслуживания, развития, оценки и модернизации. KDM определяется как метамодель , которую также можно рассматривать как онтологию для описания ключевых аспектов знаний, связанных с различными аспектами корпоративного программного обеспечения. Поддержка KDM означает инвестиции в экосистему KDM — растущее сплоченное сообщество поставщиков инструментов, поставщиков услуг и коммерческих компонентов на основе открытых стандартов.
KDM представляет целые корпоративные программные системы, а не только код. KDM — это широкое представление сущности-связи для описания существующего программного обеспечения. KDM представляет структурные и поведенческие элементы существующих программных систем. Ключевая концепция KDM — контейнер : сущность, которая владеет другими сущностями. Это позволяет KDM представлять существующие системы на различных уровнях детализации.
KDM определяет точную семантическую основу для представления поведения, так называемого микро-KDM . Он обеспечивает высокоточное промежуточное представление , которое может использоваться, например, для выполнения статического анализа существующих программных систем. Микро-KDM по своему назначению аналогичен виртуальной машине для KDM, хотя KDM не является исполняемой моделью или моделью ограничений, а представляет собой представление существующих артефактов для целей анализа.
KDM облегчает инкрементальный анализ существующих программных систем, где анализируется начальное представление KDM и извлекаются дополнительные фрагменты знаний, которые становятся явными, поскольку преобразование KDM в KDM выполняется полностью в технологическом пространстве KDM. Этапы процесса извлечения знаний могут выполняться инструментами и могут включать аналитика.
KDM — это единое представление, независимое от языка и платформы. Его механизм расширяемости позволяет добавлять знания, специфичные для домена, приложения и реализации.
Архитектура
Пакеты KDM организованы в следующие четыре слоя:
Уровень инфраструктуры
Уровень инфраструктуры KDM состоит из пакетов Core , kdm и Source , которые обеспечивают небольшое общее ядро для всех других пакетов, модель инвентаризации артефактов существующей системы и полную прослеживаемость между элементами метамодели в виде ссылок на исходный код артефактов, а также единый механизм расширяемости. Пакет Core определяет несколько шаблонов, которые повторно используются другими пакетами KDM. Хотя KDM является метамоделью, использующей Meta-Object Facility , существует соответствие между ядром KDM и Resource Description Framework (RDF).
Слой элементов программы
Уровень программных элементов состоит из пакетов кода и действий.
Пакет Code представляет элементы программирования, определенные языками программирования, например, типы данных, процедуры, классы, методы, переменные и т. д. Этот пакет по своему назначению аналогичен Common Application Meta-model (CAM) из другой спецификации OMG, называемой Enterprise Application Integration (EAI). Пакет KDM Code обеспечивает более высокий уровень детализации и бесшовно интегрируется с архитектурно значимыми представлениями программной системы. Представление типов данных в KDM соответствует стандарту ISO ISO/IEC 11404 (см. также General Purpose Datatypes ).
Пакет действий фиксирует низкоуровневые элементы поведения приложений, включая подробный поток управления и данных между операторами. Код и пакет действий в сочетании обеспечивают высокоточное промежуточное представление каждого компонента корпоративной программной системы
Уровень ресурсов
Уровень ресурсов представляет собой операционную среду существующей программной системы. Он относится к области интеграции корпоративных приложений (EAI).
Пакет платформы представляет собой операционную среду программного обеспечения, связанную с операционной системой, промежуточным программным обеспечением и т. д., включая потоки управления между компонентами, определяемые платформой выполнения.
Пакет пользовательского интерфейса представляет собой знания, связанные с пользовательскими интерфейсами существующей программной системы.
Пакет событий представляет собой знания, связанные с событиями и поведением перехода состояний существующей программной системы.
Пакет данных представляет артефакты, связанные с постоянными данными, такими как индексированные файлы, реляционные базы данных и другие виды хранения данных. Эти активы являются ключевыми для корпоративного программного обеспечения, поскольку они представляют корпоративные метаданные . Пакет данных KDM соответствует другой спецификации OMG, называемой Common Warehouse Metamodel (CWM)
Слой абстракций
Уровень абстракции представляет собой абстракции предметной области и приложения.