Michael Jablonski

July 30, 2021


The Stuxnet worm that infected and damaged centrifuges in Iran is fascinating. It was a program of the highest quality. It was certainly designed and coded by the most skilled team of software engineers and programmers. Stuxnet also raises ethical questions about cyber warfare. Here are two fascinating articles about Stuxnet. The first...
Read more

July 27, 2021


I am pleased to announce that I have been recertified as a Professional Software Engineering Master (PSEM) by the IEEE Computer Society. I was first certified a Computer Software Development Professional (CSDP) by the Computer Society in 2003. Every three years I have recertified. In 2015 the Computer Society replaced the CSDP certific...
Read more

July 23, 2021

Truth Tables

In the past weeks I have done some reading about formal software design methods, which I understand are used in safety-critical systems. The IEEE Computer Society’s guide to the “Software Engineering Body of Knowledge” says, “Formal design analysis uses mathematical models that allow designers to predicate the behavior and validate the...
Read more

July 16, 2021

A Retrospective by C.A.R. Hoare

In my reading travels when I see an article by C.A.R. Hoare I read it carefully. Mr. Hoare invented the Quicksort algorithm, one among many great accomplishments over his career since 1969. Below is a link to an article he wrote in 2009, discussing computer programming 40 years after writing his first academic paper. In this article he...
Read more

July 14, 2021

Formal Software Design Methods

My last two entries were about Agile Software Design. Would Agile Software Design be appropriate for designing safety-critical systems, such as firmware in medical devices, software for automated railroads, or spacecraft navigation? I do not think so. This is where Formal Software Design Methods are used. One expert in Formal Methods s...
Read more

July 8, 2021

Before Agile Software Design

My start as a professional programmer was in the mid-80s when I was hired as a programmer at a small digital design company. I worked there for seven years and learned much about software design and digital systems. My first job assignment was to write a user’s manual for a proposed computer program, part of a complex hardware/software...
Read more

July 6, 2021

Agile Software Design

A friend of mine, an electrical engineer, and I often talk about software design when we go skiing. He is a skeptic about Agile Software Design, calling it “software design by trial and error.” I share his criticism. Yesterday I took a two-hour LinkedIn Learning class on Agile Software Design. It was an introduction only. My first impr...
Read more

June 18, 2021

Cartography and Software Design

In the early days of the American Civil War the confederate general Andrew Jackson summoned Jedediah Hotchkiss, a cartographer, to make a map of the Virginia’s Shenandoah Valley. One requirement was for the map to show “… all points of offense and defense.” Hotchkiss made a detailed map, which Jackson used to confound the Union forces,...
Read more

June 15, 2021


The Institute of Electrical and Electronics Engineers’ (IEEE) Computer Society has produced and maintains a document called “SWEBOK, Guide to the Software Engineering Body of Knowledge.” SWEBOK provides topical access to the published literature on software engineering. It is a resource with immense value. SWEBOK begins with this defin...
Read more

June 10, 2021

Antecedent and Consequent

All computer programmers understand the if (this) then (that) logic. This is essential and universal. I am taking a class in argumentation and reasoning to better apply logic and reason about a local zoning issue to my City Council. In the class I learned two terms: antecedent and consequent. The “this” in if (this) then (that) is call...
Read more

See more posts »