Skip to main content

In Part 1 of this series, we discussed applying some of the techniques of DevOps to the practice of MBSE and the particular importance of this during times of remote telework and social distancing when the usual formal and informal meetings are not occurring. In a distributed and asynchronous development environment, we need an ability to view the workflow as a whole, rather than as disconnected and uncoordinated tasks. In particular, a digital platform (or platforms) is required to deliver a variety of services:

  • Connect data in different models
  • Access data through those connections
  • Transform data between modeling domains
  • Store connection data in a configuration-managed repository
  • Supply connection data for documentation, analysis and visualization
  • Validate connected data in the system model for consistency and completeness
  • Verify system performance through simulation, test and analysis
  • Detect and publish changes in connected data
  • Update connected data

In Parts 2a/b and 3, we demonstrated how Syndeia, the MBSE interoperability platform from Intercax, was able to create, store and visualize connection data to build the Digital Thread. In this final section, we will illustrate how graph analysis of the Digital Thread can validate connected data in the system model for consistency and completeness.

Dashboards

Figure 1 Syndeia Cloud dashboard system metrics

Figure 1 Syndeia Cloud dashboard system metrics

The web interface introduced for Syndeia Cloud in Release 3.3 opens with  bar charts describing the connection database contents. In Figure 1, we see the current contents broken down by the generic node and edge elements within the graph. The largest categories are artifacts, which include blocks, requirements, parts, files, issues and many other model elements across the range of connected models, and relations, the connections between them that define the model structure. A second bar chart breaks this down further by the repository types, i.e. tools, that are part of the Digital Thread. These views allow the project manager real-time monitoring of the progress of the development effort and its incorporation into the integrated workflow.

Completeness

During ongoing system development, project managers must monitor completeness, the extent to which model elements in different domains have been created and linked into the Digital Thread. From a graph analysis perspective, this means searching for a particular pattern required by the design environment rules. To achieve this, we can

  • Compare partial pattern fragments relative to the complete pattern, or
  • Search for patterns that explicitly violate the complete pattern.

Figure 2 Gremlin query – Jama requirement – SysML requirement, displayed as list of SysML requirements (partial)

Figure 2 Gremlin query – Jama requirement – SysML requirement, displayed as list of SysML requirements (partial)

As an example, we will again use our ventilator model and look at the pattern described in Figure 3 from Part 3 of this series, Jama requirement – SysML requirement – SysML activity – TestRail Testcase. In Figure 2, we display the results of a query for the pattern fragment Jama requirement – SysML requirement. In this example, we query specifically for all SysML requirements that are contained in matches to this pattern and display the results as a table.

This captures all instances of the Jama requirements which have been transfered to SysML by Syndeia model transform, independent of whether they have been further linked to test cases. By adding a count() command to the end of the query, we get a value of 20 instances of this pattern.

Figure 3 Gremlin query – Jama requirement – SysML requirement – SysML activity – TestRail Testcase, displayed as list of TestRail test cases (partial)

Figure 3 Gremlin query – Jama requirement – SysML requirement – SysML activity – TestRail Testcase, displayed as list of TestRail test cases (partial)

We compare this to a list of instances of the complete pattern, as shown in Figure 3. Here the count is 7 of the complete pattern.  Therefore, of the 20 requirements in our Digital Thread, only 7 have been fully completed in the allocation of SysML and TestRail verification test cases.

Figure 4 Gremlin query – Jama requirement – SysML requirement – SysML activity – NOT(TestRail Testcase), displayed as list of SysML activities

Figure 4 Gremlin query – Jama requirement – SysML requirement – SysML activity – NOT(TestRail Testcase), displayed as list of SysML activities

If we practice management-by-exception, we may prefer to generate a list of elements that are not complete. In Figure 4, our query looks for the pattern Jama requirementSysML requirement – SysML activity – NOT(TestRail Testcase), patterns where a SysML activity has been allocated to the SysML requirement potentially as a test case placeholder, but a further link to TestRail has not yet been created. In this case, there are only two instances of this, activities where we may want to investigate further to see if the full test case in TestRail has not been created or, alternatively, exists but is not linked into the Digital Thread.

Consistency

A second important aspect of model validation is checking for consistency. Where the same data exists in different parts of the Digital Thread, do its values remain the same as the separate domain models evolve over time? When that data is shared by Syndeia model transforms, Syndeia provides mechanisms to compare and update the data. When the data is updated, Syndeia Cloud records that update, retaining both the old and new relationships within the graph database.

To illustrate how this might be used, we start by editing some of the original requirements in the Jama repository. Specifically, we edit the Description field in the Plateau Pressure requirement by reducing the maximum plateau pressure from 35 to 30 cm H2O and the same field in Peak Pressure by increasing the peak-above-plateau from 2 to 5.  In our scenario, we assume that Jama Connect is the master requirements repository and that the changes have followed the organization’s standard procedure within that domain.

Figure 5 Syndeia difference table, Jama vs. SysML requirements under Inspiritory Airway Pressure (partial)

