Safety-critical applications often use dependability cases to validate that specified properties are invariant, or to demonstrate a counterexample showing how that property might be violated. Most dependability cases are written with a single product in mind, but in this study, we construct a dependability case for a surgery robot system built for a family of robots. We have brought together lightweight formal analysis, feature modeling, and testing in our approach to investigating if a safety-critical property is violated.
The following diagram shows the overall process of building the dependability case.
The safety critical property we are checking in the system with this approach is as follows:
Arm movement safety property: During the surgery procedure, as the surgeon moves the control device, the actual position of the robot arm should be the same position that the surgeon articulates in the control workspace, and he/she should be notified if the arm is pushed outside of its physical range.
The feature model is developed using FeatureIDE, a tool that supports all phases of feature-oriented software development for the development of Software Products Lines. The formal model is developed in Alloy, a lightweight formal specification language based on first-order relational logic, with an analysis engine that performs verification of models in a specific scope. We use the analyzer for checking an assertion that defines the safety-critical property, and the analyzer is capable of generating counterexamples to show a scenario where the property is violated.
Clicking on the image below that shows the partial feature model for the surgery robot system will lead you to the complete, full-size version. The XML file can also be downloaded here.
You can also see the list of constraints defined in the Feature model in this page. These constraints are enforced in the system, and by imposing these constraints on our model, we make sure that all the products created by FeatureIDE are valid.
The Alloy meta-model is used to describe components of the system and the relationship between them. We can use the Alloy Analyzer to check the critical safety property automatically. The meta-model and the individual robot models are available for download here.
As an example, the FrankenVREP robot arm is one of the individual robot models. The Alloy analyzer gives us a counterexample of the assertion, which means that the Arm Movement property can be violated when using this robot arm. The relevant part of the counterexample is seen in the figure below.
We thank Lou Cubrich for his help with domain knowledge and for providing us with an open source robotic surgery code base. This work was supported in part by an NSF EPSCoR FIRST award, a University of Nebraska Collaboration Initiative Seed Grant, the University of Nebraska Center for Advanced Surgical Technology and awards CCF-1755890, CCF-1618132, CCF-1745775 and CCF-1901543 from the National Science Foundation.
Any opinions, findings, and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation and other agencies.