Made with
ConceptDraw
DIAGRAM 15

Finite State Machine

A finite-state machine can be known as “FSM, “finite-state automaton” (or “FSA”), “finite automaton” or a “state machine”. It is simply a mathematical model of computation, being an abstract machine in exactly one of a finite number of so called “states” at any time. The finite-state machine can change from one state to another. It is usually done in response to some external inputs. The so called “transition” is simply the change from one state to another. Any “FSM” can be defined by a list of its states as well as by its initial state and the conditions for each of the transitions.

The behaviour of each of the state machines can be observed in many devices. In modern society it can perform a predetermined sequence of actions, which depends on a sequence of events they are presented with. As an example, the vending machines can be mentioned. They simply dispense the products when the proper combination of coins is deposited. Another example can be elevators, whose sequence of stops is usually determined by the floors requested by its riders. The traffic lights are also a good example for the state machine as they change sequence when the cars are waiting on the road. The well-known combination locks are also the finite state machines, requiring the input of combination numbers, which all have to be input in the proper, definite order.

The finite state machines are studied in the more general field of “automata theory” knowing to be having less computational power to compare it to some other models of computation (for example, the “Turing machine”). The so called “computational power distinction” means there are some computational tasks which a “Turing machine” can do but a “FSM” cannot. The reason for this is because a finite state machine's memory is limited by the number of the states it already has.

A term “state” is a description of the status of a system, waiting for executing a so called “transition”, known to be a set of actions executed once a condition is fulfilled. Sometimes it can also be executed when an event is received. As an example: while using some audio system for listening to the radio, the receiving of the "next" stimulus results in moving to the next station. In this mentioned case the system is known to be in the so called "radio" state. Once the system is in the so called "CD" state, then the "next" stimulus ends in moving to the very next track. The identical stimuli trigger different the actions, which depends on the state taking place at the very this moment.

Sometimes, in some of the representations of the finite-state machines, the actions can be simply associated with a state. The so called “entry action” is known to be performing while entering the state and an “exit action” is performed while exiting the state.

The Unified Modelling Language has a notation for describing state machines, overcoming the limitations of traditional “finite state machines” during retaining their most main benefits as well as introducing the new concepts of orthogonal regions and hierarchically nested states. At the same time the notion of “actions” is being extended. To understand what exactly the term of “actions” means, we have to mention that once the so called “event instance” is dispatched, the state machine responds by these so called “performing actions”, which can be involved in changing a variable, invoking a function, generating some other event instance, changing to another state or performing I/O.

In the so called “extended state machines”, a transition can have a “guard”, meaning that the transition can "fire" only in case the guard evaluates to “TRUE”.

A state is known to be having many transitions in response to the same trigger, but there’s always a chance that this situation can create even more problems in the sequence of evaluation of the guards once the common trigger occurs. The “UML specification” intentionally does not stipulate any particular order, meaning that the guard expressions should have no side effects left.

UML state machines are popular for having the characteristics of “Moore machines” as well as “Mealy” ones. They are known to be supporting actions, depending on the so called “triggering event” and “the state of the system” as in Mealy machines. They also support the “entry” and “exit” actions, associated with states, not transitions (as in Moore machines).

Thus, the finite state machines are significant in many different areas, being subdivided into acceptors, transducers, sequencers and classifiers. They are being widely used in such fields of business activities, as linguistics, computer science, electrical engineering, philosophy, mathematics, logic, biology, etc. They are a class of automata studied in so called “automata theory” as well as the “theory of computation”. Finite state machines are used in computer science for modelling of application behaviour, software engineering, designing of hardware digital systems, network protocols, compilers as well as the study of languages and computation.

Once you need to create a Finite State Machine (FSM) diagram, one of the best tools may be ConceptDraw DIAGRAM diagramming and drawing software extended with ConceptDraw STORE application, where all the pre-made solutions full of the examples and templates as well as stencil libraries are. You can always download ConceptDraw DIAGRAM software as well as ConceptDraw STORE application, find the “Specification and Description Language (SDL) Solution” from the last mentioned product of CS Odessa to be able to create any needed diagrams within the Description Language field of business activity, including the finite state machine’s ones, within only an hour or so having all the needed tools, such as design elements of SDL Connectors from the stencil library and the pre-made templates of the SDL Diagrams which can be always used as drafts for your own smart as well as professionally looking drawings.

Finite State Machine *

Example 1. Design Elements. Finite State Machine Diagram
for Apple OS X and Windows

To design the Finite State Machine Diagram from the beginning in new ConceptDraw document, use the predesigned connectors and SDL design elements offered in quantity of 71 objects by 2 libraries of Specification and Description Language (SDL) Solution. The predesigned vector objects give the possibility easily draw any FSM Diagrams you want.

Thanks to the Specification and Description Language (SDL) Solution we also have a variety of SDL and FSM diagrams samples in ConceptDraw STORE. Each of them can be opened in ConceptDraw DIAGRAM and used as is or changed according to your needs.

Specification and Description Language (SDL) Solution in ConceptDraw STORE

Example 2. Specification and Description Language (SDL) Solution in ConceptDraw STORE

The Finite State Machine diagram you see on this page was created in ConceptDraw DIAGRAM software using the objects from the libraries of Specification and Description Language (SDL) Solution. An experienced user spent 25 minutes creating this sample in ConceptDraw DIAGRAM

Use the Specification and Description Language (SDL) Solution for ConceptDraw DIAGRAM software to create your own professional looking SDL and FSM diagrams quick, easy and effective.