Figure 5 Syndeia difference table, Jama vs. SysML requirements under Inspiritory Airway Pressure (partial)

Now we have an inconsistency between Jama and the SysML requirements in our SysML Ventilator model.  Using the Syndeia dashboard from the SysML modeling tool plug-in, we periodically perform a comparison over a range of requirements and generate a difference table as shown in Figure 5.  The description/text field in the two modified requirements are highlighted as changed, as well as the fact that new versions of the Jama requirements are available in the Jama configuration-managed repository.

Through the same Syndeia dashboard, we request an update across the connections from Jama to SysML.  This updates the text field in the SysML requirements and creates a connection from the SysML requirement to the new version of the Jama requirement. This new connection is pushed to Syndeia Cloud, but the original connection is not deleted from the graph database. A property (_isLatest) in the metadata associated with the original connection is changed from TRUE to FALSE.

Figure 6 Gremlin query – Jama requirement – SysML requirement, _isLatest = FALSE

Figure 6 Gremlin query – Jama requirement – SysML requirement, _isLatest = FALSE

In Figure 6, we have used a Gremlin query to show SysML-Jama intermodel connections where the connection has been updated since creation, that is, an older connection with _isLatest = FALSE exists within the graph. In combination, Figure 5 and Figure 6 show that an inconsistency was detected for two connections and that it was resolved by updating the connection. Because the connection metadata in Syndeia Cloud includes creation and update timestamps, these analyses can be narrowed to particular timepoints or intervals to track the processes more finely (such comparative queries have not been implemented in the Tinkerpop standard used in Syndeia Release 3.3, but will be available in future releases).

Using these Syndeia capabilities, detection and resolution of Digital Thread inconsistencies can become a rapid, systematic part of system development, done real-time at frequent intervals with minimum human effort.

Future Directions

In our discussion of systems engineering in a time of social distancing, we have looked at the intersection of integrated MBSE with DevOps practices, focusing on three objectives:

  • The individual team members need to be able to share their work and find the information they need in other domains, even when working in a distributed and asynchronous environment.
  • The project managers need to have a holistic, real-time view of the entire system development in that same environment.
  • Whenever possible, the workflow should be facilitated by automation to overcome the greater difficulties in close collaboration and coordination.

In this series, we have not discussed this last area in depth. Rather than an application with a limited set of commands and reports, Syndeia is evolving into a set of microservices that expose the capabilities we have demonstrated through a RESTful API with well-documented endpoints. Customers can apply third-party automation and documentation platforms, e.g. Jenkins, OpenMBEE, Tom Sawyer, to support their workflow and reporting requirements.

We all look forward to the return of more “normal” times, particularly with regard to the safety of our family, friends and co-workers, but we also understand this period has only highlighted the need for systems engineering to break down the barriers between disciplines and organizations, close or distant. Developing both the technology and culture to make this possible will continue to be one of our highest priorities.

Related posts:

Tags:
Blog

Related Posts

Syndeia AI Agents – Part 1

Hello and welcome to a preview of Syndeia AI, a swarm of AI agents that are powered by Syndeia Cloud. These AI agents can take natural language inputs, fetch latest data from your ...
Manas Bajaj

Santa’s Mission 2024 with 8.2 billion landings made possible by Digital Threads (Day 5)

Santa has just returned from his whirlwind journey, and the workshop erupts in cheers. Elves spill into the command center, their faces glowing with joy and pride as they take in ...
Manas Bajaj

SDS Hardware, Software, and Verification Digital Threads go live (Day 4)

The air hums with the sound of high-tech enchantments and the cheerful chatter of elves hard at work. Twinkling fairy lights hang from the rafters, casting a warm, festive glow. ...
Manas Bajaj

3D Sleigh Assembly model coordinated with System Architecture (Day 3)

It is Day 3 and Tony Sparkgear (Chief-Hardware-Elf) had his team of elves are working hard to create a 3D model in NX parametric software to represent the Sleigh Assembly as shown ...
Manas Bajaj

Sleigh Delivery System – Architecture & Digital Thread Dashboard (Day 2)

It is 7 AM and North Pole is bathing in the first light of dawn reflecting from the snow. The Great Hall, ground zero of operations and logistics, is hustling and bustling with ...
Manas Bajaj

North Pole Calls Intercax for Digital Mission Possible (Day 1)

Today, Intercax received a call from Mrs. Claus, the heart and soul of operations and logistics at North Pole. Seven days from the finale and at a time when hope and love cannot ...
Manas Bajaj

SysML v2 and Digital Threads with Syndeia

SysML v2 is the next generation Systems Modeling Language for modeling complex systems that significantly enhances precision, expressiveness, usability, interoperability, and ...
Manas Bajaj

Digital Thread Conference 2024: A Milestone for Digital Engineering

AI for DT & DE | Part 1 – Connecting with OpenAI as a service in Syndeia®

Introduction – AI for Digital Threads and Integrated Digital Engineering Welcome to our new blog series – Artificial Intelligence (AI) for Digital Threads and Integrated Digital ...
Manas Bajaj