Exercise 7.10 - Jama Diagram Generate & Sync

Exercise 7.10 - Jama Diagram Generate & Sync

Objectives

The new learning objectives of this exercise are to generate and synchronize Cameo/MagicDraw diagrams to Jama. This capability will work for any SysML diagram nested under a SysML packageable element (e.g. Requirement, Block, Use Case, Activity, Test Case, etc.) that is being transformed or synchronized from SysML to Jama. This capability will work for both scenarios:

This tutorial consists of 2 parts.

  • Part 1: Generating Diagrams from SysML to Jama

    • Generate diagrams from SysML to Jama

    • Add diagram in SysML and sync to Jama

    • Delete requirement in SysML, compare results, and sync to Jama

  • Part 2: Syncing Diagrams from SysML to Jama

    • Modify a diagram in SysML and sync to Jama

    • Add a new diagram in SysML and sync to Jama

Preparation

This exercise assumes the student has:

  • Cameo System Modeler (or MagicDraw with SysML plug-in) supported version installed correctly on their 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.

Exercise

The Cameo model System_Requirements.mdzip used in these demos can be downloaded from https://intercax.atlassian.net/wiki/spaces/SYN36/pages/3330096164.

Part 1 - Generating Diagrams from SysML → Jama

  1. Begin with Requirements in SysML with diagrams in the parent package and under the requirements structure, as shown below in Figure 1. The red arrows indicate the various diagrams in this example as displayed in the containment tree, and the highlighted System Requirement Spec Diagram is displayed on the right. You may have diagrams nested under any packageable element at any level in the containment tree.

    image-20250422-035213.png
    Figure 1 SysML containment tree showing a package with nested diagrams and requirements

     

  2. Select the Settings tab in the Syndeia Dashboard and adjust settings as shown below in Figure 2

    1. Check the Jama setting Generate and update images in Jama item descriptions from SysML diagrams.

    2. Click the Apply button to save the settings.

      image-20250416-222236.png
      Figure 2 Settings tab with Generate and update images in Jama item descriptions from SysML diagrams checked and applied

       

  3. Drag and drop the System Requirement Spec requirement to Jama:

    image-20250418-041001.png
    Figure 3 Dragging and dropping the System Requirement Spec to a Jama Component

     

    1. The requirement that we selected to drag and drop, System Requirement Spec, has been generated in Jama under a Requirement Set with the name of the SysML requirement’s parent package, System Requirements. Figure 4 below shows that the diagrams were created as Text items and included under the set and requirement items in Jama. The structure of Jama items including the text items containing diagram images mirrors the structure of SysML elements and diagrams shown on the LHS of Figure 3 above.

      image-20250418-050027.png
      Figure 4 Jama tree showing Text items for the diagrams

       

    2. Two of the four Text items that were generated containing diagrams are shown in Figures 5 and 6, demonstrating that any diagram type will be transformed, including a table. Figure 5 shows the Text item System Requirement Spec Diagram which contains an image of the same diagram which was shown in Figure 1, and Figure 6 shows the Text item Functional Requirements Table containing an image of the table which was generated under the Functional Requirements.

      image-20250418-053653.png
      Figure 5 Jama Text item created for System Requirement Spec Diagram showing the diagram image in the description

       

      image-20250418-053618.png
      Figure 6 Jama Text item created for Functional Requirements Table showing the image of the table in the description

       


Part 2 - Syncing Diagrams from SysML → Jama

  1. Now, we will modify an existing SysML diagram and also create a new one under a requirement to be synced.

    1. We have rearranged the System Requirement Spec Diagram by swapping the places of the Functional Requirements and the Non-Functional Requirements:

      image-20250418-054114.png
      Figure 7 The System Requirement Spec Diagram after rearranging its contents

       

    2. We have also created and populated a new table called System Requirement Spec Table under the System Requirement Spec requirement:

      image-20250418-054524.png
      Figure 8 A new table called System Requirement Spec Table added under System Requirement Spec

       

  2. Go to the Connection Browser tab in the Syndeia Dashboard, expand the System Requirement Spec, and you will see a connection under it that was created in Part 1. Right-click on that and Sync Source -> Target:

    image-20250418-054941.png
    Figure 9 Syncing Source -> Target for the connection / relation between System Requirement Spec in SysML and corresponding Jama item

     

    1. Click the Refresh button for the System Requirement Spec Diagram Text item in Jama and observe that the diagram has been updated in the Description and the version is now V2:

      image-20250418-055615.png
      Figure 10 The System Requirement Spec Diagram in Jama after clicking the Refresh button, showing the updated diagram and version

       

    2. Click the Refresh Explorer button in the Jama Explorer to show new Text item System Requirement Spec Table containing the new table that was created under the System Requirement Spec requirement in Jama:

      image-20250418-060457.png
      Figure 11 Text item System Requirement Spec Table shown after clicking Refresh Explorer, with the table shown in the description

  3. If diagrams are nested multiple levels deep, it may be better to sync at the package level, which will sync all nested connections:

    image-20250114-042559.png
    Figure 12 Syncing all connections nested under System Requirements package instead of just one single connection (as shown in Figure 9)