The state of a system is the set of values of all its variables.

Consistent states

Because the systems as well as the programs that compose them we have written them, if they do what we imagine they say consistent.

At any time we can pause the system is take a picture. If all the variables in the system have the values that we expect the system is consistent.

It is not a little thing, because it means that we were not wrong writing our code and that there were no outside attacks that have compromised its integrity.

Non-consistent states

Usually, instead, it’s the reverse. Bugs hover in our code and hide behind path not followed and often unpredictable situations.

There is a difference between source code and executable code. That you can’t prove that the source code is bug-free until you run it. Indeed, even if you run it, you can only see that there have not yet been inconsistent, but not that there won’t be in future.

The executable code, once running, tells us immediately if there is something wrong: crash, abnormal behavior, failure to respond to commands. Not all inconsistent states are visible to the end-user: they need specific programs to be able to observe the values of all system variables and to monitor abnormal behaviors.

Metaphorically, it’s like we have a nuclear power plant that is our system and we look through the control monitors. No need to wait for the power station to blow up to see that the reactor is overheating.

But maybe I should have chosen a better example.

0 0 votes
Article Rating
Inline Feedbacks
View all comments