GEMOC Studio Documentation


Navigation overview

[1]

Shortcut to main activities in the user guide sections:

Table of Contents

Introduction
1. Language Workbench overview IconeGemocLanguage 16
2. Modeling workbench overview IconeGemocModel 16
3. General concerns and prerequisite
Language workbench user guide IconeGemocLanguage 16
Language workbench overview
Create a language / Define syntaxes
1. xDSML project (TODO rename GEMOC Project)
1.1. Purpose
1.2. Creating the xDSML Project
1.3. Editing the xDSML Project
1.4. xDSML perspective
1.5. GEMOC Language menu
1.6. Melange menu
1.7. Melange editor
1.7.1. Syntax
1.7.2. Content assist
1.7.3. Outline
1.7.4. Plugin.xml
2. Define a domain model project
2.1. Purpose
2.2. Creating the Domain Model Project
2.3. Editing the Domain Model Project
3. Define a concrete syntax
3.1. Defining a Concrete Syntax with Xtext
3.2. Defining a Concrete Syntax with Sirius
3.3. Defining a Concrete Syntax with EMF
Make language executable
1. Make a sequential executable language
1.1. Defining the Domain-Specific Actions (DSA) Project for Sequential language
1.1.1. Purpose
1.1.2. Creating the DSA Project
1.1.3. Editing the DSA Project
1.1.3.1. Defining the Execution Data
1.1.3.2. Defining the Execution Functions
1.1.3.3. Defining the control flow
1.1.3.4. Defining the entry point
1.2. Defining the initialization function
2. Make a concurrent executable language
2.1. Defining the Domain-Specific Actions (DSA) Project for concurrent language
2.1.1. Purpose
2.1.2. Creating the DSA Project
2.1.3. Editing the DSA Project
2.1.3.1. Defining the Execution Data
2.1.3.2. Defining the Execution Functions
2.1.4. Defining the initialization function
2.1.5. Testing the Domain-Specific Actions
2.2. Defining a Model of Concurrency and Communication (MoCC)
2.2.1. Introduction
2.2.2. The ECL approach to identify DSE and constraints
2.2.2.1. Overview of ECL
2.2.2.2. Creation of an ECL model GEMOC Studio
2.2.2.3. How to use ECL
2.2.3. The MoCCML approach to define constraints
2.2.3.1. Creating a MoCCML model in the GEMOC Studio
2.2.3.2. Overview de MoCCML
2.2.3.3. Presentation of the MoCCML Editor
2.2.3.4. Example-Driven use of MoCCML
Provide language with tools
1. Define model debug support
1.1. Define model debug step information
1.2. Define model debug RTD information
1.3. Defining MultiDimentional Trace support
2. Define editor specific debug support
2.1. Define a debug representation and commands for Sirius
2.1.1. The debug representation wizard
2.1.1.1. Create a debug diagram description
2.1.1.2. Extend an existing diagram description
2.1.1.3. Add a debug layer to an existing diagram description
2.1.2. Implementation details
2.1.2.1. Debugger services
2.1.2.2. Debug layer
3. Define model animation
3.1. Define an animation representation for Sirius
3.2. Define an animation representation using an engine addon
3.3. Define an animation representation using calls in the semantics
4. Exhaustive Exploration and Verification at Language Design Time
4.1. Generating inputs for Exhaustive Exploration tools : T1 at Language Level
Define composition of languages
1. Coordination of Languages with BCOoL
1.1. What is BCOoL?
1.2. Deploy a BCOoL project by using the wizard
1.3. Create a BCOoL project from scratch
Deploy language
1. Deployment of languages for the Language designer
2. Distribution of languages to the Model designer
Modeling workbench user guide IconeGemocModel 16
Modeling workbench overview
Edit models
1. Editing model with Sirius
1.1. Debug specific
2. Editing model with EMF Tree Editor
3. Editing model with XText
Execute, animate and debug models
1. Execute a model
1.1. Launch a model execution
1.1.1. Sequential Engine Launch Configuration
1.1.1.1. Sequential general options
1.1.1.2. Sequential Run mode
1.1.1.3. Sequential Debug mode
1.1.2. Concurrent Launch configuration
1.1.2.1. Concurrent General options
1.1.2.2. Concurrent Run mode
1.1.2.3. Concurrent Debug mode
1.2. Configure engines addons (Frontend/backend)
1.3. Control engine execution
1.3.1. Engine View
1.3.1.1. CCSLJava addition to Engine View
1.3.2. Logical step view
1.3.3. Stimuli manager view
2. Animate a model
2.1. Animate a model using representation provided by Sirius
2.1.1. Sirius animation performance
2.2. Animate a model using representation provided an engine addon
2.3. Animate a model using representation provided by semantics calls
3. Debug a model
3.1. Debug view
3.2. Variables view
3.3. Breakpoints view
3.4. Debug commands
3.5. Timelines
3.5.1. Multidimentional timeline view
3.5.1.1. Java engine specific support for multidimentional timeline
3.5.2. Multibranch timeline view
3.5.2.1. Java engine specific support for multibranch timeline
3.5.3. Timeline diff view
3.5.4. Timeline diff view
3.6. Editor debug integration
3.6.1. Sirius specific debug integration
3.6.2. Xtext specific debug integration
Coordinate models
1. Coordinating Model Execution with BCOoL
1.1. Deploy an example project by using the wizard
1.2. Description of a BFloW specification
1.2.1. Launching the coordinated execution
V&V and other tools
1. Exhaustive Exploration and Verification at Model Design Time
1.1. Generating inputs for Exhaustive Exploration tools : T2 at Modeling Level
1.2. ClockSystem
1.2.1. Description
1.2.2. Using ClockSystem
1.3. Defining Properties
1.3.1. Expressing Properties (CDL Formalization)
1.3.2. OBP example
Headless engine user guide IconeGemocModel 16
Headless engine overview
1. Eclipse specific options overview
2. GemocStudioHeadless options overview
Prepare language
1. Create deployable jars using Eclipse UI
2. Create deployable jars using Maven
Install language
1. Installing jars in dropins folder
2. Installing jars using the p2 director
3. Installing jars using the --installLanguage option
4. Debugging language deployment issues
Run model
1. Example: Install K3FSM language in GEMOC headless and run a sample model
Examples
K3FSM Example
1. Presentation
2. Installation
3. Language structure overview
4. DIY
4.1. Create the Language project
4.2. Create the Domain concepts
4.3. Add Semantics data and Tree Editor
4.4. Add Textual Editor
4.5. Add Semantics operations
4.6. Add Graphical Editor
4.7. Add Animation and Debug capabilities to the graphical editor
5. Additional resources
MelangeK3FSM Sequential example
1. Presentation
2. Installation
3. Language structure overview
4. Organization of the code
4.1. Relation between FSM and XSFSM languages (defined with Melange)
5. DIY
5.1. Create a legacy language for edition only (FSM)
5.1.1. Create the Domain concepts
5.1.2. add a tree editor
5.1.3. add a graphical editor
5.2. Transform the legacy projects into a GEMOC language
5.2.1. Create the Language project (base language: FSM)
5.3. Create an executable language by extension of the legacy language
5.3.1. Create Semantics operations
5.3.2. Create the extended Language project (executable language: XSFSM)
5.4. Add Animation and Debug capabilities to the graphical editor
6. Additional resources
MOCCML SigPML Example
1. Presentation
2. Installation
2.1. Installing using the example deployer wizard
2.2. Installing from git
3. Language Designer documentation IconeGemocLanguage 16
3.1. Organization of the code
3.2. Overview of the metamodel
4. Model Designer documentation IconeGemocModel 16
5. Additional resources and related links
Developer Guide
General architecture
Components documentation
1. Commons
1.1. DSL
1.2. GExpression
1.3. Commons Eclipse
1.4. Timeline
1.5. Commons Thirdparty
2. Simulation model animation framework
2.1. Debugger
2.2. Debug model presentation
3. GEMOC framework
3.1. Execution Framework
3.1.1. Execution Framework Debugger
3.1.2. Debug model presentation
3.2. Framework Commons
3.3. XDSML Framework
4. Trace framework
5. Execution engines
5.1. Java Execution
5.1.1. Java XDSML
5.1.2. Java Engine
5.2. ALE Execution
5.2.1. ALE XDSML
5.2.2. ALE Interpreted Engine
Protocols
1. Engine Add-On Protocol
Contributing
1. Compilation of the complete GEMOC Studio
1.1. Introduction
1.2. Usage
1.3. Advanced usage using docker
1.3.1. build image
1.3.2. Manual launch
1.3.3. Description of the docker env
2. Compilation of the pom first jar
2.1. Introduction
2.2. Usage
3. Developing new features
3.1. Developing new Addons
3.1.1. Create an Addon
3.1.2. Controling call to addon
3.2. Developing new engines
4. Distributing new features
5. Documentation
Appendix
Bibliography
Glossary
1. Index
Index

