All Projects → ftsrg → gamma

ftsrg / gamma

Licence: other
An Eclipse-based modeling framework for the component-based design and analysis of reactive systems

Programming Languages

Xtend
68 projects
java
68154 projects - #9 most used programming language
q
29 projects
HiveQL
18 projects
HTML
75241 projects
GSC
8 projects

Projects that are alternatives of or similar to gamma

qp-arduino
QP real-time embedded frameworks/RTOS for Arduino (AVR and SAM)
Stars: ✭ 37 (+76.19%)
Mutual labels:  statechart, code-generation
qm
QM model-based design tool and code generator based on UML state machines
Stars: ✭ 54 (+157.14%)
Mutual labels:  statechart, code-generation
overture
The Overture Tool
Stars: ✭ 45 (+114.29%)
Mutual labels:  eclipse, code-generation
assembly improvement
Improve the quality of a denovo assembly by scaffolding and gap filling
Stars: ✭ 46 (+119.05%)
Mutual labels:  research
orm
Go Typed ORM
Stars: ✭ 16 (-23.81%)
Mutual labels:  code-generation
vscode-cmantic
C/C++ code generation for VS Code: Generate Definitions, Getters, Setters, and much more.
Stars: ✭ 61 (+190.48%)
Mutual labels:  code-generation
ginkgo4j
A Java BDD Testing Framework (based on RSpec and Ginkgo)
Stars: ✭ 25 (+19.05%)
Mutual labels:  eclipse
ResInsight
3D viewer and post processing of reservoir models
Stars: ✭ 122 (+480.95%)
Mutual labels:  eclipse
go-errors
A super tiny package for error encapsulation in idiomatic Go
Stars: ✭ 14 (-33.33%)
Mutual labels:  composition
nllgrid
Python class for reading and writing NLLoc grid files.
Stars: ✭ 23 (+9.52%)
Mutual labels:  research
aurelia-knockout
Adds support for Knockout binding syntax to make transition from Durandal and Knockout to Aurelia simpler.
Stars: ✭ 22 (+4.76%)
Mutual labels:  composition
manifold mixup
Tensorflow implementation of the Manifold Mixup machine learning research paper
Stars: ✭ 24 (+14.29%)
Mutual labels:  research
hh research
Автоматизация поиска и исследования вакансий с сайта hh.ru (Headhunter) с помощью методов Python. Классификация данных, поиск статистических параметров.
Stars: ✭ 36 (+71.43%)
Mutual labels:  research
day2night
Image2Image Translation Research
Stars: ✭ 46 (+119.05%)
Mutual labels:  research
dynamic.yaml
DEPRECATED: YAML-based data transformations
Stars: ✭ 14 (-33.33%)
Mutual labels:  code-generation
reassemble
Fast Library for the Composition of React Higher-Order-Components
Stars: ✭ 67 (+219.05%)
Mutual labels:  composition
Python3Generator
A toolkit to generate Python 3 source code from Pharo.
Stars: ✭ 25 (+19.05%)
Mutual labels:  code-generation
ParNMPC
A Parallel Optimization Toolkit for Nonlinear Model Predictive Control (NMPC)
Stars: ✭ 173 (+723.81%)
Mutual labels:  code-generation
TeachingKidsProgramming.Java
Eclipse Workspace and code lessons for TKP Java - branches include other workspaces (GitHub Codespaces...)
Stars: ✭ 94 (+347.62%)
Mutual labels:  eclipse
ftor
ftor enables ML-like type-directed, functional programming with Javascript including reasonable debugging.
Stars: ✭ 44 (+109.52%)
Mutual labels:  composition

The Gamma Statechart Composition Framework

Version 2.8.0 - For the latest version, check out the dev branch.

The Gamma Statechart Composition Framework is a toolset to model, verify and generate code for component-based reactive systems. The framework builds on Yakindu, an open source statechart modeling tool and provides an additional modeling layer to instatiate a communicating network of statecharts. Compositionality is hierarchical, which facilitates the creation of reusable component libraries. Individual statecharts, as well as composite statechart networks can be validated and verified by an automated translation to UPPAAL, a model checker for timed automata, or Theta, a generic, modular and configurable model checking framework. Once a complete model is built, designers can use the code generation functionality of the framework, which can generate Java code for the whole system.

Check out http://gamma.inf.mit.bme.hu for more resources about Gamma. A good starting point is our tool paper, slides and demo video presented at ICSE 2018 as well as our journal paper.

To cite Gamma, please cite the following paper. You can find additional publications about Gamma here.

@inproceedings{molnar2018gamma,
    author = {Vince Moln{\'{a}}r and
              Bence Graics and
              Andr{\'{a}}s V{\"{o}}r{\"{o}}s and
              Istv{\'{a}}n Majzik and
              D{\'{a}}niel Varr{\'{o}}},
    title = {The {Gamma Statechart Composition Framework}: design, verification and code generation for component-based reactive systems},
    booktitle = {Proceedings of the 40th International Conference on Software Engineering: Companion Proceeedings},
    pages = {113--116},
    year = {2018},
    publisher = {ACM},
    doi = {10.1145/3183440.3183489}
}

Using Gamma

Dependencies

Recommended Eclipse version and bundle:
  • Eclipse IDE 2022-09, Eclipse IDE for Java and DSL Developers bundle.
3rd-party Eclipse components (should be installed separately):
3rd-party tools used by Gamma (should be installed separately):

Installation

  • Install an Eclipse instance (e.g., Eclipse IDE for Java and DSL Developers) with EMF, Xtext and Java 17.
  • Install the required 3rd-party Eclipse components. Detailed instructions can be found in the plugins/README.md file.
  • Exit Eclipse and extract the Gamma zip file containing the dropins/plugins folder (with the Gamma JAR files) into the root folder of Eclipse. This will create the plugins directory in the dropins folder of your root Eclipse folder, which should contain all JAR files of Gamma. (If not, make sure you copy all the JAR files contained in the Gamma zip file in the plugins directory of the dropins folder of the root folder of Eclipse.)
  • When starting Eclipse for the first time, you might need to start it with the -clean flag.
  • Check if the plugin installed successfully in Help > About Eclipse and by clicking Installation Details. On the Plug-ins tab, sort the entries by Plugin-in Id and look for entries starting with hu.bme.mit.gamma.
  • For formal verification, download and extract UPPAAL. In order to let Gamma find the UPPAAL executables, add the bin-Win32 or bin-Linux folder to the path environment variable (depending on the operating system being used).
  • If you want to use Theta, check out the installation steps here.
  • If you want to use Spin, check out the installation steps here.

Tutorials

The tutorials for the framework can be found in the following folder.

Contact

Contact us by sending an e-mail to gamma [at] mit.bme.hu.

Acknowledgement

Supporters of the Gamma project:

Special thanks to:

  • András Vörös,
  • Oszkár Semeráth,
  • Kristóf Marussy,
  • Ákos Hajdu,
  • Dániel Varró,
  • István Ráth,
  • Zoltán Micskei,
  • István Majzik,
  • IncQuery Labs Ltd.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].