The Ada Resource Association
Boeing 777 Flies on 99.9% Ada
"Working Together" is the project name Boeing chose when it first entertained the idea of producing its 777 jet plane. The then-Seattle-based avionics company intended for the 10,000 people involved in the jetliner project to accept the company's policy of openness and non-competitiveness among both internal divisions and external suppliers. Management asserted that "working together" was the way to achieve the highest possible quality in every part of the system, from the secondary hydraulic brake to the auto-pilot system.
One challenge to the "Working Together" model was Boeing's insistence that the software be written in the Ada programming language. According to Brian Pflug, engineering avionics software manager at Boeing's Commercial Airplane Group, most companies disliked the idea of a standard language at all, and then seriously objected to Ada as too immature. In addition, one supplier was already six months into the development of their part of the project and had used another language.
Honeywell approached the request by conducting an extensive study into the benefits of Ada versus the C programming language. When the results were in, Honeywell agreed with the decision to use Ada: the study concluded that Ada's built-in safety features would translate into less time, expense, and concern devoted to debugging the software.
Sundstrand, the supplier already in development, agreed to the switch and reported that, after beginning again, the development effort continued without a hitch. "We had to start all over again," Dwayne Teske, Program Manager for the 777's main electrical-generating system, said in a telephone interview. "But the project went really smoothly after that, so Ada had a lot of positives."
Because of their involvement with Ada in the 777, these and other suppliers (including Hydro-Aire, the brake control system supplier) have continued to use the language in other system development projects. In carrying their experience to new systems, the companies have further enjoyed the benefits of Ada's portability and code reuse

Finding the Tools

Once committed to Ada, each company's first task was to find a compiler of good quality for the specific job at hand.
Honeywell was to develop the cockpit's primary flight controls in two projects, the Boeing 777's Airplane Information Management System and its Air Data/Inertial Reference System. For these projects, Honeywell purchased DDC-I, Inc.'s Ada Compiler System, using it as the front-end source for Honeywell's symbolic debugger. The two companies worked together for a year and a half to build the compiler's final debugger and the entire back-end, targeted to an Advanced Micro Devices (AMD) 29050 microprocessor. According to a recent telephone interview with Jeff Greeson, Honeywell's project leader for the 777 project's engineering, the companies "were able to build into the compiler a lot of optimization features specific to our hardware."
Hydro-Aire selected Alsys' Ada software development tools for the brake control system project. The supplier used AdaWorld cross compilers with the Smart Executive and Certification package to ensure meeting real-time and FAA requirements. The compilers are hosted on Hewlett-Packard HP 9000/300 platforms; they targeted the Motorola 58333 microcontroller, making Hydro-Aire one of the first companies to use the new chip.
Each 777's brake control system includes two Motorola microcontrollers programmed entirely in Ada. Harry Hansen, Hydro-Aire's Manager of Software Engineering reported that "We find Ada an excellent language for the development of real-time applications." The processors control the built-in test (BIT) and auto-brake functions. The BIT includes both an on-line interface to the central maintenance computer and off-line maintenance capability. The auto-brake applies the correct amount of brake pressure during landings and applies the maximum amount of pressure -- without causing a tire blow-out -- during aborted take-offs. Additionally, the system includes hardware and software to prevent skids, sensors and transducers to external systems, and hydraulic valves.
Sundstrand, too, chose a compiler from Alsys, Inc. (now Thomson Software Products, Inc.). Running on a PC host, it generated code targeted to an Intel 80186 microprocessor. The Certifiable Small Ada Run Time (CSMART) executive code that interfaces with the language resides inside the run-time controller and, therefore, had to be tested and verified. It was a major undertaking, but not a long-term inconvenience. "Ada continues to be our baseline language for future electrical systems," Teske said, "for reasons of cost and efficiency. We are now able to reuse code. We pull out certain chunks of airplane software and put them into new projects."
In a recent telephone interview, senior software engineer Malkit Rai, who led the effort on the Sundstrand 777 electrical power project, agreed on the importance of Ada's support for reuse. Ada has permanently replaced the shop's previous high-level language, PLM, which was developed by Intel and is based on PL/I. "Ten to 15 percent of the 777 Main Channel Electrical Power Generating System is already in reuse," he said. Two new projects, for the Gulfstream V business jet and the Comanche helicopter, were able to integrate Sundstrand's library of common generic packages written in Ada for the 777.
In fact, the Sundstrand power systems' 80,000 lines of code were in themselves reused by 10 to 15 percent. The embedded software's small size proves that Ada is well-suited for projects under 100,000 lines of code, as well as for large efforts. The 777's Cabin Management System, for example, is a communications module mounted on the 777's back seats and offers passengers a variety of services and is only 70,000 lines.

Putting Together a New Architecture

