In the first four parts of this blog series, we began to apply a Model-Based Engineering approach to the design of a washing machine, including hardware architecture, requirements and simulation, and we visualized the Total System Model (TSM) using Syndeia, the MBE platform from Intercax. Two important pieces were missing:
- Software modeling and issue tracking were not represented, and
- Stronger query methods were needed to support the TSM visualizations.
In this, the final part of this series, we will start to incorporate these elements and introduce the power of graph database technology and query languages for our modeling efforts.
Software Configuration Management and Issue Tracking with Syndeia
In our MBE process, we have begun by introducing the concept of Features, representing user-critical capabilities of the system.
- Features are modeled as a set of SysML blocks
- In the SysML model, Features can Satisfy Requirements and are Allocated to Hardware blocks
- In the Syndeia-managed TSM, Features are connected to Files in GitHub and Issues in JIRA
Figure 1 Local visualization initiated from SysML Controller block
Figure 1 shows a small part of the model, using a Syndeia local visualization initiated from the SysML hardware block Controller. It is connected to
- Two SysML requirements, Multiple Rinses and Multiple Cycles, which are links to master Jama requirements of the same names
- One Simulink block and one Windchill part (see blog Parts 1 and 3)
- One SysML Feature block, Cycle Scheduling, by an Allocation dependency
- Cycle Scheduling is connected to a GitHub file, containing the software implementing the feature, and a JIRA issue, which tracks progress on feature implementation and test
Figure 2 Global visualization, with JIRA and GitHub inter-model connections added
Figure 2 shows a global visualization of the six tools connected by Syndeia and the inter-model connections between them. Even though this is a simple and incomplete model intended to show some of the principles of MBE rather than fully model a real product, we still have 79 inter-model connections linking 126 model artifacts in six different models. It also raises the question as to how to identify a single connection, or even an extended chain of connections, between specific elements that can provide traceability across the TSM.
Graph Database Queries
Figure 3 Neo4j graph database query, “Show all Jama requirements connected to Hydraulic Subsystem block”.
Graph database technology has progressed dramatically in recent years, powering the gigantic social media networks. Tools like Syndeia are now bringing that power to systems engineering. In Syndeia 3.1, the inter-model (Syndeia) and intra-model (SysML) connections can be exported to a Neo4j database and explored using the Cypher query language. Figure 3 asks for all Jama requirements impacting the Hydraulic Subsystem SysML block (or its parts to the second level). The result shows that our model has only one, for Water Temperature.
Figure 4 Neo4j graph database query, “Show all blocks connected to Jama requirements for Usability”.
Figure 4 reverses the sense of the previous query and asks for all SysML blocks affected by a specific requirement. This returns a combination of blocks, including both a Feature (User Interface) and a hierarchy of hardware components starting with Touchpad Display. Using these queries, the Syndeia user can identify the impact of requirement changes, diagnose the source of system behavior problems, and address many other critical system engineering issues.
In a smart, connected world, it is not enough to model even consumer appliances in isolation. Our washing machine is potentially integrated into a home network that
- Lets the homeowner monitor the status of a laundry load,
- Monitors energy prices to runs cycles when prices are lowest
- Alerts a plumber if a water hose breaks and floods the house.
The availability of good MBE tools and processes will be critical to exploiting these opportunities.