Home
Home|generativer Ansatz
generativer Ansatz
Was ist der 'generative Ansatz' ?
1484960586437karussell.jpg

Generative Softwareentwicklung bietet die Möglichkeit
der Trennung von
  • Anwendungsprogrammierung
  • Metaentwicklung
Experten aus diesen Bereichen können so ihr Wissen auf den jeweiligen Bereich konzentrieren.

Unter Anwendungsprogrammierung wird die Quellcodeerstellung unter Berücksichtigung von technischen Aspekten verstanden, unter Metaentwicklung die Anwendungserstellung unter Berücksichtigung von funktionalen/fachlichen Aspekten.

Für die Metaentwicklung wird zunächst ein sogenanntes PIM Platform independent Model definiert, dass von der gewünschten Basistechnologie (Windows, Unix, ect.) vollkommen unabhängig ist. Im PIM werden Informationen hinterlegt, die sowohl technische wie auch funktionale/fachliche Eigenschaften haben. Die Definition des PIM kann sowohl visuell als auch textlich erfolgen. Oft wird an dieser Stelle UML Unified Modeling Language verwendet. Evtl. auch unter Zuhilfenahme von UML spezifischen Tools.

Die Überführung des PIM in das PSM Platform specific Model geschieht durch einen definierten Transformprozess (z.B. automatische Überführung PIM->PSM und eine anschliessende Quellcoderzeugung durch einen Quellcodegenerator). Der Generator ist auf die Erzeugung des plattformspezifischen Quellcodes abgestimmt und wird durch die Angaben im PSM gesteuert.
Beispiel: (stark vereinfacht)
Der Metaentwickler definiert: Erzeuge eine Anwendung für die Windows Plattform in der Programmiersprache Java für das Datenbanksystem MySql. Die Information EMAIL ist ein Datenbankfeld vom Typ Text, hat eine Länge von 50 Zeichen und wird bei der Darstellung als Eingabefeld mit Syntaxprüfung ("@","." vorhanden?) oder Hyperlink dargestellt...
Der Transformprozess könnte anhand der definierten Eigenschaften erkennen:
  • Verwende den entsprechenden Quellcodegenerator, der den auf der Zielplattform (Windows, Java, MySql) lauffähigen Quellcode erzeugt.
  • Erzeuge ein Datenbankfeld (Text 50 Teichen), erzeuge den benötigten Quellcode für einen Datenbankzugriff.
  • Erzeuge den Quellcode für die gewünschte Funktionalität an allen Stellen in der Anwendung, an denen diese Information angezeigt wird (Darstellung als Hyperlink bzw. Syntaxkontrolle).
Massgeblich ist, für welche Plattformen ein Quellcodegenerator zur Verfügung steht. Das PIM muss für einen evtl. neu entwickelten Quellcodegenerator (z.B. Unix Plattform, Programmiersprache PHP, Datenbank Oracle) nicht geändert werden. Die sich daraus ergebenden Vorteile liegen auf der Hand.
WEDITO Entwicklungsumgebung
Die Gründer der WEDITO GmbH haben diese Vorteile schon sehr früh erkannt und im Jahr 2001 festgelegt, wie eine Metaentwicklung sinnvollerweise durchgeführt werden sollte. Da es im Umfeld von MDA damals noch sehr wenig und auch nur unzureichende Ansätze und Tools gab, entschlossen wir uns, für den kompletten Prozess ausschliesslich selbstentwickelte Software einzusetzen. Es wurde ein Transformprozess definiert und die Erstellung eines Metaentwicklungsfrontends und eines Quellcodegenerators begonnen. Das Metaeentwicklungsfrontend wurde ursprünglich in Access 2000 geschrieben (Windows Plattform), ist aber Anfang des Jahres 2004, unter Verwendung der WEDITO Entwicklungsumgebung, auf eine browserbasierende Anwendung umgestellt worden. Das webbasierende Frontend "WEDITO ES" ermöglicht es auf einem beliebigen Clientsystem (Plattformunabhängig, gängiger Browser muss installiert sein) die Metaentwicklung durchzuführen.
Vorteile
Durch die Verwendung der Programmiersprache Java wird Quellcode erzeugt, der auf jeder Plattform die Java unterstützt lauffähig ist. WEDITO Anwendungen sind unter Windows, Linux, MacOS, UNIX, usw. lauffähig. Datenbankanbindung erfolgt über JDBC Treiber die für eine grosse Anzahl von Datenbankmanagementsystemen zur Verfügung stehen (z.B. MySQL, MS SQL , Oracle, DB2, usw.).

Eine Problematik beim generativen Ansatz ist die Einbindung von "Funktionen". Da in der Metaentwicklung nicht alle Anforderungen die evtl. gestellt werden (z.B. eine Effektivzinsberechnung oder andere sehr spezifische fachliche Anforderungen) zur Verfügung gestellt werden können, gehen viele Anbieter den Weg und erlauben das Einfügen von manuellen Code-Segmenten in den generierten Quellcode oder erweitern den Quellcodegenerator um die gewünschte Funktionalität. Diese Vorgehensweise widerspricht, unserer Meinung nach, dem Generativen Ansatz (PIM). Da diese Anforderungen aber dennoch irgendwie in die Entwicklung einfliessen müssen, hat die WEDITO GmbH einen sehr komplexen, aber automatisierten und damit konformen Weg gefunden, diese Anforderung zu ermöglichen. Durch die Einbindung von Funktionbibliotheken, deren Einsatz im PIM definiert wird und deren automatisierten Verwendung, können beliebige Funktionalitäten vom Metaentwickler immer wieder verwendet werden ohne das der generierte Quellcode verändert oder der Quellcodegenerator modifiziert werden muss.

