ANSYS SCADE: Embedded Software Automation
There’s no doubt about it: smart connected products demand a lot of software. It’s used for control systems. It’s used to communicate with IoT platforms. It’s the intelligence behind user interfaces. Without embedded software, you don’t have smart connected products.
Unfortunately, developing embedded software for smart connected products is no easy task. Not only do you have to ensure that it runs as intended, you have to guarantee it runs on your target electronic hardware. Verifying that throughout the design cycle spawned an entirely new process: Model-Based Development.
That’s the background for this post, which reviews the ANSYS SCADE development and verification tool suite, which is composed of several integrated software applications. We’ll review the functionality it provides, the processes it supports and the value it delivers. Note that this solution is tightly integrated with an upcoming ANSYS product for System Simulation and Digital Twins, which will be reviewed soon in another post. This post, however, will specifically point out where that connection lies.
With all the context out of the way, let’s get started.
Requirements to Architectures: ANSYS SCADE Architect
The first application we’ll examine in the suite is SCADE Architect. This tool allows software developers to develop an architecture for their software by supporting the traditional Requirements-Functions-Logical-Physical (RFLP) process. It allows users to define initial requirements, breaking them down into sub-requirements. It then allows users to define functions that fulfill those requirements. Those can also be broken down into sub-functions. Next comes the logical representation of the architecture, which allows users to define interactions between the physical items, which in this case are the software elements.
In this whole process, the software developer allocates one thing to the next level. So requirements are allocated to functions. Functions are allocated to software elements in a logical structure. This creates traceability across the entire RFLP structure. So if a request is made to change one of the initial requirements, you can see everything else that needs to be changed. Likewise, if a software element is changed, then you can see what requirements and everything in between that needs to be changed.
SCADE Architect uses the Systems Modeling Language (SysML) standard, which is widely used in Model-Based System Engineering solutions. However, most of the complexity of SysML is hidden from the user in this application, so they are not dealing with low-level functions or database entries. One capability of note is the tool’s ability to generate interface control documents (ICD), which is a critical factor in managing change across such architectures. Also, this application provides formal support of ARP 4754A, ISO 26262, and EN 50126 system engineering processes.
Graphical Programming: ANSYS SCADE Suite
Next in line is SCADE Suite, a set of applications in its own right, that focuses on the development of control software. Users build a software model, also known as graphically programming, by dragging and dropping blocks to build something akin to a diagram. Those are then connected with inputs and outputs. Logic is defined for each of those blocks. At its simplest, that is what is required to design your software model. You can, however, capture the complex intricacies of such control software by defining state graphs, transitions and more.
This solution integrates with SCADE Architect by accepting components of the RFLP structure as inputs.
A key part of the Model-Based Development process is connecting your software model to a 1D system model, also known as a plant model, that emulates the behavior of the hardware in your product. Running such a coupled simulation is known as Model-in-the-Loop. It allows software developers to verify that the control software does, in fact, provide the control over the hardware of the product. SCADE Suite models can be coupled with models from other ANSYS physics in the new system simulation tool in exactly this way. In fact, there are some powerful system modeling and simulation capabilities in Twin Builder to make those emulations more realistic, even connecting them to sensor readings coming off a physical product in the field. But again, we’ll get far more into the details of that solution in another post.
Automated Code Generation: ANSYS SCADE KCG Code Generator
Now, a software model will only get you so far in the development process. At some point, you’ll need compiled code for the rest of the Model-Based Development process and to flash into your embedded systems.
A widely touted benefit of software models has been the ability to automatically generate code from them. In reality, those advantages are rarely realized. You can always generate code from a software model. The question becomes checking the resulting compiled result for compliance and accuracy. In some applications, doing so is painful, both from an effort and time perspective. However, if incorrectly auto-generated code results in a failed prototype or worse yet, a failure in the field, then real monies are wasted. Unfortunately, that scenario isn’t even the worst case. If you’re talking about an application where safety is involved, then you run into hard regulations that require costly certifications to verify that the code matches the software model.
ANSYS’ solution here proves advantageous in all these scenarios because you can press the button with a software model and get the code. However, it is in safety applications where it truly shines. SCADE Suite KCG Code Generator is formally qualified by specific government agencies in specific applications to auto-generate software code from SCADE Suite models. For example, the FAA allows aircraft manufacturers to use code auto-generated by this application for airborne systems standard DO-178C level A and trust that the generated code is a correct representation of the input SCADE Suite model. It is certified by other agencies for other applications. This all means that you can use code auto-generated from the software model without passing through that costly extra verification step.
Automated Testing: ANSYS SCADE Test
SCADE Test provides a set of capabilities to automate software model verification and validation. That includes creating and managing test cases. It includes automated execution of those test cases and managing their results. The execution of these test cases can be done locally for the software developer or remotely, which is critical when verifying if your generated software code runs correctly on your target electronic hardware.
Note that SCADE Test integrates with a number of Application Lifecycle Management (ALM) solutions for traceability, configuration management and production of project reports.
In the past year, I’ve lost count of the number of companies traditionally known as hardware-based product manufacturers that have said, “we’re becoming a software developer.” There’s just no denying it: to develop smart connected products, you have to be able to develop embedded software well. It simply is just to integral and critical to the development process. Interestingly enough, that’s where capabilities like graphical programming, supporting Model-in-the-Loop and automated code generation becomes really important. It is a way to accelerate development, avoid multiple prototypes, as well as reduce the cost of verification and validation.
This is why the ANSYS SCADE platform is so relevant. It combines all of these capabilities into a single solution with highly differentiated capabilities. If the platform has any shortcoming, it is that there is no integrated ALM system as part of the solution. However, that is easily overcome due to its integration with existing ALM offerings.
If you’re developing embedded software for smart connected products, then SCADE deserves a long hard look.
Takeaways and Conclusions
- The ANSYS SCADE platform includes a number of software applications that supports Model-Based Development.
- SCADE Architect supports the RFLP process to develop a traceable software architecture.
- SCADE Suite provides graphical modeling capabilities to design software models. Combined with ANSYS’ Twin Builder, SCADE Suite models supports the Model-in-the-Loop step in the Model-Based Development process.
- SCADE Suite KCG Code Generator auto-generates code from SCADE Suite software models. It is certified by some government agencies for some applications. This means the auto-generated code can be used without extra verification and validation steps.
- SCADE Test provides a set of verification and validation tools.
- SCADE tools integrate closely with several existing ALM solutions.
That completes our review of ANSYS’ solutions for embedded software development. If you have any experience with the solution, then let us know your feedback in the comments below.