Delta Software Technology

Wir

Weitere Infos

Jobs

Zur Verstärkung unseres Teams suchen wir (m/w):

  • Vertriebsmitarbeiter
  • Softwareentwickler
  • Systemadministrator
  •  Sekretariat

Bewerben Sie sich jetzt...

Die IT-Branche sucht ständig nach neuen und effektiveren Möglichkeiten zur Software-Entwicklung und Wartung. Viele Jahre lang beneideten Software-Ingenieure ihre Kollegen in den Hardware-technischen Disziplinen um die Techniken, die dort im Laufe der Jahre entstanden waren und den Aufbau zuverlässiger, komplexer und kalkulierbarer Strukturen ermöglichen. Viel Zeit und Anstrengungen wurden darauf verwendet, etwas Ähnliches auch in der Welt des Software-Engineerings einzuführen.

Modulare Programmierung, strukturierte Programmierung, objektorientierte Programmierung – all dies waren Zwischenschritte auf dem Weg zu einer Prozessverbesserung innerhalb des Software-Engineerings. Diese Verfahren führen zwar alle zu einer Verbesserung auf der Ebene der Programmierung, aber einen Kernpunkt ließen sie unberücksichtigt – nämlich dass Anwendungen Zusammensetzungen aus einer Vielzahl verschiedener Programme sind. Deshalb muss nicht nur die Entwicklung einzelner Programme verbessert werden, sondern auch die Entwicklung ganzer Anwendungen.

Jeder, der als professioneller Programmierer tätig ist, erkennt schnell, dass ein großer Teil der Software-Entwicklung aus Wiederholungen besteht. Dieselben Funktionen werden in vielen verschiedenen Programmen implementiert. Dies gilt vor allem für technische Funktionen, die mit Anbindungen an Infrastrukturprodukte wie Datenbanken, Transaktionssysteme, Benutzeroberflächentechnologien etc. zu tun haben. Wären die Funktionen in jedem Fall exakt gleich, wäre die Angelegenheit sehr einfach. Leider gehören diese Wiederholungen in der Realität meist zur Kategorie "ähnlich – aber nicht identisch". Deshalb benötigen wir Prozesse und Werkzeuge, mit dem wir das Problem der ständigen Neuentwicklung ähnlicher Funktionalitäten lösen können.

Das allererste Release von Delta/ADS in den späten 70er Jahren unterstützte einige der Konzepte, die wir heute bei generativer Programmierung wieder finden. Natürlich gab es in der Zwischenzeit spektakuläre Verbesserungen in der Welt des Software-Engineering.

Delta hat viel investiert, um diese verschiedenen Welten zusammenzubringen – die praktische Erfahrung aus 40 Jahren Generator-Entwicklung, praktische Erfahrungen aus großen Entwicklungsprojekten, die aktuellsten Forschungsergebnissen zur generativen Programmierung und die neusten Überlegungen zur Software-Entwicklung.

Das Ergebnis ist eine Reihe neuer Technologien, die das aktuelle und zukünftige Produktangebot von Delta unterstützen:

  • ANGIE – ANGIE ist eine Frame-basierte Lösung für den Bau von Generatoren. ANGIE folgt dem Ansatz der generativen Programmierung und enthält eine Reihe allgemeiner Merkmale, die von verschiedenen Generatoren benötigt werden. Danach wird ein domänenspezifischer Generator für die Lösung eines spezifischen Problems hergestellt, sei es Code-Generierung oder die allgemeine Transformation von Modellen.
  • HyperSenses – Implementiert die Konzepte der Generativen Programmierung, in denen das zu lösende Problem in einer domänenspezifischen Sprache definiert wird. Dieses Programm wird aber nicht als Syntax in einer Textdatei, sondern als Modell in einem Repository gespeichert. Damit stehen verschiedene Sichten zur Verfügung um die Spezifikation zu definieren, zu pflegen und zu verstehen. Dies sind zum Beispiel Text-, Halbgrafik- und Grafik-Sichten. HyperSenses unterstützt die Erstellung generischer Modelle in einem OMG MOF/XML-Repository. Mit dem Werkzeug "Configurator" erhält der Programmierer eine aktive Textdarstellung dieses Modells. Der "Pattern Editor" definiert die in der Spezifikation verwendeten Muster. Der "Meta Composer" definiert das verwendete Meta-Modell.

