Suchen

Zwei Entwicklungsansätze in der Gegenüberstellung Low Code und Rapid Application Development

| Autor / Redakteur: Dr. Veikko Krypczyk und Elena Bochkor / Stephan Augsten

Die Art der Softwareentwicklung unterliegt einem stetigen Wandel. Gefragt sind Ansätze, welche eine hohe Effizienz und dennoch eine sehr gute Qualität der Applikationen garantieren. Im Spannungsfeld zwischen Rapid Application Development und Low Code tut sich einiges.

Firma zum Thema

Die Project Map in ApiOMat ist der Sammelpunkt für alle Konfigurationsarbeiten an der Applikation.
Die Project Map in ApiOMat ist der Sammelpunkt für alle Konfigurationsarbeiten an der Applikation.
(Bild: Dr. Krypczyk / ApiOMat)

Die Rolle der Informationstechnik und damit ihrer wichtigen Teildisziplin der Softwareentwicklung verschiebt sich in einem erheblichen Ausmaß. Historisch hat sich IT lediglich als Dienstleister im Sinne eines „Werkzeuges“ verstanden. Der Fokus war primär technikgetrieben.

Die Rolle und Bedeutung der Informationstechnologie im Wandel.
Die Rolle und Bedeutung der Informationstechnologie im Wandel.
(Quelle: nach Kienbaum Consultants International – Studie IT-Organisation 2018)

Über eine Vielzahl von Zwischenstufen verschiebt sich dieser Fokus und die Bedeutung der IT hin bis zu einem „Business Innovator“. IT liefert in diesem Stadium wichtige Beiträge zur Weiterentwicklung des Geschäftsmodells oder verändert dieses sogar dauerhaft. Moderne Informationstechnologie …

  • versteht die Geschäftsprozesse der Unternehmen und entwickelt für die Fachbereiche proaktiv innovative und flexible Lösungen,
  • managt alle vom Unternehmen benötigten IT-Services zuverlässig und kundenorientiert,
  • ist agil, nutzenorientiert und fördert die Zusammenarbeit aller Beteiligten im Unternehmen.

Idealerweise ist die IT der entscheidende Treiber der digitalen Transformation im Sinne der Unternehmensstrategie. Für modern agierende IT-Dienstleister ergeben sich aus dieser Entwicklung auch vielfältige neue Möglichkeiten. Beispielsweise werden zunehmend in enger Zusammenarbeit mit den Kunden neue Lösungen und Geschäftsabläufe erarbeitet. Dabei sind oft neue und umfassende Softwarelösungen zu entwickeln.

Es versteht sich von selbst, dass zunehmend die Frage der Effizienz eine große Rolle spielt. Das zeitgerechte Bereitstellen der Funktionalität in der gebotenen Qualität steht im Fokus. Dauern Projekte zu lange oder kommt es zu ungeplanten Verzögerungen, dann hat dies umfassende Auswirkungen auf die Kosten und beeinträchtigt im schlimmsten Fall die Wettbewerbsfähigkeit des betreffenden Unternehmens.

Ein wesentlicher Faktor, um die Entwicklung von Software effizienter zu gestalten, ist der Einsatz von Werkzeugen, Bibliotheken und Frameworks. Mit dem Blick auf Business Applikationen und der damit verbunden Werkzeugunterstützung kann man Tools aus den Bereichen Rapid Application Development und Low Code unterscheiden.

Rapid Application Development

Rapid Application Development (RAD) steht für eine schnelle Anwendungsentwicklung. Der Begriff wurde von Barry Boehm in den 1980er Jahren als Konzept der Softwareentwicklung nach dem prototypischen Vorgehensmodell erdacht. Es dient dazu, die Softwareentwicklung im Vergleich zu klassischen Vorgehensmodellen flexibler zu gestalten und sich an schnell ändernde Anforderungen anpassen zu können.

Ursprüngliche Grundlage ist das Spiralmodell, welches ein prototypisches Vorgehen vorsieht. Natürlich ist dieses Konzept auch auf agile Vorgehensmodelle übertragbar. RAD-Werkzeuge weisen üblicherweise die Gemeinsamkeit auf, dass man mit ihnen die Benutzeroberfläche mit Hilfe eines Designers per Drag & Drop und über die Anpassung von Eigenschaften erstellen kann.

Ebenso stehen auch nicht visuelle Komponenten zur Verfügung. Beispielsweise, um mit einer Datenbank aus der Applikation zu interagieren oder um einen Dateidialog aufzurufen. Über Extensions, Plug-ins oder externe Bibliotheken lässt sich das Angebot der Komponenten in der Regel meist vielfältig erweitern.

