Advantages
- Software developed with StateWORKS is fast, well documented, readable, and maintainable.
- When you start a project, the StateWORKS specifications can be 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 receive buggy early releases.
- New features or changes can be added without pain because no code gets tweaked (there is no code!).
- StateWORKS specifications are far more readable than C code or UML.
- StateWORKS allows your engineers to create a true architectural backbone for your application.
Advantages for Software Designers
Section titled “Advantages for Software Designers”StateWORKS allows you to develop a complete application without writing a single line of code. You have the chance to work as an engineer, not as a coder. All you have to do is design the complete specification of the problem. When you are done, your application is finished, because the specification is the executable application. No coding is needed.
StateWORKS provides a structure that makes it easier to tackle a complex project, and it allows each component to be developed and optimized before the system is tested as a whole. Because the elements that express behavior are defined in a formal finite-state-machine format, which requires 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 behavior.
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 that would otherwise be in code. Many experts agree that state machines are underutilized today—look at some references if you do not 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 interlinked state machines in an efficient and controllable way. This means you can tackle those “impossible” projects with confidence and achieve excellent results.
A further advantage is that the StateWORKS finite state machine model is very simple and can be used as a basis for discussions between programmers and customers. Most software projects cannot be 100% fully defined at the start, and later discussions are needed to clarify various implementation details. Using StateWORKS technology, this can be done effectively at a fairly early stage, avoiding panic fixes at the end of the project and wasted time in earlier stages.
StateWORKS helps you work in the same way as other engineering designers, who expect their first prototypes to be very close to functional. They cannot afford a hundred design and implementation iterations, and you should not want that either, even though it may have seemed easy when you first started programming. Get it right in the design phase through modeling and simulation, and then implement—largely automatically—when you are confident it will 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.
Advantages for Managers
Section titled “Advantages for Managers”A manager of any large project needs to be able to estimate the required effort and monitor progress. In many software projects, this has been very difficult, as rapid coding can give a false impression of progress, while a long and arduous testing and debugging phase results in missed 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—what we call “control flow”—is defined in the high-level model rather than in the final code, it becomes easier to change it at a late stage if needed, with greater reliability. Furthermore, code reuse is facilitated, as complex software can be carried over to new projects with new requirements and adapted with fewer unexpected side effects. There will always be some residual bugs in a software product, but StateWORKS technology has been shown to reduce their number by about 50%.
The Productivity Gap
The productivity increase experienced by users of StateWORKS varies but is always significant, ranging from about 40% to over 300%. The higher figure applies to situations where StateWORKS replaces up to 80% of the coding activity for a project, which is typical. Because of the structured handling of all interactions between parts of the system, it becomes easier for the project manager to ensure that all team members can make meaningful contributions.