Knowledge Discovery Metamodel


Knowledge Discovery Metamodel
Para otros usos de este término, véase KDM (desambiguación).

Knowledge Discovery Metamodel (en español "Metamodelo de Descubrimiento de Conocimiento") es una especificación públicamente accesible del Object Management Group (OMG), diseñada para ser la base de la iniciativa Architecture Driven Modernization (ADM) del OMG.

KDM provee una representación común intermedia para los sistemas software existentes y sus entornos operativos. Es una representación compatible, e independiente de la plataforma y lenguaje de programación. KDM es un meta-modelo MOF, que define un formato de intercambio XMI entre herramientas que trabajan con software existente, y define una API sobre la que poder construir herramientas de nueva generación de modernización y aseguramiento del software.


Contenido

Conceptos clave

Los conceptos clave de KDM son:

  • KDM es un modelo MOF
  • KDM es un modelo entidad-relación
  • KDM define una ontología para describir sistemas software existentes
  • KDM puede ser extendido para capturar entidades y relaciones específicas del lenguaje, aplicación e implementación
  • KDM define múltiples jerarquías de entidades vía contenedores y grupos
  • Los modelos KDM se pueden componer (es posible agrupar varias entidades en un contenedor tipado, que en adelante representará la colección entera de entidades agrupadas mediantes relaciones agregadas
  • El analista es capaz de refactorizar el modelo (por ejemplo moviendo entidades entre contenedores) y mapear cambios en el modelo a cambios en el software a través de enlaces de trazabilidad
  • KDM está alineado con el estándar ISO/IEC 11404 Language-Independent Datatypes and SBVR


KDM

Usualmente, el conocimiento obtenido de software existente, es presentado en forma de modelos sobre los que podemos realizar consultas. La "entidad-relación" es un formato frecuente en que representar el conocimiento obtenido del software existente. KDM define una ontología para los activos software y sus relaciones, con el propósito de realizar descubrimiento de conocimiento en código existente.

KDM estandariza aproximaciones existentes de descubrimiento de conocimiento en artefactos de ingeniería del software, también conocido como "software mining".

El propósito de KDM es asegurar la interoperabilidad entre herramientas para el mantenimiento, la evolución, evaluación y modernización. KDM es definido como un meta-modelo que puede ser visto también como una ontología para describir los aspectos clave del conocimiento relacionado con las varias facetas del software de empresa.

Apoyar KDM significa invertir en el ecosistema KDM: una comunidad cohesiva basada en estandares abiertos y en crecimiento, de vendedores de herramientas, proveedores de servicios, y componentes comerciales.

KDM es capaz de representar sistemas software empresariales completos, no solo código. KDM es una representación "entidad-relación" de amplio espectro, que describe el software existente. KDM representa elementos estructurales y de comportamiento de sistemas software existentes. El concepto clave de KDM es el contenedor: una entidad que posee otras entidades. Esto permite a KDM representar sistemas existentes en varios niveles de granularidad.

KDM define una precisa base semántica para representar el comportamiento, llamada micro-KDM. Esta provee una representación intermedia de gran fidelidad, que puede ser usada, por ejemplo, para realizar análisis estático de sistemas software existentes. Micro-KDM puede ser visto como una máquina virtual de KDM, aunque KDM no es un modelo ejecutable, o un modelo de restricciones, sino una representación de artefactos existentes, con fines analíticos.

KDM facilita el análisis incremental de los sistemas software existentes, donde la representación inicial de KDM es analizada, y más piezas de conocimiento son extraidas y hechas explícitas, conforme las transformaciones KDM a KDM, completamente realizadas en el espacio tecnológico de KDM. Los pasos del proceso de extracción de conocimiento, pueden ser realizados por herramientas, y pueden involucrar al analista.

KDM es una representación independiente de lenguaje y plataforma. Sus mecanismos de extensibilidad permiten añadir conocimiento específico de dominio, aplicación e implementación.


Arquitectura

Los paquetes KDM están organizados en las siguientes cuatro capas:


Capa de infraestructura

consiste en los paquetes Core, KDM y Source; que proveen un pequeño núcleo común para los demás paquetes, el inventario de modelos de artefactos de los sistemas existentes con total trazabilidad entre los elementos del meta-modelo en forma de enlaces al código fuente de los artefactos, así como el mecanismo uniforme de extensibilidad. El paquete Core determina varios de los patrones que son utilizados por otros paquetes KDM. Aunque KDM utiliza MOF, hay una alineación entre el núcleo de KDM y el Resources Description Framework (RDF).

Capa de elementos de programa

La capa de elementos de programa consiste en los paquetes Code y Action.

El paquete Code representa los elementos de programación determinados por los lenguajes de programación, por ejemplo los tipos de datos, procedimientos, clases, métodos, variables, etc. El propósito de este paquete es similar al Common Application Meta-model (CAM), perteneciente a otra especificación del OMG llamada Enterprise Application Integration (EAI). El paquete Code de KDM provee un nivel más elevado de detalle, y se integra impecablemente con las vistas arquitecturalmente significativas del sistema software. La representación de tipos de datos en KDM está alineada con el estándar ISO/IEC 11404.

El paquete Action captura los elementos de comportamiento de bajo nivel de las aplicaciones, incluyendo los flujos detallados de control y datos entre declaraciones. Los paquetes Code y Action, en combinación, proveen una representación intermedia fiel de cada componente del sistema software empresarial.

Capa de recursos

La capa de recursos representa el entorno operacional de los sistemas software existentes. Está relacionada con el área de la Enterprise Application Integration (EAI).

El paquete Platform representa el entorno operativo del software, relacionado con el sistema operante, el middleware, etc. incluyendo el flujo de control entre componentes tal como son determinados por la plataforma runtime.

El paquete UI representa el conocimiento relacionado con las interfaces de usuario de los sistemas software existentes.

El paquete Event representa el conocimiento relacionado con los eventos y comportamiento de las transiciones de estado de los sistemas software existentes.

El paquete Data representa los artefactos relacionados con los datos persistentes, tales como ficheros indexados, bases de datos y otros tipos de almacenes de datos. Estos activos son clave para el software empresarial, ya que representan los metadatos empresariales. El paquete KDM está alineado con otra especificación del OMG, llamada Common Warehouse metamodel (CWM).

Capa de abstracciones

La capa de abstracciones representa las abstracciones de dominio y aplicación.

El paquete Conceptual representa el conocimiento del dominio del negocio y las reglas de negocio, en la medida en que esta información puede ser extraida de aplicaciones existentes. Estos paquetes están alineados con otra especificación del OMG, llamada Semantics of Business Vocabulary and Business Rules (SBVR).

El paquete Structure describe los elementos del meta-modelo para representar la organización lógica del sistema software en subsistemas, capas y componentes.

El paquete Build representa la vista "ingenieril" del sistema software.

Enlaces


Wikimedia foundation. 2010.

Mira otros diccionarios:

  • Knowledge Discovery Metamodel — (KDM) is publicly available specification from the Object Management Group (OMG). KDM is a common intermediate representation for existing software systems and their operating environments, that defines common metadata required for deep semantic… …   Wikipedia

  • Knowledge discovery — is a concept of the field of computer science that describes the process of automatically searching large volumes of data for patterns that can be considered knowledge about the data. It is often described as deriving knowledge from the input… …   Wikipedia

  • Software modernization — is the process of understanding and evolving existing software assets. [cite book| author=Object management Group| title=Why do we need standards for the modernization of existing systems| url= http://www.kdmanalytics.com/kdm/ADM… …   Wikipedia

  • Architecture Driven Modernization — is the name of the initiative of the Object Management Group (see [http://adm.omg.org/ OMG ADM Task Force website] ) related to extending the modeling approach to the existing software systems. Existing (or legacy ) software has been one of… …   Wikipedia

  • Software mining — is a promising application of knowledge discovery in the area of software modernization which involves understanding existing software artifacts. This process is related to a concept of reverse engineering. Usually the knowledge obtained from… …   Wikipedia

  • Object Management Group — Formation 1989 Headquarters Needham, Massachusetts Website …   Wikipedia

  • Semantics of Business Vocabulary and Business Rules — The Semantics of Business Vocabulary and Business Rules (SBVR) is an adopted standard of the Object Management Group (OMG) intended to be the basis for a formal and detailed natural language declarative description of a complex entity, such as a… …   Wikipedia

  • Model-driven architecture — (MDA) is a software design approach for the development of software systems. It provides a set of guidelines for the structuring of specifications, which are expressed as models. Model driven architecture is a kind of domain engineering, and… …   Wikipedia

  • Model driven architecture — L’architecture dirigée par les modèles ou MDA (pour l Anglais Model Driven Architecture) est une démarche de réalisation de logiciels, proposée et soutenue par l OMG. C est une variante particulière de l ingénierie dirigée par les modèles (IDM,… …   Wikipédia en Français

  • Reverse engineering — is the process of discovering the technological principles of a device, object, or system through analysis of its structure, function, and operation. It often involves taking something (e.g., a mechanical device, electronic component, software… …   Wikipedia


Compartir el artículo y extractos

Link directo
Do a right-click on the link above
and select “Copy Link”

We are using cookies for the best presentation of our site. Continuing to use this site, you agree with this.