Distinguishing System Robustness, Resilience, Stability, Flexibility and Performance

Distinguishing System Robustness, Resilience, Stability, Flexibility and Performance

This article elucidates the differences amongst some of the basic software quality attributes through an analogy applied for inverted pendulum controller.

Some of the fundamental terms when expressing software quality are robustness, resilience, stability, flexibility and performance. Mid level or even senior engineers sometimes seem to be confused when answering the questions like,

Is your application robust and resilient enough?

Is your module flexible?

Is your system stable now?

The purpose of this short article is to give an abstract idea through an analogy with an inverted pendulum control system to understand how the software robustness, resilience, stability, flexibility and performance differ and relate.

Let’s say, an inverted pendulum controller is developed, which keeps the pendulum always vertically aligned by generating inertial force towards the falling direction. Refer to the following figure,

From the figure, we can understand how it may work. Now let’s find out some of the software quality attributes of that inverted pendulum controller system.

Robustness — How much can you take before you fall down

Lets say, the system is taken to the outdoor, where there are some wind flowing to a random direction. Then, robustness of the controller is how much of the wind-flow it can take before it fails to keep the pendulum vertically aligned.

Other robustness quality of the controller can be measured by how much deviation in pendulum’s mass and length it can accept before falling. Let’s say, the controller is developed for an ideal pendulum of 1 kilogram mass and 1 meter length. Can the controller still avoid falling, if the pendulum is set 1.1 kilograms in mass or 1.1 meters in length by mistake?

Figure: X (collected from wikipedia.com)

Stability — How long can you perform before you fall down

Stability of the controller can be measured by, whether the controller keeps avoiding falling down the pendulum. If yes, its stable otherwise it’s not or less stable. The stability is not always a true/false, rather it can also be fuzzy (i.e. how long the controller can hold the pendulum from falling down).

Resilience — How long you take to stand up after you fall down

Resilience of the controller can be measured by what degree of deviation in angle of the pendulum, the controller can recover from. Let’s say, the controller is developed in such a way that even if the pendulum falls (i.e. due to some exceptions) from its initial vertical position to angle θ (in Figure: X), controller can still make a quick movement, so that the pendulum can come back to its initial expected position. The bigger the angle it can support, the more resilient it is.

Flexibility — How much do you need, for changing your strategy

The flexibility of the controller can be measured by the effort it takes to redevelop/configure the controller to support different types of pendulum. Let’s say, current controller is developed to support a pendulum of mass 1 kilogram and of length 1 meter. Can the controller be reconfigured for supporting a pendulum of 2.0 kilograms mass and/or 2.0 meters length within a minimal effort. The less amount of effort (time and labor) it takes the more flexible it is.

Performance — How much do you need, to keep performing

One of the performance measures of the controller is how quickly the controller can bring the pendulum back to its initial position.

Another performance measure is how much energy the controller uses to bring the pendulum back to its initial position for a period of time.

Throughput — How much you perform in a fixed unit of time

Throughput of the controller can be measured with the amount of energy it spends over a unit of time to keep the pendulum stable and performing well.

Before finishing up this article, I want to share two images which might help us to visually remember the differences amongst robustness, resilience and flexibility of a system.

collected from slideshare.comcollected from researchgate.net

Xổ số miền Bắc