Skip to content

Archive

Tag: High-Integrity Software

I’ve been writing software in C since 1991. While that was shortly after the ratification of the C89/90 standard, it took at least a few years for most compilers to catch up. So my formative years in C were spent developing code for compilers that weren’t yet standards conformant. Certain features were hit and miss. Since much of my development work involves C, I try to keep up with new developments. I freely admit that I don’t know it all; and every few years someone teaches me a new trick or hack that makes life just a little bit easier. Recently, I found a major gap in my understanding of one important aspect of the language.

Continue reading “Structs in Wonderland” »

Not so very long ago, I was given an assignment to perform a forensic analysis on a piece of firmware. It seems that my client’s device had a rather spectacular failure which endangered many lives. The job was critical, but this was new territory for me.

Continue reading “Slicing with Dijkstra” »

There are many books you can get if you want to learn to program in C++ and Java. There are books about how to perform software design for business, how to develop embedded systems, and how to develop complex algorithms; but what if you want to write high-assurance software using object-oriented techniques? We’ve got a resource for you.

Until Agile, software processes in general focused on larger projects. When applied to smaller projects they can become cumbersome and inefficient. Agile has demonstrated its value on relatively small projects, but it does not scale up well, and in my opinion some of its core tenets are incompatible with safety-critical development.

Continue reading “Process for Smaller Projects” »

I just finished reading Steve McConnell’s Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers. This is not a book about languages, software design, or coding techniques. It is a book about being a software professional, and about managing and leading software professionals. It is a book about the state of software development as a profession, and about what we should aspire for it to become. All that, and it is an interesting read.

Continue reading “Professional Software Development – A Book Review” »

As I’ve said before, MC/DC analysis is the bane of Level-A development under DO-178B. It is not well understood, either by developers or by verification engineers. Automated analysis tools will perform the analysis, but that may not occur until verification has begun. Fixes at this stage are far less desirable than avoiding issues in the first place. So how do we ensure that MC/DC issues do not occur in the first place?

Continue reading “Coping with MC/DC” »

Like many veteran software developers, I am sold on the value of defensive programming. It seems that no matter how thorough the requirements, nor how good the design, things can go wrong; and I’d like my code to be able to handle it. So imagine my surprise when no less than a DER provided me with a perfectly valid and well-reasoned argument to discard defensive programming techniques altogether.

Continue reading “My, You’re defensive” »

Google Analytics Alternative