Exercise 7.9 - Jama - SysML Compare & Sync with Custom Mappings
Objectives
The new learning objectives of this exercise are to compare connected requirements models in Jama and Cameo/MagicDraw (via custom mappings) and to synchronize changes that have arisen. These changes will be demonstrated by both adding and removing Jama requirements, comparing those changes in Syndeia client, and syncing both to Jama connect and SysML.
This tutorial will consist of 2 parts.
Part 1: Sync SysML to Jama
Transform requirements from Jama to SysML using custom mappings
Add requirement in SysML, compare result, and sync to Jama
Delete requirement in SysML, compare result, and sync to Jama
Part 2: Sync Jama to SysML
Add requirement in Jama, compare result, and sync to SysML
Delete requirement in Jama, compare result, and sync to SysML
Preparation
This exercise assumes the student has:
Cameo System Modeler 19.0 (or MagicDraw with SysML plug-in) or later installed correctly on his or her machine with a valid license for use.
Syndeia 3.6 or later installed as a plugin for Cameo/MagicDraw with a valid license for use.
Jama repository (server) that can be connected over the network from the Syndeia Repository Manager.
The user can try out this capability in a sandbox Jama repository or project to ensure that their installation is working fine before using on a production repository / project.
Using mapping in Syndeia requires two new elements which are provided with these tutorials
A mappings file, syndeia34Tutorial.mappings (get it here - SysML Models, Profiles and Mappings), which contains the specific starting mappings used in this and the following exercises. To install this,
Close MagicDraw, if it is open
Rename the existing syndeia.mappings file in the .syndeia folder to something like syndeiaOld.mappings
Copy syndeia34Tutorial.mappings into the .syndeia folder
Rename syndeiaTutorial.mappings as syndeia.mappings
When you have completed the mapping tutorial exercises, you may want to reverse this process to restore the original mappings file.
A mappings profile,Syndeia_Mapping_Tutorials_Profile.mdzip (get it here - SysML Models, Profiles and Mappings), which is loaded automatically with the SysML project Syndeia_Jama_Mapping_Tutorial.mdzip and can be used with other projects.
Exercise
Part 1 - Add/delete requirement in SysML and sync to Jama
This exercise assumes the user has access to the SysML model Syndeia_Jama_Mapping_Tutorial.mdzip (get it here - SysML Models, Profiles and Mappings) and their Jama repository.
Go to the Settings tab (Figure 1) and check the Use mapping element under the General heading, if not already checked. Click Apply.
Go to the Mappings tab. The contents of the main area on the right will depend on the element selected on the left. Expand Mapping Groups and select SysML-Jama on the left to see the existing mappings in this area (Figure 2). Check the mapping spec for Requirement - Requirement (attributes).
The first task is to drag a hierarchy of Jama requirements into Cameo to create an equivalent requirements structure using the custom mapping shown above. An example Jama structure ‘Product Spec’ is shown below in Figure 3.
Go to the Connection Manager tab on the Syndeia dashboard, expand the SysML tree on the LHS, and select your Jama repository from the drop-down menu on the RHS as shown in Figure 4.
With Model Transform Connection Type selected, drag the Product Spec Jama requirement onto the empty Cameo Package ‘From Jama’.
Select the mapping spec ‘Requirement - Requirement (attributes)’ and click OK.
We can view the new SysML requirements generated by Syndeia in Cameo’s containment tree, as shown in Figure 5.
In the Connection Browser tab on the Syndeia dashboard, select the Product Spec connection created. Right-click and compare across that connection before any changes have been made to verify that all is in sync (Figure 6).
The Comparison Result tab will open and the results should appear similar to Figure 7.
Modify the ‘Product_Spec' text field in Cameo and add a sub-requirement, 'Feature_1_Safety’, as shown in Figure 8.
Compare across the same connection as in Step 7 and display the comparison results (Figure 9).
Return to the Connection Browser, click Refresh to show the new child requirement, right-click the connection and select Sync Source -> Target as shown in Figure 10.
Repeat the comparison as in Step 2 and check that the Comparison Result shows all green, as in Figure 11.
View the same requirement in Jama through its web interface to see the modified requirement text and sub-requirement (Figure 12).
Now, return to Cameo and in the containment tree delete a child requirement underneath Product_Spec as shown in Figure 13.
Repeat the Comparison Result step for the Product_Spec Connection. The deleted Requirement should be flagged in Red in Syndeia as shown in Figure 14.
In the Connection Browser of Syndeia, Right-click and select ‘Sync Source to Target’ for the connection as shown in Figure 15.
After Syndeia is finished syncing, check that the Requirement no longer shows in Jama Connect as shown in Figure 16.
Part 2 - Add/delete requirement in Jama and sync to SysML
In Jama, modify the text of ‘Product_Spec’ and add a new Requirement (Feature_1_Maintenance) underneath it as shown in Figure 17.
From the Syndeia Dashboard, trigger a Comparison of the connection once again. The changes should be shown in Red as seen in Figure 18.
From the Connection Browser tab, right click the connection and select ‘Sync Target to Source’ as shown in Figure 19.
Return to Cameo and verify that the new changes have been made in the containment tree and properties shown in Figure 20.
From Jama Connect, delete a requirement underneath Product_Spec Requirements as shown in Figure 21.
From the Syndeia dashboard, compare the Product_Spec Requirements connection again and check that the deleted requirement appears in red as shown in Figure 22.
Now from the Connection Browser, right click on the connection and select ‘Sync Target to Source’ as shown in Figure 23.
Check in Cameo that the Requirement ‘Feature_1_Environmental’ has been moved to the Parent Package level in the Containment Tree as shown in Figure 24.
This specific feature will be extended in future Syndeia releases with a setting to allow the user to either delete the requirement or not delete it. The latter use case is for scenarios where the given requirement may have relations from/to other elements and the user may decide to not delete it, or refactor the model and then delete. Currently, Syndeia moves the requirements to the parent package and does not delete it during sync when using custom mappings specifically to address this scenario. For any questions, please reach us on our helpdesk.
Compare the connection from Syndeia one last time to check that everything is showing green.
Â