Quality and Reliability in Embedded Development

Embedded software constantly controls car brakes, microwave oven temperatures, and the operation of medical devices.

Therefore, unlike smartphone apps and PC software, it cannot be easily restarted just because it is not working well. This is because if embedded software, which operates as part of a device, stops, the device itself could stop and cause major problems.

Therefore, when developing embedded software, quality and reliability take precedence over functionality and processing speed.

Particularly important are the three points of “long-term operation,” “high reliability,” and “safety.”

The Most Important Requirement of Embedded Software | Why Is “Long-Term Continuous Operation” Required?

The first requirement for embedded software is that it can be operated continuously for a long period of time. Embedded software is designed on the assumption that it will continue to run without restarting for several years, or in some cases, more than 10 years. This is because it is generally unacceptable to shut down and repair infrastructure such as water and power facilities, as well as factory production lines and medical devices. Even if it malfunctions, embedded software cannot be restarted like PC software.

Therefore, even the slightest inefficiency or discrepancy during operation is generally unacceptable. This is because even minor inefficiencies can accumulate over time, creating an unavoidable risk of a catastrophic failure. One example is the phenomenon known as a memory leak in a program. While it may cause no problems over the course of a day, memory can fill up after a system has been running for years, causing it to suddenly stop one day.

Therefore, one of the challenges of embedded software development is that simply functioning correctly at a given moment does not mean it meets the requirements. During development, it is necessary to use design and testing to determine whether the software can continue to operate correctly for years to come. It is necessary to run the software for extended periods to check for anomalies and to identify and test potential problem areas. To use an analogy, it requires the endurance to complete an ultramarathon rather than a short sprint.

What Is “High Reliability” in Embedded Software? | Design Philosophy Based on the Assumption of Failure

“High reliability” is essential to support long-term continuous operation. However, high reliability in embedded software is a different concept from so-called high functionality or high performance. What is required is the ability to continue to operate stably under assumed conditions without causing any unpredictable behavior.

However, in actual operating environments, issues such as voltage fluctuations and other noise, component deterioration, and problems caused by unexpected operation are unavoidable. Even if such changes in the operating environment occur, embedded software must always operate stably and correctly. To address such changes, embedded software incorporates mechanisms that anticipate every conceivable abnormal situation, such as abnormal sensor inputs or implausible calculation results, and respond appropriately.

Furthermore, embedded software is equipped with a monitoring mechanism called a “watchdog timer” in case the program stops for some reason. This mechanism continuously checks the software's operating status and automatically recovers or restarts it if an abnormality occurs. What is important is that the system can recover autonomously without any human involvement.

The important thing is not to try to eliminate failures entirely, but to prepare for them so that control is not lost when they occur. In reality, some type of malfunction is bound to occur. Mechanisms that prevent such malfunctions from escalating into worst-case scenarios are the foundation of high reliability.

Illustration showing the operation of a watchdog timer

What Is Safety in Embedded Software? | The Fail-Safe Philosophy: Safe Even in the Event of Failure

“Safety” is an extension of reliability. Whereas reliability aims to prevent failures, safety aims to ensure that people and equipment are not harmed even if a failure occurs—that is, to be “fail-safe.”

Fail-safe

The concept of prioritizing safety and stopping equipment or systems before a dangerous state is reached when equipment failures or operational errors occur

Example: The equipment stopped because an operator opened the gate (guard) during operation

Example illustration of fail-safe

If an abnormality occurs in embedded software used for railroad crossing barriers or automobile brake control, it is essential to avoid leaving the system in a dangerous state. Therefore, the software is designed to immediately restrict operation or stop safely when an abnormality is detected. In the case of a railroad crossing barrier, it is designed to lower the barrier by gravity when an abnormality is detected.

Even if some trouble occurs in an auxiliary function, a mechanism is built in to prevent it from affecting critical control functions.

No Compromise Allowed in Embedded Software

If any problem occurs in embedded software, there is a risk that it could lead to serious issues. In the worst-case scenario, a shutdown of social infrastructure could pose a threat to human life and cause a loss of corporate credibility. To avoid such problems, meticulous attention is paid during design, and thorough testing and verification are repeated during the development stage to maintain high quality standards.

It is thanks to embedded software that we do not have to worry about fires when using a microwave oven, and we can feel safe knowing that a car will always stop when we step on the brakes. Embedded software is built to ensure long-term operation, high reliability, and safety that protects people even in the worst-case scenario.

Quality in embedded software is by no means simply about pursuing convenience or novelty. Above all, what is valued to support reliability is dependable quality that allows the software to continue operating reliably over long periods.

Back to The World of Embedded Software Top