GEMOC Studio Documentation


Navigation overview

[1]

Shortcut to main activities in the user guide sections:

Gemoc Workbenches Global Picture

Table of Contents

Introduction
1. Language Workbench overview IconeGemocLanguage 16
2. Modeling workbench overview IconeGemocModel 16
3. General concerns and prerequisite
I. Language workbench user guide IconeGemocLanguage 16
1. Language workbench overview
2. Create a language / Define syntaxes
2.1. xDSML project (TODO rename GEMOC Project)
2.1.1. Purpose
2.1.2. Creating the xDSML Project
2.1.3. Editing the xDSML Project
2.1.4. xDSML perspective
2.1.5. GEMOC Language menu
2.1.6. Melange menu
2.1.7. Melange editor
2.1.7.1. Syntax
2.1.7.2. Content assist
2.1.7.3. Outline
2.1.7.4. Plugin.xml
2.2. Define a domain model project
2.2.1. Purpose
2.2.2. Creating the Domain Model Project
2.2.3. Editing the Domain Model Project
2.3. Define a concrete syntax
2.3.1. Defining a Concrete Syntax with Xtext
2.3.2. Defining a Concrete Syntax with Sirius
2.3.3. Defining a Concrete Syntax with EMF
3. Make language executable
3.1. Make a sequential executable language
3.1.1. Defining the Domain-Specific Actions (DSA) Project for Sequential language
3.1.1.1. Purpose
3.1.1.2. Creating the DSA Project
3.1.1.3. Editing the DSA Project
3.1.1.3.1. Defining the Execution Data
3.1.1.3.2. Defining the Execution Functions
3.1.1.3.3. Defining the control flow
3.1.1.3.4. Defining the entry point
3.1.2. Defining the initialization function
3.2. Make a concurrent executable language
3.2.1. Defining the Domain-Specific Actions (DSA) Project for concurrent language
3.2.1.1. Purpose
3.2.1.2. Creating the DSA Project
3.2.1.3. Editing the DSA Project
3.2.1.3.1. Defining the Execution Data
3.2.1.3.2. Defining the Execution Functions
3.2.1.4. Defining the initialization function
3.2.1.5. Testing the Domain-Specific Actions
3.2.2. Defining a Model of Concurrency and Communication (MoCC)
3.2.2.1. Introduction
3.2.2.2. The ECL approach to identify DSE and constraints
3.2.2.2.1. Overview of ECL
3.2.2.2.2. Creation of an ECL model GEMOC Studio
3.2.2.2.3. How to use ECL
3.2.2.3. The MoCCML approach to define constraints
3.2.2.3.1. Creating a MoCCML model in the GEMOC Studio
3.2.2.3.2. Overview de MoCCML
3.2.2.3.3. Presentation of the MoCCML Editor
3.2.2.3.4. Example-Driven use of MoCCML
4. Provide language with tools
4.1. Define model debug support
4.1.1. Define model debug step information
4.1.2. Define model debug RTD information
4.1.3. Defining MultiDimentional Trace support
4.2. Define editor specific debug support
4.2.1. Define a debug representation and commands for Sirius
4.2.1.1. The debug representation wizard
4.2.1.1.1. Create a debug diagram description
4.2.1.1.2. Extend an existing diagram description
4.2.1.1.3. Add a debug layer to an existing diagram description
4.2.1.2. Implementation details
4.2.1.2.1. Debugger services
4.2.1.2.2. Debug layer
4.3. Define model animation
4.3.1. Define an animation representation for Sirius
4.3.2. Define an animation representation using an engine addon
4.3.3. Define an animation representation using calls in the semantics
4.4. Exhaustive Exploration and Verification at Language Design Time
4.4.1. Generating inputs for Exhaustive Exploration tools : T1 at Language Level
5. Define composition of languages
5.1. Coordination of Languages with BCOoL
5.1.1. What is BCOoL?
5.1.2. Deploy a BCOoL project by using the wizard
5.1.3. Create a BCOoL project from scratch
6. Deploy language
6.1. Deployment of languages for the Language designer
6.2. Distribution of languages to the Model designer
II. Modeling workbench user guide IconeGemocModel 16
7. Modeling workbench overview
8. Edit models
8.1. Editing model with Sirius
8.1.1. Debug specific
8.2. Editing model with EMF Tree Editor
8.3. Editing model with XText
9. Execute, animate and debug models
9.1. Execute a model
9.1.1. Launch a model execution
9.1.1.1. Sequential Engine Launch Configuration
9.1.1.1.1. Sequential general options
9.1.1.1.2. Sequential Run mode
9.1.1.1.3. Sequential Debug mode
9.1.1.2. Concurrent Launch configuration
9.1.1.2.1. Concurrent General options
9.1.1.2.2. Concurrent Run mode
9.1.1.2.3. Concurrent Debug mode
9.1.2. Configure engines addons (Frontend/backend)
9.1.3. Control engine execution
9.1.3.1. Engine View
9.1.3.1.1. CCSLJava addition to Engine View
9.1.3.2. Logical step view
9.1.3.3. Stimuli manager view
9.2. Animate a model
9.2.1. Animate a model using representation provided by Sirius
9.2.1.1. Sirius animation performance
9.2.2. Animate a model using representation provided an engine addon
9.2.3. Animate a model using representation provided by semantics calls
9.3. Debug a model
9.3.1. Debug view
9.3.2. Variables view
9.3.3. Breakpoints view
9.3.4. Debug commands
9.3.5. Timelines
9.3.5.1. Multidimentional timeline view
9.3.5.1.1. Java engine specific support for multidimentional timeline
9.3.5.2. Multibranch timeline view
9.3.5.2.1. Java engine specific support for multibranch timeline
9.3.5.3. Timeline diff view
9.3.5.4. Timeline diff view
9.3.6. Editor debug integration
9.3.6.1. Sirius specific debug integration
9.3.6.2. Xtext specific debug integration
10. Coordinate models
10.1. Coordinating Model Execution with BCOoL
10.1.1. Deploy an example project by using the wizard
10.1.2. Description of a BFloW specification
10.1.2.1. Launching the coordinated execution
11. V&V and other tools
11.1. Exhaustive Exploration and Verification at Model Design Time
11.1.1. Generating inputs for Exhaustive Exploration tools : T2 at Modeling Level
11.1.2. ClockSystem
11.1.2.1. Description
11.1.2.2. Using ClockSystem
11.1.3. Defining Properties
11.1.3.1. Expressing Properties (CDL Formalization)
11.1.3.2. OBP example
III. Headless engine user guide IconeGemocModel 16
12. Headless engine overview
12.1. Eclipse specific options overview
12.2. GemocStudioHeadless options overview
13. Prepare language
13.1. Create deployable jars using Eclipse UI
13.2. Create deployable jars using Maven
14. Install language
14.1. Installing jars in dropins folder
14.2. Installing jars using the p2 director
14.3. Installing jars using the --installLanguage option
14.4. Debugging language deployment issues
15. Run model
15.1. Example: Install K3FSM language in GEMOC headless and run a sample model
IV. Examples
16. K3FSM Example
16.1. Presentation
16.2. Installation
16.3. Language structure overview
16.4. DIY
16.4.1. Create the Language project
16.4.2. Create the Domain concepts
16.4.3. Add Semantics data and Tree Editor
16.4.4. Add Textual Editor
16.4.5. Add Semantics operations
16.4.6. Add Graphical Editor
16.4.7. Add Animation and Debug capabilities to the graphical editor
16.5. Additional resources
17. MelangeK3FSM Sequential example
17.1. Presentation
17.2. Installation
17.3. Language structure overview
17.4. Organization of the code
17.4.1. Relation between FSM and XSFSM languages (defined with Melange)
17.5. DIY
17.5.1. Create a legacy language for edition only (FSM)
17.5.1.1. Create the Domain concepts
17.5.1.2. add a tree editor
17.5.1.3. add a graphical editor
17.5.2. Transform the legacy projects into a GEMOC language
17.5.2.1. Create the Language project (base language: FSM)
17.5.3. Create an executable language by extension of the legacy language
17.5.3.1. Create Semantics operations
17.5.3.2. Create the extended Language project (executable language: XSFSM)
17.5.4. Add Animation and Debug capabilities to the graphical editor
17.6. Additional resources
18. MOCCML SigPML Example
18.1. Presentation
18.2. Installation
18.2.1. Installing using the example deployer wizard
18.2.2. Installing from git
18.3. Language Designer documentation IconeGemocLanguage 16
18.3.1. Organization of the code
18.3.2. Overview of the metamodel
18.4. Model Designer documentation IconeGemocModel 16
18.5. Additional resources and related links
V. Developer Guide
19. General architecture
20. Components documentation
20.1. Commons
20.1.1. DSL
20.1.2. GExpression
20.1.3. Commons Eclipse
20.1.4. Timeline
20.1.5. Commons Thirdparty
20.2. Simulation model animation framework
20.2.1. Debugger
20.2.2. Debug model presentation
20.3. GEMOC framework
20.3.1. Execution Framework
20.3.1.1. Execution Framework Debugger
20.3.1.2. Debug model presentation
20.3.2. Framework Commons
20.3.3. XDSML Framework
20.4. Trace framework
20.5. Execution engines
20.5.1. Java Execution
20.5.1.1. Java XDSML
20.5.1.2. Java Engine
20.5.2. ALE Execution
20.5.2.1. ALE XDSML
20.5.2.2. ALE Interpreted Engine
21. Contributing
21.1. Developing new features
21.1.1. Developing new Addons
21.1.1.1. Create an Addon
21.1.1.2. Controling call to addon
21.1.2. Developing new engines
21.2. Distributing new features
21.3. Documentation
A. Appendix
Bibliography
Glossary
A.1. Index
Index

