MAML is a framework for cross-platform development of native business apps using a graphical modeling language.
This repository contains the latest source code, which may be unstable. MAML resides in the namespace de.wwu.maml and has the following packages:
- ~.dsl: MAML Ecore meta models
- ~.editor: MAML editor based on the Eclipse Sirius project
- ~.design: The editor and its services
- ~.diagram: Custom diagram elements for the editor
- ~.dialog: Custom dialogs for the editor
- ~.inference: Data model inference from graphical MAML artifacts using hypergraph data structure (based on JUNG library)
- ~.generator: MAML app generation project
- ~.md2converter: QVTo model-to-model transformation to the textual MD² DSL from which platform code can be generated according to the MD² website
This is a sample use case modeled using the graphical MAML syntax.
The framework is based on MD², a textual DSL for Business Apps. Therefore, a MAML model is transformed to this syntax and reuses existing code generators for the generation of app sources.
As example output, the first two steps of the exemplary model result in the following two Android views:
The following guide describes the installation for users of the language. See next chapter for developers. Note: The installation was tested for the Eclipse Oxygen release.
- Download and unzip the Eclipse Modeling Tools package
- Get the four .jar files from the current
/release
directory of this repository and copy them to the/plugins
directory of the Eclipse installation - Start Eclipse and choose a workspace of your choice
- Go to
Help
>Eclipse Marketplace...
and install "Sirius 5.0" (make sure to tick at least the Environment and AQL Support features) - Restart Eclipse
- Create new project using
File
>New
>Modeling project
- Create new model by right-clicking on the project and selecting
New
>Other...
>MAML use case
and choose a name - A "MAML editor" should show up in the model explorer within the .maml file that opens the visual editor
- Enjoy modeling!
To simplify development, initial setup is mostly automated using build scripts. Therefore, Gradle should be installed on the system first.
- Clone the repository to the local machine. To include and initialize the necessary subprojects, make sure to run the clone command with the recurive flag
git clone --recursive https://github.com/wwu-pi/maml.git
- Cd into
/maml-dsl
and initialize the project withgradle setupMamlDsl
. There might be some errors but it should be fine if you find the line[main] INFO .emf.mwe2.runtime.workflow.Workflow - Done.
almost in the end. - Download and unzip the Eclipse Modeling Tools package
- Start Eclipse and choose a workspace of your choice
- Go to
Help
>Eclipse Marketplace...
and install "Sirius 5.0" (make sure to tick at least the Environment and AQL Support features) - Restart Eclipse
- Import all projects contained in the local MAML repository. There should be five of them now (Gradle generated some more)
- Happy coding! To see your changes, run the de.wwu.maml.editor project as Eclipse Application. This way, the current projects are installed as plugins and you can test the modeling environment. End users should use the setup instructions in the previous chapter to avoid running this Eclipse-in-Eclipse construct.
Spotted an error? Something doesn't make sense? Ideas for improvement? Send me a pull request!
Questions/Problems? Feel free to ask @riegerchris