EMMA (Evolution Memory Management Assistant)

EMMA is an innovative tool which lets managers and developers collaboratively explore, select, and document alternative solutions to the problem of evolving a complex software system.

In order to make well-informed decisions about the evolution of a software system through its sequence of releases, managers need access to information about interdependencies among the designs and development plans for different parts of the system. EMMA provides a convenient web-based interface for recording, managing, and disseminating this information.

Design evolution information in EMMA is organized around four interrelated concepts:

  • System development goals and functional requirements;
  • Solutions, which are approaches to meeting those goals and requirements;
  • Assumptions and design constraints under which the goals are to be achieved;
  • Change events, which may alter goals, solutions, assumptions, or constraints.

These concepts provide context for design decisions, by relating lower-level decisions to higher-level purposes and to the assumptions under which decisions are made. EMMA helps developers to understand the issues involved in changing systems, and to be proactive in planning for system evolution. It allows the user to perform "What If?" analyses of the impact of hypothetical evolutionary changes, and provides automated support for maintaining solution consistency.

EMMA uses a Java/HTML-based hypertext interface, for easy deployment in any environment that supports standard web browsers. It also uses CoGenTex's advanced text generation technology to automatically generate various hypertext reports. Information entered in EMMA can include links to external documents, such as requirements or specifications created using other tools.

EMMA is being developed under the sponsorship of DARPA and AFRL as part of the EDCS (Evolutionary Design of Complex Software).


  • McCullough, Daryl; Korelsky, Tanya; and White, Michael (1998). Information Management for Release-based Software Evolution Using EMMA. In Proceedings of the 10th International Conference on Software Engineering and Knowledge Engineering (SEKE '98), San Francisco Bay, CA, pp. 219-226. [Acrobat, 424 Kb]