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 (or MagicDraw with SysML plug-in) supported version installed correctly on his or her machine with a valid license for use.
Syndeia 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, syndeia_tutorial.mappings (get it here - https://intercax.atlassian.net/wiki/spaces/SYN36/pages/3330096164), 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 - https://intercax.atlassian.net/wiki/spaces/SYN36/pages/3330096164), 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 - https://intercax.atlassian.net/wiki/spaces/SYN36/pages/3330096164) 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.
Return to the Syndeia client dashboard settings tab. Under Jama make sure the box for ‘Allow deletion during SysML and Jama synchronization’ is unchecked. If selected, Syndeia will delete Jama items (or SysML elements) when synchronizing SysML → Jama (or vice versa). Click Apply.
Repeat the Comparison Result step for the Product_Spec Connection. The deleted Requirement should be flagged in Red in Syndeia as shown in Figure 15.
Right click and sync the connection from Source to Target in Syndeia Connection Search tab as shown in Figure 16.
Check that the child requirement is not deleted in Jama as a result shown in Figure 17. The 'Feature_1_Safety' Requirement was not removed since the Jama setting in Syndeia was unchecked.
Return to the Syndeia client dashboard settings tab. Under Jama make sure the box for ‘Allow deletion during SysML and Jama synchronization’ is checked. Click Apply.
Repeat the Comparison Result step for the parent requirement connection. The deleted Requirement should be flagged in Red as shown in Figure 19.
Again, Right click and sync the connection from Source to Target in Syndeia Connection Search tab as shown in Figure 20.
Check that the child requirement is now deleted in Jama as a result shown in Figure 21. The requirement was removed because the Jama setting for deletion in Syndeia was checked.
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 22.
From the Syndeia Dashboard, trigger a Comparison of the connection once again. The changes should be shown in Red as seen in Figure 23.
From the Connection Browser tab, right click the connection and select ‘Sync Target to Source’ as shown in Figure 24.
Return to Cameo and verify that the new changes have been made in the containment tree and properties shown in Figure 25.
From Jama Connect, delete a requirement underneath Product_Spec Requirements as shown in Figure 26.
Return to the Syndeia client dashboard settings tab. Under Jama make sure the box for ‘Allow deletion during SysML and Jama synchronization’ is checked. Click Apply.
From the Syndeia dashboard, compare the Product_Spec Requirements connection again and check that the deleted requirement appears in red as shown in Figure 28.
Right click and sync the connection from Target to Source in Syndeia Connection Search tab again as shown in Figure 29.
Check in SysML that the child requirement has been deleted as shown in Figure 30. The deletion works since the Jama setting was checked in Step 6.
Congratulations! You have now learned how to add/update/delete requirements in Cameo (or Jama), and compare/sync to Jama (or Cameo) with custom mappings.