How Do I Determine FEA Software Quality?

What Managers Need to Know About Finite Element Analysis

What questions should I ask?
Better, stronger, lighter, safer, less costly--in less time. But how do you get there from here? Computer simulation tools have been automated to a level that produces significant competitive advantage for companies designing mechanical products--and a significant competitive disadvantage for those without them. Finite element analysis (FEA), based on solid geometric modeling, provides the foundation for predicting product performance throughout the entire design and manufacturing process and into the hands of customers. Better, stronger, lighter, safer, less costly, in less time--through Predictive Engineering.

Stronger, lighter, safer, better--these are attributes of product quality. Giving your products these characteristics provides you competitive advantage and makes your products more desirable. You use FEA to help ensure that these and other quality characteristics are designed and built into your products. How do you ensure that your FEA program has the same high quality as your products?

What is quality? Quality is meeting the customer's needs
There are several definitions of quality. One definition is "free from error." But, that definition is very narrow. Another definition (Webster's New World Dictionary, Simon & Schuster, New York, 1982) is "the degree of excellence which a thing possesses." But what degree? And what is excellence?

We offer another definition that we will use throughout this paper:

Quality is meeting the needs and expectations of the customer.

In other words, quality is in the mind of the beholder--the customer. You might believe that your product is good, but if it does not meet the needs and expectations of your customers, then it does not represent quality for them. The same holds true for FEA software--it must meet your needs and expectations.

OK, what are my needs and expectations of FEA software? You depend on the software and rely on its quality
Your needs and expectations of FEA software are basically the same as for any other product: You want a reliable, easy-to-use product that is also a good value. In addition, the software must contain the necessary functionality to enable you to accurately analyze and optimize your structure, thereby decreasing time and effort in the design cycle. The FEA software must also interface to design, modeling, and other analysis software that you use. These attributes can be further defined according to software quality factors.

What are software quality factors?
Software quality factors (G. Gordon Schulmeyer and James I. McManus, Handbook of Software Quality Assurance, Van Nostrand Reinhold Company, New York, 1987) define attributes that any software--including FEA programs--should have. These quality factors represent many of your needs and expectations, including:

  • Correctness
  • Reliability
  • Testability
  • Usability
  • Efficiency
  • Interoperability
  • Portability
  • Flexibility
  • Maintainability
  • Reusability
  • Integrity

Other quality factors are also important , as we'll see later.

Correctness--isn't that the most important quality factor? Only you can determine whether a tool fits your job
In many ways it is. Correctness means that the program satisfies your specifications and meets your expectations--in other words, that it is the right tool for your job. If you need to predict your product's performance under a dynamic (time varying) environment and your FEA program contains only static analysis (time invariant), then you do not have the right tool for the job. Correctness, then, is a quality factor that only you can determine.

How do I determine reliability?
Reliability is a measure of the FEA program's precision...the ability to get the correct answer when given the correct input. Measuring reliability is the responsibility of both the FEA vendor and the user.

The FEA vendor should run numerous tests in order to ensure reliability. These tests should include textbook problems for which there are known solutions. However, the tests must also include complex, real world problems because those are the kinds of models you create. The vendor should provide, upon request, results of these tests as well as the test input files. These tests should not be run only once; they should be run each time a new version is released, and on each type of computer platform.

You should measure FEA sofware reliablity using your own modelsYou could also measure reliability using the kinds of models typical to your designs. This kind of testing is often called acceptance testing; you will not accept the software into production use until it has passed your tests. Depending on the depth of your FEA vendor's test and quality assurance procedures, you may choose to bypass your acceptance testing and put the software into production use immediately.

This means that the software must be easily testable.
If the software cannot be easily tested then it is difficult to assess its reliability. The effort required to test the software is called testability . The number and types of test problems run indicate the vendor's diligence and the software's testability.

But the software must not only be right...it must be easy to use. Only you can determine usability
Absolutely--it must be easy to use. The degree to which it can be easily used is called usability. This is a quality factor that is rather subjective and one that you have to establish for yourself...you cannot take the vendor's word for it. Besides, all vendors say their software is easy to use! What may be easy for one person may be difficult for another, which is why you have to decide for yourself.

Is the speed of solution important?
Not only must right answers be computed in an easy-to-use manner...they must be computed quickly and with a minimum of computer resources (memory and disk space). The measurement of speed and required resources is called efficiency . You want the software to get the answer quickly--after all, the purpose of computers is to reduce analysis time. Ideally, your FEA software is designed to take advantage of your advanced computer. Similarly, the software provides the solution with a minimum amount of memory and disk space. Solution efficiency is a function of how well the software has been designed.

I use other software in addition to FEA. How is that accounted for in the quality factors?
FEA is not isolated-it is part of your overall design processInteroperability is the ability to interface, couple, and integrate with other software. Common programs that work with FEA software include solid modeling, CAD, kinematics, plotting, and testing programs. Your FEA program must be able to "talk to" these programs.

What about the other quality factors?
They are also important. Portability means being able to use the software on multiple operating systems or hardware platforms. Flexibility is a measure of how easy it is to add new functionality. Maintainability is a similar measure for fixing errors. Reusability concerns software use in multiple applications--for example, it can be thought of as a measure of how much the program is general purpose versus special purpose. And integrity is a measure of your confidence that no one has inadvertently or purposely modified or changed the program or the data such that the analysis is adversely affected.

What other factors are important? Training and documentation are also important
Learnability is a measure of how easy the program is to learn. This is somewhat distinct from usability in that usability is about application of the mechanics (i.e., the ease of operation) whereas learnability is about the underlying concepts and theories. Learnability involves training and documentation. Training should be not only for the mechanics but also for the underlying principles, with an emphasis on applications. Training is best done using workshop examples, because engineers learn with their hands and fingers and not only with their eyes and ears.

User documentation must be complete, well written, and organized in a manner that makes it easy to find information. There are two broad classes of documentation: tutorial and reference. Tutorial documentation is for a first time or occasional user of either the software or a particular analytical capability, and is meant to be read from front to back. It should include numerous examples. Reference documentation, on the other hand, is used to learn about a specific feature or detail.

Availability is another important factor--the program must be available on your specific computer type. Likewise, updated versions, including enhancements and error fixes, must also be available on a timely basis on your computer. You need the FEA vendor's commitment of continued support for your computer type.

Nobody's perfect-not even FEA vendors! Accountability means owning up to the fact that the software is not perfect...and telling you about it. FEA vendors should publish error reports that describe the error and show ways to work around them. Nobody is perfect, and that goes for FEA vendors. Reputable vendors acknowledge that fact, document the errors, and help you avoid them...and in the meantime work to correct the errors.

Compatibility measures the degree to which different versions of the software work together. For example, if a program is upward compatible , later versions will support the current version. Conversely, downward compatible means that the current version supports previous versions. Upward and downward compatibility is important because as new versions of the software are available you do not want to recreate and reanalyze your designs from scratch. The FEA software should have a proven track record of compatibility.

What vendor attributes are important from a quality standpoint? Assess the vendor as well as the software.
Your FEA vendor must provide software that meets your needs, including the quality factors described in this paper. In addition, your vendor must be a stable company--the vendor's going out of business does you no good. Your vendor must be knowledgeable and must provide good technical support. You are probably best off with a vendor who has a large and satisfied installed base and proven track record, because they are proof and assurance of good software quality. In short, quality software comes from a quality vendor.

How can I assess a vendor's commitment to quality? Quality represents a committment, not simply an involvement
All vendors say they are committed to quality. To judge for yourself, look at the size of the installed base (especially of users in your industry), clarity and depth of the user documentation, number of the development and support personnel and their knowledge and experience, and overall company track record. And look for a formal quality assurance (QA) program.

What is a formal software QA program?
A formal software QA program defines in writing the process for ensuring software quality.

Software QA involves several functions, including:

Software management
Configuration management, change control, project management, and project documentation.
Software engineering
Software design methodologies, CASE (Computer Aided Software Engineering) tools, and independent verification and validation.
Quality Control
Quality programs and procedures, quality metrics, standards and methods, design reviews, and code walk-throughs.

The function of management is to apply the people and tools to the quality process. The organized approach that software QA gives to the development process produces software of consistent quality at lowest cost.

Several organizations specify software QA procedures, standards, and regulations. Some of these organizations are:

  • Nuclear Regulatory Commission (NRC)
  • American National Standards Institute (ANSI)
  • Institute of Electrical and Electronic Engineers (IEEE)
  • International Standards Organization (ISO)
  • Federal Aviation Administration (FAA)

Many of the procedures, standards, and regulations defined by these organizations are similar. For example, NRC 10 CFR 50 regulations contain many of the same specifications found in ISO 9000. Each define standards for software design, internal documentation, testing, and corrective action. Software vendors that comply with these regulations submit themselves to audits--internal and external--to assure compliance. These regulations cover the entire software life cycle.

What is the software life cycle?
The software life cycle covers the life of the program, including requirements, design, implementation, porting, testing, release and distribution, and maintenance.

Quality is built into the software from the beginning-it cannot simply be inspected into the software during testingThe requirements phase defines the functionality, performance, and user interface. The design phase describes the software architecture, components, and data flow. Coding and the writing of user documentation take place in the implementation phase. Software is converted to run on multiple computer platforms in the porting phase. Software accuracy and performance is evaluated in the testing phase. Software and user documentation are packaged and shipped in the release and distribution phase. The maintenance phase covers training, support, and error corrections.

Where do the requirements come from? Quality is by design, not chance
Because the software life cycle begins with defining the requirements, it is essential that the requirements be properly addressed. FEA vendors use current customers, prospects, competitive analysis, and market research as sources of these needs and expectations. All of the vendor's organizations--marketing, sales, development, support, and shipping--contribute to obtaining and addressing the requirements.

So quality really begins with me?
That's right--your needs define the overall requirements. Quality FEA software meets these needs.

When adopting FEA as an integral component of your design philosophy, you must not only consider your immediate needs, you must also anticipate your future requirements. While today's needs may involve only the static analysis of simple parts, success in this area will generate requirements for assembly modeling and more advanced analysis. Your FEA software must be able to accommodate and facilitate your analysis expansion.

As the benefits of increased automation grow, thus do the demands for functionality, performance, reliability, and usability...in other words, the demand for quality!

Glossary of Software Quality Terms
Acceptance testing
Customer testing prior to putting the FEA software into production use.

Accountability
Assuming responsibility for documenting and correcting errors.

Availability
Being able to get the FEA software on your platform.

Compatibility
Current, past, and previous versions of the software support each other.

Correctness
The software does what you need it to do--the right tool for the job.

Efficiency
Fast running software that uses little memory and disk space.

Flexibility
Easy to add new functionality.

Integrity
Controlling access to software and data by authorized people.

Interoperability
Interfacing and integrating FEA software with solids modeling, CAD, and other software.

Learnability
Grasping the underlying concepts and theories and applying them wisely.

Maintainability
Being able to correct and enhance the software, easily and efficiently.

Portability
Having the software run on multiple computer types and operating systems.

Quality
Meeting the needs and expectations of the customer.

Reliability
Getting an accurate answer.

Reusability
General purpose software for multiple analysis applications.

Software development cycle
All activities related to the FEA software, from design to release to maintenance.

Testability
The software can be easily tested and verified.

Usability
Ease of operation.