Reliable Code

A collection of articles from the IEEE Software's 'Reliable Code' column, edited by Gerard J. Holzmann.

This collections includes 30 articles published between 2014 and 2020.

(stats / articles)
(stats / downloads)
(top articles)




2020 (2)

2020
Test Fatigue
IEEE Software 2020 (4); by G. J. Holzmann

As the recent coronavirus outbreak has made painfully clear, the quantity and quality of our test efforts determine what defect rates we measure.

2020
Predicting the Past
IEEE Software 2020 (2); by G. J. Holzmann

Shortly after the end of the Second World War, there was a strong interest in improving the accuracy of weather forecasts.

2019 (4)

2019
Code Overload
IEEE Software 2019 (6); by G. J. Holzmann

I spend much of my time analyzing code. In most cases that code was written by someone else, but it could just as easily have been written by an evil earlier…

2019
Dealing With C's Original Sin
IEEE Software 2019 (5); by C. Hathhorn, G. Rosu

In the very early days of C, the compiler written by Dennis Ritchie and supplied with the UNIX operating system entirely defined the language.

2019
Does Not Compute
IEEE Software 2019 (3); by G. J. Holzmann

Most of us who work with software know all too well how easy it is to make small mistakes that escape detection in tests and come back to haunt us later.

2019
Code Mining
IEEE Software 2019 (2); by G. J. Holzmann

Machine-learning techniques are starting to achieve some impressive feats.

2018 (5)

2018
Software Structures: A Careful Look
IEEE Software 2018 (6); by D. Lorge Parnas

In the half century since Edsger Dijkstra published The Structure of the THE-Multiprogramming System, it has become clear that the ability to design a…

2018
Code Vault
IEEE Software 2018 (5); by G. J. Holzmann

So, what has changed since that first NATO software engineering conference in 1968 Depending on your point of view, nothing much has changed, or everything…

2018
Software Components
IEEE Software 2018 (3); by G. J. Holzmann

Software components have come a long way since Doug McIlroy first called for them in 1968.Topics: Doug McIlroy, Reliable Code, software…

2018
Curve Balls
IEEE Software 2018 (2); by G. J. Holzmann

When can we stop testing software, and when is it okay to skip tests The answers might not be obvious.Topics: Reliable Code, S-curve,…

2018
Ends and Means
IEEE Software 2018 (1); by G. J. Holzmann

Even the smallest coding mistake can cause huge problems when it slips by testing.

2017 (6)

2017
Accessible Software Verification with Dafny
IEEE Software 2017 (6); by K. R. M. Leino

Dafny is a formal-verification system that takes a language-based approach.

2017
Randomly Right
IEEE Software 2017 (5); by G. J. Holzmann

Game strategies used in tools such as Deep Blue and AlphaGo might be the key to improving and automating software verification.Topics:…

2017
Dead Programs
IEEE Software 2017 (4); by G. J. Holzmann

Dead programmes were programs stored in write-only memory.

2017
A Tale of Three Programs
IEEE Software 2017 (3); by G. J. Holzmann

A look at the generation of prime numbers offers a cautionary tale about the perils of premature optimization.Topics: Robert Morris Sr.,…

2017
Code Craft
IEEE Software 2017 (2); by G. J. Holzmann

Errors in safety-critical software can have disastrous consequences.

2017
The Value of Doubt
IEEE Software 2017 (1); by G. J. Holzmann

Doubt is key to becoming a good programmer. If you don't doubt the correctness of your work, you have no incentive to look for the hidden spoilers that are…

2016 (6)

2016
Hi Maintenance
IEEE Software 2016 (6); by G. J. Holzmann

High-maintenance code not only is verbose but also tends to rely on unstated, poorly stated, or incompletely stated assumptions.

2016
Brace Yourself
IEEE Software 2016 (5); by G. J. Holzmann

The author states that to reduce the risk of hard-to-spot coding mistakes, you can do one simple thing: correctly use parentheses.Topics: C…

2016
The Weakest Link
IEEE Software 2016 (4); by G. J. Holzmann

In interactive systems, what's the weakest link: the computer or the human Explores issue involved with decision making via computer systems versus humans.

2016
Frequently Unanswered Questions
IEEE Software 2016 (3); by G. J. Holzmann

We often think of software development as an ideally streamlined process consisting of three phases: design, build, and test.

2016
Code Clarity
IEEE Software 2016 (2); by G. J. Holzmann

Naming conventions affect the readability of your code and the ease with which you can find your way around when you're reviewing that code.

2016
Tiny Tools
IEEE Software 2016 (1); by G. J. Holzmann

Gerard Holzmann offers simple tools for developers who don't use IDEs but prefer to write code using their own screen editor and who do everything else with…

2015 (6)

2015
Out of Bounds
IEEE Software 2015 (6); by G. J. Holzmann

Writing reliable code means understanding bounds. Only a finite amount of memory is available for computation, only a finite amount of time exists to do it,…

2015
Code Evasion
IEEE Software 2015 (5); by G. J. Holzmann

Programs sometimes tend to lose their structure and clarity through the addition of error handling.

2015
Points of Truth
IEEE Software 2015 (4); by G. J. Holzmann

The SPOT Single Point of Truth principle says that developers should specify key pieces of information in one and only one place in their code.

2015
Assertive Testing [Reliable Code]
IEEE Software 2015 (3); by G. J. Holzmann

Standard software testing might not catch important defects, and formal methods can be difficult to use.

2015
Code Inflation
IEEE Software 2015 (2); by G. J. Holzmann

Much of the increase in the size of software applications is unnecessary.

2015
To Code Is Human
IEEE Software 2015 (1); by G. J. Holzmann

Programmers have found creative ways around programming rules.

2014 (1)

2014
Fault Intolerance [Reliable Code]
IEEE Software 2014 (6); by G. J. Holzmann

The author considers what it takes to develop truly reliable software systems, and what the role is of program verification in all this.