Luca de Alfaro, an assistant professor of computer engineering at the University of California, Santa Cruz, has received a prestigious award from the National Science Foundation's Faculty Early Career Development (CAREER) Program. De Alfaro will use the grant of $430,000 over five years to develop new methods and tools for designing embedded software.
Embedded software runs the computers hidden inside a vast array of everyday products and appliances. These computers, called embedded systems, are found in dishwashers, microwave ovens, toys, cameras, cell phones, handheld "personal digital assistants" (PDAs), and even desktop computers (in the keyboard and mouse, for example). Cars are full of them, as are airplanes, satellites, and "smart" weapons and other military equipment. Demand is skyrocketing for embedded systems that can add new functions and "smart" features to a wide range of products.
Designing reliable software for increasingly sophisticated and complex embedded systems, however, has become a major challenge. De Alfaro envisions an approach to embedded software design that will enable developers to build complex systems from simpler components with confidence that the components will work together in the final product.
A key feature of embedded software is that it must interact with physical processes in real time. In a car, for example, an embedded system controlling the power train must respond smoothly to many rapidly changing inputs. It must also work together with other embedded systems controlling the brakes, the steering, the suspension, and so forth.
But existing programming languages make it difficult to specify real-time behavior, de Alfaro said. It is particularly difficult to program a system to carry out multiple tasks concurrently.
"We need a better approach to real-time programming that makes it easier to combine software components performing real-time tasks," de Alfaro said.
His first goal is to create a new "type system," the notation used in programming languages to describe how software interacts. This type system, which could be applied in different programming languages, would enable programmers to easily specify the timing of events and the interactions of different software components.
"In embedded systems, the challenge is not the complexity of the data but the need to coordinate the timing of different activities," de Alfaro said. "We want to be able to say, for example, that one piece of software executes an algorithm every 200 milliseconds and broadcasts the new values with a delay of at most 10 milliseconds. And when we put that together with other software components, we want to know whether the design will work."
Programmers currently specify timing by using "alarm clocks" and similar mechanisms. But as embedded systems become more complex, these methods can result in poorly structured code. At an international workshop on embedded software last year (EMSOFT 2001), industry experts reported that the majority of real-time embedded software projects are not completed, and those that are take much longer than expected.
The second part of de Alfaro's project will focus on the problem of analyzing and debugging complex systems built from simpler components. Software bugs stemming from the interactions of multiple components are often among the hardest to prevent and detect, he said.
"We want to be able to analyze the components and know that the system will work when we put it all together," de Alfaro said.
Bugs in embedded software can be very costly. The 1999 crash of NASA's Mars Polar Lander ($165 million) and the 1996 explosion of the European Space Agency's Ariane 5 satellite launcher ($800 million) are spectacular examples. Common consumer products are also vulnerable to problems as they incorporate increasingly complex embedded systems. The power train controller in a car, for example, can have more than 100 embedded software components.
"Obviously, you can make a car without any microprocessors in it. But it is much easier and cheaper to reduce fuel consumption using embedded software than it is to design a mechanical system that achieves the same thing," de Alfaro said. "Many products now have very complex embedded systems, because manufacturers are trying to squeeze the maximum performance out of the cheapest possible physical setup."
The current challenges require a paradigm shift for embedded systems, from a sequential model to a concurrent model for real-time programming. De Alfaro's project aims to provide the concepts and tools needed to achieve this paradigm shift.
The CAREER Program grants are the National Science Foundation's most prestigious awards for new faculty. The CAREER program recognizes and supports the early career development activities of faculty members who are most likely to become the academic leaders of the 21st century.
--------------------------------------------------------------------------------
Editor's note: Reporters may contact de Alfaro at (831) 459-4982 or luca@soe.ucsc.edu.