CRITICAL Software's Blog

Forgetting Code: How Software Can Become Invisible

Posted by José Reis on 17/12/15 16:38

Have you ever stopped to think about how much software surrounds your everyday existence? It's becoming second nature to trust computers to control our heating, find us a place to eat, monitor our health, connect us to friends on the other side of the world... The list of what we expect software to do for us has grown long and in some cases, surprising. Coding is everywhere: in trains, buildings, phones and washing machines, for example. 

With the advent of new technologies like the Internet of Things, added to our constant demand for computer technology to do more, software is creeping into parts of our world that it has never been to before, and is making itself at home.

For example, the first radar system for bicycles has been adapted for public use. Cyclists will now be able to check a screen to know their location, speed and the threat posed by vehicles surrounding them. It's likely that those vehicles also contain software too. And, automation technology in cars is not new, but it is advancing all the time. Technology tested in space will be hiding behind our dashboards as soon as 2018. Adaptive cruise control systems can already alter the speed of a car and maintain a set distance from the car in front. This works through embedded software, quietly working to our advantage, making driving safer and easier.

Another instance of software hiding from plain sight is England's well-used subterranean transport system. The London Underground contains a vast amount of code, and not only within the trains and information display units. Along the Jubilee line platform edge, doors have been set in place to keep passengers on the platform and reduce the volatile movement of air caused by trains and ventilation fans. Software controls the opening and closing of these doors and the timing must be exact; the doors open only when the train is in position to receive passengers, and pause in closing when an obstruction is sensed to prevent injury. How many of the 213m passengers per year pass through without a moments consideration of the system controlling this delicately executed operation?


Circling far above our heads, satellites are a more obvious beneficiary of clever software. An operator on Earth can precisely adjust the operation and orbit of a spacecraft, and remotely control data collection instruments, often in real-time. In many cases, the most prevalent threat to accuracy is human error, as the software involved has been rigorously tested against failure and is more reliable.

With that in mind, automated systems run on close to infallible software systems seems the safest option in many cases. However, guaranteeing infallibility requires considerable expertise and experience.

Patient monitors used in hospitals provide doctors and nurses with vital information about a patient's health. These monitors contain software that reads data from sensors then transfers it to on-screen displays. Software controls essential equipment like ventilators too, used to control the flow of oxygen to a patient unable to breathe on their own. But what would happen if this vital software goes wrong? Failure of software in this case could be catastrophic.  

Thorough and high-quality testing of the software used to streamline and improve our world will ensure that, as our reliance on software grows, our world gets safer.

There's no doubt that software code has increased safety levels in many industries and because of it, humans now have an easier time overall.  It's undeniable that along with improvements in safety, using software to automate our lives frees us from the mundane, allowing us to devote our time to more rewarding things. Today, washing machines let us avoid the hours we might have spent by the river, bashing our shirts on rocks. Tomorrow, embedded software might allow us to ignore the road completely and trust our automated car to do the driving.

But first, like all progressive ideas, tomorrow’s software innovations will have to run the gauntlet of testing to reach the lofty heights of coming close to perfection. Ironically, the better software gets at this, the less we’ll probably notice it. In fact, when software becomes so safe, and such an embedded part of our reality, it may well be totally forgotten.

See Also

Functional Safety Planning According to ISO 26262 - White Paper

Download white paperBefore completely driverless cars can be released into our complex human environment, these machines need to achieve exceptional levels of safety. Discover the best-practice for applying the ISO 26262 standard in our latest white paper on functional safety planning from our experts.

Topics: Software Testing