Rapid application development

From Wikipedia, the free encyclopedia

Software Development Process
This article is part of the Software Development Process series
Activities and Steps
Requirements | Architecture | Implementation | Testing | Deployment
Models
Agile | Cleanroom | Iterative | RAD | RUP | Spiral | Waterfall | XP
Supporting Disciplines
Configuration Management | Documentation | Project Management

Rapid application development (RAD), is a software development process developed initially by James Martin in the 1980s. The methodology involves iterative development, the construction of prototypes, and the use of Computer-aided software engineering (CASE) tools. Traditionally the rapid application development approach involves compromises in usability, features, and/or execution speed.

Contents

[edit] History

Application development refers to the developing of programming applications and differs from programming itself in that it has a higher level of responsibility, including for requirement capturing and testing.[1] Rapid Application Development was a response to non-agile processes developed in the 1970s, such as the Waterfall model. The problem with previous methodologies was that applications took so long to build that requirements had changed before the system was complete, often resulting in unusable systems. Starting with the ideas of Barry Boehm and Scott Shultz, James Martin developed the Rapid Application Development approach during the 1980s at IBM and finally formalised it by publishing a book in 1991.

[edit] Pros and Cons of RAD

Pros

  1. Increased speed of development through methods including rapid prototyping, virtualization of system related routines, the use of CASE tools, and other techniques.
  2. Increased end-user utility
  3. Larger emphasis on simplicity and usability of GUI design

Cons

  1. Reduced Scalability, and reduced features when a RAD developed application starts as a prototype and evolves into a finished application
  2. Reduced features occur due to time boxing when features are pushed to later versions in order to finish a release in a short amount of time [citation needed]

[edit] References

[edit] See also

[edit] External links