For many tiered suppliers, the industrial internet of things (IIoT) introduces a great leap in software and network complexity. Look at the below graphic for a list of typical IIoT components that get you to cloud platform services.
Each of these services is responsible for the collection, transfer, storage, or analysis of your operational data. As many of these technologies evolve, so will their standards, physical and logical interfaces, software, and firmware.
To maintain the integrity of your network and your data, you need to plan accordingly with your suppliers. Supplier contracts should include guarantees that software and firmware components will be adequately tested for their continued compatibility with your network components.
I wrote before about my smart home installation to help my wife manage devices she can’t reach. During a recent weekend I woke up to discover that all four of my smart light bulbs from one company no longer worked with my voice-activated devices. I tried for an hour to reconnect each device but made no progress. I searched for evidence of upgrades, but little information is made available to consumers about device firmware upgrades. I eventually removed those bulbs and replaced them with another brand of bulb that I had success with in the past.
My only available conclusion was that overnight, somebody installed a firmware upgrade that effectively killed the interface between my smart speakers and my light bulbs. Unlike software upgrades on my phone, I get no alert nor confirmation of firmware upgrades. They just happen.
This type of upgrade is frustrating for me. My wife depends on voice activation of her bedroom lamp. If she needed to get up in the night, her options were to call for me or take an unacceptable risk of falling in the dark. I am aware that smart devices are relatively new technologies. I am aware of the inevitable problems. I do find it unacceptable for a company to release any upgrade before its interfaces are tested against commonly used devices. Imagine the consequences should the same happen on your plant floor.
Every product developer deals with the conflict between marketing’s need to keep product current and development’s need to maintain quality. With a stand-alone software application, it may be accepted practice to “beta test” components on customers. Many customers even expect new releases to be a bit buggy. As we learned recently with the Boeing 737 MAX, anything less than complete testing is unacceptable. That holds true for your stamping floor as well.
Your stamping plant has high-speed and high-torque moving parts and harmful chemicals. You need confidence that your monitors and actuators function in a reliable and predictable manner to ensure quality components and employee safety. IIoT also is a decision-support platform. Your information must be timely and reliable to support your ability to make the right decisions. One way to accomplish this is to demand your suppliers test their devices, firmware, and software against the same interfacing components and versions you have in your plant. Testing must be disciplined, thorough, and documented.
You should specify in your contract the types of testing the supplier will perform after coding upgrades to modules. You may choose to agree with your supplier on a set of standards to use for testing and certification. Two of these standards are:
1. ISO 25010
This is how it’s described in ISO/IEC 25010:2011, Systems and Software Engineering, Systems and Software Quality Requirements and Evaluation, System and Software Quality Models: “A quality in use model composed of five characteristics (some of which are further subdivided into subcharacteristics) that relate to the outcome of interaction when a product is used in a particular context of use. This system model is applicable to the complete human-computer system, including both computer systems in use and software products in use.” Also, “[a] product quality model composed of eight characteristics (which are further subdivided into subcharacteristics) that relate to static properties of software and dynamic properties of the computer system. The model is applicable to both computer systems and software products.”
2. ISO 25012For an explanation, let’s consult ISO/IEC 25012:2008, Systems and Software Engineering, Systems and Software Quality Requirements and Evaluation, Data Quality Model: “Managing and enhancing the quality of data is important because of:
- the acquisition of data from organizations of which the quality of data production process is unknown or weak.
- the existence of defective data contributing to unsatisfactory information, unusable results and dissatisfied customers.
- the dispersion of such data among various owners and users. Data captured in accordance with the workflow needs of a single organization often lack a coherent and integrated vision which is necessary to ensure interoperability and co-operation.
- the need for processing data which are not immediately re-usable because of semantic ambiguity or lack of consistency between such data and other existing co-related data.
- the co-existence of legacy architecture and computer systems with distributed systems designed and realized at different times and with different standards.
- the existence of information systems (such as the world wide web) where data change frequently and integration is a special issue.
“The data quality model defined in this international standard aims to meet these needs, taking into account that the data life cycle is often longer than the software life cycle. It could be used, for example, to define and evaluate data quality requirements in data production, acquisition and integration processes; identify data quality assurance criteria, also useful for re-engineering, assessment, and improvement of data; and evaluate the compliance of data with legislation and/or requirements.”
The four types of testing you should understand include:
- Integration test - Identifies defects in the integration between components of a software application.
- Regression test - Identifies degradation or loss of product features after a major upgrade.
- Acceptance test - Conducted with the user in a test environment to ensure the product meets requirements and specifications.
- Performance test - Ensures that the responsiveness and stability of the product are acceptable.
As your projects evolve, you will become more dependent on the integrity of your software and network components. The continuity of interfaces between components is critical to supporting quality decisions, information integrity, and a safe and productive working environment. Your software and network suppliers should guarantee their diligence in developing and certifying that your IIoT components will remain reliable.