The Stream X-machine (SXM) is a model of computation introduced by Gilbert Laycock in his 1993 PhD thesis, The Theory and Practice of Specification Based Software Testing.
Florentin Ipate and Mike Holcombe went on to develop a theory of complete functional testing,[4] in which complex software systems with hundreds of thousands of states and millions of transitions could be decomposed into separate SXMs that could be tested exhaustively, with a guaranteed proof of correct integration.
[5] Because of the intuitive interpretation of Stream X-Machines as "processing agents with inputs and outputs", they have attracted increasing interest, because of their utility in modelling real-world phenomena.
A Stream X-Machine (SXM) is an extended finite-state machine with auxiliary memory, inputs and outputs.
Crossing a transition is equivalent to applying the associated function φi, which consumes one input, possibly modifies the memory and produces one output.
This can be mapped onto a general X-machine relation of the type φ: X → X if we treat this as computing: where :: denotes concatenation of an element and a sequence.
[1] Holcombe and Ipate developed this into a practical theory of software testing[4] which was fully compositional, scaling up to very large systems.