Papers
Here you can find published papers about the VFSM method and its StateWORKS implementation.
Published Papers
The Virtual Finite State Machine Design and Implementation Paradigm
Bell Labs Technical Journal
This paper discuss the Virtual Finite State Machine Design (VFSM) and Implementation Paradigm and the experience in introducing VFSM on software development projects for several Lucent Technology products. VFSM which allows software developers to specify the control behavior of a module as a finite state machine, is supported by a toolset that automates many tasks associated with producing an implementation, including aspects of code generation, documentation and testing. VFSM has been used in the design of more than 75 software modules and its application has resulted in shorter development intervals and elimination of defects prior to testing. In this paper an overview of the VFSM design and implementation paradigms and the capabilities provided by the VFSM toolset are presented. Also, the technical and non-technical issues that have had an impact on the successful introduction of VFSM are discussed.
VFSM Executable Specification
CompEuro 1992 Proceedings
The paper presents a software design method based on the virtual finite state machine (VFSM) concept. The concept defines a virtual environment that allows the finite state machine to be an entire table driven software module. A hybrid finite state model is used to achieve a superior design clarity. The presented method separates the control part of the design problem from the data manipulation part. The specification of the control part is directly executable. The control part is not coded; it is expressed in a table that is executed by the VFSM executor.
A Modern Real-Time Software Design Tool: Applying Lessons from Leo
IEEE journal “Computing and Control Engineering”
The special CCEJ issue on REAL TIME presented many new initiatives that are currently being developed. This short article introduces a software design tool that is currently being used on a variety of real time projects and which is based on principles similar to those employed 50 years ago on the LEO computer system. The Leo programming process was very effective in producing reliable software. A modern version of this, called StateWORKS, is based on abstract, finite state machine models. In contrast to top-level modelling tools such as UML, which leave some coding to be done in the final stages, StateWORKS is an efficient method of implementing the final software and of avoiding much of the coding process.
Modeling and Building Reliable, Re-usable Software
Engineering of Computer -Based Software 2003 (ECBS’03) Proceedings
Agile Software practices place great emphasis on coding, yet coding is time-consuming, difficult, and the source of many errors. The paper describes a way in which the specification and implementation processes can be unified, and much coding avoided as regards the behavioral aspects of the software. It shares much in common with Agile Methods, yet permits a significant degree of modeling to take place. This VFSM technique and its commercial implementation StateWORKS has been used for several years in a variety of projects, large and small, in industrial control and in telecommunications. It gives significant benefits in time-to-market, in reduced maintenance, and in accuracy of the final project documentation. It facilitates software reuse and system up-grading. It has potential to link up the “Executable UML” and “Agile Modeling” initiatives, to their mutual benefit.
Closing the Gap Between Software Modelling and Code
Engineering of Computer -Based Software 2004 (ECBS’04) Proceedings
If a software implementation is to be generated fully automatically from a model, then the model must be detailed and totally complete. For the definition of software implementing system behavior, through finite state machines, we propose a well-proven method for the creation of such models and an associated XML expression of them.
State machine misunderstandings
IEE journal “Computing and Control Engineering”
The definition of a finite state machine (called also for simplicity a state machine) seems to be not quite obvious and requires discussion. The concept, although born 50 years ago, is still not well understood or interpreted in the software domain, despite its wide application in hardware design. Misunderstandings about state machines have produced several stories and half-truths: for instance the states explosion phenomenon which discourages the usage of this very useful concept. The concept of the state machine has been several times (unintentionally?) reinvented for software.
Other Documents
VFSMML - XML standard for VFSM
XML for VFSM: Virtual Finite State Machine Markup Language Definition, original pdf version of this document has over 60 pages, specifies the XML format of design files produced by StateWORKS Studio, and it also provides valuable insight into the structure of StateWORKS designs and the nature of all the common objects they can use, for users who have not purchased our book.