Skip to content

Archive

Tag: software-development

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

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

An article was brought to my attention recently. It contains an interview with Bjarne Stroustrop, of C++ fame, discussing the language to which he gave life. Aside from a few technical non sequiturs, such as referring to C++ as “the archetypal ‘high level’ computer language (that is, one that preserves the features of natural, human language)”, I found the article rather entertaining.

Continue reading “Languages for High-Integrity Software” »

In 1968, Edsger Dijkstra published the paper that put him on the map permanently in the minds of most of the software development community.  While he made a number of very important contributions to computer science during his lifetime; I believe that “Go To Statement Considered Harmful” has spawned what has become perhaps the most enduring and pervasive religion in the annals of computing history.  In my two-plus decades in the industry, I’ve seen only one coding standard which did not entirely prohibit the presence of the goto statement; and even that one that allowed it in one limited circumstance.

Continue reading “The Religion of goto-less Programming” »

What is it about creating firmware that can make a seasoned journeyman software developer forget everything he or she ever learned about software design?

Continue reading “Amateur Hour” »

Some software architects tend to think a lot about our place in the software world. In a recent conversation with a colleague, I found myself in agreement with his description of the clear separation between software engineer and software architect. His argument wasn’t that the two roles couldn’t be fulfilled by the same person, simply that they are separate disciplines. I fully agreed, yet as I thought about it, I grew somewhat uncomfortable with my own conviction about the extent of this separation. I felt a need to try to establish what the relationship is, and perhaps what it should be.

Continue reading “Software Architecting .vs. Software Everything-else” »

I don’t know who originated this trick.  I first read about in in P.J. Plauger’s “Programming on Purpose”.  It was probably first used by assembly language programmer’s when 4-bit systems were common and memory was paltry.  Still, it can be handy in a tight loop even on a relative fast processor.

Continue reading “Fast Exchange” »

Google Analytics Alternative