The Future of Embedded Software Development: The Trend Toward Greater Complexity is Reshaping Product Development

By Peter Winston

founder and CEO

Integrated Computer Solutions

April 22, 2024


The Future of Embedded Software Development: The Trend Toward Greater Complexity is Reshaping Product Development

The rise of the industrial Internet of Things (IIoT) is pushing embedded software development toward greater complexity – a transformation with broad implications impacting every stage of the software development process.

Stringent new cybersecurity mandates, increasingly complex device ecosystems, innovations in chip architectures, emerging connectivity technologies, and integration of artificial intelligence and machine learning technologies are completely reshaping embedded software development.

Managing this complexity will require new approaches. For instance, I expect service-based architectures and virtualization strategies like containerization, which are widely used in web applications, to become increasingly important in embedded systems.

Cybersecurity Takes Center Stage

Perhaps the greatest pressure in the US comes from recent cybersecurity mandates. These policies and frameworks focus on strengthening cybersecurity, protecting critical infrastructure, and enhancing resilience against cyber threats. I expect these mandates to quickly extend to all regulated markets – and eventually to the entire digital ecosystem – to help shore up the cybersecurity of the US economy. 

You can see this taking shape in the broad guidance issued by the FDA, requiring cybersecurity for any device with “cybersecurity considerations" – so anything with a USB, NIC, or wireless, whether or not it is connected to a network. Manufacturers have increased responsibility to disclose vulnerabilities, update their design and development processes to conform to best practices, furnish a Software Bill of Materials, and provide the ability to push fixes when problems are discovered.

Regarding embedded systems specifically, where a typical device has hundreds of software components, often with interconnected dependencies, this cybersecurity mandate will fundamentally alter how products are developed. Traditionally, the best practice was to start a project with the most current set of components and build and harden the project as it progressed. But in light of this mandate, manufacturers now must take a more proactive approach to software supply chain management, for instance providing continuous monitoring and updates post-deployment.

Other Trends Impacting Embedded Systems

Beyond cybersecurity, there are a host of trends impacting embedded systems development – for instance, the coexistence and interoperability of devices. Much of the value of IIoT comes from creating an environment in which devices, sensors, applications, computer systems, and networking equipment work together to support industrial operations. The broad range of device types and specific devices produces an ecosystem of great complexity – and responsibility for managing that complexity will largely fall on software running on various system components, ideally built atop stabilizing industry standards.

The seemingly endless array of connectivity technologies is also adding complexity to embedded systems. With so many technologies designed to connect devices to create a working system, it is likely that new industry standards will eventually be established with the aim of reducing the number of moving parts. Until that day comes, developers can manage complexity with initiatives like Google's IoT Matter standard, which lets your device work with any ecosystem using a single protocol.

Another important trend I’m witnessing is the emergence of new chip architectures. In the past, as microprocessors grew faster, smaller, and more efficient and processing power climbed, the basic chip architecture remained static. But of late, chip architectures are changing as chip makers work to accommodate the computational requirements of machine learning (ML) applications. AI/ML technologies are increasingly popular and already appear in a variety of embedded applications, from automotive in-vehicle infotainment and predictive maintenance systems to medical diagnostics. This trend will no doubt gain momentum with the availability of even more powerful chips.

In this environment, the increasing prominence of service-oriented architectures makes sense. The value of IIoT is created by orchestrating devices that have different purposes, different locations, and different users so collectively they comprise the best way to meet system requirements. Service-oriented architectures help manage the complexity of IIoT systems by focusing on the messages being sent between devices. Tools such as Google's Protobuf require clear, consistent schema and good programming practices. In return, they provide efficient network communication, backward and forward compatibility, and cross-language support.

Containerization and microservices, commonplace in mobile and cloud applications, are also being put forward as a method of managing complexity by simplifying embedded software development, deployment, and maintenance. A containerized application could, for example, be run on a PC, server, or embedded target – provided all platforms support the container run-time. Microservices, which are often used in conjunction with containers, can reduce the complexity of development and deployment by defining an application as a collection of autonomous, loosely coupled services that work together to meet system requirements.

However, it’s important to note that the benefits of using containers in one part of a system should be considered alongside the additional complexity of communication among containers – particularly where two containers need to communicate with a single device. This issue is prevalent in user interface development, where multiple applications need to share the screen. To address this challenge, there is a growing adoption of a GUI-as-a-service approach where the GUI is separated into its own container.

The Takeaway

Embedded systems are becoming far more complex, in turn making systems development more complicated. More technologies are being used, requiring more – and more specialized – developers to create these systems. For device makers, these changes open new opportunities for product development, but in turn, bring added responsibilities that may be difficult to accommodate. All but the largest companies may struggle to assemble in-house all of the skills necessary to create new embedded products. For manufacturers without their expansive design, development, cybersecurity, quality assurance, and regulatory teams, partner collaborations will become the norm to fill the gaps.

Peter Winston is the founder and CEO of custom software development firm Integrated Computer Solutions, which specializes in product development for complex use cases and regulated markets, from medical devices to automotive and industrial IoT.

Peter Winston is the founder and CEO of custom software development firm Integrated Computer Solutions, which specializes in product development for complex use cases and regulated markets, from medical devices to automotive and industrial IoT.

More from Peter