In comparison, Honeywell's Airplane Information Management System (AIMS) project consists of the largest central computer on the jetliner; it runs 613,000 new lines of code (defined as body semicolons), taking up 15,656 kilobytes (KB) of disk space and 4,854 KB of random-access memory (RAM). With redundancy, the software runs to 46,191 KB and 10,732 KB of RAM. A multiprocessor, rack-mounted system, the AIMS replaced many of the line-replaceable units and reduced hardware and software redundancy.
Two AIMS boxes handle the six primary flight and navigation displays: two sets are located in front of both the captain and copilot so that they can move from one seat to the other, and two central sets of engine parameters are shared by the pilots. The primary flight instruments indicate pitch and roll attitude, direction, air speed, rate of climb, altitude, etc. The AIMS also includes the central maintenance function, which receives reports from the 777's other computers and then gathers the data into a central maintenance report for the mechanic. Its monitoring system gathers data on how other functions are doing, and can determine, for example, that an engine is degrading, before it actually fails. Other AIMS functions include a data-conversion gateway, flight data acquisition, data loading, an Ada conversion gateway, and thrust management.
Honeywell's massive effort on the 777 involved over 550 software developers. The company built the AIMS computer as a custom platform based on the AMD 29050 processor. It was unique among aviation systems for integrating the other computers' functions; in other systems, each function resides in a different box [the central maintenance had its own box with its own input/output (I/O), its own central processing unit (CPU), etc.]. AIMS combines all these functions and shares the CPU and I/O among them: it uses the same signals for flight management and for displays, so that the data comes in only once instead of twice; one input circuit provides data to all of the functions; each of the functions gets a piece of the CPU, as in a mainframe computer, where systems use part of the CPU but not all of it; and every function is guaranteed its time slot. Engineer Jeff Greeson said that "The federated system is obsolete. Putting all the functions in one box is a jump ahead in technology that we've brought to the industry."
Another innovation is that the disk drive can read files formatted for the Microsoft Disk Operating System, which provides maintenance with access to the terminal communications. The mechanics can transfer files for data loading over the airplane bus, because Honeywell built the program to accept new data and to change the software. In fact, most of the equipment on the airplane has that ability, only a few classic systems do not (such as the ground-proximity warning system, which has proven sufficiently trustworthy and not in need of change).
Designing a new architecture simultaneously with a new language was "quite exciting," Greeson said. "The organizational details were difficult to put together." With Ada, managers were able to delegate the seven main functions to groups of 60-100 software engineers. The separate software entities have minimal interface with other parts of the software, and not all of the software is integrated. By working with loosely coupled pieces, the project leaders were able to farm out the functions to other groups. The loose integration, however, does not tie the software to the 777 platform, and will assist in Honeywell's using the code for other targets. "We needed the maximum ability to port it to other places," Greeson said.
The data interfaces that do exist between the software units are fairly uniform, Greeson said, because Ada helped the software engineers to implement certain rules at compilation time. "Ada forces you keep it straight there rather than at the lab," he said, "where it helped minimize our difficulties in getting it integrated and running." Because of the high level of accuracy during the compilation, less time was spent on debugging the code. Thus, Honeywell's initial study proved correct. "I'm convinced that, because of Ada, we had a minimal amount of interface problems, with which we would have killed ourselves if we had had C or Pascal," Greeson concluded. "It went much smoother than past programs."

Meeting Deadline

Using common logic to predict the project's success, skeptics might have predicted higher costs and schedule overruns, based on the suppliers' inexperience with Ada and the introduction of a new target. Instead, four and a half years after laying out the program, the 777's electrical power systems were delivered on schedule. Boeing was able to turn on the power a full six months before the maiden flight. Sundstrand's Malkit Rai agreed that the conversion from PLM to Ada did not retard production and the company made a swift transition. "We conducted a pilot program to evaluate the use of Ada in Sundstrand products," he said, "and realized that on-the-job training would be sufficient with our programmers. Within two weeks we were up to speed on Ada."

Passing Tests

The initial flight of the 777 was three hours and 48 minutes, taking Chief Pilot John Cashman from Paine Field in Everett, Washington, to Puget Sound, over the San Juan Islands, then east, crossing the Cascade mountain range, before turning back home. The jetliner was then tested for extremes of temperature, wind conditions, and potential failures.
Ronald Ostrowski, director of Engineering, claims that the Boeing twinjet is already the most tested airplane in history. For more than a year before the flight, Boeing tested the reliability of the 777's avionics and flight-control systems around the clock, in laboratories simulating flight. Design changes were made only after six months of testing the endurance of three engine types (Pratt & Whitney, Rolls Royce, and General Electric).
One compelling reason behind the extensive pre-testing was Boeing's desire to meet the Federal Aviation Agency's (FAA's) Extended Twin Operations (ETOPS) standards ahead of schedule. The original ETOPS rule was drafted in 1953 to protect against the chance of dual, unrelated engine failures. Unless a newly designed and produced aircraft has at least three engines, it usually had to wait, sometimes as long as four years, before the FAA and the Joint Airworthiness Authorities (JAA) will allow it to fly more than one hour from an airport; after a time, the new aircraft is deemed a "veteran" and is allowed to fly three hours away. A shortened trial period would drastically increase Boeing's sales.

Increasing Reliability

Granville Fraser, a propulsion engineer at Boeing, said that a company protects itself better from engine failure by preventing in-flight problems {outside} the engine, such as faulty warning lights, than by concentrating solely on the engine's mechanics. "Over 50 percent of engine shutdown is irrelevant to the core engine," he said. "It has to do with electrical, fire systems, etc." On the 777, those outside systems are programmed in Ada.
Pratt & Whitney laboratories can, therefore, test the engines, but the quality of the software will have an equal role in determining the reliability of the 777's engines and its conformation to the ETOPS standards.
On the maiden flight, with the Boeing Telemetry room in constant contact with the plane, the engines performed better than expected. The 777 proved itself an ETOPS "veteran" on its first flight out, becoming the first twin-engine plane to win FAA approval for "ETOPS out of the box." The trend towards more reliable hardware and software are revolutionizing aviation and can be found in aircrafts other than the 777. The systems in the cockpit talk to the other systems through the programming language, and in new airplanes, such as the Beechcraft 400A, the Learjet series, and some English jets, the language of choice is Ada.

Moving Ahead

Sales for the Boeing 777 both nationally and internationally have been excellent In addition to high sales in the present, Boeing's financial future is also healthy, in part, because of reusable code. As Brian Pflug has said, the ultimate value of Ada is in rapidly transferring the 777's code into the aircraft and architectures of the next millennium.

For More Information

For those who would like to obtain a copy of the PBS documentary on the 777's first flight, the video is available from PBS, 800/828-4PBS.