In April we hosted the sixth in our series of Women In Software Engineering virtual meetups. For this event we were delighted to be joined by Full Stack Software Engineer at Jimdo, Ebaa Bassoumi.
What is a Finite-State Machine?
Ebaa began her talk by discussing the Combinatorial Explosion theory. When testing a new feature, in some cases, other features stop working this is because the number of ways in which the user can interact with your app is increasing causing you to reach the point of Combinatorial Explosion. Using the Finite-Machine computational model helps to avoid this point.
“A finite state machine is a mathematical abstraction used to design algorithms. It can be used to simulate sequential logic, or in other words, to represent and control execution flow.”
Ebaa then went on to explain the basic building blocks of state machine:
- State – the mode or status of the app, at any given point of time you can only be in one single state
Why use a Finite-State Machine? In answer to this question Ebaa highlighted the ability for visualised modelling, precise diagrams, comprehensive test coverage and accommodation of late-breaking requirement changes.
Before demonstrating a live demo of a Finite-State Machine, Ebaa mentioned the Actor Model. An ‘Actor’ can do three things:
- Send messages to other actors
- Receive messages
- Act on the messages it has received (it’s behaviour) for example; changing it’s local state, spawn new actors or sending messages to other actors
We’d like to thank Ebba for speaking at the event as well as the attendees for making the event such a success. We are already in the process of planning our next event around the fundamentals of clean code – check out our Eventbrite page for more info!
If you are interested in attending or speaking at our next Women In Software Engineering event, don’t hesitate to get in touch!