Das Ziel von RAD-Tools ist es dabei, den Entwickler von Routineaufgaben der Softwareentwicklung zu entlasten. Damit wird die Effizienz des Entwicklungsprozesses erheblich gesteigert. Beim Einsatz dieser Art von Werkzeugen behält der Entwickler jedoch jederzeit die vollständige Kontrolle über den Quellcode. Die meisten der heute eingesetzten integrierten Entwicklungsumgebungen sind schon seit vielen Jahren auf dem Markt, werden stetig weiterentwickelt und stellen damit gewissermaßen auch einen Investitionsschutz dar.

Software, welche auf dieser Basis produziert wurde, kann in der Regel auch noch Jahre später in einer neuen Version des RAD-Tools bearbeitet und weiterentwickelt werden. Typische Vertreter von integrierten Entwicklungsumgebungen, die der Idee des Rapid Application Developments folgen, sind zum Beispiel:

Microsoft Visual Studio: Umfassende Entwicklungsumgebung für primär Windows basierte Applikationen mit grafischen Designer für Windows Forms, Windows Präsentation Foundation (WPF), die Universelle Windows Plattform (UWP) und Xamarin (u.a. Android und iOS).

Embarcadero RAD Studio: Geräteübergreifende Anwendungsentwicklung für Desktop- und mobile Systeme; Gestaltung des User Interfaces mit einem grafischen Designer.

RapidClipse: Baut auf Eclipse auf und ist für den Einsatz von Enterprise Java Web-Applikationen spezialisiert. RapidClipse bietet folgende Features: HTML5 GUI-Builder, vorgefertigte UI-Widgets, Data Binding zu Hibernate, Unterstützung bei der Implementierung des Business Layers, Layout Manager, Formular Generator, Table Designer, Unterstützung für Internationalisierung und Lokalisierung und eine Live Vorschau für mobile Geräte. Ebenso hilft RapidClipse bei der Cross-Plattformentwicklung. Mit angepassten Tools wird die Entwicklung von Web Apps und hybriden Apps für die mobilen Geräte unterstützt.

Das Erstellen der Benutzeroberfläche erfolgt in einem grafischen Designer in RAD Studio.
Das Erstellen der Benutzeroberfläche erfolgt in einem grafischen Designer in RAD Studio.
(Bild: Dr. Krypczyk / Embarcadero)

Beispielhaft zeigen wir anhand von RAD Studio (Delphi, C++-Bilder) die typische Vorgehensweise mit einem RAD-Tool. Das Konzept von RAD Studio basiert darauf, dass man einen großen Teil der Applikation aus visuellen und nicht visuellen Komponenten in einem grafischen Designer zusammensetzt. Visuelle Komponenten sind beispielsweise Buttons, Labels, Textfelder, also die typischen Elemente der Oberfläche. Diese sind über Eigenschaften zur Designzeit konfigurierbar und man erstellt mit deren Hilfe das User Interface.

Nicht visuelle Komponenten unterstützen den Entwickler bei wiederkehrenden Programmieraufgaben, zum Beispiel bei Datei- oder Datenbankzugriffen. Es können Applikationen für die folgenden Plattformen erstellt werden:

Microsoft Windows: Anwendungen für den Desktop und den Server. Es entstehen native 32-/64-Bit-Anwendungen. Diese haben keine Abhängigkeiten zu weiteren Bibliotheken. RAD Studio bietet die Option die fertige Anwendung zu einem APPX-Package zu packen und sie damit über den Microsoft Store zu deployen.

macOS: Es werden die macOS Versionen ab OS X 10.10 Yosemite als 64-Bit-Applikationen unterstützt.

Linux: Es lassen sich sowohl Server-Applikationen (Konsole) erstellen als auch Anwendungen mit grafischer Oberfläche.

iOS: Apps für iPhone und iPad ab den Versionen iOS 9.

Android: Apps für Smartphones und Tablets für die aktuellen Betriebssystemversionen.

Aus einer Codebasis können Applikationen für die genannten Systeme generiert werden. Dieses wird durch das geräteübergreifende User-Interface-, also UI-Framework FireMonkey ermöglicht. Mit wenigen Klicks fügt man eine neue Zielplattform hinzu und kann aus dem Quellcode eine Applikation für ein anderes System erstellen.

Low Code Development

In eine andere Richtung geht der Trend, dass man die Entwicklung von Business-Anwendungen ein Stück zu den Fachabteilungen verschieben möchte. Die Gründe sind vielfältig. Zum einem sind Entwicklungskapazitäten knapp und zum anderen steigt stetig der Bedarf an individuellen Softwarelösungen in Unternehmen.

