While Statestep can be used in a variety of ways, its primary design goal is to support a particular method of specification. This method was originally used to specify a series of consumer electronic products: it enabled these systems to be developed within very tight, commercially-driven schedules and the approach seems especially well-suited to complex embedded interactive systems. Advantages include:
- Systematic elicitation,
providing confidence that all unusual scenarios
corner cases) have been identified and considered.
- A simple, easy-to-understand notation which is immediately readable to non-engineers (e.g., domain specialists) without training.
- Incremental specification: newly-decided behaviour can be added to the specification with little effort - and without the danger of introducing unexpected side-effects in existing behaviour.
- Formality: the approach may be called a lightweight formal method, being easy to use yet producing specifications which are precise and unambiguous.
- Model-based specifications: the method produces a complete model of system behaviour as a finite state machine.
- Automated correctness checks: the formal, model-based specifications produced allow for automatic completeness and consistency checks, for example, to make sure no undesirable state is reachable.
These are some comments by users of the specification method (predating the tool):
It's really good having to go through all the scenarios... it's a really good idea.
There's no way you could cover all the corner cases as efficiently [with UML use cases and scenarios] ... To cover it in the same detail would have been a massive effort, far bigger.
The quality department are very happy... they have a traceability from requirement to testing.
We go out and do this because we know this works, we've seen it work.
For more information about the method, including the kind of system it's likely to be suitable for and how to apply it in practice, see the documents.Questions, comments? firstname.lastname@example.org