Skip to main content

As we have built our SysML models over the previous five parts of this series, we have created a lot of model elements and a lot of connections. It’s reasonable to ask how we can use this network effectively as it grows to thousands or millions of parts, especially when we want to go beyond nearest neighbors. System engineering and security analysis are about going beyond immediate relationships and looking for extended chains of causation, fault trees and emergent behaviors from large networks. But here we can take advantage of advances in information technology, particularly in the area of graph technology.

A graph is a simple concept, that we can model things in terms of nodes and edges. Pretty much all engineering models can be abstracted as graphs, but the real hard-core users of graphs have been the social networks. They deal with networks with millions of members and are constantly looking for ways to connect people through common contacts and shared interests.  They have instigated enormous advances in graph databases and pattern matching query languages. Engineers need to take advantage of this new IT infrastructure. They can look at their systems as sets of nodes and edges and use graph technology to navigate the network to find the information they need to develop systems and solve problems. They need to be able to ask questions that are very difficult to answer in the traditional document-based processes.

Syndeia has taken the first steps to apply this idea to MBSE.  Syndeia takes the inter-model connections between tools from its own database and the internal connections inside the SysML, combines them and exports them to a graph database, in this case, Neo4j from NeoTech.  We can use the Neo4j web interface and the Cypher graph query language to find patterns in the data, quickly even for very large networks.

neo4j-graph-1

Figure 1 Neo4j graph visualization – Show Everything

The results in the following figures are the same whether we begin with the MagicDraw/Cameo or IBM Rational Rhapsody SysML models, so we have not created separate blog posts for this final installment. In Figure 1, we asked the database to show us everything. The result is unwieldy, even in a relatively small dataset of 230 nodes and 517 elements, but we can see from the color-coded legend at the top that the graph generated has elements from SysML, including blocks, activities and requirements, as well as Jama, JIRA, GitHub and NX. The real value in this is that we can start to ask more focused questions.

Figure 2 Neo4j graph visualization – Show All Jama requirements

For example, we can ask this same database, show me all the Jama requirements. Figure 2 shows that there are nine different Jama requirements, the blue circles in the diagram, and they’re connected to nine SysML requirements, the grey circles.

Figure 3 Neo4j graph visualization – Show All “Satisfied” Jama requirements

In Figure 3, we ask the model, show me how many of those are satisfied. What we’re actually asking, using pattern matching, is how many Jama requirements are connected to SysML requirements which are also connected by a SysML Satisfy relationship to a system element that some subject matter expert has projected will satisfy that requirement. That’s a three body, non-nearest neighbor pattern that graph query languages are designed to answer very efficiently, typically in milliseconds. In this case, there’s only one Jama requirement that is satisfied, at this stage of the model development, and it is identified.

Figure 4   Neo4j graph visualization – Show all JIRA issues connected to GitHub file “StoreVoteItem”

We can ask other types of questions. In Figure 4, the query is “show me all the JIRA issue that are connected to a specific GitHub software file, the one titled StoreVoteItem”. That is the red circle down in the lower right and the JIRA issues are these grey circles. There are three distinct JIRA issues, each connected to the GitHub file through a chain of four connections. We can also see that there are three connected issues, but four distinct paths, graphically or in a tabular format.

Figure 5   Neo4j graph visualization – Show all GitHub files connected to use case “Steal Votes DRE”

We can ask a similar question in the reverse direction. Figure 5 shows the response to “show all the GitHub files that are connected and potentially impact the use case, Steal Votes DRE”. If that is the particular vulnerability we are concerned with reducing, the model has identified the software files we might need to investigate. The red circles represent these files.

So, by understanding how to query this model, we can ask some very specific questions identifying where to find the information we need to resolve security vulnerabilities in our electronic voting system, even as our model gets large, complex and distributed over many different tools, databases and repositories.

In this series, we have tried to offer some evidence that the MBSE approach, not just including a SysML model, but all the models and data sources involved in the development of the system, provides a clear and unambiguous way to describe the system itself. Second, that by creating that clear specification, it’s easier to do a systematic definition of the failure modes and that this applies directly to security analysis. Finally, given the ability to connect the different models through Syndeia, it makes it easier to identify the specific elements and relationships that we need, when it comes time to start exploring those vulnerabilities and looking for way to reduce or eliminate them

Download links to the SysML models in MagicDraw and IBM Rational Rhapsody are provided below. If you would like to learn more about how Syndeia connects these models to PLM, CAD, requirements, project management and other domains, check out our website or contact Intercax for a web demonstration.

SysML Models: MagicDraw | Rhapsody

Related Posts:

MagicDraw:

Rhapsody:

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