Technikbegeisterte und versierte Anwender (Citizen Developer) in den Fachabteilungen sind durchaus in der Lage, einen Teil der Entwicklungsaufgaben zu übernehmen. Dazu werden ihnen hochintegrierte Tools an die Hand gegeben, welche ihnen das weitgehende Erstellen von Softwarelösungen erlauben. Diese Tools werden als Low-Code- bzw. im Sonderfall auch als No-Code-Plattformen bezeichnet.

Low Code steht für möglichst wenig Code bei der Erstellung von Software. Typischerweise wird dieser Ansatz für Anwendungen aus den Bereichen Vertrieb, Marketing oder Produktionsplanung verfolgt. Low-Code-Plattformen haben also das Ziel wiederkehrende Aufgaben der Softwareentwicklung umfassend zu standardisieren.

Dabei setzen diese nicht auf technischer Ebene an, d.h. es geht nicht um die Wiederverwendung von Programmcode, sondern ihr Fokus liegt auf der Funktionsebene einer Software (Use Cases). Hier gibt es ein großes Potenzial zur Standardisierung. Typische, sich wiederholende Aufgaben sind zum Beispiel: formularbasierte Datenerfassung, Validierung der Daten, Bereitstellung der Benutzeroberfläche, lokale Datenhaltung, Umsetzung eines spezifischen Workflows und die Anbindung an der neuen Software an die bestehende Unternehmens IT.

Der Markt der Low-Code-Plattformen zeichnet sich durch eine hohe Heterogenität und große Angebotsvielfalt aus. Die angebotenen Werkzeuge unterscheiden sich durch Ansatz, Funktionsumfang, Zielgruppe und Preis. Zu nennen sind zum Beispiel folgende Low-Code-Plattformen:

  • Microsoft Power Apps: Die Plattform bietet leistungsstarke Funktionen für die Entwicklung von Web- und Mobile-Applikationen und einen großen Katalog von Integrationsschnittstellen. Es werden die Varianten Canvas App und modellgesteuerte App zur Auswahl angeboten. Eine Canvas App kann mit Hilfe von Drag & Drop generiert werden. Bei modellgesteuerten Apps wird auf Basis von Prozessen und Daten eine App entwickelt. Eine Erweiterung über eine Programmiersprache ist nicht vorgesehen.
  • Mendix: Mendix unterstützt den gesamten Entwicklungsprozess. Für die Abbildung der Geschäftslogik werden gängige offene Standards wie BPMN und UML verwendet.
  • ApiOmat: Eine Low-Code-Plattform der Firma EASY SOFTWARE, welche sowohl für das Erstellen von mobilen Apps als auch für Web-Applikationen verwendet werden kann. Ein besonderes Merkmal ist die direkte Anbindung der Datenhaltung über die hauseigene Cloud-Plattform.
  • Outsystems: Die Plattform überzeugt durch eine hohe User Experience und eine umfangreiche Unterstützung des gesamten Software Development Life Cycle. Mit den zahlreichen Security und Standard Features eignet sich die Lösung gut für die Belange von Enterprise-Kunden.

Um einen Eindruck von der Arbeit mit einer Low-Code-Plattform zu bekommen, wird hier stellvertretend ApiOmat vorgestellt. Im Rahmen dieser Multi-Experience-Plattform zur Digitalisierung bietet ApiOmat die Fähigkeit zu schnellem Prototyping und Low Code Development mit Hilfe der Tools ApiOmat Web Studio und Mobile Studio. Derzeit steht diese Low-Code-Plattform für das Betriebssystem macOS zur Verfügung.

Eine Kernzielgruppe sind Frontend-Developer und UX Designer. Diese sind in der Lage, produktionsfähige Prototypen der künftigen Applikation eigenständig zu erstellen. Eine Besonderheit ist, dass nativer Objective-C- bzw. Java-Code und für Web ein React Projekt mit JavaScript-Code generiert wird. Das hat den Vorteil, dass die Entwicklung nicht mit dem Prototyp endet, sondern die entstehenden Projektdateien können direkt mit Hilfe der IDEs Android Studio und Xcode weiterverarbeitet werden. Fachanwender und Entwickler werden bei ihrer Zusammenarbeit unterstützt.

Die Project Map ist der Sammelpunkt für alle Konfigurationsarbeiten an der Applikation.
Die Project Map ist der Sammelpunkt für alle Konfigurationsarbeiten an der Applikation.
(Bild: Dr. Krypczyk / ApiOMat)

