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

Reliability, Security, and Safety for Mission-Critical Systems Return to Table of Contents Enhancing IT Education and Training for the High-Skills World
 

Software Design and Productivity

 

Improved, Cost-effective Software Through Science and Engineering


 
DARPAP.jpg
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
 
Reliability, Security, and Safety for Mission-Critical Systems Return to Table of Contents Enhancing IT Education and Training for the High-Skills World
 
 
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
-