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.