Simulate real-time systems behaviour – at the requirements level

September 25, 2015 // By Graham Prophet
Stimulus, from Argosim, is a software tool for simulating and validating systems descriptions at the requirements stage, allowing them to be expressed in a form close to natural language, that nevertheless has precision and rigour.

Argosim contends that 40 to 60% of design bugs are caused by faulty design requirements: that is, inherent flaws in designs even before they are coded, compiled or any of the other downstream processes leading to an executable. The aim is to, “address the challenge of verifying system requirements at the specification stage—before design begins.”

Using the Stimulus product, you might begin with a requirements document in plain text. Argosim makes the point that there are numerous tools that relate to requirements traceability, or requirements management; but that Stimulus is concerned with validation. From the plain text, the user re-creates the description in a form that is still immediately readable, but is formed around a library of key words or operators, instantiated by a drag-and-drop process. In the illustration, the example words are “when”, “then”, “initially” and “afterwards”. These retain their intuitive plain-language meaning (or very close to it) but when selected from the library, are underpinned by a rigorous, formal-methods-derived meaning, as interpreted by the Stimulus tool.

The user adds parameter values that – critically – can be time-related. Stimulus can then simulate the behaviour of the system, revealing how the formally-expressed system will perform vs. the requirements. In its specification phase, Stimulus therefore supports definition of requirements; of generic test requirements; and simulation of the requirements – all leading to validation of the requirements. In a second, testing phase, the tool will generate test vectors from generic test requirements, and will verify that the system is consistent with the text-based specification. The test vectors can be carried forward for use in a test bench in the later phases of the project. Inputs to the simulation process can be randomly-defined over the range of possible values that the system will experience. The tool, as a company spokesman expresses it, “maps the constrained space of system behaviour.”

The company summarise the tool’s benefits as; its sentence templates provide a good