Rapid Application Development
# Rapid Application Development

Rapid Application Development (RAD) bzw. schnelle Anwendungsentwicklung ist ein von Barry Boehm in den 1980er Jahren miterdachtes Konzept zur Softwareentwicklung mit einem prototypischen Vorgehensmodell. Es dient dazu, Softwareentwicklung im Vergleich zu klassischen Vorgehensmodellen wie dem Wasserfallmodell flexibler zu gestalten und sich an schnell ändernde Anforderungen anpassen zu können.

Grundlage von RAD ist das Spiralmodell. RAD sieht ein prototypisches Vorgehen vor, bei dem Anforderungen an eine Software gesammelt und möglichst schnell in ausführbaren Code umgesetzt werden. Dieser wird dem Auftraggeber in einer relativ frühen Phase vorgelegt, um Missverständnisse bei den Anforderungen sowie hinzugekommene Anforderungen zu identifizieren. Die Änderungen werden in einer weiteren Version implementiert und wiederum vorgelegt. Diese Zyklen werden so oft durchlaufen, bis der Auftraggeber mit der Software zufrieden ist und diese abnimmt.

RAD-Entwicklungsumgebungen sind Microsoft Visual Basic und Embarcaderos RAD Studio (ein Softwarepaket bestehend aus Delphi und C++Builder) unter Windows sowie Gambas unter Linux. Als RAD-Tools gelten Visual Studio LightSwitch für .Net-Framework, Servoy sowie XDEV 3 für Java, Omnis Studio und 4th Dimension für Mac und Windows, oder der IBM Lotus Domino Designer. Speziell Bedienoberflächen lassen sich mit solchen Werkzeugen visuell entwerfen. Außerdem bietet das Free-Pascal-Entwicklungssystem Lazarus die Möglichkeit, GUI-Anwendungen plattform-übergreifend für GNU/Linux, Mac OS X und Microsoft Windows zu erstellen.

## Vorteile

Der RAD Ansatz benötigt in der Regel weniger Vorarbeit und Vorplanung und sorgt dadurch schneller für produktive Ergebnisse. Dank der eingesparten Zeit und der parallelen Entwicklung der verschiedenen Software-Entwicklungsphasen kann durch diese Form der Softwareentwicklung eine einsatzbereite Software im Regelfall in weniger als 120 Tagen ausgeliefert werden. Außerdem kann durch die konstante Interaktion zwischen Anwendern und dem entwickelnden Prototypen eine höhere Qualität sichergestellt werden.

Die schnelle Auslieferung produktiver Software, die damit ermöglichten schnellen Iterationen sowie die enge Involvierung der User sind Eigenschaften agiler Softwareentwicklung.

