Skip to main content

+1 866 653-6233 LinkedIn Software Expert Witness Directory

About Us Contact Us

Barr Group Software Experts

Barr Group Software Experts

Main navigation

  • Expert Services
    • Consulting Experts in Software and Electronics
    • Expert Reports by Testifying Software Experts
    • Reverse Engineering and Forensic Analysis
    • Software Source Code Review and Analysis
  • Areas of Expertise
    • Left Side
      • Artificial Intelligence
      • Automotive Systems
      • Cloud Computing
      • Computer Security
      • Consumer Electronics
      • Electronic Circuits
      • Enterprise Software
      • Financial Technology
      • Firmware and IoT
    • Right Side
      • Industrial Controls
      • Mechanical Design
      • Medical Devices
      • Military & Aerospace
      • Mobile Devices & Apps
      • Optical Equipment
      • Renewable Energy
      • Signal Processing
      • Telecommunications
  • Matters & Venues
    • Patent Infringement and Invalidity Experts
    • Software Copyright and Trade Secrets Experts
    • Product Liability and Failure Analysis Experts
    • Contract Disputes and Software Project Failures
    • Venues and Clients
  • Directory
  • Case Studies
    • DirecTV Anti-Piracy
    • Samsung Software Copyright
    • Toyota Runaway Cars
  • Resources
    • Expert Witness Blog
    • Source Code Review in Litigation
    • Software Source Code Discovery

State Machines

  1. Home
  2. Tech Talks
  3. State Machines

A state machine is any object that behaves different based on its history and current inputs.  Many embedded systems consist of a collection of state machines at various levels of the electronics or software.

Barr Group CTO and software expert Michael Barr gives a brief introduction on the concept of state machines for embedded systems.

Related Articles

Introduction to Hierarchical State Machines (HSMs)

How to Code a State Machine in C or C++

Related Courses

Reliable Multithreaded Programming

Event Driven Programming and State Machines

Hardware-Software Partitioning in Embedded Systems (Webinar)

Transcript

Andrew Girson: Hi everyone. I'm Andrew Girson, Barr Group CEO and I'm here today with Michael Barr our co-founder and CTO. We're here today to talk about state machines.

So Mike, I've talked to a lot of our training and consulting customers and quite often the concept of state machines comes up.  So, what exactly are state machines?

Michael Barr: Well, state machines are in a nutshell just portions of a system that behave differently depending on the things that have happened in the past.

An example that like is of a soda machine. When you go up to the soda machine, it's not yet willing to take your order for a particular brand of soda. You've got to put money in first--you got to change its internal state so that it'll behave differently and give you a soda.

If one day you were to walk up to a soda machine and the person in front of you put money in, but they hadn't gotten a soda out, it would still be waiting for an order and it might reject your money it might confuse you because you would expect it to be a different behavior. So that's an example of the state machine.

Andrew: Okay. And why are state machines important in embedded systems design?

Michael: Well, as embedded developers both developers of electronics as well as software, state machines are a part and parcel of the job.

Sometimes they're just a small, you know, maybe tracking with some global variables or some local variables, a state of information about what's going on in the system or a part of the system. But sometimes it's very complicated hierarchical state machines that where the whole system is interacting as a group of state machines that are all interacting with each other.

And the reason it's important is because embedded developers should know that there are good best practices for implementing state machines and there are also really complicated ways that will screw you up. One of the ways you can find out about those best practices is in articles on our website that talk about state machines.

Andrew: Okay. Thanks.

Michael: Thank you.

Request an Expert

(866) 653-6233

Barr Group logo
Call us

Expert Services

  • Source Code Review Services
  • Expert Witness Directory
  • Reverse Engineering Services
  • Expert Reports & Testimony
  • How-To Technical Articles
  • Engineering Services

Latest Insights

  • Payment Processing and e-Payments Fraud
  • Albert Einstein Expert Witness
  • Medical Device Litigation and FDA 510(k)
  • Personality Traits of the Best Expert Witnesses

Website contents copyright © 2012-2025 by Barr Group. | Barr Group's logo is a U.S.-registered ® trademark.

SITEMAP  |  PRIVACY