List of Figures

1. Gemoc Workbenches Global Picture
1.1. Screenshot of the GEMOC Language Workbench showing the design of a Timed Finite State Machine (TFSM) example.
3.1. Screenshot of the First graphical level of Edition in MoCCML.
3.2. Screenshot of the Second graphical level of Edition in MoCCML (Constraint Implementation).
4.1. Model debug RTD using aspect annotation in k3fsm.ecore.
4.2. Aspect annotation effect in Modeling workbench.
4.3. Add language specific Engine Addon on DSL
4.4. The exploration and verification flow in Gemoc
4.5. Using T1 Tranformation
5.1. Overview of the approach.
5.2. Wizard of the examples of coordination.
5.3. Windows Problems when languages are not correctly deployed.
5.4. Correct deployment of languages and BCOoL operators in the language workbench.
6.1. Runtime workbench launch configuration
7.1. Screenshot of GEMOC Studio Modeling Workbench on the TFSM example (execution and animation).
9.1. Selection of addons in the launch configuration tab
9.2. Engine View
9.3. CCSLJava addition to Engine View
9.4. Manual activation/deactivation of a Sirius animation layer
9.5. Example of Sirius animation on a FSM DSL.
9.6. GEMOC Sirius animation preference page.
9.7. Debug view
9.8. Debug and Variable views with the sequential engine
9.9. Breakpoints view
9.10. Omniscient debug commands overview
9.11. Multibranch timeline with Java engine
9.12. Sirius debug stack highlighting
9.13. Xtext debug stack highlighting
10.1. Wizard of the examples of coordination for the modeling workbench.
10.2. BFLoW specification of the coffee machine by using the TFSM and SigPML languages.
10.3. Debug Configuration of the Gemoc Coordinated eXecutable Models.
10.4. Debug Configuration of the Gemoc Coordinated eXecutable Models with launchers.
10.5. Step by step execution of the coordinated models.
11.1. Xdsml Wizard
11.2. Discovery
11.3. Discovery Components
11.4. Discovery Clocksystem
11.5. Approve licensing
11.6. Exploration Graph for an Instance
16.1. K3FSM Metamodel classes and K3 aspects classes.
16.2. FSM Syntaxic domain.
17.1. FSM/XSFSM main relations.
17.2. Language relations, packages and classes view.
17.3. FSM Syntaxic domain.
18.1. SigPML metamodel overview
18.2. Agents in SigPML metamodel
18.3. HW Resources in SigPML metamodel
19.1. GEMOC Studio General Architecture - Main Features
20.1. Components overview
20.2. GExpression ecore
20.3. Base debugger presentation overview
20.4. Base debug model presentation overview
20.5. ExecutionEngine overview
20.6. ExecutionEngine typical flow
20.7. Execution framework debugger overview
20.8. Execution framework debug model presentation overview
20.9. Execution Framework API Interfaces overview
20.10. PlainK3ExecutionEngine overview
20.11. ExecutionEngine typical flow
20.12. ALE Interpreter ExecutionEngine overview
21.1. New Extension for Engine Addon screenshot
21.2. EngineAddon extension point details screenshot
21.3. Add language specific Engine Addon on DSL