Believing a system is safe is not the same as knowing it meets all
the criteria defined to demonstrate that safety. Too often is the
argumentation around the safety of a system presented as a document
for humans to agree on, which is disconnected from the mechanism of
asserting compliance with that argumentation. Subplot is a tool for
processing documents containing such argumentation along with
verification scenarios which are both human and machine readable
so that this disconnect can be resolved.
This talk introduces Subplot and describes the concept.
Software engineers usually understand requirements and testing against
requirements. All too often though, those responsible for the safety of
a system do not understand how to express requirements which can be
understood by engineers, such that the system can be verified. This
could be for a myriad reasons, but usually it is due to a gulf between
those who are specifying how to determine that a system is safe, and those
who are implementing the system.
Subplot demonstrates how stakeholders at all stages of system design and
implementation can come together to maintain a document which describes the
criteria which, if met, demonstrate compliance with the safety argumentation
made about the system. This document can then be rendered as a PDF or some
stand-alone HTML for presentation to non-engineer stakeholders for confirmation.
Subplot can also generate a test program, from such a document, that when run will
perform all of the verification scenarios contained in the document and produce a
final report.
While Subplot is fairly new software, still under active development,
the concepts in Subplot are built on those explored in a decade-old
previous project, by the same authors, which considered similar problems purely
from a software engineering perspective, used a similar Gherkin-inspired language
and Markdown input structure, and was used in a variety of projects for
paying customers; proving the concept works.
Subplot is a refinement of this older implementation.