StateWORKS: The Solution

Gordon Moore predicted in 1965 ago an increase of hardware complexity that shall double each 1-2 years. He was right until today. In parallel, software engineering methods did not bring any significant increase in programming productivity. The gap between hardware complexity and software efficiency grows irresistible and the consequences are alarming.

productivity gap
The Productivity Gap
  • excellent hardware, but worrying about the software?
  • thinking about outsourcing of software development?
  • wondering if the size of your software development team is not proportional to the size of your (hardware) company?
  • starting a new project and want to try if it can be possible to increase the the software development and maintenance efficency by more than 50%?

You know how unreliable software for everyday use can be. For instance, editors from large companies are tested first by thousands of beta testers and later by millions of users and they fail. Do you think that this unreliable software is written by weak programmers? No, it is written by very good programmers, large companies can afford it.
Now, compare with the situation in your company where you write custom tailored software. Have you any chance to test it as intensively as the mass-market products? Of course, no, your software is always an unreliable prototype. You have no hope to write good, reliable software, unless you make a radical change to your method.

You will be surprised, on reading a Lucent (AT&T) report how successful software development can be, when using engineering methods we introduce.

Your Advantages

The users of StateWORKS profit by an enormous cost reduction in their software development compared with the competitors using conventional methods. The three major advantages using StateWORKS are:

  • design efficiency increase by well over 50%
  • almost total elimination of software errors
  • tremendous reduction in maintenance effort

Further side effects are greater transparency in software design and removal of dependence on so-called 'key programmers'.

What is StateWORKS?

StateWORKS is a software design and execution environment. The design environment consists of a set of tools like editor, simulator etc. The execution environment is a library (RTDB) you link with your StateWORKS specification. The library can be provided for any common operating system.

While the execution environment concept is pretty common, the technology inside, as well as the design environment are unique: StateWORKS is the first commercial implementation of VFSM, the next generation of application development methods. The VFSM method is based on the theory of finite state machines (FSM) but with the addition of significant new elements.

We must stress that the method proposed is not merely another way of programming finite state machines, embedded in other software, for certain applications – or parts of applications – which very obviously could use them. We are proposing a major re-think about the way of designing software, in which most of the usual "control-flow" coding is avoided, and the state machine concept is pushed much further than before, so as to take a predominant part in the design process.

In this way, the designer is helped to create really exact specifications of the behaviour of his software, using tools which tend to bring any subtle problems to the surface, to be resolved in discussions with the users or whoever can know what should be done, and defined at the state machine level: rather than leaving them to be discovered later when writing code.

How does StateWORKS work?

Following figure shows the StateWORKS components:

The multi-component concept
StateWORKS Components

You need one development environment (StateWORKS Studio) for each of your software engineers. There you design and test your software specification. The final specification can be run by the executor, which is your application containing the generated specification code, the StateWORKS library (RTDB) your I/O interfaces and special functions. Using our or your own monitoring tools the running system can be controlled.

Differences between StateWORKS and other approaches

There are vital differences between StateWORKS and other "similar" approaches. The similarity is limited to the names: State and State Machine. StateWORKS is not merely a simple software development tool.

  • StateWORKS is used to develop the precise specification of behaviour in your project, so that it leaves no scope for later decisions in a coding phase. So it covers the entire spectrum from establishing general high-level specifications (as in UML) to the production of the run-time software, in one seamless process.
  • StateWORKS is a true implementation of a run-time-executable specification.