As a metamodeling tool, MetaEdit+ can support a wide variety
of different modeling languages covering
While the idea of domain-specific modeling and MetaEdit+
heavily emphasizes the development and use of an organization’s own
languages, MetaEdit+ is distributed with a selection of predefined modeling
languages, ranging from generic standard languages to bespoke domain-specific
languages. These languages are provided mainly for reference and example
purposes, but as the language definitions are complete, they can be used for
real-life production purposes. These predefined languages
include:
| Digital
Watch: A complete example of a DSM environment for the development of
digital wristwatch applications. For more information about the Watch example,
please see ‘The Watch Example’
manual. |
| GOPRR:
The graphical variant of MetaEdit+’s GOPPRR metamodeling language. These
graphical metamodels generate XML documents importable back to MetaEdit+ as
language definitions. More detailed description about the usage of the GOPRR
modeling language can be found from a separate ‘The Graphical Metamodeling
Example’
manual. |
| Heating
system: A language to design heating systems and generating PLC code for
embedded devices. For a more detailed description of the language and examples,
please see the ‘Heating System Example’
manual. |
| Home
automation: The Home automation example demonstrates the modeling of voice
menus for a Home Automation system. More information about this example can be
found from the book "Domain-Specific Modeling" by Steven Kelly and Juha-Pekka
Tolvanen (Wiley-IEEE Computer Society Press, 2008, http://www.dsmbook.com) |
| Insurance:
An example of modeling language designed for defining variants of various
insurance products like car insurance, health insurance, etc. More detailed
description of this language can be found from the book "Domain-Specific
Modeling" by Steven Kelly and Juha-Pekka Tolvanen (Wiley-IEEE Computer Society
Press, 2008, http://www.dsmbook.com). |
| Internet
of Things (in the IoT project): A graphical modeling language for the
Thingsee IoT device, reacting to sensor events and readings to produce various
actions and notifications. The models generate the Thingsee JSON
format. |
| Logic:
An example language for logic gate circuits corresponding to the Eclipse GEF
Logic sample application. MetaEdit+ and Eclipse EMF/GEF were compared in Dr.
Dobb's Journal, Sept. 2004. The example comes in two flavors, one with static
ports and one with dynamic ports. Circuit outputs are calculated by symbol
generators on the
fly. |
| S60
phone (in the Mobile UI project): The S60 phone example illustrates how
smart phone applications can be modeled and automatically generated. For a more
detailed description of the S60 language and example, please see the ‘S60
Phone Example’
manual. |
| S60
phone C++ (in the Mobile UI project): This example demonstrates the language
for modeling of applications for mobile phones, for generation of S60 native
C++. This example has been described in more detail in the book "Domain-Specific
Modeling" by Steven Kelly and Juha-Pekka Tolvanen (Wiley-IEEE Computer Society
Press, 2008, http://www.dsmbook.com) |
| Turtle
Graphics: A graphical modeling language for Turtle Graphics, a programming
tutorial made famous by the LOGO language. This example generates Python
code. |
| Web
Application with UML (in the UML project): Generates database applications
with SQL, HTML and JavaScript. For a more detailed description of the generator
and examples, please see the ‘Web Application Example’
manual. |
| Call
Processing Language (CPL): A language for describing and control Internet
telephony services. For more information about CPL, see xml.coverpages.org/cpl.html. For a
more detailed description of the language and examples, please see the
‘Call Processing Language Example’
manual. |
| Car
infotainment (in the Examples project): A language for defining car
infotainment systems. This example demonstrates MetaEdit+’s ability to
create dynamic interactive models which automatically update based on changes to
the existing
design. |
| Electronics
(in the Port examples project): A language for simple electrical and electronic
components, demonstrating constraints on static port properties, e.g. Out
5V->In
5V. |
| Roadmap
(in the Examples project): A language for showing a road network, demonstrating
multiple conditional role
lines. |
| Score
(in the Port examples project): A language for musical scores, demonstrating
complex symbol templates with library
subsymbols. |
| Syntax
(in the Text+BNF project): A graphical language for describing textual DSLs,
with example generators for BNF and
Spoofax. |
| XmasTree
(in the Port examples project): A language for planning Christmas tree
decoration, demonstrating complex symbol templates with type
subsymbols. |
| Business
Process Modeling Notation (BPMN): An implementation of BPMN 2.0, as
presented at http://www.bpmn.org. |
| Business
Systems Planning: An implementation of IBM’s BSP
language. |
| EAST-ADL:
A language to design the technical information needed for development of
automotive electronic systems. For more information about EAST ADL, see http://www.east-adl.info. |
| Feature
Model: A language to represent feature variability across a product
line. |
| Specification
and Description Language (SDL): An implementation of the ITU Z.100 series
SDL/GR graphical system description languages for Block and Process
diagrams. |
| Structured
Analysis and Design: An implementation of the traditional SA/SD as presented
in Edward Yourdon’s “Modern Structured Analysis” (Yourdon
Press, Prentice-Hall, Englewood Cliffs,
1989) |
| Unified
Modeling Language (UML): An implementation of OMG’s Unified Modeling
Language 2.5. For more information about UML, see www.uml.org. |
MetaEdit+
can offer such flexible modeling language support because it is based on
metamodels. A metamodel
is a model of a modeling language.
By specifying a metamodel of a language into MetaEdit+, you promptly get a
modeling tool support for that specific language. You can view all existing (and
new) metamodels by using the language development tools. The metamodel-based
architecture also makes it very easy to modify existing languages in
MetaEdit+.
One of the most powerful features regarding MetaEdit+
language support is that you can use them all, even at the same time.
Multi-language features allow you to link and reuse data across different
languages, maintaining a flow of information between them. These features are
explained in Section
6.3.