Die Frame-basierte Generatortechnologie ANGIE hat sich bereits in verschiedenen umfangreichen Projekten bewährt und ist der Kern der Delta-Produkte SCORE Adaptive Bridges und SCOUT² Development Platform.

Und wohin jetzt?

Im nächsten Abschnitt erfahren Sie, wie Delta eng mit der Research-Community zusammenarbeitet und ausgewählte neue Technologien den akademischen und Entwickler-Communities kostenlos zur Verfügung stellt.

Generative Programmierung (GP) ist ein Ansatz in der Software-Entwicklung, der Probleme lösen soll, die immer wieder in realen Software-Projekten auftreten. Im Mittelpunkt der generativen Programmierung steht, Fließbandtechniken in die Software-Entwicklung einzubringen. Anstelle der direkten manuellen Entwicklung kundenspezifischer Anwendungen steht der „Zusammenbau“ des Systems.

Der wichtigste Unterschied zu den herkömmlichen Ansätzen liegt darin, dass man sich nicht auf die Entwicklung einer speziellen Anwendung konzentriert, sondern einen Schritt zurückgeht und über den Aufbau einer ganzen Systemfamilie nachdenkt. Dies gibt uns eine sichere Grundlage, um das Problem „ähnlich – aber nicht identisch“ angehen zu können, mit dem wir uns in der Software-Entwicklung so häufig auseinandersetzen müssen.

Die generative Programmierung stellt Werkzeuge und Techniken zur Verfügung um ganze Software-Systemfamilien zu modellieren. Mit ihnen können wir die Software-Komponenten in einer Art entwickeln, dass wir die speziellen, kundenspezifisch optimierten Endprodukte (Softwaresysteme), die die besonderen Unternehmens- und technischen Anforderungen optimal erfüllen, nach Bedarf generieren können.

Delta und Generative Programmierung

Delta entwickelt seit vielen Jahren Software-Produkte und kennt deshalb das Problem "ähnlich – aber nicht identisch" nur zu gut. Die allerersten Delta-Produkte in den frühen 70er Jahren nahmen mit dem Delta/ADS Code-Generator dieses Problem direkt in Angriff. Mit den leistungsfähigen Generatortechniken von Delta/ADS konnten die Entwickler anwendungsspezifischen von allgemeinem Code trennen. Die Delta/ADS Macro-Technologie erlaubte bis zu einem gewissen Grad eine Anpassung des Standard-Codes an spezielle Anforderungen.

In den letzten 40 Jahren hat Delta die Kerntechnologien der Werkzeuge zur Anwendungs-Entwicklung ständig verfeinert. Wir wissen sehr gut, mit welchen Problemen große Entwicklungs-Teams zu kämpfen haben – und genau hier setzt die generative Programmierung an.

In den letzten 15 Jahren hat Delta die Forschungen im Bereich generativer Programmierung aufmerksam verfolgt, weil diese Konzepte genau unserer Auffassung darüber entsprechen, wie die Software-Entwicklung aussehen kann und sollte.

Delta arbeitet eng mit führenden Universitäten zusammen und stellt der weltweiten Gemeinschaft von Wissenschaftlern und Entwicklern ausgewählte neue Technologien direkt zur Verfügung. Die frühzeitige Bereitstellung neuer Technologien ist ein zentrales Element des Forschungs- und Entwicklungsprozesses bei Delta. Sie gewährleistet ein frühzeitiges und umfassendes Feedback und unterstützt die Entwicklung von erstklassigen und stabilen Produkten, die hervorragend für den Einsatz in großen Projekten geeignet sind.