All source documents are vector graphic documents. They are available for reviewing, modifying, or converting to a variety of formats (PDF file, MS PowerPoint, MS Visio, and many other graphic formats) from the ConceptDraw STORE. The Specification and Description Language (SDL) Solution is available for all ConceptDraw DIAGRAM users.




TEN RELATED HOW TO's:

UML Diagram →

While developing software, it is very important to have a visual model, because it helps to represent the logic and the architecture of an application. Experienced engineers use UML diagrams to denote relationships between classes and their instances. UML is a general language for a set of diagrams like deployment diagrams, object diagrams or use case diagrams. This diagram represents UML class diagram used for a software system development using an object-oriented method. Class diagrams are categorized as static structure diagrams that depict the physical structure of a system. Class diagram divides a software system's structure into "classes". Classes are defined by the methods and variables of objects. UML Class diagram is used to depict relationships and source code dependencies between objects.UML Diagram *
Picture: UML Diagram
Related Solution:

PERT Chart Software →

PERT Chart Software - Activity Network and Project Evaluation and Review Technique, or PERT, charts are a way of documenting and analyzing the tasks in a project. ConceptDraw DIAGRAM is a powerful diagramming and vector drawing software for designing professional looking PERT Charts quick and easy.PERT Chart Software *
Picture: PERT Chart Software
Related Solution:

Object-Oriented Design →

Being involved in the process of planning some system of interacting the objects, or in other words, being engaged in the object-oriented design in order to solve some software problem as one of the approaches used in the software design, you may find the ConceptDraw DIAGRAM diagramming and drawing software a really useful tool for making the needed drawings, such as the IDEF Business Process Diagrams.Object-Oriented Design *
Picture: Object-Oriented Design
Related Solution:

Storage area networks (SAN). Computer and Network Examples →

A Storage area network (SAN) is a dedicated network that provides access to data storage and operations only on the block level. SAN usually has own network of storage devices/elements and disk arrays that are connected with each other and to a remote data-sharing network. SANs are widely used for enhancing the storage devices (optical jukeboxes, disk arrays, tape libraries) that are accessible for networked servers. This example was created in ConceptDraw DIAGRAM using the Computer and Networks Area of ConceptDraw Solution Park. It shows the hybrid of Storage area network (SAN) and Network Attached Storage (NAS) technologies.Storage area networks (SAN). <br>Computer and Network Examples *
Picture: Storage area networks (SAN). Computer and Network Examples
Related Solution:

Types of Flowchart - Overview →

A flowchart is a powerful tool for examining processes. It helps improving processes a lot, as it becomes much easier to communicate between involved people, to identify potential problems and to optimize workflow. There are flowcharts of different shapes, sizes and types of flowchart vary from quite basic process flowcharts to complex program flowcharts. Nevertheless, all these diagrams use the same set of special symbols like arrows to connect blocks, parallelogram to show data receiving or rectangles for showing process steps. Basic flowcharts are used to represent a simple process algorithm. A basic flowchart notation consists of rectangles (business processes), arrows (the flow of information, documents, etc.). The same notation is used in items such as the "decision", which allow you to do the branching. To indicate the start of the entire business process and its termination can be used the "Terminator" element. The advantages of Basic Flowchart are simplicity and clarity. With it you can quickly describe the business process steps. Creating of Basic Flowchart does not require any special knowledge, as easily understand by employees with different levels of education and IQ.Types of Flowchart - Overview *
Picture: Types of Flowchart - Overview
Related Solution:

Bus Network Topology →

If you have a small budget to design a computer network, you have to be very careful. One of the most cheap technologies to implement is a bus network topology, however it has many disadvantages. For instance, if the network cable is somehow damaged, the entire network won't work. This diagram illustrates a so-called "Bus" network topology. This type of network arrangement means that each computer or other device is linked to a main link (bus). The end nodes are shown as a circle. The links to the bus are depicted as solid vertical lines. The bus is shown as a bold horizontal line. This diagram can serve as a template for creating logical or physical network diagrams. The set of vector libraries supplied with ConceptDraw Computer and Networks solution contains the symbols of all LAN and WLAN elements required for creating network diagrams of any configuration.Bus Network Topology *
Picture: Bus Network Topology
Related Solution:

How to Draw an Organizational Chart →

If your company is in chaos in clutter and no one understands their rights and responsibilities, maybe it's time to change that. One of the ways to put the company in order is to draw an organization chart that would reflect the structure and show the relationships among departments and positions. This is a very useful and easy to understand scheme. This is example of the one of the most typical kind of organizational chart. It depicts an organizational structure of the hierarchical type. Its construction is similarv to pyramid. The single main position on the top - in this case, the mayor's position followed by sub-levels of authority in his command. Each position in the pyramid reports only to his supervisor, and takes only a report of direct subordinates. Such scheme limits the number of communications. This organizational structure is effectively used in public organizations. Also it is suitable for any organization with the need for multiple levels of middle managers. The ability to create organizational charts of different types is supplied with ConceptDraw Ogrcharts solutions.How to Draw an Organization Chart *
Picture: How to Draw an Organizational Chart
Related Solution:

Flowchart Components →

The ConceptDraw Flowchart component includes a set of samples and templates. This geathered as flowchart maker toolbox which focused on drawing flowcharts of any industry standards.Flowchart Components
Picture: Flowchart Components
Related Solution:
ConceptDraw
DIAGRAM 15