architecture of Sirius to be able to use the editor without anything else • Eclipse integration • Sirius customization • Open source contribution (git, gerrit, etc)
which aims at providing specific multi-view modeling workbenches through diagram, table or tree editors based on EMF. Users can easily define their own modeling workbench, even with very little technical knowledge of Eclipse, while still being able to deeply customize it when needed. »
and the available variables • Completion on empty expression: available interpreters • var: direct access to Sirius variables • feature: direct access to the named features of the current element (and EMF pseudo-features) • service: direct call of a Java method (that follows some naming conventions in the documentation) • [ /]: Acceleo3 expression
semantic/domain model to look for candidates if semantic candidates expression is empty. • eAllContents() on each domain resource content • Not efficient
its description/mapping): 1. Get available mappings to refresh • activated Viewpoints, activated Layers • children mappings + reused mappings 2. For each mapping found 1. Evaluation of the semantic candidates expression from the current domain element (or eAllContents() on each domain resource) 2. Filter with the specified domain class 3. On each candidate, evaluate the precondition 4. Create the diagram element, assign a style
expressions + empty semantic candidates + big models 㱺 Poor performances Try as much as possible to write efficient semantic candidates expression: • Avoid empty semantic candidates expression and eAllContents when possible • Follow the structural features defined in the meta model • Use the inverse cross references ( eInverse(Type) in Acceleo3, access to the ECrossReferenceAdapter from a Java service) to look for elements with a reference to another element. • Use the var:, service:, feature: interpreters when possible • Try to integrate your precondition in your semantic candidate expression [ mainExpression -> select( e | e.precondition) /]
to look for candidates for a mapping or just to refresh the style and the sub elements. • Allows to create contextual diagrams: • User controls the elements he wants to see on his diagram • Sirius does not create elements for non-synchronized mappings • Delete from diagram is enabled • Specifier has to create some ‘insertion’ tools: Selection Wizards, Drop tools (from Model Explorer) to allow the user to populate its diagrams • Edge, border nodes, list elements mappings often put as synchronized
be used to do more. In Ecore Tools, on EStructuralFeature nodes/edges: • « Something » => change name of feature • «:SomeType » => only change the eType • «1» => only set cardinality to 1..x • « * » => only set cardinality to x..* • « /Something » => make the feature derived • « = something » => set the default value literal • [...] • Easy edit mask creation • {0} : {1} • User text will be split into String variables
selection dialog (list or tree) when the user execute a tool • Filter listener: to control the visibility of a palette tool and react to model (Sirius or semantic) changes • Java service: could be used from a Generic Tool (or any other kind of tool) to call your own JFace/SWT Wizard/Dialog.
Ready to deploy Eclipse plugin • Viewpoint Specification Model • 1..* per Viewpoint Specification Project • EMF Model, can have links to other VSM • Possibility to extends/complete VSM defined in other plugins • Viewpoint • Activation controlled by the user • Declares Diagram/Table/Tree description but also Diagram Extension
default Layer • 0..* additional Layers • Diagram Extension Description • reference a diagram description (defined anywhere) • provide additional layers • Layer • Possibility to make it optional and/or active by default • Activation controlled by the user if optional • contains top level mappings and tool section • Node/Container/EdgeMapping imports • to specialize mappings • provide new styles / children mappings • Tool Section • contains other tool sections • declares or reuse tools
• Define in a Group • Add additional colors • User fixed color (RGB, System color chooser) • Computed Color: interpreted expression to compute R, G, B • Interpolated Color • Define several color steps (value/color) • Expression to compute a value from the element to decorate
• 0..* conditional style • Each conditional style contains a different style • Precondition must be exclusive • Sirius takes the first whose precondition evaluation returns true. • The ‘default’ style is taken if no conditional style can be applied
fine grained customization (than the Conditional Styles) • Style Customization has a precondition • Property Customization • target one EStructuralFeature of the Sirius style descriptions • applied on all style or selected ones
Luna 2013-12-11 2014-06-25 2014-08-22 2014-10-24 First official version under the Sirius name. First participation in the release train. Minor corrective version in Luna Service Release 1 4 months after the previous major version • 26 issues closed on the Sirius Bugzilla • 109 issues closed on the Sirius Bugzilla • 16 ticket tagged « Performance » • 17 enhancements focused on the Diagram editor UX 2015 Mars Sirius 3.0 Sirius 2.0: released last friday 67
default for new diagrams • « Touch » selection mode (selection from right to left: element that intersects the selection rectangle will be selected) • « Snap to grid » preference is now used to place elements created from the palette. • The resize of a node/container does not change the location of its children (sub nodes/containers, border nodes - F3 to retrieve the GMF default behavior) • The edges appearance is now kept, as much as possible, • when one of its extremity is moved/reconnected. • when a node (container or not) is moved. • only the closest segment of the impacted edges will be modified. • New actions and menus: • Distribute shapes actions (gaps between selected elements or between their centers) • Remove bend-points • Reset diagram (or container) origin • The « Navigate » top-level context has been split into two menus: « New » and « Open » Sirius 2.0: Ergonomic improvements on Diagrams 68
Viewpoint, Diagram extensions, Layers to deal with different aspects in your modelers Help Sirius find the elements to display Use the specific interpreters Think about your models topology Use inverse cross references Help the user with advanced tools Conditional styles completely change the appearance of an element Style customizations allow a more fine grained customization
• 13:45 to 14:20 • Cédric Brun - Obeo • Theater • Capella on the field: Model-based system engineering use cases • 15:15 to 15:50 - • Kristian Ashton, Christophe Gatti, Matthieu Helleboid - Thales • Theater Stage • BOF : Let's practice Sirius! • 19:00-20:00 • Silchersaal The BOF will be the place to practice with the help of the Sirius team. Whatever your skill level in Sirius, start with a sample case provided by the team or come with your own case (an Ecore metamodel, an Xtext editor, your first Sirius modeler, ...) and we will be glad to coach you in discovering or going further with this technology. • Obeo booth • Bürgersaal Foyer