Blog

How do I demonstrate the safe use of instrumented source code analysis?

In the second of two related blog posts, I describe one method to present a certification argument for the use of instrumentation in source code coverage analysis.
Read More

Presenting a safety case

Our blogs typically concentrate on technical details which will help with the detailed verification of your software. This blog sets the scene to future blogs describing some of the ways in which our verification tools can be used to help meet safety certification requirements. Verification data provides evidence about the performance and functionality of your code, however, you'll also need to justify why that verification data is relevant, how it fulfills certification requirements, whether it is sufficiently complete, consistent, correct etc..
Read More

Summer fun: computer games for programmers

As it's the time of summer vacations, I thought it would be interesting to look at something a little more light-hearted than usual – a computer game designed to replicate the experience of low-level, bare metal programming on a hypothetical multicore system. TIS-100 (www.zachtronics.com/tis-100) is a game that features a simulator of an imaginary, loosely-coupled, multicore system, together with a range of interesting programming problems.
Read More

Breaking the switch statement

While refreshing our RapiCover qualification kit, we looked harder for corner-cases and undefined behaviours. One of the more bizarre things we came across is the issue of code before the first case label of a switch statement. Such a simple concept turns out to have some rather unique challenges. Here's a fairly standard-looking C switch statement with five branches (five code sequences to choose among):
Read More

Software randomization of execution times for avionic systems

Among the wide range of research work we've done during the past, one of the "most blue sky" areas has been in the area of probabilistic timing analysis (PTA), where specific hardware support randomizes sources of execution time variability, making it possible to produce accurate statistical predictions of worst-case execution probabilities, see our PROXIMA research project and
Read More

Pages