Model Validation
Behavior Execution Engine provides a model validation report to help you identify errors in your opaque expressions before you execute the entire simulation.
When you generate this report, Behavior Execution Engine runs a validation process against the state machines in your model and presents you with a list of detected
errors and warnings, including the IDs of the offending SysML elements.
You can then copy and paste those IDs into Behavior Execution Engine's element locator utility to highlight those elements in the
Containment Tree
of your No Magic modeling tool.
You can find the Model Validation
in the Diagnostics page of the SysML Client
while the Element Locator
utility can be setup
here.
Example error
Consider the following block and state, which have an intentional error.
Figure 1: An error in a balloon operator model
Can you spot the error? Feel free to compare the block and state in Figure 1 to their correct versions in the hot air balloon ride example. With a bit of time and effort, you could find it for this small example, but what about for a much more complicated model? You can save yourself the time and effort of scouring your model, or of running a simulation only for it to fail part way through, by simply running a model validation report.
Figure 2: The model validation report for the balloon operator error
The view in Figure 2 shows that the author of the state machine made an error in the name for the
isOperating
property, incorrectly calling it isOperation
.
Typos like this, miscommunications between authors of different sections, or changes in design are all common sources of errors.
You should use the model validation tool early and often to identify such errors, so you can alleviate them before they can cascade into larger
problems.
The tool also has the capability to save a textual report to send to other users of the SysML model to share corrections that way. The report contains a textual description of what shows up in the user interface, including the qualified names end element IDs needed to find and fix the errors in the SysML project.