There’s a lot of talk about AI, blockchain and automation these days. Between robots taking over everything and predictions of everyone working in the enigmatic digital world that is “the metaverse,” it’s hard not to consider how advanced technologies like these can be applied to the aerospace industry. When it comes to software development and its guidelines, namely DO-178C, we know of at least one way: automated verification.
A number of verification activities are required by DO-178C. Some of these activities involve verification of the developed software, while some involve verification that your DO-178C verification process was correctly followed. Many verification activities can be performed either manually or by using automated tools to help run the analysis. When automated tools are used to achieve a DO-178C objective without their output being verified, those tools must be qualified for use following the DO-330 Guidelines. As we discussed in another article, the number of verification objectives you must meet depends on the DAL level of your software.
Verification activities can be performed entirely through manual processes, can be assisted by tools, or can be performed using tools alone. It should be noted that it is possible to do all of the verification needed for DO-178C compliance manually, but it would be extremely inefficient. Tools can be developed internally or provided by external suppliers. Using tools can help you automate time-intensive verification activities, but there are factors to consider in deciding whether or not to use a tool rather than a manual process for a specific verification activity. These include the size and complexity of your code base, the complexity of the verification activity, and the timesaving that using a tool may be able to provide throughout the lifetime of your project.
Developing an internal tool for a specific verification activity can be a good idea as you can develop it to best meet your specific use cases, however the cost of developing and maintaining such a tool can be high, and if you need to provide tool qualification evidence for an internal tool you use, you will need to either develop this internally or find another company to do the qualification for you.
If you have any specific needs from a verification tool and these aren’t addressed by any of the tools on the market, it may pay to contact several vendors and discuss whether they are willing to develop features for you. The best option of whether to use a verification tool or not for a specific verification activity depends on the project. For relatively simple verification activities for which little rework is likely to be required, using manual processes may be the better option, while for complex and time-consuming verification activities for which rework is likely, an automated tool may be the better option. You should always consider whether your use of any tool will need to be qualified or not and if qualification kits are available for any tools you evaluate.
Ultimately, the decision of whether to use tools or not should depend on whether this will make your verification more efficient. While tools may make some verification projects more efficient, every project has different needs, and in some cases, for example in a small project, using a tool may not improve your efficiency. It is best to consider the specific needs of your project and compare the efficiency of using manual processes vs. using automation, but usually a combination of both is your best option for a successful avionics software development project.