Skip to content

Advantages

  • Software developed with StateWORKS is fast, well documented, readable and maintainable.
  • When you start a project, the StateWORKS specifications are easily verified with your customer!
  • When you deliver, the documentation is generated automatically.
  • There is no need to spend time debugging, and your customers never get buggy early releases.
  • New features or changes can be added without pain, because no code gets tweaked (there is no code!).
  • StateWORKS specifications are infinitely more readable than C code or UML.
  • StateWORKS allows your engineers to create a true architectural backbone for your application.

StateWORKS allows you to develop a complete application, without writing one line of code. You have the chance to work as engineer, not as a coder. All you have to do is to design the complete specification of the problem. When you are done, your application is finished, because the specification is the executable application. No need for coding.

StateWORKS does provide a structure which makes it easier to tackle a complex project, and it allows each component to be developed and optimized before the system is tested in its entirety. Because those elements which express the behavior are expressed in a formal finite-state-machine format, which needs no manual coding to implement, there will be fewer problems in the final stages. StateWORKS could be categorized as a “Domain-Specific Language” where the domain is the behavior.

vfsm_design_cycle

The VFSM design cycle

The principle is to generate models, but this is not like the high-level decomposition techniques of UML - StateWORKS models are genuine implementations for your project, expressing all the details which would otherwise be in code. Many experts agree that state machines are under-utilized today - look at some references if you don’t believe it - and with StateWORKS you can apply this powerful technique to real-world, complex systems, as it provides a method for dealing with large numbers of inter-linked state machines in an efficient and controllable way. So you can tackle those “impossible” projects with confidence, and get really good results.

A further advantage is that the StateWORKS finite state machine model is very simple, and that it can be used as a basis for discussions between programmers and customers. Most software projects can not be 100% fully defined at the start, and later discussions are needed to fix various details of the implementation. Using StateWORKS technology this can be done effectively at a quite early stage, and this avoids panic fixes at the end of the project, and wasted time in the earlier stages.

StateWORKS helps you to work in the same way as other engineering designers, who expect that their first prototypes will be very close to functional. They can not afford a hundred design and implementation iterations, and you should not want that either, even though it seemed easy to work like that when you first started programming. Get it right in the design phase, by modelling and simulation, and then implement - to a large degree automatically - when you are happy it’s going to work. This is the only way to produce a reliable product. Avoid writing complex code that is hard to read and understand later.

For examples and explanations of the method, look at some case studies.

A manager of any big project needs to be able to estimate the required effort, and to monitor progress. In many software projects this has been very difficult, as quite fast coding has given a false impression of progress, and a long and arduous testing and debugging phase has resulted in failure to meet deadlines. Using StateWORKS, the initial development phase allows the product to be examined and better defined, and the project is completed more smoothly.

Since the essential behavior, which we call “control flow” is defined in the high-level model rather than in the final code, it becomes easier to change it, if needed, at a late stage, with good security. Furthermore, code re-use is facilitated in that complex software may be carried over to new projects with new requirements, and adapted to them with few unexpected side effects. There will always be some residual bugs in a software product, but StateWORKS technology has been shown to reduce the number by about 50%.

complexity

The Productivity Gap

The productivity increase experienced by users of StateWORKS varies, but is always significant, and seems to range from 40% to over 300%. The latter figure applies to situations where StateWORKS replaces up to 80% of the coding activity for a project, which is known. Because of the structuring of all interactions between parts of the system, it becomes easier for the project manager to ensure that all his team members can make useful contributions.