Beispiel: (Geringer Abstraktionsgrad)
Der Metaentwickler erstellt eine Aufragsverwaltung (mit Rechnungsstellung). Im Metaentwicklungstool steht lediglich die Berechnung einer Summe über einen bestimmten Wert zur Verfügung. Er definiert (u. a.): Summe der Information Einzelpreis bilden und anzeigen. Die Möglichkeit einer Summenbildung ist ein relativ geringer Grad der Abstraktion und als absolut notwendig einzustufen. Darüber hinausgehende Abstraktionen (z.B. Berechnung der MWST, einzeln und als Summe) stehen in den meisten bestehenden Entwicklungswerkzeugen aber nicht zur Verfügung und müssen über "Funktionen" (o.ä.) von einem Anwendungsentwickler zur Verfügung gestellt (programmiert) und in die Anwendung integriert werden. Dadurch entsteht ein Mehraufwand in der Entwicklung. Wünschenswert wäre ein wesentlich höherer Abstraktionsgrad.

Beispiel: (Hoher Abstraktionsgrad):
Der Metaentwickler definiert: Erzeuge ein Formular zur Rechnungserstellung woraufhin im Metaenwicklungstool schon ein komplettes Formular mit (standardisierten) Fuktionalitäten im PIM erzeugt wird, das dann vom Metaentwickler noch auf das Anwendungslayout (Anordnung der Informationen auf dem Formular) angepasst wird.

Bedingt durch den frühen Einsatz und den Erfahrungswerten der Gründer ist der Abstraktionsgrad der Metaentwicklung beim Transformprozess der WEDITO GmbH sehr hoch. Dem Metaentwickler stehen in der WEDITO Entwicklungsumgebung eine ganze Reihe von Modulen (Terminkalender, Rechteverwaltung, Benutzerverwaltung, uvm.) zur Verfügung, die kontinuierlich um weitere Module ergänzt werden.

Ein hoher Abstraktionsgrad ist eine wesentliche Vorraussetzung für eine kostengünstige und wartungsarme Entwicklung!
Merkmale
  • fachliches Modell
    - Modell unabhängig von der Technik des Zielsystems
    - Konzentration auf die fachliche Definition des Modells
    - Keine Programmierkenntnisse erforderlich
    - Kein Editieren von Quellcode erforderlich
  • Quellcodegenerierung
    - Hohe Wartbarkeit
    - Geringe Erstellungszeiten
    - Geringe Fehleranfälligkeit
    - Performanceoptimierter Quellcode durch minimale Ablaufkontrolle (if...else, ect. nur für fachliche Logik)
  • Java/JSP
    - Zukunftssicher
    - Leistungsfähig
    - Modern
    - Plattformübergreifend
    - Sicher
    - Standardisierte Bibliotheken
    - Komponententechnik
    - sehr gute Netzwerkfähigkeit
    - einfache und schnelle Datenbankanbindung
    - Unterstützung in allen größeren Application Servern
    - hohe Skalierbarkeit, verteilte Applikationen
Marken
Microsoft, Windows, SQL Server, WindowsNT, das Windows-Logo, Windows 2000, Windows Server 2003, Windows Server 2008, Windows Server 2012, Windows 95, Windows 98, Windows 98SE, Windows ME, Windows XP, Windows Vista, Windows 7, Windows 8, Windows 10, Word, Excel, Outlook, Microsoft Edge und Internet Explorer sind entweder eingetragene Warenzeichen oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern.

OpenOffice.org ist ein eingetragenes Warenzeichen der Team OpenOffice.org e.V.

Firefox und Mozilla sind eingetragene Warenzeichen der Mozilla Foundation.

Netscape, Netscape Navigator, und Netscape Communicator sind eingetragene Warenzeichen der Netscape Communications Corporation.

Opera ist ein eingetragenes Warenzeichen der Opera Software A/S.

Apple, das Apple Logo, Mac, Mac OS, Macintosh, Safari sind Warenzeichen von Apple.

Chrome und Google sind eingetragene Markenzeichen von Google Inc.

Adobe und Acrobat sind Warenzeichen von Adobe Systems Incorporated.

Sun, Sun Microsystems, das Sun-Logo, Sun Enterprise und Solaris sind Warenzeichen, eingetragene Warenzeichen oder Dienstleistungsmarken von Sun Microsystems, Inc., in den USA und in anderen Ländern.

Java ist ein Warenzeichen von Sun Microsystems.

Apache und Tomcat sind eingetragene Warenzeichen der Apache Software Foundation.

BEA, Tuxedo und WebLogic sind eingetragene Warenzeichen der BEA Systems Inc.

Linux ist ein eingetragenes Warenzeichen von Linus Torvalds.

UNIX ist ein eingetragenes Warenzeichen der X/Open Company Limited.

SuSE und Yast sind eingetragene Warenzeichen der SuSE Linux AG.

Oracle ist ein eingetragenes Warenzeichen der Oracle Corporation.

IBM, OS/390, z/OS, DB2 UDB, Lotus, Tivoli, CICS und WebSphere sind Warenzeichen der IBM Corporation.

MySQL ist ein eingetragenes Warenzeichen der MySQL AB in Schweden und ein Warenzeichen der MySQL AB in den Vereinigten Staaten von Amerika und in anderen Ländern.

Alle anderen genannten Warenzeichen (Produktnamen, Logos) und Marken sind Eigentum der jeweiligen Inhaber und werden als geschützt anerkannt.