Introduction
Since its first release, Syndeia has provided a powerful capability for model transformations, the ability to generate models in a target repository/tool from a model in a source repository/tool. For example, using SysML blocks to generate issues in JIRA or items in Teamcenter (and vice versa), or using SysML requirements to generate requirements in Jama, Teamcenter, or DOORS-NG (and vice versa). In addition to generating models, this process also creates persistent connections between source and target model elements which can be used for compare and synchronization as the source and target models evolve over time.
Model transformations are based on mapping rules, referred to as mappings hereafter, that specify the types of model elements that will be generated in the target model from the types of model elements in the source model. For example, there is a pre-defined mapping in Syndeia that maps a SysML Block to a Teamcenter Item, and this mapping is used when a Teamcenter element of type Item is used to generate elements in a SysML model or when a SysML element of type Block is used to generate elements in Teamcenter.
Until Syndeia 3.2, all mappings were pre-defined to ensure that the types of source and target elements were semantically consistent or equivalent. Some variations were allowed in Syndeia settings, such as selecting the type of JIRA issue (e.g. Bug, Task, New Feature) that will be generated from a SysML block.
Syndeia 3.2 brings the powerful and extensible capability to create and use custom mappings. In addition to the pre-defined mappings, users can now create their own custom mappings to control the types of target elements that will be generated based on the types of source elements. Users can also specify the levels of model structure and the mapping between attributes of the source element type and target element type. Users can define multiple mappings for a specific type of element and can select specific mappings during model transformations. For example, a user can now specify the following mappings and select specific attributes (or none) to include: SysML Block ↔ JIRA New Feature, SysML Activity ↔ JIRA Task, or SysML Use Case ↔ JIRA Story. Syndeia creates connections between source and target model elements, and each connection is aware of the mapping used for the same. Compare and bi-directional synchronization operations on connections use the mapping information to compute differences and synchronize models.
A general approach for using the mapping capabilities is presented below, followed by a list of hands-on step-by-step tutorials to get started with the mappings.
General Approach
The mapping capabilities in Syndeia 3.2 are powerful but very simple to setup and use. A general approach is presented below