Software evolution is the most costly and time consuming software development activity. Yet software engineering research is predominantly concerned with initial development. MORALE is a development method specifically designed for evolving software. It features an inquiry-based approach to eliciting change requirements, a reverse engineering technique for extracting architectural information from existing code, an approach to impact assessment that determines the extent to which the existing system’s architectural components can be reused in the evolved version, a reflective approach to actually performing the evolution, and a specific technique for dealing with the difficulties that arise when evolving user interfaces. MORALE is described in the context of making a specific change to an existing system: adding user-configurable viewers to version 2.4 of the Mosaic web browser. Issues that arise are discussed and the Esprit de Corps tool suite is described.
Gregory D. Abowd, Ashok K. Goel, Dean F. Jerding,