Kermeta
   HOME

TheInfoList



OR:

Kermeta is a modeling and programming language for
metamodel A metamodel or surrogate model is a model of a model, and metamodeling is the process of generating such metamodels. Thus metamodeling or meta-modeling is the analysis, construction and development of the frames, rules, constraints, models and ...
engineering.


History

The Kermeta language was initiated by Franck Fleurey in 2005 within th
Triskell
team of
IRISA The is a joint computer science research center of CNRS, University of Rennes 1, ENS Rennes, INSA Rennes and Inria, in Rennes in Brittany. It is one of the eight Inria research centers. Created in 1975 as a spin-off of the University of Renn ...
(gathering researchers of the
INRIA The National Institute for Research in Digital Science and Technology (Inria) () is a French national research institution focusing on computer science and applied mathematics. It was created under the name ''Institut de recherche en informatiq ...
, CNRS,
INSA The Intelligence and National Security Alliance (INSA) is a non-profit, nonpartisan 501(c)(6) professional organization based in Arlington Virginia for public and private sector members of the United States Intelligence Community. History ...
and the
University of Rennes The University of Rennes is a public research university which will be officially reconstituted on 1 January 2023 and located in the city of Rennes, in Upper Brittany, France. The University of Rennes has been divided for almost 50 years, before ...
1). The Kermeta language borrows concepts from languages such MOF, OCL and
QVT QVT (Query/View/Transformation) is a standard set of languages for model transformation defined by the Object Management Group. Overview Model transformation is a key technique used in model-driven architecture. As the name QVT indicates, the ...
, but also from BasicMTL, a model transformation language implemented in 2004 in the Triskell team by D. Vojtisek and F. Fondement. It is also inspired by the previous experience on MTL, the first transformation language created by Triskell, and by the Xion action language for
UML The Unified Modeling Language (UML) is a general-purpose, developmental modeling language in the field of software engineering that is intended to provide a standard way to visualize the design of a system. The creation of UML was originally m ...
. The name Kermeta is an abbreviation for "Kernel Metamodeling" and reflects the fact that the language is conceived as a core for (meta-)modeling. The Breton language consonance of this name is an intentional reflection of the Triskell team's location in Brittany. Kermeta, and its execution platform under Eclipse is currently available under its version 2.0.4 released in 2012. It is open-source, under the
Eclipse Public License The Eclipse Public License (EPL) is a free and open source software license most notably used for the Eclipse IDE and other projects by the Eclipse Foundation. It replaces the Common Public License (CPL) and removes certain terms relating to ...
.


Philosophy

Kermeta is a modeling and
aspect oriented programming In computing, aspect-oriented programming (AOP) is a programming paradigm that aims to increase Modularity (programming), modularity by allowing the separation of concerns, separation of cross-cutting concerns. It does so by adding behavior to e ...
language. Its underlying metamodel conforms to the EMOF standard. It is designed to write programs which are also models, to write transformations of models (programs that transform a model into another), to write constraints on these models, and to execute them. The goal of this model approach is to bring an additional level of abstraction on top of the "object" level and thus to see a given system like a set of concepts (and instances of concepts) that form an explicitly coherent whole, which one will call a model. Kermeta thus brings: * all the concepts of EMOF used for the specifications of a model. * a real concept of model, more precisely of model type (Jim Steel). * a concrete syntax that fits well to model and metamodel writing. * two paradigms: the object, and the model. * a bridge towards the Eclipse ECore formalism


Characteristics

The main characteristics of the Kermeta language are : * imperative: traditional structures of control *
object-oriented Object-oriented programming (OOP) is a programming paradigm based on the concept of " objects", which can contain data and code. The data is in the form of fields (often known as attributes or ''properties''), and the code is in the form of p ...
: multiple inheritance, late binding * model-oriented: first-class concepts of associations and composition * aspect-oriented: integrate a simple but powerful weaver for simple meta-modeling tasks. Arbitrary complex weaving is achieved using a dedicated composer written in Kermeta. This allows programmers to extend existing metamodels. Especially in order to add behavior to them by weaving behavioral
semantics Semantics (from grc, σημαντικός ''sēmantikós'', "significant") is the study of reference, meaning, or truth. The term can be used to refer to subfields of several distinct disciplines, including philosophy, linguistics and comp ...
(operational or translational). * design by contract: operations support pre and post conditions, classes use invariants. * functional: functions and first class lambda-expressions *statically typed: genericity for the classes and the operations, function types... *complete
introspection Introspection is the examination of one's own conscious thoughts and feelings. In psychology, the process of introspection relies on the observation of one's mental state, while in a spiritual context it may refer to the examination of one's sou ...
: the complete model of the program is available during execution.


Syntax

The curious reader will find further information on th
Kermeta website


Example (Kermeta 1.4)

package fsm; require kermeta using kermeta::standard class FSM class State class Transition


See also

*
Model Driven Engineering Model-driven engineering (MDE) is a software development methodology that focuses on creating and exploiting domain models, which are conceptual models of all the topics related to a specific problem. Hence, it highlights and aims at abstract r ...
*
Domain Specific Language A domain-specific language (DSL) is a computer language specialized to a particular application domain. This is in contrast to a general-purpose language (GPL), which is broadly applicable across domains. There are a wide variety of DSLs, ranging ...
* Domain Specific Modelling *
Model-Based Testing Model-based testing is an application of model-based design for designing and optionally also executing artifacts to perform software testing or system testing. Models can be used to represent the desired behavior of a system under test (SUT), or ...
*
Metamodeling A metamodel or surrogate model is a model of a model, and metamodeling is the process of generating such metamodels. Thus metamodeling or meta-modeling is the analysis, construction and development of the frames, rules, constraints, models and ...
* OCL * Model Transformation Language *
Meta-Object Facility The Meta-Object Facility (MOF) is an Object Management Group (OMG) standard for model-driven engineering. Its purpose is to provide a type system for entities in the CORBA architecture and a set of interfaces through which those types can be creat ...


References

{{Reflist


External links


Kermeta official website
Unified Modeling Language Java platform software Free UML tools Software using the Eclipse license