Document ID: /fineweb-2-swissfilter-quality_10-filterrobots/filtered/03275.jsonl.gz/3258

Für Software-Entwicklung wird neben einer Programmiersprache meistens auch ein Datenbanksystem eingesetzt. Das Datenbanksystem erlaubt Daten-Persistenz (d.h. die Daten leben weiter, auch wenn der Rechner abgestellt wurde und der Hauptspeicher geleert ist). Falls die Programmiersprache eine kurze Notation (= wenige Zeilen) zulässt und die Entwicklungsumgebung dies fördert, wird der eigentliche Programmieraufwand gering, da nur wenig Programmcode geschrieben werden muss. Beispiele für solche Programmiersprachen sind: Viele der Sprachen mit „4GL“ im Namen sowie die IBM Notes Makrosprache (bei IBM Notes kommt noch hinzu, dass die gesamte Entwicklungsumgebung integriert ist mit der Entwicklungssprache und dass die Code-Verteilung über dasselbe Verfahren wie die Verteilung der Daten via Replikation funktioniert). Gegenbeispiele sind: Die Sprache C und alle Derivate davon (z.B. C++, C#, Java) sowie Basic und alle Derivate davon (Visual Basic, Lotusscript). Wenn die Sprache zudem gut mit der Entwicklungsumgebung integriert ist, wird eine weitere Beschleunigung der Programmierung erzielt. Beispiel: IBM Domino Designer. Hier ist auch die Code-Verwaltung und die Code-Distribution integriert.
Beim Entwickeln von typischen Datenbankapplikationen sind folgende Arbeiten zu erledigen:
Moderne Tools vereinfachen A massiv, indem es beispielsweise in B integriert wird. Sie setzen C um, indem die Definition des Bildschirm-Outputs gleich der Definition des Drucker-Outputs wird. Auch E kann weitgehend automatisiert werden. Damit wird der Programmieraufwand weiter reduziert. Ein Beispiel für ein System, dass so arbeitet ist Lotus Notes.
Erfahrungswerte zeigen, dass in einem Software-Entwicklungs-Projekt der Aufwand in etwa wie folgt verteilt wird:
Diese Phasen werden i.d.R. sequentiell durchlaufen. Einsparungen beim Programmieren haben also u.U. bloss 10% Einfluss auf den Gesamtaufwand. Hier ist die Idee entstanden, bereits in den Phasen Analyse und Design aber auch in den Phasen Test und Schulung anders vorzugehen. Das geht wie folgt:
Die Beteiligten teilen sich in die Rollen Entwickler und Kunde. In einem Entwicklungsprojekt gibt es einerseits den Arbeitsaufwand von Entwickler und Kunde und anderseits die verstrichene Zeit (in Tagen oder Wochen). Beides soll tief gehalten werden. Kleinere Verbesserungen sollen sofort umgesetzt werden, damit die Entwicklung rasch vorangeht. Das Vorgehen beim Prototyping entspricht den folgenden Schritten:
Zusammenfassung: Falls Sprache und Entwicklungsumgebung sowie Methode abgestimmt sind und die Entwickler entsprechend ausgebildet und eingestellt und der Kunde auch entsprechend eingestellt ist, werden im Vergleich zu konventionellen Entwicklungstools und -methoden rascher und mit weniger Aufwand anwendernahere Anwendungen entwickelt.
Man spricht in diesem Zusammenhang auch von Rapid Application Development (RAD).