- Universal Application
-
Universal Application (engl. universelle Anwendung) ist ein Fachbegriff für eine alternative Art der Softwareentwicklung durch Beschreibung der Eigenschaften der zu bearbeitenden Daten in Form von Metadaten. Zielstellung ist eine deutlich kostengünstigere Erstellung von kundenspezifischer Anwendungssoftware, insbesondere von Datenbankanwendungen für die Verwaltung von großen Unternehmen und Behörden.
Anstatt wie bei anderen Verfahren Programmcode zu schreiben, werden beim Universal-Application-Verfahren die Daten und ihr Verhalten abstrakt in Metadaten beschrieben. Diese Metadaten werden von einer universellen Anwendungssoftware interpretiert.
Die Softwareentwicklung erfolgt interaktiv, indem den Daten schrittweise immer präzisere Eigenschaften und Regeln (Business Rules) zugeordnet werden. Diese Regeln sind streng deklarativ: man beschränkt sich z. B. darauf, in Formeln oder ähnlichen Ausdrücken zu beschreiben, welche Werte unter welchen Bedingungen für ein Datenfeld zulässig sind. Alles weitere überlässt man der Eigenintelligenz der Universal Application, die selbsttätig entscheidet, wann welche Programmfunktionen dafür zu aktivieren sind. Auf ähnliche Art und Weise wird die Benutzeroberfläche entwickelt: die gewünschten Datenobjekte werden einfach auf die gewünschte Stelle geschoben. Aus dem Kontext, den Eigenschaften und Regeln ermittelt die Universal Application einen Vorschlag, der vom Entwickler dann schrittweise verfeinert werden kann. Schließlich erhält man eine Anwendung, die von einer programmierten Applikation kaum zu unterscheiden ist. Dennoch entsteht dabei kein Programmcode, sondern ausschließlich strukturierte Metainformation über Datenobjekte.
Das Universal-Application-Konzept folgt somit demselben Grundgedanken wie eine Tabellenkalkulation, wo man sich ebenfalls darauf beschränken kann, Formeln und Bezüge einzutragen, und ohne jegliche Programmierung sofort ein brauchbares Ergebnis erhält. Vergleichbar sind auch die Nachteile beider Konzepte: wenn die vorgefertigte Funktionalität nicht ausreicht, muss sie mit Makros oder Plugins erweitert werden.
Inwieweit die von Herstellern wie Tenfold, Scopeland und Novabit genannten Kosteneinsparungen von bis zu 90 % tatsächlich erreichbar sind, hängt deshalb stark von der Art der Anwendung ab.
Weil man aus den fertigen Metadaten abschließend auch Programmcode generieren kann, wird der Universal-Application-Ansatz oft mit der Model Driven Architecture (MDA) verwechselt. Während der MDA-Ansatz eher dazu dient, den Programmier-Prozess zu unterstützen, geht es hierbei darum, die Programmierung gänzlich zu vermeiden.
Siehe auch: Agile Softwareentwicklung
Wikimedia Foundation.