en StateWORKS http://www.stateworks.com StateWORKS is a method for creating high-quality software through models. Software behaviour is expressed as a system of finite state machines. Very large complex systems can be handled, by using many state machines in a hierarchical structure; the complexity is managed, in fact the top levels of the hierarchy are clear enough to be discussed with management or customers. StateWORKS is also a tool, complete with multi-mode editors, for exploring the requirements, so as to express them in such fine detail as to cause software to be generated without any code writing. StateWORKS increases productivity and reduces development time. Nearly all bugs are eliminated in the design process, not left to the testing or maintenance phase. Applications developed with StateWORKS are well documented and maintainable. Copyright 2008, SW Software mike@stateworks.com (Mike Tommasi) mike@stateworks.com (Mike Tommasi) http://blogs.law.harvard.edu/tech/rss Thu, 07 Jan 2010 13:26:12 +0100 Thu, 07 Jan 2010 13:26:12 +0100 Newsletter We offer a free newsletter on an irregular basis, which will be sent any time a new software release appears or significant changes to the StateWORKS page have been done. Additionally one technical topic will be discussed. See below the history of our newsletters. http://www.stateworks.com/home/newsletter/ http://www.stateworks.com/home/newsletter/ sw-info@stateworks.com (SW Software) Publications Fri, 03 Apr 2009 12:58:35 +0200 Case Studies StateWORKS case studies that one can try on a PC by installing StateWORKS Studio. http://www.stateworks.com/technology/casestudy/ http://www.stateworks.com/technology/casestudy/ sw-info@stateworks.com (SW Software) The Technology Mon, 24 Aug 2009 14:13:40 +0200 The Virtual Environment In StateWORKS, the concept of a Virtual environment, as expressed by the virtual input and logic algebra used, is the basis of the VFSM (virtual finite state machine) specification method. http://www.stateworks.com/technology/TN1-VirtualEnvironment/ http://www.stateworks.com/technology/TN1-VirtualEnvironment/ sw-info@stateworks.com (SW Software) Publications Sun, 09 Aug 2009 13:40:37 +0200 What is StateWORKS? StateWORKS is not just another tool to model software, it offers a solution for a system of state machines that eliminates the need for coding. StateWORKS is a development environment to specify a system of state machines and an execution environment to run the specified system. StateWORKS does not produce code. StateWORKS is not merely a simple software development tool. StateWORKS provides a run-time system for the control of an embedded application and it is a true implementation of a run-time-executable specification. http://www.stateworks.com/technology/TN2-WhatisStateWORKS/ http://www.stateworks.com/technology/TN2-WhatisStateWORKS/ sw-info@stateworks.com (SW Software) Publications Sun, 09 Aug 2009 13:45:28 +0200 Virtual Finite State Machines In StateWORKS, A virtual finite state machine (VFSM) is a finite state machine defined in a virtual environment. The virtual environment is created by three sets of names: input names, output names and state names. The input and output names can be transfered by a mapping function to real world signals. The execution model of a VFSM is based on the logic algebra completed by a complement control value. http://www.stateworks.com/technology/vfsm/ http://www.stateworks.com/technology/vfsm/ sw-info@stateworks.com (SW Software) The Technology Sun, 09 Aug 2009 17:34:57 +0200 The Product StateWORKS: We offer a development environment called StateWORKS Studio complete with two sets of Run-Time System libraries required for building your applications http://www.stateworks.com/product/product/ http://www.stateworks.com/product/product/ sw-info@stateworks.com (SW Software) The Product Sun, 13 Sep 2009 13:54:06 +0200 SWExecStandardLE http://www.stateworks.com/product/SWExecStandardLE/ http://www.stateworks.com/product/SWExecStandardLE/ sw-info@stateworks.com (SW Software) The Product Sun, 13 Sep 2009 18:26:49 +0200 The Book Modeling Software with Finite State Machines: A Practical Approach, a book about how to apply finite state machines to software development. It provides a critical analysis of using finite state machines as a foundation for executable specifications to reduce software development effort and improve quality. It discusses the design of a state machine and of a system of state machines. It also presents a detailed analysis of development issues relating to behavior modeling with design examples and design rules for using finite state machines. This text demonstrates the implementation of these concepts using StateWORKS software and introduces the basic components of this software. http://www.stateworks.com/book/book/ http://www.stateworks.com/book/book/ sw-info@stateworks.com (SW Software) The Book Thu, 02 Apr 2009 20:02:08 +0200 Preface Here is the preface of our book Modeling Software with Finite State Machines: A Practical Approach http://www.stateworks.com/book/preface/ http://www.stateworks.com/book/preface/ sw-info@stateworks.com (SW Software) The Book Thu, 02 Apr 2009 20:02:09 +0200 Chapter Programming languages: a chapter from our book Modeling Software with Finite State Machines: A Practical Approach http://www.stateworks.com/book/chapter/ http://www.stateworks.com/book/chapter/ sw-info@stateworks.com (SW Software) The Book Thu, 02 Apr 2009 20:02:09 +0200 Publications To make state machines better known we wrote a book, Modeling Software with Finite State Machines: A Practical Approach, which provides an introduction to any person who is interested in learning the true power of this technology. We also have published papers in computer journals, written technical notes, and we have a newsletter. http://www.stateworks.com/book/publications/ http://www.stateworks.com/book/publications/ sw-info@stateworks.com (SW Software) Publications Thu, 02 Apr 2009 20:02:09 +0200 Where to Buy http://www.stateworks.com/book/where_to_buy/ http://www.stateworks.com/book/where_to_buy/ sw-info@stateworks.com (SW Software) The Book Thu, 02 Apr 2009 20:02:10 +0200 Contact us http://www.stateworks.com/home/about_us/ http://www.stateworks.com/home/about_us/ sw-info@stateworks.com (SW Software) The Company Thu, 02 Apr 2009 20:02:10 +0200 The Company SW Software has been formed by an engineering team with a proven track record in software engineering. Our team is committed to accelerating development and time to market for software, based on the finite state machine model. The results of our standard software modeling tools serve as a framework for runtime systems. The goal is to meet and react to customer requirements in the entire specification, design and implementation phases of software development. http://www.stateworks.com/home/company/ http://www.stateworks.com/home/company/ sw-info@stateworks.com (SW Software) The Company Thu, 02 Apr 2009 20:02:10 +0200 Table of Contents Table of Contents of the book Modeling Software with Finite State Machines: A Practical Approach: Introduction, The Price of Weakness, Software as Engineering, Introduction, Definitions, and Notation, Software Specific, Misunderstandings about FSM, Designing a State Machine, Systems of State Machines, StateWORKS, Digital Input and Output, Other Inputs, Other Outputs, Counters, VFSM and Its Interfaces, Debugging VFSM, What is StateWORKS http://www.stateworks.com/book/table_of_contents/ http://www.stateworks.com/book/table_of_contents/ sw-info@stateworks.com (SW Software) The Book Thu, 02 Apr 2009 20:02:10 +0200 Standard I/O Unit with DLL, XML Standard StateWORKS newsletter about Standard I/O Unit with DLL, XML Standard, StateWORKS Studio Home and Programmers editions. http://www.stateworks.com/home/NL11/ http://www.stateworks.com/home/NL11/ sw-info@stateworks.com (SW Software) Publications Thu, 02 Apr 2009 20:02:12 +0200 State machine misunderstandings StateWORKS newsletter about State machine misunderstandings. http://www.stateworks.com/home/NL12/ http://www.stateworks.com/home/NL12/ sw-info@stateworks.com (SW Software) Publications Thu, 02 Apr 2009 20:02:12 +0200 TCP/IP client StateWORKS newsletter about TCP/IP client, Standard Executor, StateWORKS Studio 5.1. http://www.stateworks.com/home/NL10/ http://www.stateworks.com/home/NL10/ sw-info@stateworks.com (SW Software) Publications Thu, 02 Apr 2009 20:02:12 +0200 Runtime system for Beckhoff StateWORKS newsletter about StateWORKS Studio 5.3 and runtime system for Beckhoff. http://www.stateworks.com/home/NL13/ http://www.stateworks.com/home/NL13/ sw-info@stateworks.com (SW Software) Publications Thu, 02 Apr 2009 20:02:13 +0200 Why do we underestimate specification? StateWORKS newsletter about Why do we underestimate specification?. http://www.stateworks.com/home/NL15/ http://www.stateworks.com/home/NL15/ sw-info@stateworks.com (SW Software) Publications Thu, 02 Apr 2009 20:02:13 +0200 Debugging State Machines StateWORKS newsletterabout Debugging State Machines, Extension to the VFSM executor step mode. http://www.stateworks.com/home/NL14/ http://www.stateworks.com/home/NL14/ sw-info@stateworks.com (SW Software) Publications Thu, 02 Apr 2009 20:02:13 +0200 Specifying control software instead of coding StateWORKS newsletter about Applying StateWORKS to embedded systems using Microsoft Windows CE and StateWORKS - specifying control software instead of coding. http://www.stateworks.com/home/NL28/ http://www.stateworks.com/home/NL28/ sw-info@stateworks.com (SW Software) Publications Thu, 02 Apr 2009 20:02:14 +0200 Flowchart is not a state machine StateWORKS newsletter about Flowchart is not a state machine. http://www.stateworks.com/home/NL21/ http://www.stateworks.com/home/NL21/ sw-info@stateworks.com (SW Software) Publications Thu, 02 Apr 2009 20:02:14 +0200 Moore or Mealy model: that's the question StateWORKS newsletter about Moore or Mealy model: that's the question. http://www.stateworks.com/home/NL24/ http://www.stateworks.com/home/NL24/ sw-info@stateworks.com (SW Software) Publications Thu, 02 Apr 2009 20:02:14 +0200 Going beyond the limitations of IEC 1131 3 StateWORKS newsletter about StateWORKS Studio version 6.0 and From PLC markers to state machines. http://www.stateworks.com/home/NL26/ http://www.stateworks.com/home/NL26/ sw-info@stateworks.com (SW Software) Publications Thu, 02 Apr 2009 20:02:14 +0200 The Virtual Environment and Positive Logic Algebra StateWORKS newsletter about Real-Time Software Design Tool which appeared in IEE Computing & Control Engineering Journal, February 2003. and Modeling and Building Reliable, Reusable Software which will be presented at ECBS 03 in April 2003 and published in its Proceedings. also about SwEdit, SWMon and The Virtual Environment and Positive-Logic Algebra http://www.stateworks.com/home/NL3/ http://www.stateworks.com/home/NL3/ sw-info@stateworks.com (SW Software) Publications Thu, 02 Apr 2009 20:02:15 +0200 StateWORKS IO Unit for Velleman K8055 (or VM110) boards StateWORKS newsletter about The IO-Unit for the K8055 board. http://www.stateworks.com/home/NL30/ http://www.stateworks.com/home/NL30/ sw-info@stateworks.com (SW Software) Publications Thu, 02 Apr 2009 20:02:15 +0200 Completeness of information StateWORKS newsletter about Completeness of information in the virtual environment - the unknown (undefined) control values. http://www.stateworks.com/home/NL32/ http://www.stateworks.com/home/NL32/ sw-info@stateworks.com (SW Software) Publications Thu, 02 Apr 2009 20:02:16 +0200 Life time and events StateWORKS newsletter about Lifetime and events. http://www.stateworks.com/home/NL40/ http://www.stateworks.com/home/NL40/ sw-info@stateworks.com (SW Software) Publications Thu, 02 Apr 2009 20:02:16 +0200 State machine definitions StateWORKS newsletter about State machine definitions, The new version of StateWORKS Studio, and the book Modelling Software with Finite State Machines: A practical approach. http://www.stateworks.com/home/NL38/ http://www.stateworks.com/home/NL38/ sw-info@stateworks.com (SW Software) Publications Thu, 02 Apr 2009 20:02:16 +0200 What is StateWORKS StateWORKS newsletter about What is StateWORKS. http://www.stateworks.com/home/NL4/ http://www.stateworks.com/home/NL4/ sw-info@stateworks.com (SW Software) Publications Thu, 02 Apr 2009 20:02:16 +0200 Event driven fsm StateWORKS newsletter Event driven finite state machines. http://www.stateworks.com/home/NL42/ http://www.stateworks.com/home/NL42/ sw-info@stateworks.com (SW Software) Publications Thu, 02 Apr 2009 20:02:17 +0200 New version of StateWORKS Studio LE (6.1.1) StateWORKS newsletter about The new version 6.1.1 of StateWORKS Studio LE. http://www.stateworks.com/home/NL45/ http://www.stateworks.com/home/NL45/ sw-info@stateworks.com (SW Software) Publications Thu, 02 Apr 2009 20:02:17 +0200 Why UML will not do? StateWORKS newsletter about Why UML will not do. http://www.stateworks.com/home/NL47/ http://www.stateworks.com/home/NL47/ sw-info@stateworks.com (SW Software) Publications Thu, 02 Apr 2009 20:02:17 +0200 Hierarchical system of state machines, Gas control StateWORKS newsletter about the hierarchical system of state machines, and a case study: Gas control. http://www.stateworks.com/home/NL5/ http://www.stateworks.com/home/NL5/ sw-info@stateworks.com (SW Software) Publications Thu, 02 Apr 2009 20:02:17 +0200 Integrating external finite state machine into a StateWORKS system StateWORKS newsletter about Integrating external finite state machines into a StateWORKS system, and about a review in Dr. Dobb's Journal of our book. http://www.stateworks.com/home/NL54/ http://www.stateworks.com/home/NL54/ sw-info@stateworks.com (SW Software) Publications Thu, 02 Apr 2009 20:02:18 +0200 Password in RTDB based applications StateWORKS newsletter about StateWORKS version 6.2 and passwords in RTDB based applications. http://www.stateworks.com/home/NL50/ http://www.stateworks.com/home/NL50/ sw-info@stateworks.com (SW Software) Publications Thu, 02 Apr 2009 20:02:18 +0200 Testing with StateWORKS StateWORKS newsletter about Testing with StateWORKS and the SWQuickPro monitor. http://www.stateworks.com/home/NL52/ http://www.stateworks.com/home/NL52/ sw-info@stateworks.com (SW Software) Publications Thu, 02 Apr 2009 20:02:18 +0200 Terminal Client, Commands StateWORKS newsletter about State Machine Acceptance and the Testing Problem, Commands. http://www.stateworks.com/home/NL6/ http://www.stateworks.com/home/NL6/ sw-info@stateworks.com (SW Software) Publications Thu, 02 Apr 2009 20:02:19 +0200 Complement control values in VFSM concept StateWORKS newsletter about complement control values in VFSM concept, StateWORKS Studio version 7.0 and StateWORKS Studio LE. http://www.stateworks.com/home/NL60/ http://www.stateworks.com/home/NL60/ sw-info@stateworks.com (SW Software) Publications Thu, 02 Apr 2009 20:02:19 +0200 VFSM XML format, String Object (STR) StateWORKS newsletter about StateWORKS Studio, StateWORKS System, VFSM XML format and the String object with an example. http://www.stateworks.com/home/NL7/ http://www.stateworks.com/home/NL7/ sw-info@stateworks.com (SW Software) Publications Thu, 02 Apr 2009 20:02:20 +0200 StateWORKS in industrial control StateWORKS newsletter about the Case Study: StateWORKS in industrial control http://www.stateworks.com/home/NL8/ http://www.stateworks.com/home/NL8/ sw-info@stateworks.com (SW Software) Publications Thu, 02 Apr 2009 20:02:20 +0200 VFSM Executor Library StateWORKS newsletter with a Technical note about the VFSM executor library and StateWORKS Studio version 7.1 http://www.stateworks.com/home/NL82/ http://www.stateworks.com/home/NL82/ sw-info@stateworks.com (SW Software) Publications Thu, 02 Apr 2009 20:02:20 +0200 Website, changes to Studio and RTDB, introducing VFSM library StateWORKS Newsletter 1/08 about the new website, changes to StateWORKS Studio, RTDB, introduction of the VFSM library http://www.stateworks.com/home/NL83/ http://www.stateworks.com/home/NL83/ sw-info@stateworks.com (SW Software) Publications Thu, 02 Apr 2009 20:02:21 +0200 Tcp/ip for i/o handling StateWORKS Newsletter 2/08 about Tcp/ip for i/o handling http://www.stateworks.com/home/NL84/ http://www.stateworks.com/home/NL84/ sw-info@stateworks.com (SW Software) Publications Thu, 02 Apr 2009 20:02:21 +0200 StateWORKS Studio version 7.2 StateWORKS Newsletter 3/08 about StateWORKS Studio version 7.2 http://www.stateworks.com/home/NL85/ http://www.stateworks.com/home/NL85/ sw-info@stateworks.com (SW Software) Publications Thu, 02 Apr 2009 20:02:22 +0200 Break States in VFSM Executor StateWORKS Newsletter 3/08 about StateWORKS Studio version 7.2 http://www.stateworks.com/home/NL86/ http://www.stateworks.com/home/NL86/ sw-info@stateworks.com (SW Software) Publications Thu, 02 Apr 2009 20:02:23 +0200 The Dining Philosopher problem StateWORKS newsletter about an example problem, the Dining Philosopher problem, and the Stateworks monitor. http://www.stateworks.com/home/NL9/ http://www.stateworks.com/home/NL9/ sw-info@stateworks.com (SW Software) Publications Thu, 02 Apr 2009 20:02:23 +0200 StateWORKS 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 is easy to learn. http://www.stateworks.com/overview/advantages/ http://www.stateworks.com/overview/advantages/ sw-info@stateworks.com (SW Software) The Solution Thu, 02 Apr 2009 20:02:36 +0200 General FAQ StateWORKS: Frequently Asked Questions. Where do you produce code? What if we do not have a precise, written specification? What are the most appropriate sorts of projects for StateWORKS? How is StateWORKS Software Tested? StateWORKS needs to be learnt, so would one really save on time?. http://www.stateworks.com/overview/faq/ http://www.stateworks.com/overview/faq/ sw-info@stateworks.com (SW Software) The Solution Thu, 02 Apr 2009 20:02:36 +0200 Advantages for Managers StateWORKS has advantages for project managers who need to estimate the required effort and monitor progress. Typically he will get an impression of fast progress at the coding stage, then miss the deadlines because of testing and debugging. Using StateWORKS, in the initial development, one examines and defines the project and so it gets completed more smoothly. Because control flow is defined in the high-level model rather than in the code, it becomes easier to make changes to or reuse software without unexpected side-effects. StateWORKS technology has been shown to reduce debug time by about 50%. The productivity increase is always significant, from 40% to over 300%. http://www.stateworks.com/overview/managers/ http://www.stateworks.com/overview/managers/ sw-info@stateworks.com (SW Software) The Solution Thu, 02 Apr 2009 20:02:37 +0200 The Solution 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. StateWORKS users profit by an enormous cost reduction in software development compared to conventional methods. The major advantages: design efficiency increase by well over 50%; almost total elimination of software errors; dramatic reduction in maintenance effort. Also, transparency in software design and removal of dependence on key programmers. http://www.stateworks.com/overview/overview/ http://www.stateworks.com/overview/overview/ sw-info@stateworks.com (SW Software) The Solution Thu, 02 Apr 2009 20:02:37 +0200 History The basic VFSM concept was conceived by Prof. Dr. Ferdinand Wagner, and further developed with the help of Ruedi Schmuki who developed the software for the real time data base. The important milestones of the StateWORKS development are described here. http://www.stateworks.com/overview/history/ http://www.stateworks.com/overview/history/ sw-info@stateworks.com (SW Software) The Solution Thu, 02 Apr 2009 20:02:37 +0200 Advantages for Programmers StateWORKS allows you to develop a complete application, even a complex project, without writing one line of code. The principle is to generate models, not high-level decomposition techniques like UML, but real implementations expressing all the details which would otherwise be in code. Yet StateWORKS is easy to learn and use. http://www.stateworks.com/overview/programmers/ http://www.stateworks.com/overview/programmers/ sw-info@stateworks.com (SW Software) The Solution Thu, 02 Apr 2009 20:02:38 +0200 Why StateWORKS? StateWORKS is neither a code generator nor an interpreter, it is a proven complete solution for engineering applications based on the well known mathematically sound concept of state machines. StateWORKS is also an excellent high level modeling language. StateWORKS imposes a strict partition between data handling and control flow. UML cannot be used to generate applications, at best it can be used for a top-level overview of a project. It is suitable for system analysts, not for engineering an application. The StateWORKS engineering process is one of designing the final product, rather than just describing roughly how it should work. http://www.stateworks.com/overview/why_stateworks/ http://www.stateworks.com/overview/why_stateworks/ sw-info@stateworks.com (SW Software) The Solution Thu, 02 Apr 2009 20:02:38 +0200 What is StateWORKS StateWORKS is not just another tool to model software, it offers a solution for a system of state machines that eliminates the need for coding. StateWORKS is a development environment to specify a system of state machines and an execution environment to run the specified system. StateWORKS does not produce code. StateWORKS is not merely a simple software development tool. StateWORKS provides a run-time system for the control of an embedded application and it is a true implementation of a run-time-executable specification. http://www.stateworks.com/overview/WhatIsStateWORKS/ http://www.stateworks.com/overview/WhatIsStateWORKS/ sw-info@stateworks.com (SW Software) The Solution Thu, 02 Apr 2009 20:02:38 +0200 Download http://www.stateworks.com/product/download/ http://www.stateworks.com/product/download/ sw-info@stateworks.com (SW Software) The Product Thu, 02 Apr 2009 20:02:39 +0200 Distributors http://www.stateworks.com/product/links/ http://www.stateworks.com/product/links/ sw-info@stateworks.com (SW Software) The Product Thu, 02 Apr 2009 20:02:39 +0200 Consulting Services StateWORKS is a competent partner in Software Engineering, especially: complete software projects for telecommunications and industrial control (machine control, measurement technique, etc.), consulting in all control aspects of software development, specification and implementation of control tasks. We guarantee 100% fulfillment of the order according to your requirements with superior reliability and smooth takeover of project by your staff http://www.stateworks.com/product/consulting/ http://www.stateworks.com/product/consulting/ sw-info@stateworks.com (SW Software) The Company Thu, 02 Apr 2009 20:02:39 +0200 Support http://www.stateworks.com/product/support/ http://www.stateworks.com/product/support/ sw-info@stateworks.com (SW Software) The Product Thu, 02 Apr 2009 20:02:42 +0200 StateWORKS Studio StateWORKS Studio is a professional software development and execution environment. It contains: an editor to design and build systems of FSMs; a simulator to execute a designed system; a monitor to test a running system; a standard executor to run the final application. The devlopment environment runs under WindowsNT/2000/XP. The modeling method is VFSM. One can specify finite state machines, dependencies and specification properties. The result is a complete specification of a system's control aspects, with files usable implementation or documentation. The runtime system, provided for several OSs (Windows NT/2000/XP, Linux, UNIX, etc.) executes the final specification extremly fast and reliably. http://www.stateworks.com/product/SWStudio/ http://www.stateworks.com/product/SWStudio/ sw-info@stateworks.com (SW Software) The Product Thu, 02 Apr 2009 20:02:42 +0200 References StateWORKS has been tested over several years in several environments: large industrial software projects, especially for industrial machine control and also for telecommunication systems. Here is a partial list of projects realized using StateWORKS. http://www.stateworks.com/product/references/ http://www.stateworks.com/product/references/ sw-info@stateworks.com (SW Software) The Company Thu, 02 Apr 2009 20:02:42 +0200 Training Content http://www.stateworks.com/product/training_content/ http://www.stateworks.com/product/training_content/ sw-info@stateworks.com (SW Software) The Product Thu, 02 Apr 2009 20:02:43 +0200 Building Applications StateWORKS: Building applications with RTDB or VFSM library. A real-time database (RTDB) is used to coordinate all interactions with I/O systems and all communications between the various finite state machines. This data base is also used for communications between the StateWORKS software and other processes running in the system. Although we employ the term data base this has nothing to do with formal, relational data bases such as SQL: it is a collection of objects required by the project, together with software which manages them. http://www.stateworks.com/technology/building_applications/ http://www.stateworks.com/technology/building_applications/ sw-info@stateworks.com (SW Software) The Product Thu, 02 Apr 2009 20:02:45 +0200 FSM Example StateWORKS example application: A state machine to control a microwave oven. http://www.stateworks.com/technology/example/ http://www.stateworks.com/technology/example/ sw-info@stateworks.com (SW Software) The Technology Thu, 02 Apr 2009 20:02:46 +0200 Diameter Failover StateWORKS solution example: Diameter protocol failover mechanism implementation using state machines. http://www.stateworks.com/technology/diameter_failover/ http://www.stateworks.com/technology/diameter_failover/ sw-info@stateworks.com (SW Software) The Technology Thu, 02 Apr 2009 20:02:46 +0200 Technical FAQ StateWORKS technical FAQ. What is a finite state machine? How does one deal with the design of a state machine? How would StateWORKS handle large systems? What is StateWORKS? You mentioned UML. Does StateWORKS resemble it? How easily is StateWORKS ported to various environments? What about high-availability hot-standby systems? My telephony application needs thousands of identical, but short-lived, finite state machines. How could StateWORKS cope with that? http://www.stateworks.com/technology/faq/ http://www.stateworks.com/technology/faq/ sw-info@stateworks.com (SW Software) The Technology Thu, 02 Apr 2009 20:02:47 +0200 Finite State Machines StateWORKS: a Finite State Machine is a model of a control system. A finite state machine describes the behavior of a control system using states, transitions and actions. The state stores information about the past, i.e. it reflects the input changes from the system start to the present moment. A transition indicates a state change and is described by a condition that must be fulfilled to enable the transition. An action is a description of an activity that is to be performed at a given moment. One can use Moore model (only entry actions) or Mealy model (only input actions). http://www.stateworks.com/technology/finite_state_machine/ http://www.stateworks.com/technology/finite_state_machine/ sw-info@stateworks.com (SW Software) The Technology Thu, 02 Apr 2009 20:02:47 +0200 Links http://www.stateworks.com/technology/links/ http://www.stateworks.com/technology/links/ sw-info@stateworks.com (SW Software) The Technology Thu, 02 Apr 2009 20:02:48 +0200 Myths about State Machines Four common misconceptions about finite state machines: FSM state diagrams are too complex for real applications; FSMs are event driven, and this increases the number of states required; The transition diagram can not express all the details of the application; Imprecise interpretations of the definition of the state machine. http://www.stateworks.com/technology/q_misconceptions/ http://www.stateworks.com/technology/q_misconceptions/ sw-info@stateworks.com (SW Software) The Technology Thu, 02 Apr 2009 20:02:48 +0200 Papers Papers about StateWORKS published in computer journals. The Virtual Finite State Machine Design and Implementation Paradigm. VFSM Executable Specification. A Modern Real-Time Software Design Tool. Modeling and Building Reliable, Re-usable Software. Closing the Gap Between Software Modelling and Code. State machine misunderstandings. VFSMML - XML standard for VFSM. http://www.stateworks.com/technology/papers/ http://www.stateworks.com/technology/papers/ sw-info@stateworks.com (SW Software) Publications Thu, 02 Apr 2009 20:02:48 +0200 Solutions StateWORKS solution examples: Diameter failover mechanism implementation and traffic light example using state machines. http://www.stateworks.com/technology/solutions/ http://www.stateworks.com/technology/solutions/ sw-info@stateworks.com (SW Software) The Technology Thu, 02 Apr 2009 20:02:48 +0200 StateWorks Runtime System StateWORKS Runtime System (Executor). VFSM Executor Flow Chart. The run-time system uses one, fixed VFSM Executor program to run all the state machines in the system. This totally reliable and efficient program understands the formal control specification of each state machine, and ensures that it is implemented. The Formal Control Specification is the output generated by StateWORKS Studio. Usually a file, but can also be a C++ construction for embedded products without a file system. Then one can simply compile the specification data and link with the run-time system. http://www.stateworks.com/technology/SWSystem/ http://www.stateworks.com/technology/SWSystem/ sw-info@stateworks.com (SW Software) The Product Thu, 02 Apr 2009 20:02:49 +0200 The Technology StateWORKS: Technology of Specification. Finite state machines (FSM) are used to describe the behavior of a software system, as abstracted from the application. Virtual finite state machine (VFSM) is a specification method based on the FSM concept to describe the behavior of a control system. StateWORKS is a implementation of VFSM. A software system will be designed and tested using a special development environment. The run-time system executes the final VFSM specification using the VFSM Executor program. http://www.stateworks.com/technology/technology/ http://www.stateworks.com/technology/technology/ sw-info@stateworks.com (SW Software) The Technology Thu, 02 Apr 2009 20:02:50 +0200 Moore or Mealy model: that's the question Mealy and Moore models are the basic models of state machines. A state machine which uses only Entry Actions, so that its output depends on the state, is called a Moore model. A state machine which uses only Input Actions, so that the output depends on the state and also on inputs, is called a Mealy model. The models selected will influence a design but there are no general indications as to which model is better. Choice of a model depends on the application, execution means (for instance, hardware systems are usually best realised as Moore models) and personal preferences of a designer or programmer. In practice, mixed models are often used with several action types. http://www.stateworks.com/technology/TN10-Moore-Or-Mealy-Model/ http://www.stateworks.com/technology/TN10-Moore-Or-Mealy-Model/ sw-info@stateworks.com (SW Software) Publications Thu, 02 Apr 2009 20:02:51 +0200 Going beyond the limitations of IEC 61131 3 StateWORKS: Going beyond the limitations of IEC 61131-3. PLC programming uses state machines in an almost hidden way, yet it is a useful step forward from the intuitive way of programming by coding, into programming which is based on control system modeling. The way it is presented in the IEC example is still influenced by the marker way of thinking, leaving PLC programmers with the impression that the concept is limited to very simple examples. In the IEC example state machines are not considered a real solution for the application control flow. The state machine is used to store some information about the situation which covers the sunny day scenario, while the details of system malfunctions are left for the programmer: he will arrange it in some way. Problems caused by rarely-occurring malfunctions are the essence of the designer's real task: the full advantages of correct state machine usage are seen by solving those truly difficult control sequences with relative ease. http://www.stateworks.com/technology/TN11-Going-Beyond-Limitations-Of-IEC-61131/ http://www.stateworks.com/technology/TN11-Going-Beyond-Limitations-Of-IEC-61131/ sw-info@stateworks.com (SW Software) Publications Thu, 02 Apr 2009 20:02:51 +0200 Specifying control software instead of coding StateWORKS is a system that realizes the idea of an executable specification. Since it does not use an intermediate code, the specification must be complete and any changes and removal of errors (which can only be logical, rather than coding errors) can be done only in the specification. http://www.stateworks.com/technology/TN12-StateWORKS-specifying-control/ http://www.stateworks.com/technology/TN12-StateWORKS-specifying-control/ sw-info@stateworks.com (SW Software) Publications Thu, 02 Apr 2009 20:02:52 +0200 Completeness of information StateWORKS: Completeness of information in the virtual environment - the unknown (undefined) control value. The basic concept of VFSM relating to this is: the entire control function is based on a virtual input which reflects the full (control) information about the relevant inputs. If that rule is fulfilled we are able to specify one or more state machines realising a control function and we can do it without the necessity to complete the specification later by some fixes in the code. By definition, the fixes in the code are impossible using StateWORKS tools and run-time system as there is no code generated. Using StateWORKS we cannot code the endefined control value as a special case: it must be a normal case treated exactly in the same way as the situations HIGH or LOW. http://www.stateworks.com/technology/TN14-Completness-of-information/ http://www.stateworks.com/technology/TN14-Completness-of-information/ sw-info@stateworks.com (SW Software) Publications Thu, 02 Apr 2009 20:02:52 +0200 StateWORKS IO Unit for Velleman boards The Velleman K8055 USB experiment interface board hasseveral digital and analog inputs and outputs. It can be used as a demo for the StateWORKS execution system. In StateWORKS we use the term Unit for a device in which several inputs and outputs may be accessed, as a group. The Unit provides a fairly complete set of functionality covering opening and closing of the board, access and control of inputs, outputs and counters. Although this demo project is very simple, when the same StateWORKS concept is applied to large scale projects, such as embedded systems or telecommunications, there are huge advantages to be gained in productivity, in reliability and in security of the final product. Complex code is very dangerous in such applications: we avoid it. http://www.stateworks.com/technology/TN13-IO-Unit-for-K8055-board/ http://www.stateworks.com/technology/TN13-IO-Unit-for-K8055-board/ sw-info@stateworks.com (SW Software) Publications Thu, 02 Apr 2009 20:02:52 +0200 Life time of control signals and generating events StateWORKS: Lifetime of control signals and generating events, illustrated by a Turing machine. A control system reacts to input signals which change in time. A period between two consecutive changes of a signal is defined as its lifetime. Depending on a signal it may be desirable to shorten its lifetime by consuming it before the next change occurs. In most software control systems a change of a signal value generates an event which triggers its processing. In such a system a repetition of the same value usually does not make sense, but it may be required. A similar problem exist for outputs which should be detected by the output world if they change. http://www.stateworks.com/technology/TN16-Life-time-and-events/ http://www.stateworks.com/technology/TN16-Life-time-and-events/ sw-info@stateworks.com (SW Software) Publications Thu, 02 Apr 2009 20:02:53 +0200 Event driven state machines StateWORKS: Event driven state machines. We have introduced two types of state machines: Parser and Controller. The Parser type is a state machine whose inputs are true events, they are used to trigger an (input) action or to change a state and thereafter they are consumed. All information represented by the event has to be stored in states. These type of state machines are used for instance in telecommunication for protocol definition. The Controller type of a state machine uses input signals which are of different flavours depending on their origin. Some inputs are static and always exhibit a value, for instance a digital input can be HIGH, TRUE or UNKNOWN. Other inputs may have a limited lifetime and it is the task of a designer to define the moment when their value is to be consumed. Most of the state machines used in the industrial control domain are of the Controller type. http://www.stateworks.com/technology/TN17-Event-driven-fsm/ http://www.stateworks.com/technology/TN17-Event-driven-fsm/ sw-info@stateworks.com (SW Software) Publications Thu, 02 Apr 2009 20:02:54 +0200 Why UML will not do? StateWORKS: Why UML will not do. Software development today is dominated by an Object Oriented (OO); UML is a development tool supporting the OO concept. This paper does not criticize the obvious flaws of UML - its large and unwieldy nature, due to an attempt to fulfil too many wishes, the difficulty in propagating any significant changes from code to its corresponding UML diagrams, overloaded and redundant graphical symbols, etc. - but deals with two major flaws: any OO software has to deal with communication in multitasking systems and with the realisation of a control task, UML has no such capability and ignores them totally. Software developers, by a lack of awareness or under pressure of the environment, fall into the UML trap thus producing software which is more expensive and of worse quality than without UML. http://www.stateworks.com/technology/TN18-Why-UML-will-not-do/ http://www.stateworks.com/technology/TN18-Why-UML-will-not-do/ sw-info@stateworks.com (SW Software) Publications Thu, 02 Apr 2009 20:02:54 +0200 Password for StateWORKS runtime systems Password for StateWORKS run-time systems (RTDB). Today almost all computers are networked, including those running StateWORKS RTDB based applications. To increase the security we have introduced a password for accessing the RTDB. http://www.stateworks.com/technology/TN19-Password/ http://www.stateworks.com/technology/TN19-Password/ sw-info@stateworks.com (SW Software) Publications Thu, 02 Apr 2009 20:02:55 +0200 Testing with StateWORKS Testing with StateWORKS. In classsic software development a program must be checked against requirements. Testing never ends, it starts while programming and continues with the customer tests, because coding is an error prone task, therefore testing is an integral part of coding. StateWORKS specification tools and RTDB based run-time systems offer effective means for testing of programs being developed as well as running applications. As the StateWORKS concept is based on finite state machines (VFSM) testing concentrates on running scenarios which check the correctness of state sequences. http://www.stateworks.com/technology/TN20-Testing-with-StateWORKS/ http://www.stateworks.com/technology/TN20-Testing-with-StateWORKS/ sw-info@stateworks.com (SW Software) Publications Thu, 02 Apr 2009 20:02:55 +0200 Integrating external finite state machines Integrating external finite state machines into a StateWORKS System. In StateWORKS the control of an application is concentrated in a system of cooperating state machines. The basic features of the system are: the target structure should be a hierarchical one, where possible; the interface between Master and Slave state machines has to be of a Command - State nature. Applications based on the StateWORKS RTDB Library fulfill these requirements. Sometimes a part of the application is realized in external devices, in which case these must be integrated into the StateWORKS specification, increasing the reliability, maintainability and understandability of such applications. The StateWORKS development environment has mechanisms for smooth integration of external control devices into the entire state machine specification. http://www.stateworks.com/technology/TN21-Integrating-external-fsm-into-SW/ http://www.stateworks.com/technology/TN21-Integrating-external-fsm-into-SW/ sw-info@stateworks.com (SW Software) Publications Thu, 02 Apr 2009 20:02:56 +0200 Complement control values in the VFSM concept StateWORKS: in the VFSM concept we use control values for expressing input values. A control value is defined as an input data property which may be relevant for a control; so we have to invent a specific algebra for formulating logical expressions for state transitions and input actions. This algebra uses boolean operators AND and OR but forbids the operator NOT as there is no unique value for a negation of a control value in a multivalued control environment. This limitation allows us an implementation of the execution environment based on set theory. http://www.stateworks.com/technology/TN22-Complement-control-values-in-VFSM-concept/ http://www.stateworks.com/technology/TN22-Complement-control-values-in-VFSM-concept/ sw-info@stateworks.com (SW Software) Publications Thu, 02 Apr 2009 20:02:56 +0200 VFSM executor library StateWORKS provides a Vfsm executor library which can be integrated into an application where it is used to process state machines. It is intended for use in projects where, for any reason, it is not appropriate to use the RTDB library, and its use implies that the developer will have to generate a greater amount of code than would be the case with the RTDB. While coding the application we use a set of methods to: establish the VFSM Executor (CVfsm, GetSpecInfo); process the state transitions and trigger the actions (Execute); trace the VFSM Executor (Trace). http://www.stateworks.com/technology/TN23-Vfsm-executor-library/ http://www.stateworks.com/technology/TN23-Vfsm-executor-library/ sw-info@stateworks.com (SW Software) Publications Thu, 02 Apr 2009 20:02:57 +0200 Break States in the VFSM Executor When specifying a state machine to be realized by a StateWORKS run-time system one sometimes needs an explicit break of the VFSM Executor. The VFSM executor performs all the valid state transitions it finds in one sequence. Several transitions might be performed in a state machine instantaneously, causing an indefinite loop between a state which issues a command and the state which acknowledges it. The VFSM Executor is guarded against this failure by breaking the loop after a certain number of passes in the loop. StateWORKS now offers an elegant solution in a form of a Break property assignable to any state. http://www.stateworks.com/technology/TN25-break_states_in_the_vfsm_executor/ http://www.stateworks.com/technology/TN25-break_states_in_the_vfsm_executor/ sw-info@stateworks.com (SW Software) Publications Thu, 02 Apr 2009 20:02:58 +0200 Hierarchical system of State Machines StateWORKS: a hierarchical systems of state machines. To master complex applications one partitions the control among several state machines strictly organized in a hierarchy. It is important to describe the communication among state machines, ant the design procedure. http://www.stateworks.com/technology/TN3-HierarchicalSystem/ http://www.stateworks.com/technology/TN3-HierarchicalSystem/ sw-info@stateworks.com (SW Software) Publications Thu, 02 Apr 2009 20:02:59 +0200 Usage of commands (CMD) and inter VFSM communication The StateWORKS design philosophy recommends the Master - Slave principle as the basic relationship between state machines, where Masters sends commands to Slaves and use the states of Slaves as inputs. A command is coded as a number but is given a name to make it more comprehensible. To serve as an interface between state machines a command must have two aspects: it is an input for Slave and an output for Master. The StateWORKS data base contains object CMD with this feature and more, for example a timer state is used as an input (mainly OVER) but on the other hand it is an output (start, stop, etc.) for the state machine which uses it. http://www.stateworks.com/technology/TN4-Commands/ http://www.stateworks.com/technology/TN4-Commands/ sw-info@stateworks.com (SW Software) Publications Thu, 02 Apr 2009 20:02:59 +0200 Usage of the String object (STR) Unlike industrial controls, where control information comes from digital and analog I/O, in fields like telecommunication and internet applications control information has to be extracted from a string. The Steworks STR object is a very flexible staate machine, it can be set up to exactly match the incoming strings, or to extract matching sub strings and provide them to other objects. http://www.stateworks.com/technology/TN5-StringObject/ http://www.stateworks.com/technology/TN5-StringObject/ sw-info@stateworks.com (SW Software) Publications Thu, 02 Apr 2009 20:02:59 +0200 How to Write GUI for a StateWORKS application How to Write a GUI for StateWORKS Run-time Systems. Most applications need a graphical user interface (GUI) to communicate with the program: to set parameters, send commands, display results, show alarms. In a StateWORKS run-time system the entire information is stored in the Real Time Data Base (RTDB). RTDB has a TCP/IP interface which allows access to the data. The RTDB operates as a server. Monitoring programs that are part of the StateWORKS Studio are programs that use a TCP/IP interface for communication with the RTDB: they are RTDB clients. To make the task easy we provide a TCP/IP Client library which should be used for building any GUI interface for a StateWORKS application. http://www.stateworks.com/technology/TN6-HowToWriteGUI/ http://www.stateworks.com/technology/TN6-HowToWriteGUI/ sw-info@stateworks.com (SW Software) Publications Thu, 02 Apr 2009 20:03:00 +0200 Standard Interface for StateWORKS Standard Executor Standard Interface for StateWORKS Standard Executor. This technical note describes the concept of Standard IO-Handler which is used to implement IO-interface with DLLs. http://www.stateworks.com/technology/TN7-StandardIOUnit/ http://www.stateworks.com/technology/TN7-StandardIOUnit/ sw-info@stateworks.com (SW Software) Publications Thu, 02 Apr 2009 20:03:00 +0200 Debugging state machines Debugging: in testing software, one finds two kinds of error: coding and application failures. Coding errors cause crashes or erroneous behaviour of the application - example, the unfortunate comparison operator (==) used in C /C++, is often confused with the assignment operator (=), and finding such errors has wasted immense amounts of time worldwide. Application errors happen when the program does not fulfill the requirements, they can be logical errors or coding failures. Software often has both code and application errors. In StateWORKS there ar no coding error, so debugging only concerns application errors, and many tools are provided for investigating these. http://www.stateworks.com/technology/TN8-DebuggingStateMachines/ http://www.stateworks.com/technology/TN8-DebuggingStateMachines/ sw-info@stateworks.com (SW Software) Publications Thu, 02 Apr 2009 20:03:01 +0200 A Flowchart is not a State Machine There are several methods, models and tools used to describe control systems: state machines, Petri nets, Statecharts, flowcharts. They describe the same problems but they are not the same. State machines are the oldest concept, so all these methods are sometimes erroneously categorized as equivalent to state machines. http://www.stateworks.com/technology/TN9-Flowchart-is-not-State-Machine/ http://www.stateworks.com/technology/TN9-Flowchart-is-not-State-Machine/ sw-info@stateworks.com (SW Software) Publications Thu, 02 Apr 2009 20:03:01 +0200 Traffic Light StateWORKS solution example: traffic light using state machines. http://www.stateworks.com/technology/traffic_light/ http://www.stateworks.com/technology/traffic_light/ sw-info@stateworks.com (SW Software) The Technology Thu, 02 Apr 2009 20:03:02 +0200 Technical Notes Here you can find our published technical notes. A Flowchart is not a State Machine. Moore or Mealy model: that's the question. Going beyond the limitations of IEC 61131-3. Completeness of information. What's All This State Machine Stuff? Event driven state machines. The Virtual Environment and Positive-Logic Algebra. What is StateWORKS? Hierarchical system of state machines. How to Write GUI for a StateWORKS application. Standard Interface for StateWORKS Standard Executor. Debugging of state machines. Testing with StateWORKS. VFSM executor library http://www.stateworks.com/technology/technical_notes/ http://www.stateworks.com/technology/technical_notes/ sw-info@stateworks.com (SW Software) Publications Thu, 07 Jan 2010 12:04:13 +0100 PID Regulator StateWORKS is a system to develop and implement control systems, including closed loop regulators. There is not an RTDB object that realizes the PID regulation algorithm, but we have developed an Output Function for this purpose. Here is a short introduction to this technique with implementation details and an example. http://www.stateworks.com/technology/TN26-pid-regulator/ http://www.stateworks.com/technology/TN26-pid-regulator/ sw-info@stateworks.com (SW Software) Publications Thu, 07 Jan 2010 13:26:12 +0100 Home StateWORKS is a method for creating high-quality software through models. Software behaviour is expressed as a system of finite state machines. Very large complex systems can be handled, by using many state machines in a hierarchical structure; the complexity is managed, in fact the top levels of the hierarchy are clear enough to be discussed with management or customers. StateWORKS is also a tool, complete with multi-mode editors, for exploring the requirements, so as to express them in such fine detail as to cause software to be generated without any code writing. StateWORKS increases productivity and reduces development time. Nearly all bugs are eliminated in the design process, not left to the testing or maintenance phase. Applications developed with StateWORKS are well documented and maintainable. http://www.stateworks.com/ http://www.stateworks.com/ sw-info@stateworks.com (SW Software) Home Thu, 23 Apr 2009 09:17:43 +0200 Using tcp/ip channels as an I/O interface http://www.stateworks.com/technology/TN24-Using-tcpip-as-io/ http://www.stateworks.com/technology/TN24-Using-tcpip-as-io/ sw-info@stateworks.com (SW Software) Publications Tue, 08 Dec 2009 14:17:23 +0100 What's All This State Machine Stuff? StateWORKS: What's All This State Machine Stuff? The finite state machine is often misused and misunderstood. Automata Theory is treated differently on the hardware and software worlds, both use state machines, but in hardware design a state machine is a vehicle for a design method, while in software a finite automaton is a means to prove theorems. But programmers also use the state machine concept to control or model behaviour. The finite state machine introduces the concept of a state as information about its past history. All states represent all possible situations in which the state machine may ever be. It contains a kind of memory about how the state machine can have reached the present situation. As the application runs the state changes from time to time, and outputs may depend on the current state as well as on the inputs. http://www.stateworks.com/technology/TN15-Whats-All-This-State-Machine-Stuff/ http://www.stateworks.com/technology/TN15-Whats-All-This-State-Machine-Stuff/ sw-info@stateworks.com (SW Software) Publications Wed, 06 May 2009 22:00:36 +0200 Offer Request http://www.stateworks.com/product/offer_request/ http://www.stateworks.com/product/offer_request/ sw-info@stateworks.com (SW Software) The Product Wed, 10 Jun 2009 21:24:41 +0200