List of Figures

1. Gemoc Workbenches Global Picture
2. Screenshot of the GEMOC Language Workbench showing the design of a Timed Finite State Machine (TFSM) example.
3. Screenshot of the First graphical level of Edition in MoCCML.
4. Screenshot of the Second graphical level of Edition in MoCCML (Constraint Implementation).
5. Model debug RTD using aspect annotation in k3fsm.ecore.
6. Aspect annotation effect in Modeling workbench.
7. Add language specific Engine Addon on DSL
8. The exploration and verification flow in Gemoc
9. Using T1 Tranformation
10. Overview of the approach.
11. Wizard of the examples of coordination.
12. Windows Problems when languages are not correctly deployed.
13. Correct deployment of languages and BCOoL operators in the language workbench.
14. Runtime workbench launch configuration
15. Screenshot of GEMOC Studio Modeling Workbench on the TFSM example (execution and animation).
16. Selection of addons in the launch configuration tab
17. Engine View
18. CCSLJava addition to Engine View
19. Manual activation/deactivation of a Sirius animation layer
20. Example of Sirius animation on a FSM DSL.
21. GEMOC Sirius animation preference page.
22. Debug view
23. Debug and Variable views with the sequential engine
24. Breakpoints view
25. Omniscient debug commands overview
26. Multibranch timeline with Java engine
27. Sirius debug stack highlighting
28. Xtext debug stack highlighting
29. Wizard of the examples of coordination for the modeling workbench.
30. BFLoW specification of the coffee machine by using the TFSM and SigPML languages.
31. Debug Configuration of the Gemoc Coordinated eXecutable Models.
32. Debug Configuration of the Gemoc Coordinated eXecutable Models with launchers.
33. Step by step execution of the coordinated models.
34. Xdsml Wizard
35. Discovery
36. Discovery Components
37. Discovery Clocksystem
38. Approve licensing
39. Exploration Graph for an Instance
40. K3FSM Metamodel classes and K3 aspects classes.
41. FSM Syntaxic domain.
42. FSM/XSFSM main relations.
43. Language relations, packages and classes view.
44. FSM Syntaxic domain.
45. SigPML metamodel overview
46. Agents in SigPML metamodel
47. HW Resources in SigPML metamodel
48. GEMOC Studio General Architecture - Main Features
49. Components overview
50. GExpression ecore
51. Base debugger presentation overview
52. Base debug model presentation overview
53. ExecutionEngine overview
54. ExecutionEngine typical flow
55. Execution framework debugger overview
56. Execution framework debug model presentation overview
57. Execution Framework API Interfaces overview
58. PlainK3ExecutionEngine overview
59. ExecutionEngine typical flow
60. ALE Interpreter ExecutionEngine overview
61. Protocols overview
62. Engine Add-On Protocol overview
63. New Extension for Engine Addon screenshot
64. EngineAddon extension point details screenshot
65. Add language specific Engine Addon on DSL