Biologically Inspired Robust Software

Software continues to pervade every aspect of aerospace missions. Concern over its quality, cost, and reliability continues to grow. Software reliability is "the probability that a given program will perform its intended functions correctly in a specified environment for a specified duration."

As the number of lines of code increases, software verification and validation become more difficult to perform, and its high reliability becomes more difficult to maintain. An increase in the number of lines of code has been the trend in spacecraft missions so far. For example, the number of lines of code for Voyager software was 3,000. They increased to 8,000 for Galileo, 32,000 for Cassini, and 160,000 for the Mars Pathfinder. Space systems currently under consideration are expected to have millions of lines of code.

The fact that conventional methods for software testing and validation are not adequate is demonstrated by the error in the software that resulted in the failure of the Mars Climate Orbiter and the Ariane 5. The Mars orbiter failed to reset a sensor in the landerÕs legs when the legs deployed well above the surface. The engine shut off and the spacecraft crashed. Ariane 5 used Ariane 4 guidance software, but achieved a higher velocity than that of Ariane 4, which caused a register to overflow, and the primary and secondary reference units to shut down, driving the vehicle into a destructive angle of attack.

Because of the complexity of future aerospace missions, both the hardware and software must not only be reliable, but also robust, in the sense of having a high degree of fault toleranceÐthe ability to detect and recover from a fault. The software should reconfigure itself to enhance capabilities, recover from anomalies, or avoid crashing. It also should allow the devices it is controlling to continuously test themselves and to have a graceful degradation in abnormal situations outside their design envelope. These characteristics are the aims of automated reasoning, adaptation, learning, and techniques based on biological metaphors.

Advanced programming languages like Java, and the meta-language, object-oriented, and component-based paradigms, and automated verification techniques, have helped reduce the number of lines of code and have enhanced their reliability. However, these facilities cannot by themselves meet the future needs of robust software.

NASA is working on a new generation of biologically inspired, robust, ultra-fault-tolerant software for future aerospace missions. It uses, among other elements, adaptive multiagent systems and the amorphous computing paradigm. Each agent in the multiagent system can evolve through a combination of genetic algorithms and genetic programming. One of the layers of the system can perform preprogrammed self-healing actions. An amorphous computing paradigm aims at obtaining coherent behavior from the cooperation of a myriad of unreliable information processing units (sensors, actuators, and communication devices) interconnected in unknown, irregular, and time-varying ways.


home | features | news update | marketplace | departments | about ME | back issues | ASME | site search

© 2000 by The American Society of Mechanical Engineers