VERIFICATION OF CALCULATIONS PRODUCED BY COMPUTER SOFTWARE©

by Benito Flores-Meath, Senior Programmer


As we approach the year 2000, we find that computer technology is required for electrical engineers to maintain their productivity. Computer software is used as an engineering design tool that provides faster and more accurate analysis of power distribution systems. The true innovation has been the move from viewing a computer as magical device entrusted to mainframe gurus to its current acceptance as a "personal" tool for design. This view is not unlike that of the hand calculator revolution of the 70's.

Before this move can be fully implemented, the erroneous view of computer software as a "black box" that is always accurate must be done away with. We cannot afford, as electrical engineers, to blindly trust any computer program, no matter how easy it is to be lulled into complacency. Unless you go to the trouble of verifying the calculated results, doubt will always remain as to the accuracy of the computations. And unfortunately, many engineers have learned the hard way that their trust has been misplaced. An inaccurate hand calculator would never be tolerated; but the engineer will often blindly trust design software with his very reputation - and lose.

Unfortunately, there is frequently no way to verify the accuracy of many software packages on the market today, because most companies do not include the equations that the software is based on. When these equations are not spelled out, the engineer is often forced to base his verification on "rules of thumb". This type of verification involves risk - perhaps he may violate the assumptions or exceed the limitations of the calculations, yielding invalid results. This "rule of thumb" process itself will introduce enough inaccuracies to prevent a decent comparison. The software companies protest that they do not wish to disclose "so called" proprietary information, or that disclosure of calculation techniques is too time-consuming. Yet they maintain that their results are obtained from commonly accepted engineering standards. If a software company claims to use commonly accepted engineering standards, then the methodology should be published with the software, period.

However, if the equations are provided, then the user can proceed to evaluate the accuracy of the program. When verifying the results of a computer program, the first item that should be stated is the method of calculation used by the program. It should include a detailed, annotated listing of all equations used. This listing should be organized to allow the user to manually verify the program, if so desired. Ideally, the program's manual should include a real-world example project, and then, step-by-step, manually verify the output results. All intermediate results should be listed. Anything kept hidden from the engineer should arouse suspicion.

The manual verification process does have its pitfalls. First of all, the verification will tend to be time consuming project. After all, the point of using engineering software is to speed up the process of designing by reducing or removing the tedium of manual labor. Calculations that quickly solve to an exact answer will be much easier to verify than calculation methods that require an iterative process. Luckily, the verification process should only have to be done once to satisfy the engineer.


As an alternative to having each engineer individually verify programs, a set of nationwide industry standards for evaluating engineering software could be created. Software companies could be reviewed and approved by a government agency or independent labs similar to UL or ETL. Unfortunately, there are no such standards, nor is there a commonly used, federal government designed program that could be used for comparison.

Most companies that develop engineering software avoid legal problems by including global disclaimers that protect them from any responsibility, warranty, or liability for damages. This approach may protect the software company, but lack of verifiability of the software now takes on legal implications for the engineer. The disclaimers may also recommend that a certified professional engineer review and approve all program results. In today's litigious environment, to not verify is an unwarranted risk for the professional engineer.

The process of verification should begin before the final purchase is made. The verification could be done by manually calculating using the disclosed equations, or by relying upon nationwide organizations and standards that have done the verification of the software for you. There is no point in investing money into an untested, unverified product. Any design inaccuracies in a project could always be blamed on software errors, but that design has your name on it; the final results are your responsibility. Engineering software companies are in the engineering business. Why not provide what the engineer needs?: verifiability?

ABOUT BENITO FLORES-MEATH

Benito Flores-Meath is Chief Programmer of Elite Software Development, Inc., one of the oldest and largest independent engineering software companies in the U.S. He obtained his B.A.s in Computer Science and Electrical Engineering from Texas A & M University. He has worked exclusively in the engineering software industry industry since 1985 with consulting engineers, architects, and contractors. Elite Software offers over thirty computer programs for all aspects of electrical, mechanical, and plumbing design. You may communicate with him at Elite Software Development, Inc., P.O. Drawer 1194, Bryan, Texas 77806 1-800-648-9523.

Mr. Smith welcomes your email about this article. - email

Copyright © Elite Software Development, Inc., webmaster@elitesoft.com