Table of Contents
SmartDependencyVariabilityGraphs Toolchain
Installation
Here you can find the sources and the installation steps.
General Hints About Usage
After the installation you can start to create projects and your desired models (see Features Overview) in the current eclipse environment. However, if you want to see the output of the code generator in the console (which might be helpful because it shows additional hints and errors of the model) you need to launch a new eclipse environment. You can do this as following:
Run→Run Configurations…→Right click on Eclipse Application on the left side→New Configuration→Choose a name→Run
A new eclipse environment will start. If you then create the projects and the desired models in this new environment, you will see the output of the code generators every time it is triggered in the console of the old eclipse environment.
Triggering the Code Generators
Only the models of the Building Block and the TCL feature have associated code generators. To trigger them manually, just add a whitespace somewhere in their textual models (*.bbdsl and *.tcl respectively) and save the files.
Model References Between Different Projects
It is up to the user how exactly to organize the different models in projects. If it is necessary to reference model elements in other projects from the model in your current project you need to define project references:
- Right click on your current project→Properties→Project References→Select the projects you want to reference→Apply and Close
- Close your current project (Right click on project→Close Project)
- Open the closed project again (Right click on project→Open Project)
Sometimes when launching Eclipse it happens that existing models in existing projects can not find references to models in other projects anymore. In that case just close all the referenced projects and then open them again.
Features Overview
This model-driven toolchain has several features with different purposes as shortly introduced in the following.
Data Objects Feature
Description: Allows to model collections of Data Objects that define the underlying data structure of a variability entity in a general sense. From a more concrete point of view they may represent things such as communication objects between component services or component parameters.
Model file extension: .dordsl
Generates: —
Supported model types: Textual
Required model dependencies: —
Optional model dependencies: Data Objects
Creating a textual model in a new project
- File→New→Other→Modeling Project→Enter the name of the project→Finish
- Right click on the created project→New→File
- Enter the name of the file and append .dordsl
- Finish→Yes
Minimal valid textual model
DataObjectRepo {}
Simple example model
DataObjectRepo { UnboundedDataObjectDef UdoLocation2D { ElementDef x is Real, ElementDef y is Real } BoundedDataObjectDef BdoKinematicDOFs { ElementDef KinematicDOFs is String StringVSPInit ["2D", "3D"] } }
Building Block Feature
Description: Allows to model Building Blocks and their decomposition structures. Building Blocks may represent concrete functionalities at different levels of abstraction such as functions, components (decompose to functions), skills (decompose to components) or tasks (decompose to skills).
Model file extension: .bbdsl
Generates: Variability solver for the referenced DVG model
Supported model types: Textual, graphical
Required model dependencies: DVG*
*A model is valid without a reference to a DVG but if you want to solve the associated variability you need to reference a corresponding DVG
Creating a textual model in a new project
- File→New→Other→Modeling Project→Enter the name of the project→Finish
- Right click on the created project→New→File
- Enter the name of the file and append .bbdsl
- Finish→Yes
Minimal valid textual model
BuildingBlockDescription <DesiredName> { BuildingBlock <DesiredName> { } }
Creating a graphical model
- Make sure that a valid textual model exists (i.e. at least a minimal valid textual model should be there)
- Open the representations.aird file in your project (if the .bbdsl file does not appear in Models, close the project and open it again (right click on the project→Close Project/Open Project)
- New (Representations)→BB→Next→Building Block Description <DesiredName>→Finish→Enter a name→OK
Simple example model
For more information see Details on the Building Block Feature.
DVG Feature
Description: Allows to model Dependency Variability Graphs (DVGs) which describe the composition of variability of Building Blocks.
Model file extension: .dvgdsl
Generates: —
Supported model types: Textual, graphical
Required model dependencies: Building Block
Optional model dependencies: Data Objects
Creating a textual model
- File→New→Other→Modeling Project→Enter the name of the project→Finish
- Right click on the created project→New→File
- Enter the name of the file and append .dvgdsl
- Finish→Yes
Minimal valid textual model
DVG <DesiredName> {}
Creating a graphical model
- Make sure that a valid textual model exists (i.e. at least a minimal valid textual model should be there)
- Open the representations.aird file in your project (if the .dvgdsl file does not appear in Models, close the project and open it again (right click on the project→Close Project/Open Project)
- New (Representations)→Dvg→Next→DVG <DesiredName>→Finish→Enter a name→OK
Simple example model
For more information see Details on the DVG Feature.
TCL Feature
Description: Allows to model task nets for orchestrating the run-time execution of SmartSoft based robotic systems.
Model file extension: .tcl
Generates: SmartTCL code, a Lisp based DSL to orchestrate the run-time execution of SmartSoft based robotic systems
Supported model types: Textual, graphical
Required model dependencies: —
Creating a textual model
- File→New→Other→Modeling Project→Enter the name of the project→Finish
- Right click on the created project→New→File
- Enter the name of the file and append .tcl
- Finish→Yes
Minimal valid textual model
Behavior <DesiredName> {}
Creating a graphical model
- Make sure that a valid textual model exists (i.e. at least a minimal valid textual model should be there)
- Open the representations.aird file in your project (if the .tcl file does not appear in Models, close the project and open it again (right click on the project→Close Project/Open Project)
- New (Representations)→Tcl→Next→Behavior <DesiredName>→Finish→Enter a name→OK
Simple example model
For more information see Details on the TCL Feature.