Michael Jablonski

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

SWEBOK

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

June 8, 2021

Obfuscated C Code

Software Engineering is about the analysis, design, coding, documentation, and testing of software to produce, as the historian Barbara Tuchman said in her classic essay on quality, “… the finest and most admirable result possible.” One important goal of software design is to produce code that other programmers, including your future s...
Read more

June 3, 2021

Space Shuttle Software

In my reading travels I came across this article, dated 12-31-1996, about the space shuttle software. Here is a quote from the article to capture your interest. “As the 120-ton space shuttle sits surrounded by almost 4 million pounds of rocket fuel, exhaling noxious fumes, visibly impatient to defy gravity, its on-board computers take ...
Read more

See more posts »