Software Engineering

Introduction
Object-Oriented Programming
Real-Time Systems

Evolutionary Development

Evolutionary Development

An evolutionary development approach is typically used to develop and implement software at RAP, except for any commercial off-the-shelf (COTS) components which, by definition, do not require software development. This approach has been described by Steve McConnell¹ as the "best practice for software development and implementation". According to McConnell, "evolutionary delivery is a lifecycle model that straddles the ground between evolutionary prototyping and staged delivery." Early versions of the system are presented to the customer and the system is refined and enhanced based on customer feedback. The cycle continues until development time runs out (schedule constraint) or funding for development runs out (resource constraint).

There is a strong desire at RAP to use this approach since it is the most beneficial approach to use for prototype-to-operational development efforts typically used at RAP. Research and system development efforts that several national labs are performing for the FAA, NASA, and U.S. military also use this development methodology.

Software systems are often developed and implemented based solely on detailed specifications and operational concept documents and only after the systems have been delivered do users realize that the systems are not what they envisioned. It is very difficult to determine the detailed preferences of customers and exactly how a system will be used before it is placed before the users, especially when potential users have a diverse set of tasks to perform. With this in mind, a development (prototyping) environment is usually established at RAP during the first year of a project. The development environment will continue to be used during subsequent years to support ongoing developments, enhancements, and demonstration activities.

During the time that the development environment is in place, users will gain experience with the systems, displays, and products and be in a better position to determine how the system will be incorporated into their operational environment during subsequent phases of projects. A graphical representation of the Evolutionary Delivery approach is provided below.

¹ Reference: Rapid Development, Taming Wild Software Schedules, by Steve McConnell, Microsoft Press, 1996.

This method is considered the best software practice from Rapid Development, Taming Wild Software Schedules by Steve McConnell, Microsoft Press, 1996.

<< Previous

3 dimensional view of weather hazards from airplane cockpit
Example of RAP's software engineering: Three-dimensional depiction of weather hazards viewed from an airplane cockpit on approach to Denver International Airport. Shown are microbursts (red circles), Level 5 and 6 thunderstorm reflectivity (red), turbulence (white grid), and a gust front (purple) on the far right. © NCAR
Updated 10/23/2000