
To solve complex technical problems, Exponent often analyzes computer software or stored programmable logic derived from software. Today, embedded software is found in many consumer products, automotive vehicles, entertainment products, cell phones, etc. Exponent's software analysts have a thorough understanding of software engineering principles, programming, and software product qualification tests. Under the software umbrella, one can find many different programming languages, operating systems, and numerous application packages.
Exponent’s consultants have experience in the many aspects of software development, design, testing, and performance analysis, including interpreting the intellectual property of a software product. Whether software is a part of the product or software IS the product, Exponent’s systems and software consultants have the background and experience to assist clients with safety and reliability issues related to software and its interaction with hardware in many different applications.
Much of our work has been focused on computer systems that control hardware, which can be the most critical with regard to safety as well as intellectual property evaluation of software products. Examples include:
- Automotive (engine and transmission control and monitoring, stability control systems, electric power steering, suspension control, cruise control, information and entertainment systems)
- Consumer & home (appliances, audio/visual equipment, PDAs and cell phones, computer peripherals, exercise equipment)
- Building (elevators, security systems, heating and air conditioning)
- Medical equipment (implanted devices, monitoring equipment, information management)
- Transportation (motor controllers, traffic control systems, amusement park rides)
- Military (weapons guidance systems, GPS equipment, communications devices)
- Process control (power generation systems, manufacturing, chemical processing)
- Evaluation of intellectual property in software products
These services fall into the following broad areas of investigation:
Software Engineering
Software engineering starts with a definition of the functions to be performed by the software product. This includes a definition of the environment and the hardware or system in which the software is to operate. The software is typically composed of software modules that will eventually be integrated and tested as a software product. Following the release of a software product, support and maintenance are often needed. Exponent engineers have expertise in all aspects of the software life cycle.
Software Failure Analysis 
Software failure analysis is the investigation of systems and the software controlling them to determine what went wrong. This includes review of the code, simulations, and full-scale testing to understand how the code and systems interact to find the rare “bugs” that cause issues.
Software Reliability and Testing
After the code has been developed, a number of tools can be used to test the software. These include virtual testing of the code itself (essentially exercising it within a computer), testing on target hardware with simulated inputs, and finally, full scale testing on target hardware.
Intellectual Property
Software products are part of a companies’ intellectual property. Exponent has analyzed software and performed infringement assessments (“literal” or “equivalent”), claim interpretations (construction, limitation, physical comparison, etc.), prior art search, engineering testing (comparison of utility, function, design of claimed features), and finally invalidity evaluation (novelty, non-obviousness, utility, enablement, etc.).