Exercise 7.9 - Jama - SysML Compare & Sync with Custom Mappings

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

  1. 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,

    1. Close MagicDraw, if it is open

    2. Rename the existing syndeia.mappings file in the .syndeia folder to something like syndeiaOld.mappings

    3. Copy syndeia34Tutorial.mappings into the .syndeia folder

    4. Rename syndeiaTutorial.mappings as syndeia.mappings

    5. When you have completed the mapping tutorial exercises, you may want to reverse this process to restore the original mappings file.

  2. 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

  1. 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.

  2. Go to the Settings tab (Figure 1) and check the Use mapping element under the General heading, if not already checked. Click Apply.

Screenshot 2024-12-09 141023.jpg
Figure 1 - Syndeia dashboard, Settings tab, Use mapping checked
  1. 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).

Screenshot 2024-11-14 105153.png
Figure 2 - Syndeia dashboard Mappings tab showing details of Requirement - Requirement (attributes) mapping.
  1. 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.

Screenshot 2024-11-14 105635.png
Figure 3 - Sample Jama Requirements Structure ‘Product Spec’
  1. 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.

    1. With Model Transform Connection Type selected, drag the Product Spec Jama requirement onto the empty Cameo Package ‘From Jama’.

    2. Select the mapping spec ‘Requirement - Requirement (attributes)’ and click OK.

image-20241204-190230.png
Figure 4 - Drag the Product_Spec Requirement from Jama to SysML
  1. We can view the new SysML requirements generated by Syndeia in Cameo’s containment tree, as shown in Figure 5.

image-20241204-155520.png
Figure 5 - Generated Requirements from Jama in the Cameo Containment tree
  1. 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).

figure6.jpg
Figure 6 - Compare the Product Spec Connection from Connection Browser
  1. The Comparison Result tab will open and the results should appear similar to Figure 7.

figure7.jpg
Figure 7 - Initial comparison result of Product_Spec connection
  1. Modify the ‘Product_Spec' text field in Cameo and add a sub-requirement, 'Feature_1_Safety’, as shown in Figure 8.

fig8.jpg
Figure 8 - Editing text and adding sub-requirement in SysML
  1. Compare across the same connection as in Step 7 and display the comparison results (Figure 9).

figure9.jpg
Figure 9 - Compare connection again to see the changes in step 9
  1. 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.

fig10.jpg
Figure 10 - Sync Source to Target on the Product Spec Connection
  1. Repeat the comparison as in Step 2 and check that the Comparison Result shows all green, as in Figure 11.

figure11.jpg
Figure 11 - Comparison Results after syncing SysML to Jama
  1. View the same requirement in Jama through its web interface to see the modified requirement text and sub-requirement (Figure 12).

fig12.jpg
Figure 12 - Viewing the Syndeia Updates to the Jama Requirement in Jama Connect
  1. Now, return to Cameo and in the containment tree delete a child requirement underneath Product_Spec as shown in Figure 13.

Screenshot 2024-11-15 114828.jpg
Figure 13 - Delete Child Requirement in SysML
  1. 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.

Screenshot 2025-04-23 140634.jpg
Figure 14 - Uncheck the Jama ‘Allow deletion’ box
  1. 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.

Screenshot 2024-11-15 114909.jpg
Figure 15 - Comparison Result Window after deletion of SysML Requirement
  1. Right click and sync the connection from Source to Target in Syndeia Connection Search tab as shown in Figure 16.

image-20250404-123046.png
Figure 16 - Sync Source to Target on the requirements connection
  1. 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.

image-20250404-123533.png
Figure 17 - The Jama requirement has not been removed
  1. 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.

Screenshot 2025-04-23 141459.jpg
Figure 18 - In the settings, check the Jama box to allow deletion
  1. Repeat the Comparison Result step for the parent requirement connection.  The deleted Requirement should be flagged in Red as shown in Figure 19.

image-20250404-123856.png
Figure 19 - Compare the connection again to flag the deleted child requirement
  1. Again, Right click and sync the connection from Source to Target in Syndeia Connection Search tab as shown in Figure 20.

image-20250404-124026.png
Figure 20 - Sync Source to Target again on the same requirements connection
  1. 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.

image-20250404-124300.png
Figure 21 - The Jama requirement has been removed as a result of the Syndeia connection sync

 


Part 2 - Add/delete requirement in Jama and sync to SysML

  1. In Jama, modify the text of ‘Product_Spec’ and add a new Requirement (Feature_1_Maintenance) underneath it as shown in Figure 22.

fig17.jpg
Figure 22 - Edit the text of the Product_Spec requirement in Jama and add the Feature_1_Maintenance requirement
  1. From the Syndeia Dashboard, trigger a Comparison of the connection once again.  The changes should be shown in Red as seen in Figure 23.

figure18.jpg
Figure 23 - Syndeia Comparison Result Window after adding Jama requirement and editing the text
  1. From the Connection Browser tab, right click the connection and select ‘Sync Target to Source’ as shown in Figure 24.

Screenshot 2024-11-15 115513.jpg
Figure 24 - Sync from Jama to SysML from the Connection Browser
  1. Return to Cameo and verify that the new changes have been made in the containment tree and properties shown in Figure 25.

fig20.jpg
Figure 25 - Cameo shows the new requirement and text synced from Jama
  1. From Jama Connect, delete a requirement underneath Product_Spec Requirements as shown in Figure 26.

Screenshot 2024-11-15 115740.jpg
Figure 26 - Deleting a requirement in Jama Connect
  1. 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.

Screenshot 2025-04-23 141459.jpg
Figure 27 - Return to Syndeia settings and check the ‘Allow deletion’ box
  1. 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.

image-20250404-130609.png
Figure 28 - Compare the connection result for the parent requirement again
  1. Right click and sync the connection from Target to Source in Syndeia Connection Search tab again as shown in Figure 29.

image-20250404-130708.png
Figure 29 - Sync Target to Source on the parent requirement connection again
  1. 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.

image-20250404-130826.png
Figure 30 - The child requirement has now been deleted in SysML
  1. 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.