The IIoT encompasses safety- and performance-critical applications that are dependent on products controlled by software. Because of this, organizations must adjust their software development processes to ensure software quality is the highest priority.
The Internet of Things (IoT) has come to include mainstream applications such as health and fitness applications, smart appliances, wearables and home automation. There has been a similar shift in the industrial sector, known as the Industrial Internet of Things (IIoT), which includes more complex devices and systems with networked sensors and software. As the Industrial Internet of Things (IIoT) continues on a path of rapid growth, there are new vendors providing applications, middleware, and connected devices to support this thriving ecosystem. Essentially this means that countless electronic device manufacturers are now in the software business, and many of them are completely new to building embedded/robust software.
Therein lies the problem. As IIoT encompasses safety- and performance-critical applications that are increasingly dependent on products controlled by software, safety, security or human life is exposed to risk if that software fails. Therefore, software quality needs to be the number one priority, and vendors must implement processes that can deliver the highest quality software.
Fortunately for developers, the International Electrotechnical Commission’s (IEC) 61508 standard provides a detailed set of guidelines for the software development process related to electrical, electronic or programmable systems performing safety-related functions. The standard covers a wide array of safety-related equipment, including automotive, medical devices, railway signaling systems, gas burner management and emergency shut-offs. Comprising seven parts, part three of the standard defines the software requirements and sets the safety lifecycle for software, including validation and verification. This lifecycle begins with a risk analysis to determine the Safety Integrity Level (SIL), a quantification of the magnitude of risk reduction required.
To meet these requirements outlined within the IEC 61508 standard, and because the quantity and criticality of software is increasing, the traditional workflows are not sufficient to meet the challenge, and software quality cannot be installed at the end of the development process. The basis of a trusted computing platform is formed by code correctness, so every development team needs a comprehensive process in place to ensure code correctness and achieve application security goals prior to a product going to market. This includes adopting automated software development methodologies such as change-based testing, continuous integration and regression testing. Implementing this process verifies that the integrity level of the software is in line with the safety risks of the application, meeting the stringent demands of IEC 61508 and ensuring the highest quality of the software powering our IIoT devices.
At the upcoming Sensors Expo and Conference 2018, I will be discussing this topic in further detail during my session, “Ensuring Software Code Quality for the IIoT,” taking place Wednesday, June 27th, 3:55 to 4:20pm PT.
Jeffrey Fortin is head of product management at Vector Software (now part of Vector Informatik). In this role, Mr. Fortin leads product management, driving business for all VectorCAST product lines into legacy markets as well as emerging market segments. Previously, Mr. Fortin served more than 16 years at Wind River. As director of product management, he oversaw product planning and strategy for Wind River’s Intelligent Device Platform (IDP), an IoT gateway software product. Also during his time there, he served as director of field engineering where he led field teams focused on Industrial, Medical, IoT, and Aerospace and Defense (A&D) applications.