Die Datenwelt wird direkt mit der Low-Code-Plattform verzahnt, d.h. bereits während der Designzeit kann man auf die Daten im Backend zurückgreifen. Für das User Interface-Design wird ein grafischer Editor angeboten, welcher sich an Konzepten von Grafikwerkzeugen orientiert. Die Project Map bündelt alle Funktionen der Applikation und zeigt die Verbindung zwischen dem User Interface, der Datenschicht und der Businesslogik.

Der grafische Designer für die Benutzeroberfläche und die Abbildung der Navigationsstruktur erinnert an Werkzeuge aus dem Bereich der Bild- und Grafikgestaltung und richtet sich damit primär an die Bedürfnisse von Fachanwendern aus. Auf dem Wege der Konfiguration kann man auch die Datenschicht anbinden.

Vergleich der Ansätze und Einschätzung

Rapid Application Development und Low Code haben das gemeinsame Ziel die Entwicklung von Applikationen zu beschleunigen. Beide Ansätze richten sich primär an Anforderungen von Unternehmenssoftware aus. Der wichtigste Unterschied zwischen beiden Ansätzen besteht darin, dass sich der Einsatz von RAD-Tools weiterhin direkt an Entwickler richtet, während bei Low-Code-Tools eine Umsetzung des Projektes durchaus auch nach einer Einarbeitung durch die Mitarbeiter in den Fachabteilungen denkbar ist.

RAD- und Low-Code-Tools enthalten i.d.R. leistungsfähige grafische Designer zur Gestaltung des User Interfaces mit Hilfe einer Vielzahl von vorgefertigten Komponenten. Im Bedarfsfall kann man diese Auswahl an Komponenten jedoch jederzeit durch Eigenentwicklung oder den Einsatz von Komponenten von Drittanbietern erweitern.

In RAD-Tools muss die Geschäftslogik in Form von Programmcode eigenständig programmiert werden. Zum Einsatz kommen die typischen höheren Programmiersprachen wie zum Beispiel C#, Delphi oder Java. Hier ist man in seinen Möglichkeiten nicht eingeschränkt. Moderne Sprachkonzepte unterstützen dabei den Vorgang der Codierung und erlauben das Formulieren von Quelltext, welcher stets nah an der Problemstellung ist.

Die Anbindung von Datenbanken erfolgt wahlweise durch Komponenten, welche die unterschiedlichen Schnittstellen der Datenbankanbieter kapseln und für eine einfache und einheitliche Vorgehensweise aus der Sichtweise des Entwicklers sorgen. Auch hier kann man direkt in den Code bei Bedarf eingreifen und damit individuelle Anforderungen umsetzen.

Bei Low-Code-Tools werden üblicherweise auch die notwendigen Schritte zur Implementierung der Geschäftslogik und der Anbindung der Datenschicht über grafische Assistenten vollständig unterstützt. Mit Hilfe eines grafischen Workflowdesigners können die Geschäftsprozesse modelliert werden. Der Quellcode wird aus diesen Vorgaben automatisch generiert. Individuelle Anpassungen können nach Export am Quellcode noch vorgenommen werden. Low-Code-Tools setzen vermehrt auf Standardisierung, lassen je nach Ansatz aber auch eine individuelle Nachbearbeitung zu.

Fazit

Rapid Applikation Development in einer hoch integrierten und ausgereiften Form, Low-Code- und teilweise auch No-Code-Plattformen sind die notwendige Antwort der Softwareentwicklung auf den stetig steigenden Bedarf an neuen Applikationen in den Unternehmen. Mit deren Hilfe können Entwickler und Experten aus den Fachabteilungen gemeinsam anforderungsgerechte und spezialisierte Software auf sehr effiziente Art und Weise entwickeln.

Der Vergleich hat gezeigt, dass zwischen RAD und Low Code ein fließender Übergang besteht. Tools aus beiden Segmenten arbeiten stark komponentenbasiert und erlauben das Erstellen der grafischen Benutzeroberfläche mit Hilfe von Designwerkzeugen. Eine Auswahlentscheidung ist stets individuell für jedes Projekt zu treffen. Neben den technischen Anforderungen spielen auch die Projekterfahrungen und die Kenntnisse der Mitarbeiter eine wichtige Rolle.

Dr. Veikko Krypczyk ist begeisterter Entwickler und Fachautor. Elena Bochkor arbeitet am Entwurf und Design mobiler Anwendungen und Webseiten. Weitere Informationen zu diesen und anderen Themen der IT finden unter Larinet.com.

(ID:46280996)