Engineering design involves the satisfaction of customer needs. These needs, whether explicity stated or only implicity defined, must be translated into a set of specifications for a product. The subsequent stages of design, fabrication, and maintenance are dedicated to the fulfillment of these specifications. The task of concurrent design is to ensure that the product performs as specified, with fidelity and consistency. Ensuring product performance is the objective of quality assurance. Software packages can be developed to assist in this effort, ranging from the initial phase of requirements definition to production control and maintenance.