|


|
January 21, 2002
Computer engineer Luca de Alfaro receives National Science Foundation grant
for research on embedded software design
By Tim Stephens
Luca de Alfaro, an assistant professor of computer engineering, 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.
 |
| The Mars Polar Lander, shown here during prelaunch testing, was lost due
to an embedded software error as it attempted to land on the surface of Mars.
Photo: NASA/Jet Propulsion Laboratory |
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.
Return to Front Page
|
 |