SysML models readily connect structure, behaviors, requirements, and analysis in a single model. We started to show behaviors back in Part 1 with a series of simple state machine behaviors. In this blog post, we show how SysML interaction elements and sequence diagrams can be used to model the message-based communication between different parts of a Railway Control System (RCS), such as between the control center and trains passing control points in a railway system.
Capturing RCS Behaviors
Figure 1 Trains Passing Scenario, Siding Example, SysML sequence diagram (MagicDraw)
One such example is in Figure 1, describing a scenario of two trains passing using a Siding subsystem. This is a SysML sequence diagram. The parts of the Siding model are shown as green boxes across the top with dashed line vertical tails below; these are the same parts shown in Figures 2 and 3 in Part 3 of this series. The messages are horizontal arrows from one part to another, read from the top down. In Figure 2, we have magnified the upper left quadrant of Figure 1 for better readability. The first message is from the ControlCenter to the first ControlPoint_2Way on the left side, setting the incoming signal to green to allow a train from the left to enter into Block b1. The second message allows a second train to enter Block b4 from the right. Both messages represent the same transition trigger in Figure 3 in Part 1, but with a different destination. The third message comes from the occupancy sensor on Block b1, reporting to the ControlCenter that this block is now occupied by a train.
Figure 2 Trains Passing Scenario, Siding Example, SysML sequence diagram, upper left corner (Enterprise Architect)
A total sequence of 32 messages is required to allow the two trains to pass and exit the siding subsystem in opposite directions. Each of those messages represents a call or signal from the primitive state machines in the individual elements. While this effort represents some effort in the formulation, the overall behavior is yet another module, that can be re-used to build more complex behaviors for larger systems.
The SysML model can be extended in multiple directions from this point. Project requirements can be related to system elements that satisfy them and test cases to verify them. SysML parametrics can be added to calculate system reliability and cost. However, in the final part of this series, we will look at how the SysML model can work with other software tools for design and analysis, specifically transforming a SysML model in MagicDraw into Simulink. Here we are working toward our final Model-Based Engineering objective of a single digital model distributed over multiple data repositories.