| |
|
|
Logo of DARPA's Program Composition for Embedded Systems (PCES)
research effort. PCES is developing new strategies for programming
embedded systems that reduce technical effort and generate more
robust code. Methods involve designing core software to include
the cross-cutting properties needed by the embedded system as
a whole, such as synchronization of concurrent operations, sensor and actuator
timing const raints, and safe, efficient cache, register, and
memory management. The goal is reusable software suites, with
automated tools for dynamic composition and testing.
|
Representative FY 2003 agency activities
NSF: Empirical software engineering research; continuous
change management of component-based software; profiles and patterns
of software evolution; strategic software design to move from a
risk-driven
to a value-driven development model
DARPA: Model-based integration of embedded software;
software-enabled control; dynamic self-composition and assurance
in highly complex systems that may be composed of sensor nets or
systems of systems
NIH: Software investigations in support of biomedical
computing applications
NSF/NASA: Cooperative program in Highly Dependable
Computing and Communication Systems Research for projects to design,
test, implement, evolve, and certify dependable, cost-effective
software-based systems, using a new NASA testbed facility to evaluate
research findings on real-world hardware
and software artifacts
NASA: Automated software engineering methods, including
technologies and tools for embedded and robotic devices; specification
using Bayesian techniques; experimental evaluation of software
DOE/NNSA: Create common software development/execution
environment for all Advanced Simulation and Computing (ASCI) high-end
platforms that supports end-to-end ASCI application needs for robustness
and scalability as well as I/O, storage, and visualization needs
NIST: Develop a common reporting format for sharing
usability data with consumer organizations; determination of software
quality using automated and knowledge-based methods; with industry
partners, plan shared manufacturing business-to-business interoperability
testbed
NOAA: Develop a component-based modular research
model of the geophysical environment
ODDR&E: University-based research in software
model checking for embedded systems; real-time fault-tolerant network
protocols
|
In 2002 the semiconductor industry will
produce more computer chips than there are people on Earth. Only
about 1 percent of all these chips will go into recognizable computers.
Most will be inserted in other types of equipment - in small devices
such as cell phones, pagers, personal digital assistants (PDAs),
and remote controls, and in large, complex physical systems such
as cars, airplanes, manufacturing machinery, weapons systems, and
emergency warning networks. One of the most promising new directions
for
embedded computing technologies is networked systems of microsensors
that can gather and transmit critical data in near real time. Such
sensor networks are coming into use in a wide range of applications,
including environmental and hazard monitoring, scientific agriculture,
transportation management, and reconnaissance and early-warning
systems for theaters of battle.
The nascent revolution in embedded technologies confronts IT researchers
with unique new challenges, just at the time they are attempting
to address critical technical weaknesses in the existing generation
of software running the Nation's computing and telecommunications
infrastructures. Today's software is not as interoperable, scalable,
or cost-effective as it needs to be, despite the enormous sums spent
on its development and maintenance.
A key to solving the problem lies in converting software design
and development - historically a solitary art practiced by programming
"wizards" - into a formal science and engineering discipline
governed by widely accepted principles, methods, and best practices
for achieving high-quality results. Engineers would not dream of
building a suspension bridge without
a detailed blueprint of the technical requirements, state-of-the-art
disciplinary knowledge of the principles and materials involved,
and cost-effective manufacturing processes to produce lasting structural
elements of certified quality. As a pervasive, critical underpinning
of our national
infrastructure, software must be at least as scientifically engineered.
One NITRD research focus is on creating, testing, and evaluating
models for a new science of software development.The goal is to
move beyond today's idiosyncratic, arcane code to stable, engineered
designs that are rational, modular, verifiable, and reusable. Scientific
principles and methods will enable developers and users to design,
build, test, and stress software products using automated techniques
to see how they perform and to pinpoint, prior to deployment, weaknesses
that now simply cannot be found amid large-scale software's millions
of lines of handcrafted code. Automating aspects of design and implementation
and employing empirical testbeds will curb today's very high development
costs by not only streamlining the programming stage but speeding
and improving the expensive debugging process.
The end result will be a development methodology that dramatically
increases the "productivity" of software by making more
products of higher quality not only possible but substantially cheaper
to generate and easier to maintain.
Scientific foundations for software are vital for embedded systems,
where tiny computing components deep inside large-scale physical
systems must function in real time to support a huge variety of
computing and non-computing tasks. Just as we expect our hearts
and lungs to function without having to be commanded no matter where
we are or what we are doing, embedded processors must be able to
do their jobs automatically and continuously. And just as our lives
are little affected as new cells are created and old ones die, embedded
systems are expected to keep on working even as some of the individual
embedded processors are damaged, destroyed,
added, or upgraded while the system as a whole continues to function
virtually automatically.
For FY 2003, the NITRD agencies will support fundamental research
to improve the quality of software and reduce its cost across the
board, so that this indispensable driver of the advanced technologies
we increasingly depend on provides greater benefit to society in
both large-scale and
micro-applications.
Major Research Challenges
- Software and system science, including languages and compilers; composition methods; and design foundations for systems and networks that are distributed and scalable
- Automated engineering, including efficient, reliable software components and integration processes; methods (such as specification, analysis, and verification) for integrated software and systems development; interoperability of concurrently running networked applications; and configurable tool environments for rapid composition and customization of domain-specific development environments
- Pilot applications and empirical studies of technologies for embedded applications and systems development projects
|