Evolutionary Design of Complex Software (EDCS)
Addresses Software Modernization Needs

by Douglas A. White, Rome Laboratory


Introduction

The Evolutionary Design of Complex Software (EDCS) program is a jointly sponsored technology endeavor of Rome Laboratory and Defense Advanced Research Agency (DARPA), addressing the need for continuous modernization of military systems over extended lifetimes. The EDCS program is a new program that began in late 1995 with a Broad Area Announcement (BAA) resulting about fifty contract and grant awards, the first beginning in May 1996 and most awarded by the start of 1997. With software becoming a critical part and governing the behavior of most civilian and military systems, the best way to adapt existing systems to changing requirements is through changing the software. EDCS investigates ways to create software that is more easily evolved and to transform current legacy systems into evolutionary systems.

The DoD faces problems not found in most commercial software systems. DoD systems have an extremely long life span. Over the long period of time between initial introduction and final retirement, systems face many changes caused not only by improvements in technology, but also changing roles and environments. Today's systems change, but only at great cost and risk. As today's systems age they become brittle and fragile as the complexity becomes greater and the ability to understand the system decreases. Changes in behavior and the cost to accomplish these changes are unpredictable.

The approach taken in the EDCS program is to enable systems to affordably adapt to changing requirements and operating environments through:

The current phase of the EDCS program consists of technology investigation and capability packaging efforts geared to developing and demonstrating the technology needed to create evolvable systems. A future phase of the program will demonstrate the integration and application of this technology to actual DoD systems.

Program Organization

The EDCS participants include Rome Laboratory, DARPA, the Software Engineering Institute (SEI) and contractors. This team is organized into five technology clusters, each addressing a different aspect of evolvable software. Collaboration in the EDCS program was natural for Rome Laboratory because of its previous research and development experience in both conventional and knowledge-based software engineering. Rome Laboratory and DARPA share the management of the approximately fifty different projects with Rome Laboratory serving as the contracting agent on most. Rome Laboratory and the SEI share the role of coordinating each of the five clusters of contractor with the goal of minimizing redundancy and duplication of effort within and between clusters and maximizing the interoperability of cluster products.

Technology Clusters

The five EDCS cluster group titles are:

  1. Rationale Capture and
    Software Understanding
  2. Information Management
  3. Architecture and Generation
  4. High Assurance and
  5. Real-Time; and
    Dynamic Languages.

Each cluster is responsible for defining and coordinating scenarios which will serve as the basis for demonstration of the technology of the cluster. Each cluster also includes an "integrator" contractor responsible for creating integrated demonstrations of the many individual cluster technologies.

1. Rationale Capture and Software Understanding
This cluster addresses the need for understanding of software in both development and evolution by developing capabilities to capture design decisions and rationale. This knowledge would then be used to support software understanding by providing explanation of the "what, why and how" throughout the life cycle. Research topics in this cluster include design knowledge representation, collaborative design, analysis of change, multimedia explanation, reverse engineering, and run-time monitoring.

2. Information Management
This cluster addresses the issues of representation, communication and manipulation of design artifacts and processes. Topics being pursued include use of the World Wide Web technology, versioning and configuration management, information models, evolution information and presentation.

3. Architecture and Generation
Architecture and generation deal with the issue of representing the architecture such that it can be used to support the composition and adaptation of systems from interoperable components. Topics of research include architecture representation and languages, domain modeling and analysis, and composition and generation techniques.

4. High Assurance and Real-Time
This cluster deals with testing and the ability to predict the impact of change on the evolving system. Topics being investigated include test environments, continuous testing, automatic retest, and dynamic upgrades.

5. Dynamic Languages
The goal of the dynamic language cluster is to produce advanced development capabilities providing the capability to both rapidly prototype and produce efficient and correct implementations. This topic involves the languages Dylan, Haskell, ML, Ada95, Java and CLOS and addresses the topics of hyperprogram structure, analysis tools, and program correctness.

Additional Information

This is just the beginning of the EDCS program as plans are currently in progress to transition this technology into actual use in DoD systems. Future efforts will include integration and demonstration of the ability to evolve operational software affordably and predictably.

For additional information visit the Rome Laboratory's EDCS Home Page at
http://www.se.rl.af.mil:8001/edcs/c3-edcs-home1.htm.

EDCS is a Joint DARPA/ Rome Laboratory Initiative


Back to the top