Requirement-Based System Engineering

Detect incorrect, missing and conflicting requirements before design begins

Model Executable System Specifications

STIMULUS provides a modelling language that allows system architects to combine formalized textual requirements, state machines and block diagrams in a fully integrated simulation environment. Textual requirements can be allocated at each level of the system’s functional architecture, while state machines are typically used to describe running modes or operating sequences of atomic systems.

Textual Requirements

STIMULUS provides language template libraries that support common industry practices for writing non ambiguous and standardised systems requirements.

State Machines

STIMULUS provides hierarchical state machines that can be easily combined with textual requirements in order to specify the expected system behavior for each running mode.

Block Diagrams

STIMULUS provides block diagrams that allow the description of functional or system architectures. At each system level, requirements can be refined and allocated to sub-systems.

Debug and Test System Specifications

With STIMULUS, you can simulate the complete system specification (requirements, state machines and block diagrams) as a whole and find specification errors before the design phase, adopting an effective requirement, and test-driven development process. STIMULUS generates many execution traces that satisfy system specifications and provides powerful debugging features to analyse requirements simulation results: automatic detection and diagnosis of conflicting and missing requirements, requirements coverage, highlight of active requirements, signal monitoring, etc.

Conflicting Requirements

At simulation time, the STIMULUS solver will detect conflicts between requirements. When a conflict occurs at a given time instant, the simulator stops in order to highlight the set of conflicting requirements.

Missing Requirements

At simulation time, STIMULUS will detect missing requirements or, more precisely, time instants when some system output is not defined by any requirement, which is represented with dashed lines in the simulation window.

Requirements Coverage

When requirements are turned into observers, STIMULUS will measure their functional coverage. A requirement is said to be covered if it has been activated at least once since the simulation has started.

STIMULUS in action: requirements simulation

The figure below shows a STIMULUS screenshot where requirements simulation leads to some conflict. Once detected by STIMULUS, the conflict can be analyzed by the user using the debugging features (backward simulation, highlight of requirements, signal monitoring, etc).