Article ID Journal Published Year Pages File Type
433305 Science of Computer Programming 2015 7 Pages PDF
Abstract

•We provide a simple model to explain the use of redundancy in software construction.•For reliable programs a redundancy level of appr. 4 to 8 is required.•Testing, verification, model/implementation comparison typically add one redundancy level.•Training of programmers or using higher-level languages hardly reduce the required redundancy level.

Software engineers are humans and so they make lots of mistakes. Typically 1 out of 10 to 100 tasks go wrong. The only way to avoid these mistakes is to introduce redundancy in the software engineering process. This article is a plea to consciously introduce several levels of redundancy for each programming task. Depending on the required level of correctness, expressed in a residual error probability (typically 10−310−3 to 10−1010−10), each programming task must be carried out redundantly 4 to 8 times. This number is hardly influenced by the size of a programming endeavour. Training software engineers do have some effect as non-trained software engineers require a double amount of redundant tasks to deliver software of a desired quality. More compact programming, for instance by using domain specific languages, only reduces the number of redundant tasks by a small constant.

Related Topics
Physical Sciences and Engineering Computer Science Computational Theory and Mathematics
Authors
, ,