Knowledge Discovery Metamodel
Encyclopedia
Knowledge Discovery Metamodel (KDM) is publicly available specification from the Object Management Group
Object Management Group
Object Management Group is a consortium, originally aimed at setting standards for distributed object-oriented systems, and is now focused on modeling and model-based standards.- Overview :...

 (OMG). KDM is a common intermediate representation for existing software systems and their operating environments, that defines common metadata
Metadata
The term metadata is an ambiguous term which is used for two fundamentally different concepts . Although the expression "data about data" is often used, it does not apply to both in the same way. Structural metadata, the design and specification of data structures, cannot be about data, because at...

 required for deep semantic integration
Semantic integration
Semantic integration is the process of interrelating information from diverse sources, for example calendars and to do lists; email archives; physical, psychological, and social presence information; documents of all sorts; contacts ; search results; and advertising and marketing relevance derived...

 of Application Lifecycle Management
Application Lifecycle Management
Application Lifecycle Management is a continuous process of managing the life of an application through governance, development and maintenance...

 tools. KDM was designed as the OMG's foundation for software modernization
Software modernization
Legacy Modernization, or Software modernization, refers to the conversion, rewriting or porting of a legacy system to a modern computer programming language, software libraries, protocols, or hardware platform...

, IT portfolio management and software assurance. KDM uses OMG's Meta-Object Facility
Meta-Object Facility
The Meta-Object Facility is an Object Management Group standard for model-driven engineering. The official reference page may be found at OMG's website.- Overview :...

 to define an XMI interchange format between tools that work with existing software as well as an abstract interface (API
Application programming interface
An application programming interface is a source code based specification intended to be used as an interface by software components to communicate with each other...

) for the next-generation assurance and modernization tools. KDM standardizes existing approaches to knowledge discovery
Knowledge discovery
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 data...

 in software engineering artifacts, also known as software mining
Software mining
Software mining is an 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 existing software is presented in the form of...

.

History of KDM

  • In November 2003, the OMG's Architecture-Driven Modernization Task Force recommended, and the Platform Technical Committee issued, the Knowledge Discovery Metamodel (KDM) RFP. The objective of this RFP was to provide a common repository structure to represent information about existing software assets and their operating environment. The goal of KDM was defined as exchanging information related to transformation of existing software assets. The RFP stated that KDM shall provide the ability to document existing systems, discover reusable components in existing software, support transformations to other languages and to MDA, or enable other potential transformations. The Knowledge Discovery Metamodel will also enable information about existing software artifacts to be exchanged among different tools. This will enable vendors that specialize on certain languages, platforms or types of transformations to deliver customer solutions in conjunction with other vendors.


  • Throughout 2004 and 2005 12 companies collaborated to prepare a joint response to the KDM RFP. More than 30 organizations from 5 countries have contributed to the development and review of the KDM specification.

  • In May 2006, the Team's submission -- the Knowledge Discovery Metamodel (KDM) -- moved into the finalization stage of the OMG's standards adoption process. The OMG adopted Specification for KDM became publicly available (OMG document ptc/06-06-07).

  • In March 2007 the KDM Finalization Task Force finished the finalization stage of the OMG's standards adoption process. The formal KDM specification KDM 1.0 is available from OMG (http://www.omg.org/spec/KDM/1.0/ KDM 1.0]).


Overview of KDM

The goal of KDM is to ensure interoperability between tools for maintenance, evolution, assessment and modernization. KDM is defined as a metamodel
Metamodeling
Metamodeling, or meta-modeling in software engineering and systems engineering among other disciplines, is the analysis, construction and development of the frames, rules, constraints, models and theories applicable and useful for modeling a predefined class of problems...

 that can be also viewed as an ontology
Ontology (computer science)
In computer science and information science, an ontology formally represents knowledge as a set of concepts within a domain, and the relationships between those concepts. It can be used to reason about the entities within that domain and may be used to describe the domain.In theory, an ontology is...

 for describing the key aspects of knowledge related to the various facets of enterprise software. KDM support means investment into the KDM ecosystem - a growing open-standard based cohesive community of tool vendors, service providers, and commercial components.

KDM represents entire enterprise software systems, not just code. KDM is a wide-spectrum entity-relationship representation for describing existing software. KDM represents structural and behavior elements of existing software systems. The key concept of KDM is a container: an entity that owns other entities. This allows KDM to represent existing systems at various degrees of granularity.

KDM defines precise semantic foundation for representing behavior, the so-called micro-KDM. It provides a high-fidelity intermediate representation which can be used, for example, for performing static analysis of existing software systems. micro-KDM is similar in purpose to a Virtual machine
Virtual machine
A virtual machine is a "completely isolated guest operating system installation within a normal host operating system". Modern virtual machines are implemented with either software emulation or hardware virtualization or both together.-VM Definitions:A virtual machine is a software...

 for KDM, although KDM is not an executable model, or a constraint model, but a representation of existing artifacts for analysis purposes.

