The sources of software engineering errors can differ between traditional programming and the development of machine learning (ML) algorithms. This article begins with a dive into traditional programming errors and closes with a review of the additional sources of errors introduced by ML.
Starting points for avoiding common software engineering errors in all cases include focusing on thorough planning, following established coding standards, regular testing and debugging the code, utilizing documentation tools, conducting regular code reviews, and ensuring a thorough understanding of requirements.
That last item, “a thorough understanding of requirements,” can be easier said than done. But it’s critical. Requirements changes can be unavoidable and need to be fully documented. Thorough documentation is a common subtext in many aspects of software development to avoid engineering errors.
Conventional types of software errors
There are many sources of errors in traditional software. Figure 1 delineates some of the most common types of software errors.

User interface (UI) errors refer to unintended or undesired outcomes when users interact with an interface. UI errors can be unavoidable and caused by unanticipated user actions. Clear documentation and error messages can help users navigate these situations.
Function errors occur when a specific function does not operate as expected. There are numerous possible causes, including logic errors, data type errors, calculation errors, and so on.
Hardware errors can corrupt signal transmissions or variable values, leading to program execution errors. From the user’s perspective, the results can look like software glitches.
Boundary-related errors appear when a program attempts to process data outside its input values’ expected range or limits. Effective error handling and detailed data/variable specifications can manage or minimize these errors.
Using an incorrect version can occur when newer versions are released during development and multiple versions are incorporated into the software. Detailed documentation of version use can alleviate these errors.
Syntax errors happen when incorrect characters are used, or characters like brackets are missing. Software development environments can catch and correct these errors and help with documentation of the resulting program.
Logic errors can result from poor coding practices. With logic errors, the program will continue to function but will produce unanticipated and erroneous results. Like syntax errors, using a good software development and documentation environment can help mitigate these errors.
Design errors include a multitude of imperfections. While many errors occur during coding, design errors result from mistakes in the original software design and structure. They can result from unclear or incomplete documentation of requirements.
Errors in ML algorithms
The development is not done after an ML algorithm has been correctly written. There are opportunities for errors during training. The potential errors are related to the training data quality, not the coding quality.
Conventional software uses rules to solve problems or produce results in a structured environment. ML uses algorithms and data to learn patterns and make predictions or decisions, even in uncertainty (Figure 2).

Most common ML software engineering errors are data-related. For example, so-called data leakage occurs when information from the test data set inadvertently gets into the training data, producing unrealistically high levels of model performance during testing.
Data and algorithm bias are major sources of error in ML software. Training data may include systematic errors and not be truly representative of the application. Algorithmic bias can result from programmers making unconscious decisions about weighing specific factors used for ML data analysis.
Concept drift is another common source of ML algorithm errors. It occurs if the real-world data distribution changes over time and the model is not properly updated or flexible enough to account for the dynamic nature of the environment.
Summary
ML algorithms are subject to the same software engineering errors as traditional programs. However, relying on ML in training data and data analysis in uncertain environments introduces additional sources of errors like bias and concept drift. For both ML algorithms and traditional programs, a thorough understanding of requirements and detailed documentation can be key to minimizing and overcoming errors.
References
5 most common mistakes to avoid in software development, LinkedIn
8 Common Software Development Mistakes and How to Avoid Them, Codacy
10 Common Mistakes of a Programmer. How to Avoid?, LinkedIn
12 Common Reasons Why Software Bugs Occur, PixelQA
How do machine learning algorithms differ from traditional algorithms?, TechTarget
Machine Learning vs Traditional Programming, Avenga
Root Causes of Software Errors, Virgosol
Shedding light on AI bias with real world examples, IBM
Software Errors: Answer to All your What, Why, and How, Software Testing Stuff
The most common software bugs and ways to reduce instances, Global App Testing
Why software development errors matter, Mattermost
EEWorld Online related content
What are the elements of secure boot processes?
How AI and ML optimize functional verification for EDA
How does MISRA fit into automotive and industrial systems?
Celebrating successful debugging and repair out beyond our solar system
Securing devices for the IoT — managing memory
Leave a Reply
You must be logged in to post a comment.