Model-based Designing – A New Approach for Tackling Complexities in Embedded Software
Traditionally, embedded software algorithms were manually documented. The process was not only subject to interpretation bias, but also took months to complete. With rapid advancements in embedded systems, the complexity and code size of their software has amplified. Developing applications for different systems in a connected vehicle, for instance, could involve writing 100 million lines of code, which can take years to perfect. The pressures of new technology integration and safety compliance requirements add to these challenges and often end up impacting project timeframes and costs. Considering that 59 percent of embedded projects have already run into delays and cancellations in 2017, engineers are exploring alternatives that ensure their successful completion. Recent trends show a paradigm shift towards a model-based approach to embedded software development.
Towards Leaner, Faster Models
As programmers from different geographies collaborate, more instances of mismatched assumptions between the embedded hardware and software come to the fore, raising quality concerns. Model-based engineering can redress the risk and help developers ensure performance, time criticality, reliability, and safety. Packages such as MATLAB have the potential to model, simulate, automatically generate code, and test software algorithms while maintaining control over the revisions and versions. Engineers leveraged the tool to develop prototypes for power electronic building block (PEBB) embedded control software in one-sixth the allotted number of weeks. It even allowed virtual simulation and verification of control algorithms, eliminating possibilities of equipment damage during hardware-software integration.
Reliability Prediction for Fool-Proof Design
While building safety-critical systems, it is essential to ensure software design reliability at an early stage. With 70 to 80 percent of all system errors introduced during the requirements phase, predicting the application’s reliability before a line of code is generated can help monitor and control the final product. An early stage reliability prediction model (ESRPM) can take this a step further by quantifying the quality of the developed software with 90 percent accuracy. The idea is to base the ESRPM model on the embedded software’s requirement specification. Leveraging these details, a behavior modeling technique can be implemented alongside sensitivity analysis to simulate the operation of a robotic wheelchair’s avoid-component and identify element failure probabilities graphically. The approach can explain any future problem, and minimize wastage and rework efforts. The resultant software is robust, dependable, and devoid of cascading disasters. The next stage of developing reliable embedded software will be ushered in by an Ada-based language called SPARK. With safety and reliability at its core, the language aims at increasing developers’ productivity, integrating scientific computations, and enriching dynamic capabilities. While still a nascent concept, it promises to revolutionize the embedded software development space.
Enabling Real-Time Capabilities
ISO certification is integral to safety-critical embedded software. For manufacturers of such embedded devices, ISO certification involves assessing the performance of the program in variable environments and validating real-time reliability. Since mathematical models fail to predict real-time reliability responses, a combination of the model-based technique and formal analysis tools can reduce costs while improving consistency. Tools like modeling and analysis of real time and embedded systems (MARTE), which use object-oriented technology, can dynamically and graphically analyze, verify, and validate time triggered system state changes. Its ability to generate production codes automatically enables enterprises to achieve DO-178B and C compliance certification for flight control systems of unmanned aerial vehicles.
Unleashing Multi-Processing Power
Adopting multicore technology, like heterogeneous multiple-processing system-on-chip (MPSoC) can extend software capabilities and increase energy efficiency and performance at low costs. On the other hand, processing units such as Zynq UltraScale+MPSoC can provide a programming methodology to design and develop IoT and real-time enabled applications. These tools have helped develop highly critical anti-lock braking, engine control, and steering systems in advanced driver-assisted systems (ADAS) software while complying to ISO 26262 and AUTOSAR standards.
Accelerating Product Enhancements
For modern organizations focusing on delivery, the goal is to automate tests using a continuous integration and delivery platform. The model-based tool can enable engineers to develop plugins, detect faults, debug, manage pipelines and evaluate performance while controlling versions and upgrades. A leading automotive component supplier automated the build pipeline of its diesel gasoline systems’ electronic controls, accelerating the process by 95 percent and improving project visibility.
A Smarter Future
The next few years will see third and higher generations of programming languages with transportable capabilities enabling embedded software to reduce its reliance on hardware. Though embedded system developers primarily use platform-dependent environments, parts of software development, like firmware programming and debugging are already hardware agnostic. Performance testing to assess plant behavior is often simulated using a mock embedded hardware interface. With the embedded software market predicted to grow at a CAGR of nine percent over the next four years, the future is green for applications embedded in multi-processors. The technology will support further advancements, like natural language processing and embedded machine vision technology. Progress in OpenCV vision algorithms that can support embedded operating systems and processors will help realize the embedded vision dream with smarter image sensors.