| |
|
Information Technology:
The 21st Century Revolution
Software
Design and Productivity |

|
|
 |
 |
|
|
|
Overview
|
In its eye-opening 1999 report to the President, the PITAC concluded that
not only is the demand for software exceeding our ability to develop it,
but the software produced today is difficult to design, test, maintain,
and upgrade. Indeed, software complaints frequently make headlines in
the daily news. The seemingly insignificant software failures that periodically
shut down large parts of the Nation's telecommunications systems and the
"Year 2000" (Y2K) problem that captured national attention as 1999 drew
to a close are only two illustrations of what can go wrong with software
design-and the immediate impact that such failures can have on a wide
segment of the populace. Software today-unlike airplanes, office towers,
or nuclear power plants-is constructed without the benefit of established
standards by technologists and computer programmers who frequently lack
thorough training in the engineering sciences of reliability, maintainability,
and cost-effectiveness. Recognizing that software is a key component of
IT research, many Government agencies have worked on software design and
productivity issues. But the sense of urgency underlined by the PITAC
report has led to the creation of the new Software Design and Productivity
(SDP) PCA for FY 2001, and the SDP Coordinating Group (SDPCG) is developing
its R&D agenda. It is anticipated that IT R&D proposed in SDP will focus
on significantly improving the concepts, techniques, and tools that underpin
our software infrastructure. SDP activities will help educate Government,
academic, and industrial software developers in well-founded and more
cost-effective engineering to create efficient, reliable, and useful software.
Participating SDP agencies include DARPA, NSF, NASA, NIST, NOAA, OSD/URI,
NIH, and EPA. The SDPCG will encourage and facilitate interagency collaborations
for Federal software design and productivity R&D. Some of DARPA's, NSF's,
and NOAA's current or planned SDP R&D activities are highlighted in this
section. Other agency activities will be highlighted in future reports.
SEW R&D activities encompass development
and evaluation of advanced technologies for high-quality software learning
tools; information-based models of educational systems and learning productivity;
research on IT applications in cognitive processes; and demonstrations
of innovative networking technologies. In addition, SEW R&D supports development
of model curricula and course materials to promote IT literacy and graduate
and postdoctoral programs to increase the number of IT professionals.
The goal of SEW research is to maximize the societal benefits of IT by
assuring that emerging information infrastructures productively serve
the needs of all Americans and are sustainable over the long term.
|
|
Software engineering of complex systems
|
Today, we do not understand how to design and test complex software systems
with millions of lines of code in the same way that we can verify that
a bridge is safe. New fundamental software research will increase software
productivity, make software more reliable and easier to maintain, and
automate the discovery of errors. Beyond that, beginning in FY 2000 DARPA
plans to study software development technologies to support continuous
evolutionary development of long-lived military software systems. This
research will include rationale management, evolutionary programming environments
and languages, and system modeling analysis and composition.
|
|
Active software
|
Active software participates in its own development and deployment. The
first examples of active software are already available on the Internet
in the form of downloadable Java "applets." Research in active software
will lead to software that can monitor its own progress toward a particular
goal, discover a new capability needed for the task at hand, safely and
securely download additional software needed to perform that task, and
update itself. DARPA R&D will in particular support the study of software
that can dynamically update and adapt due to physical interaction with
its environment.
|
|
Software for autonomous systems
|
This DARPA-funded project is developing software to enable predictable,
safe, and cooperative operation of free-ranging, autonomous systems. Research
will lead to more intelligent software to control robots such as unmanned
vehicles that keep U.S. Armed Forces from harm's way or devices that can
explore planets or places on Earth that are unsafe for human travel; intelligent
agents or "knowbots" that search the Internet on the user's behalf; robots
and knowbots that plan, react appropriately to unpredicted changes, and
cooperate with humans and other robots; and cars that drive themselves
and automatically avoid collisions. These and other autonomous systems
should be able to learn and adapt to change and uncertainty while improving
with experience. For the warfighter, autonomous systems will enable revolutionary,
asymmetric military capabilities, such as the ability to autonomously
convey lethal and non-lethal military payloads anywhere on the battlefield
without requiring human operators, and the ability to autonomously retrieve,
process, and deliver information.
DARPA-supported scientists are
conducting autonomous software research in the following areas:
|
Common software for
autonomous robotics
|
R&D in common software for autonomous
robotics will develop critical enabling software technologies reusable
across a wide range of mobile autonomous robotic systems. In FY 2000,
DARPA-led researchers will develop architectures to integrate deliberative,
reactive, and learning behaviors, including knowledge representations,
and will conduct laboratory demonstrations of alternative approaches to
off-line learning, rapid sensor-motor mapping, engineered behaviors, and
statistical control. In FY 2001, DARPA plans to support experimental evaluation
of networking protocols for distributed robot controls that are more energy-efficient
than conventional implementations, and to conduct a prototype demonstration
and evaluation of software for distributed robotics that can coordinate
10 or more robotic devices in a collective task.
|
Software-enabled control
|
Software-enabled control R&D will
leverage increased processor and memory capacity to increase our ability
to maintain control over mobile devices through innovations such as predictive
mode changes, dynamic control scheduling, composable coordinated control,
and dynamic sensor and actuator allocation. In FY 2000, DARPA-supported
researchers will specify an architecture for a hybrid control system that
synthesizes the control law approach with computationally enabled mode logic
scalable to very large state spaces of at least 100,000 states; develop
active transition control and joint mode logic/control law designs; and
design services for active model creation, augmentation, and query. In FY
2001, DARPA plans to prototype a multimode control architecture and framework;
develop a predictive active model framework and parametric predictive and
adaptive control frameworks; and complete multilevel, multimodal advanced
design tools.
|
Agent-based negotiation
|
The goal of agent-based negotiation
R&D is to allow the autonomous operation of large collections of agents
negotiating real-time resource allocation issues such as those in logistics
and countermeasures. In FY 2000, DARPA-led researchers will develop the
framework for a bottom-up organization of autonomous software and define
a strategy for consolidating and tasking responses to thousands of software
agents with minimal human intervention. In FY 2001, DARPA plans to develop
a strategy for predicting global behavior of large negotiating teams and
to prototype autonomous software that negotiates in a logistics scenario.
|
|
Large-scale networks
of sensors
|
Networking microsensors and embedded devices creates new stresses on hardware
and software, including rapid self-assembly, timely acquisition, processing
and exchange of sensor data, and energy-efficient operation. Accurate
identification of events and information requires new ways of cooperation
among these devices to process physical signals and integrate information
in the network. Additionally, remote querying and accessing data collected
by the sensor net should be simple, with easy-to-use interfaces.
DARPA activities in this area will
extend software and networking R&D to geographically distributed microsensor
networks. A major challenge is the development of software technologies
that span a variety of sensor nets on ground, water, buildings, and humans.
Another challenge is to design reliable networked embedded systems retaining
only supervisory control, while automating traditional "in-the-loop" tasks.
Sensor tasking, data collection, integration, and analysis must be fully
automated to enable operation within time constraints far shorter than
could be achieved by human operators.
In FY 2000, DARPA research in large-scale
networks of sensors will:
- Specify diffusion-based approaches
to networking and aggregation and distribution of information from large
numbers of multitaskable sensor nodes
- Investigate declarative interfaces
for querying and tasking networked embedded systems and develop a prototype
based on relational database query technology and a lightweight operating
environment
- Explore low-latency system designs
and develop experimental platform and simulation capability
- Develop methods for collaborative
signal processing and information integration
In FY 2001, DARPA will:
- Implement the FY 2000 automated
information aggregation and diffusion prototype on a network with at
least 50 nodes and 100 sensors
- Specify interfaces supporting
common run-time services required by signal generation and processing
applications
- Implement networked detection,
estimation, tracking, and information integration
- Demonstrate multinode sensor
network software and the benefits of collaborative signal processing
in military operations such as fast-moving target detection and urban
operations
- Prototype declarative interfaces
for tasking and querying multitaskable sensor networks
- Investigate efficient interoperation
of fixed and mobile sensors
DARPA is also supporting research in this
area in the LSN PCA (page 82).
|
|
Component-based
software design
|
NOAA's GFDL is working with Princeton University to redesign its major
models using component-based software design. This program will produce
a shared modeling infrastructure to enhance communication and software
sharing while reducing redundancy. The program also supports the development
of guidelines and standards for climate and weather model design that
facilitate component reuse and modeling collaborations. At present, the
new GFDL modeling system includes two global atmospheric models, a large
assortment of atmospheric physics parameterizations, a comprehensive atmosphere-ocean-land-ice
coupler, and an array of support tools. GFDL will incorporate this approach
to redesign its Modular Ocean Model, used by oceanographers worldwide.
This effort will assist GFDL's transition to scalable parallel computing
architectures by isolating parallel memory management and I/O issues into
a few modules that are shared by all components of the modeling system.
|
|
Promising research areas
|
|
| Component-based software development
|
Today, most programs are written from scratch, one line of code at a time.
Although interchangeable parts are fundamental in manufacturing and other
engineering disciplines, the software industry lacks the equivalent of
these components. Nonetheless, many in the software community-including the
PITAC-think that the creation of truly usable component-based software
development methods is one of the critical steps needed to achieve higher
productivity and greater assurance in the end product. Component-based
research will make it easier to find the right software component, to
accurately predict the behavior of a software system assembled from
components, and to support a growing electronic marketplace in software
components.
Difficult issues in developing a component-based approach include the huge
diversity of software products; the high rate of technological change; the
lack of accepted standards for data representations, communication
protocols, and component descriptions; the lack of models of software
behavior that help predict the properties of component compositions; and
the lack of a business model for the development and distribution of
components. Real-world issues of code mobility, middleware infrastructures,
distributed development teams, and the move away from the desktop model for
computing must be understood and factored in. NSF anticipates funding R&D
in software architecture to support product families, allowing
recombinations of large components.
|
End-user programming
|
One way to address the critical shortage of programmers is to empower end
users by creating more domain-specific development tools, such as
user-friendly spreadsheets. Just as telephone companies solved the problem
of scalability by putting dialing technology in the hands of end users,
software developers can push portions of development out to users through
various kinds of "smartware" -domain-specific and user-friendly templates
or software "containers" that can be tailored to fit a variety of customer
needs. Tools and techniques that make end-user programming more widespread
will require significant advances in intelligent templates, domain-specific
languages, and programming-by-example.
|
Emperical software engineering
research
|
Software is an increasingly important $400-billion-a-year industry in the
U.S., so it is essential to focus software engineering research on projects
that will lead to improvements. Empirical validation can lend insight into
the value of new ideas for improving the productivity of the software
development process and creating higher-quality, more effective designs for
software systems, helping identify promising new ideas and pointing the way
to others.
NSF plans to support projects that investigate such questions as: What
causes software failures? What are useful sources of information for
software maintenance? What are the development environment factors that
affect the quality of software projects? NSF will also support longitudinal
research that studies project artifacts to determine significant factors in
the successful and unsuccessful evolution of software products. Other
research will explore the efficacy of specific ideas for improving the
productivity or quality of the development process and improving the design
of software for fault tolerance, reliability, security, and similar
characteristics.
|
|
New Starts
|
Software for embedded systems
|
|
|
Beginning in FY
2000, DARPA researchers are focusing on the increasingly ubiquitous phenomenon
of embedded software, or software for networked computing devices that
are embedded in physical processes. Already critical in modern automotive
engineering, where the power plant, braking system, and other elements
are controlled by embedded software, such software may prove to be a major
integrator in the years ahead for important military systems. DARPA's
goals are to:
- Create conditions (technology,
proof of concept) that support a viable market for reusable and customizable
tools and frameworks
- Make embedded systems tools
from third-party vendors accessible to large embedded system developers
- Encourage spill-over to other
embedded software markets
This project will develop
a new class of software to deal with the processing of physical world information
by networked embedded devices. The rapid increase of processing power and
the decreasing size and cost of today's microprocessors have created new
devices and microsensors that will enable a new wave of DoD applications.
For example, cheap, smart microsensors can be deployed quickly in large
quantities in the battlefield to perform new monitoring and control functions,
and a host of sensors can be attached to warfighters and assets to autonomously
monitor safety and health information and equipment conditions.
|
|
|
Dynamic assembly for systems adaptability,
Dependability, and assurrance (DASADA)
As software systems become more
complex, they must be able to reconfigure and evolve themselves dynamically
while the system is in operation. DARPA-led research will develop the
dynamic gauges or measures of composability necessary for software components
from multiple sources to support assured applications. The DARPA dynamic
assembly for systems adaptability, dependability, and assurance (DASADA)
program will ensure that the critical properties of complex, heterogeneous
software systems are maintained during and after composition, adaptation,
and deployment. Researchers will conduct preliminary demonstrations of
dynamic software component composability with multiple standard communications
infrastructures including distributed component object model (DCOM), CORBA,
distributed computing environment (DCE), or structuring (such as XML,
RDF, and document object model [DOM]).
|
|
|
Model-based integration of embedded software
Tight integration of information
processing with physical processes demands new technology for the integrated
modeling of software and physical systems. These models will enable designers
to capture complex physical constraints that the embedded software must
satisfy. R&D in model-based integration of embedded software will use
integrated models to analyze and verify the aggregate behavior of software
and physical processes and to automatically customize and integrate system
components. In FY 2000, DARPA researchers will:
- Investigate new modeling methods
that identify physical constraints in embedded systems such as avionics
and vetronics
- Develop customizable modeling
tools that rapidly adjust to different modeling views and application
domains
- Investigate new generation technology
to configure, customize, and synthesize software directly from models
In FY 2001, DARPA plans to:
- Develop modeling tools to manage
overlapping modeling views
- Investigate methods for the
mathematical modeling and composition of model-based software generators
- Develop customizable frameworks
for embedded software and demonstrate the rapid synthesis of embedded
systems using customizable frameworks and model-based generators
|
|
Networked embedded systems
The large-scale networking of
embedded and autonomous devices creates new requirements for embedded
technologies that can achieve drastic reductions in costs while being
compatible with a wide range of network and computation media; flexible
mechanisms for naming, addressing, configuring, and administering communication
and computation resources; and system design technologies that emphasize
dynamic behavior guarantees. These challenges are addressed in DARPA's
networked embedded systems R&D.
Programs under development at DARPA
will:
- Establish methods to maintain
and update critical information system-wide, without a centralized depository
- Investigate event/time-triggered
system synthesis subject to time, functional, performance, safety, and
security constraints
- Investigate design methods for
embedded generators to guarantee select behaviors of the generated systems
|
|

|
|
|
|
|