Und wohin jetzt?

Weitere Informationen über die Konzepte der generativen Programmierung und darüber, wie Delta diese Konzepte in seinen Kernprodukten nutzt, finden Sie in unserem Forschungsbereich

Jeder, der in der Software-Entwicklung tätig ist, kann bestätigen, dass bei der Erstellung großer Software-Systeme ein großer Teil der Arbeit aus Wiederholungen besteht. Ständig müssen wir etwas entwickeln, das „ähnlich – aber nicht identisch“ ist wie etwas Anderes und Schritte wiederholen, die wir bereits unzählige Male ausgeführt haben.

Delta verfügt über mehr als 40 Jahre Erfahrung in der Entwicklung von Software-Tools für den Einsatz in großen Anwendungsentwicklungsprojekten. Eines der Kernelemente der Technologie und Produkte von Delta ist die Lösung dieses Problems "ähnlich – aber nicht identisch".

In den letzten Jahren hat Delta die Forschungen im Bereich generative Programmierung aufmerksam verfolgt. Dabei handelt es sich um ein neues Programmierungsparadigma das ein großes Potential aufweist, der "ähnlich – aber nicht identisch"-Problematik effektiv begegnen zu können. Delta hat in diesem Bereich umfangreiche Investitionen getätigt und stellt nun nach und nach die Ergebnisse der verschiedenen Entwicklungsprojekte bereit.

In diesem Abschnitt unserer Website erhalten Sie eine Übersicht über die generative Programmierung und Deltas Aktivitäten in diesem Bereich:

  • Verbessertes Software-Engineering – Im Laufe der Jahre wurde der Software-Entwicklungsprozess signifikant verbessert: Zunächst kam die modulare Programmierung, ihr folgte später die strukturiert und dann die objektorientierte Programmierung. Wir suchen aber immer noch nach einer Lösung für Probleme der Kategorie "ähnlich – aber nicht identisch", die so häufig bei der Software-Entwicklung auftauchen.
  • Generative Programmierung – Der jüngste Versuch, das Problem "ähnlich – aber nicht identisch" zu lösen, ist die generative Programmierung, die Fließbandtechniken in die Prozesse der Software-Entwicklung einbringt. Anstatt kundenspezifischer Anwendungen von Hand zu entwickeln, wird das System aus einem Bestand wiederverwendbarer und kombinierbarer Teile zusammengebaut.
  • Produkte der nächsten Generation – Delta hat viel investiert, um die neuesten Forschungsergebnisse zur generativen Programmierung, die aktuellen Überlegungen zur Software-Entwicklung und seine 40-jährige Erfahrung bei der Entwicklung von Software-Werkzeugen miteinander zu verbinden. Das Ergebnis ist eine Reihe neuer Technologien, die das aktuelle und zukünftige Delta-Produktangebot unterstützen.
  • Forschung und Entwicklung – Delta arbeitet eng mit führenden Universitäten zusammen und stellt der weltweiten Gemeinschaft von Wissenschaftlern und Entwicklern ausgewählte neue Technologien kostenlos zur Verfügung. Deren frühzeitiges und umfassendes Feedback hilft Delta erstklassige und stabile Produkte für den Einsatz in großen Projekten zu entwickeln.

Sie wissen nicht, wo Sie beginnen sollen?

Wenn Sie etwas über die früheren Versuche zur Produktivitätssteigerung erfahren möchten, beginnen Sie am besten bei Verbessertes Software-Engineering. Eine Übersicht über die "nächste große Sache" in der Software-Entwicklung finden Sie unter Generative Programmierung. Im Abschnitt Produkte der nächsten Generation werden die neuen Delta-Produkte auf der Grundlage generativer Programmierung vorgestellt. Im letzten Abschnitt, Forschungs-Communities, wird erklärt, wie Delta mit der globalen Entwicklergemeinschaft an der Verbesserung der Produktqualität zusammenarbeitet.