Skip to content

Archive

Category: 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.

The so-called experts will tell you it can’t be done; it is not possible to create bug-free software, at least at low-cost for a non-trivial application. Now it seems, we have our first documented case of ostensibly zero-defect software.

Continue reading “Correctness by Construction: Praxis Scores!” »

Once again, a long period has passed since my last post.  I have been very busy on several fronts.  From trying to launch a new business; to finding other ways to support the development of safety-critical development.  Read on to see what I’ve come up with…

Continue reading “News of the Realm” »

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” »

Google Analytics Alternative