KDM facilitates incremental analysis of existing software systems, where the initial KDM representation is analyzed and more pieces of knowledge are extracted and made explicit as KDM to KDM transformation performed entirely within the KDM technology space. The steps of the knowledge extraction process can be performed by tools, and may involve the analyst.

KDM is the uniform language- and platform- independent representation. Its extensibility mechanism allows addition of domain-, application- and implementation-specific knowledge.

Architecture of KDM

KDM packages are arranged into the following four layers:

Infrastructure Layer

The KDM Infrastructure Layer consists of the Core, kdm, and Source packages which provide a small common core for all other packages, the inventory model of the artifacts of the existing system and full traceability between the meta-model elements as links back to the source code of the artifacts, as well as the uniform extensibility mechanism. The Core package determines several of patterns that are reused by other KDM packages. Although KDM is a meta-model that uses Meta-Object Facility
Meta-Object Facility
The Meta-Object Facility is an Object Management Group standard for model-driven engineering. The official reference page may be found at OMG's website.- Overview :...

, there is an alignment between the KDM Core and Resource Description Framework
Resource Description Framework
The Resource Description Framework is a family of World Wide Web Consortium specifications originally designed as a metadata data model...

 (RDF).

Program Elements Layer

The Program Elements Layer consists of the Code and Action packages.
  • The Code package represents programming elements as determined by programming languages, for example data types, procedures, classes, methods, variables, etc. This package is similar in purpose to the Common Application Meta-model (CAM) from another OMG specification, called Enterprise Application Integration (EAI). KDM Code package provides greater level of detail and is seamlessly integrated with the architecturally significant views of the software system. Representation of datatypes in KDM is aligned with ISO standard ISO/IEC 11404 (see also General Purpose Datatypes
    General purpose datatypes
    ISO/IEC 11404, General Purpose Datatypes , are a collection of datatypes defined independently of any particular programming language or implementation...

    ).

  • The Action package captures the low level behavior elements of applications, including detailed control- and data flow between statements. Code and Action package in combination provide a high-fidelity intermediate representation of each component of the enterprise software system

Resource Layer

The Resource Layer represents the operational environment of the existing software system. It is related to the area of Enterprise Application Integration
Enterprise application integration
Enterprise Application Integration is defined as the use of software and computer systems architectural principles to integrate a set of enterprise computer applications.- Overview :...

 (EAI).
  • Platform package represents the operating environment of the software, related to the operating system, middleware, etc. including the control flows between components as they are determined by the runtime platform

  • UI package represents the knowledge related to the user interfaces of the existing software system

  • Event package represents the knowledge related to events and state-transition behavior of the existing software system

  • Data package represents the artifacts related to persistent data, such as indexed files, relational databases, and other kinds of data storage. These assests are key to enterprise software as they represent the enterprise metadata
    Metadata
    The term metadata is an ambiguous term which is used for two fundamentally different concepts . Although the expression "data about data" is often used, it does not apply to both in the same way. Structural metadata, the design and specification of data structures, cannot be about data, because at...

    . The KDM Data package is aligned with another OMG specification, called Common Warehouse Metamodel
    Common Warehouse Metamodel
    The Common Warehouse Metamodel defines a specification for modeling metadata for relational, non-relational, multi-dimensional, and most other objects found in a data warehousing environment...

     (CWM)

Abstractions Layer

The Abstraction Layer represents domain and application abstractions.
  • Conceptual package represent business domain knowledge and business rules, insofar as this information can be mined from existing applications. These packages are aligned with another OMG specification, called Semantics of Business Vocabulary and Business Rules
    Semantics of Business Vocabulary and Business Rules
    The Semantics of Business Vocabulary and Business Rules is an adopted standard of the Object Management Group intended to be the basis for formal and detailed natural language declarative description of a complex entity, such as a business...

     (SBVR)

  • Structure package describes the meta-model elements for representing the logical organization of the software system into subsystems, layers and components

  • Build package represents the engineering view of the software system

See also

  • Object Management Group
    Object Management Group
    Object Management Group is a consortium, originally aimed at setting standards for distributed object-oriented systems, and is now focused on modeling and model-based standards.- Overview :...

  • Software Metrics Metamodel
    Software Metrics Metamodel
    The Software Metrics Metamodel is publicly available specification from the Object Management Group . A SMM model describes how metrics can be extracted from a model. It also allows for metric reporting. It is developed by the Architecture Driven Modernization taskforce...

    is a metric specification that is based on the KDM

External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK