Deutsch (DE-CH-AT)English (EN)Francais (Fr)

RSS-Feed abonnieren Folge D-S-T-G auf Twitter Werde D-S-T-G-Fan auf Facebook D-S-T-G auf XING D-S-T-G auf LinkedIn D-S-T-G auf Google+ D-S-T-G auf YouTube

Worum es geht

Der Einsatz von Software dient der Automation von Prozessen. Um so mehr verwundert die Tatsache, dass die komplexen Prozesse der Software-Erstellung selbst kaum automatisiert werden. Eine vollautomatische Generierung ganzer Anwendungssysteme ist zwar vorläufig nicht erreichbar und auch für die Zukunft unwahrscheinlich. Unterhalb dieses hohen Anspruchs jedoch sind viele Varianten von Werkzeugen denkbar, die Software-Systeme mehr oder weniger automatisch erzeugen können. Die Automation der Software-Produktion beschleunigt die Software-Entwicklung, reduziert die Entwicklungskosten, und sie verbessert zudem die Qualität, vermindert die Fehler, senkt den Wartungsaufwand und die Wartungskosten.

Selbstverständlich sind diese Überlegungen nicht neu, aber zeitweilig war der Eindruck entstanden, dass sie durch den Einsatz objektorientierter Techniken überflüssig geworden wären. Zwar bringt die objektorientierte Programmierung ein höheres Maß an Abstraktion, aber kaum Automation. In diesem Zusammenhang tauchte vor ca. zehn Jahren erstmals der Begriff Generative Programming (GP) auf und es erschien das gleichnamige Buch von Czarnecki und Eisenecker (K. Czarnecki, U. Eisenecker, "Generative Programming", Addison Wesley, 2000).

Generative Programming – ein Überblick

Das generative DomänenmodellGP wird als neues Software-Entwicklungs-Paradigma verstanden, das aber nicht mit den aktuellen Paradigmen – insbesondere der Objektorientierung – in Konkurrenz steht, sondern diese ergänzt. Neben der Automation der Software-Entwicklung steht vor allem die Realisierung von Software Systemfamilien im Zentrum der Überlegungen.

 

 

 In der herkömmlichen Entwicklung werden Komponenten oder ganze Systeme mit ähnlichen Eigenschaften einzeln entwickelt. Im Gegensatz dazu geht das GP-Prinzip davon aus, dass die Mitglieder einer Systemfamilie generiert werden können, und zwar auf der Basis eines gemeinsamen Modells der Systemfamilie, dem generativen Domänenmodell. Dieses Modell besteht aus drei Elementen:

  1. einer Methode, die Familienmitglieder zu spezifizieren;
  2. Bausteinen, aus denen jedes Mitglied zusammengebaut werden kann und
  3. dem Konfigurationswissen, um die Spezifikationen in Implementierungen zu übersetzen.

Das ist ähnlich der Bestellung eines Autos: Es gibt ein Auftragsformular, um ein Auto zu bestellen, dann gibt es die Komponenten, aus denen das Auto zusammengebaut wird und es gibt jemand, der weiß, wie das Auto auftragsgemäß gebaut wird. Letzteres soll möglichst automatisiert erfolgen, also im Fall von Software mit entsprechenden Generatoren. Dafür werden im Umfeld des GP mehrere Ansätze propagiert. Bei Delta Software Technology wird ANGIE als Basis-Generatorsystem für die generative Programmierung eingesetzt; dies geschieht neben der eigenen Produktentwicklung auch in ernstzunehmenden Kundenprojekten.

Die Generatorsprache ANGIE

ANGIE umfasst eine Skriptsprache samt Compiler und das zugehörige Laufzeitsystem, spezialisiert auf die Implementierung von Software-Generatoren. Die ANGIE zugrunde liegende Frametechnologie bietet eine einfache und schnelle Möglichkeit, wartbare Generatoren zu realisieren und sich dabei ganz auf die semantische Kernaufgabe zu konzentrieren. Dabei ist ANGIE auf Erweiterbarkeit und Integrierbarkeit ausgelegt und stellt mittlerweile die technische Basis mehrerer Werkzeuge und Produkte dar, unter anderem auch für das modellbasierte Generatorsystem HyperSenses.

Aktuelle Entwicklungen

Während die Generatorsprache ANGIE die technische Seite der Implementierung von Generatoren abdeckt, gibt es im Bereich des Entwurfs von Systemfamilien bis zur Parametrisierung der Generatoren einen erheblichen Bedarf an entsprechenden Werkzeugen. Die Modellierung und Spezifikation von Systemfamilien erfolgt mit Techniken wie Domain Engineering, Feature Modelling und Domain Specific Languages (DSLs). Zum einen geht es darum den Modellierungsprozess für Systemfamilien zu unterstützen, z.B. durch Editoren für Merkmalmodelle. Zum anderen sollen Generatoren über DSLs parametrisiert werden – die dafür notwendigen Spezifikationen und Komponenten lassen teilweise automatisch erzeugen, eine entprechende Standardisierung vorausgesetzt. Dort gibt es aktuelle Neuentwicklungen.

Newsletter

  • 12. Juni 2014
    Newsletter Juni 2014
    ** ADS on Eclipse 6.2 ** Den Source-Code Ihrer Kunden verstehen ** AMELIO Logic Discovery ** Perfekte Daten-Services **
  • Bleiben Sie auf dem aktuellen Stand mit unserem Newsletter:

Quotes

„Ich kann mir vorstellen, dass Model-Driven Development und Product Lines einen ähnlichen Innovationssprung bringen können, wie wir ihn durch den Einsatz von Delta ADSplus und SCORE für unsere plattformunabhängige Produktentwicklung erreicht haben.“
Oswald Klackl, Leiter Software Engineering
B+S Banksysteme

B+S Banksysteme