| ||||||||||||||||||||||||||||||
ABSTRACTNovices and experts alike, whether in a university or corporation, repeat the same mistakes over and over again when developing real-time software. I have observed this while reviewing and grading code in academic projects, and as a consultant involved in numerous design and code reviews for industry. Most real-time software developers are not even aware that their favorite methods can be problematic. Quite often, experts are self-taught; hence they tend to have the same bad habits as when they first began, usually because they never witnessed better ways of programming their embedded systems. These expertsthen train novices, who subsequently acquire the same bad habits. The purpose of this article is to improve your awareness of common problems, and to provide a start towards eliminating mistakes and thus creating software that is both more reliable and easier to maintain. This list first began as the 10 most common pitfalls, but there were just so many common mistakes and problems that the list grew. It expanded through 15 and 25, to its present number. For each problem, I present the misconception or source of the problem. Then I offer possible solutions or alternatives that can help minimize or eliminate the mistakes. If you're not familiar with the details or terminology of the alternate solutions, then a quick library or Web search should yield additional literature on the topic. While there is usually agreement about most items being mistakes, some of the mistakes listed and the corresponding proposed solutions may be controversial. In such cases, simply highlighting that there is a disagreement as to what is the best way to alleviate these problems encourages designers to compare their methods to other approaches, and to reconsider if their methods are provably better. Correcting just one of these mistakes within a project can lead to weeks or months of savings in manpower (especially during the maintenance phase of a software life cycle) or can result in a significant increase in quality and robustness of the application. If multiple mistakes are common and they are all fixed, potential company savings or additional profits can be in the thousands or millions of dollars. Thus I encourage you to review your current methods and policies, compare them to each of the reported mistakes and the proposed alternatives, and decide for yourself if potential savings exist for your company or project. Even if there are no direct savings, consider the potential for improved quality and robustness at no extra cost by modifying some of your current practices. |
|
|
|
© 1999 University of Maryland, College Park, MD 20742. All Rights Reserved. For more information on the SERTS Laboratory, contact Dr. D. Stewart at dstewart@eng.umd.edu |