Unit 3: State Machines

In the previous unit, we learned how to use deployment diagrams to reveal already some details about the structure of the system. This week, we start with the specification of how the system actually works. This will be more technical and on a more detailed level as before.

In earlier versions of the course, we treated state machines at a later point in time and did first work on requirements engineering. But this gave some students the impression that modelling is something abstract and fluffy. With state machines, you will see that modeling can also be precise and concrete.

During this and the following weeks, you get several opportunities to design state machines. This is useful, since it allows you to handle concurrency in systems correctly, which is useful no matter which programming language or framework you will later use. Also, creating state machines is a task that trains your generic skills as an engineer, and many problems can be mapped to that of state machines.

Learning Goals

After this week, you will be able to:

  • Create syntactically correct state machines.
  • Interpret and explain detailed state machine behavior.
  • Recite the main features of state machines.

With these basic skills you have every concept of state machines covered we need for the course. However, learning to design good state machines will require some more experience, which you will acquire over the following weeks.

Preparation

Go through the following preparation material before we meet in class:

Teamwork on Monday

Go through the following activities with your team:

Additional Exercises

For the Semester Project

When we start with requirements engineering, we will ask you to create the requirements for the semester project. Have a look at the theme for the semester project of this year, so that you can start early with preparing some specific ideas for your project.

Concluding this Unit

Please clean up the room after you. Remove any trash or paper.

Team Reflection

  • Add another section to the team reflection document, just like last week.
  • How did the roles work today?

Individual Reflection

To conclude a unit, fill out the individual reflection. Also, make notes about ny observations, which will help you for the reflective essay at the end of the semester.

If the form does not open properly or you get an error message, try right-clicking the link and opening it in a new tab or window.

Edit this page