-   -
 
National Coordination Office for Networking and Information Technology Research and Development
 
 
-
-
 
 

Information Technology: The 21st Century Revolution
Software Design and Productivity
leftright
Overview
Software engineering of complex systems
Active software
Software for autonomous systems
Large-scale networks of sensors
Component-based software design
Promising research areas
New Starts


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

leftright

 
 
4201 Wilson Blvd, Suite II-405, Arlington, VA 22230 | (703) 292-4873 | (703) 292-9097 (fax)
 
-
Home | Back to Top | Contact Us | Privacy Policy | Search
-