openArchitectureWare

openArchitectureWare
OpenArchitectureWare
offizielles Logo
Entwickler openArchitectureWare
Aktuelle Version 4.3.1
(22. Dezember 2008)
Betriebssystem alle Java fähigen
Kategorie Entwicklungswerkzeug
Lizenz EPL
openarchitectureware.org

Hinter dem Begriff openArchitectureWare oder kurz oAW verbirgt sich eine Plattform für die modellgetriebene Softwareentwicklung und das modellgetriebene Testen. openArchitectureWare ist unter der Open-Source-Lizenz Eclipse Public License frei verfügbar und wird von einer großen Entwicklergemeinde weiterentwickelt.

Im Wesentlichen bietet openArchitectureWare die Möglichkeit, Codegeneratoren für beliebige Modelle zu verarbeiten. Zu diesen Modellen gehören EMF-Modelle, fast alle mit UML-Werkzeugen erstellten Modelle, aber auch Visio-Modelle oder textuelle Spezifikationen. Aus den Modellquellen kann beliebiger Quellcode generiert werden. Umfangreiche Möglichkeiten für Modellvalidierungen und einfache Modelltransformationen stehen zur Verfügung.

Mit der Integration in das Eclipse Galileo Release ist oAW eingestellt worden und wird als Modeling Workflow Engine im Eclipse Modeling Projects weiterentwickelt.

Inhaltsverzeichnis

oAW-Sprachfamilie

Im Kern besteht oAW aus einer Sprachfamilie bestehend aus drei Teilen. Alle Sprachen sind statisch typisiert und verwenden dieselbe Expression-Engine und dasselbe flexibel erweiterbare Typsystem.

Xtend

Xtend ist eine funktionale Sprache, mit der es möglich ist bestehende Metamodelltypen mit zusätzlicher Logik zu erweitern. Das Konzept heißt Extensions und ist ebenfalls in der C# 3.0 Spezifikation enthalten. Diese Erweiterungen können sowohl innerhalb von Xtend als auch in den anderen Sprachen Check und Xpand aufgerufen werden. Weiterhin vereinfacht das Konzept der Create Extensions die Transformation von Modellen.

Check

Check ist das Äquivalent zur OCL. Im Gegensatz zu OCL basiert es aber ebenfalls auf der Sprachfamilie von oAW und kann deshalb nicht nur auf MOF-kompatiblen Modellen ausgeführt werden, sondern auch auf beliebigen anderen. Außerdem kann auf mittels Xtend definierte Extensions zugegriffen werden.

Xpand

Xpand ist eine statisch typisierte Templatesprache mit speziellen, für die Codegenerierung wichtigen Features. Unter anderem kann damit innerhalb der Templates in Dateien geschrieben werden, Templates können polymorph aufgerufen werden und durch Aspekte erweitert bzw. verdeckt werden.

Workflow-Engine

Der Aufbau eines Generators muss flexibel gestaltet und konfiguriert werden können. Die oAW-Workflowengine ist ein auf Dependency Injection (kurz DI) basierendes leichtgewichtiges Komponentenframework, das es ermöglicht, komplexe Generatoren in einzelne sogenannte Cartridges aufzuteilen. Eine Cartridge ist ein beliebiger Abschnitt innerhalb eines Generators, der zu einer Art Black Box zusammengeschnitten wird und so einfacher wiederverwendet werden kann. Mittels einer Workflowbeschreibung wird für jede Cartridge die genaue Schnittstelle definiert. Wird ein Generator ausgeliefert, kann alles in einem jar verpackt und dann über die Workflow-Schnittstelle aufgerufen und ausgeführt werden.

Subprojekte

Neben den Kernkomponenten werden verschiedene Subprojekte angeboten, die die Integration bestehender Funktionalität aus anderen Open-Source Projekten unterstützen.

Recipe

Die Integration von generiertem und nicht generiertem Quellcode kann mit Hilfe des Recipe Frameworks sichergestellt werden. Recipes überprüfen direkt nach der Generierung, ob bestimmte Bedingungen erfüllt sind (z. B. dass eine bestimmte Klasse manuell erstellt wurde, die wiederum von einer generierten Klasse erbt).

UML2-Adapter

Mit dem UML2-Adapter ist es möglich, Modelle einzulesen, die auf dem Eclipse UML2-Projekt basieren. Zusätzlich werden die Informationen aus den genutzten Profilen dynamisch auf entsprechende Metatypen gemappt, damit die polymorphen Fähigkeiten der oAW-Sprachen ausgenutzt werden können.

Xtext

Xtext ist ein Framework zur Erstellung von textuellen Domänenspezifischen Sprachen (DSL). Mit Xtext können nicht nur die Sprache und ein entsprechender Parser erzeugt werden, sondern auch ein spezifischer Texteditor für Eclipse, der u. a. die definierten Constraints direkt beim Speichern prüft.

GMF-Adapter

Mit dem Graphical Modeling Framework können grafische DSLs und entsprechende Editoren erstellt werden. Mit diesem Adapter ist es auf einfache Weise möglich, in der Sprache Check definierte Constraints innerhalb des generierten Eclipse-Editors auszuführen und entsprechende Meldungen und Marker zu erzeugen.

Literatur

Weblinks


Wikimedia Foundation.

Игры ⚽ Нужно решить контрольную?

Schlagen Sie auch in anderen Wörterbüchern nach:

  • OpenArchitectureWare — Entwickler: openArchitectureWare Aktuelle Version: 4.3.1 (22. Dezember 2008) …   Deutsch Wikipedia

  • OAW — OpenArchitectureWare Entwickler: openArchitectureWare Aktuelle Version: 4.3.1 (22. Dezember 2008) …   Deutsch Wikipedia

  • Model Driven Software Development — Modellgetriebene Softwareentwicklung (englisch Model Driven Software Development, MDSD) ist ein Oberbegriff für Techniken, die aus formalen Modellen automatisiert lauffähige Software erzeugen.[1] Dabei werden domänenspezifische Sprachen (englisch …   Deutsch Wikipedia

  • Modellbasierte Softwareentwicklung — Modellgetriebene Softwareentwicklung (englisch Model Driven Software Development, MDSD) ist ein Oberbegriff für Techniken, die aus formalen Modellen automatisiert lauffähige Software erzeugen.[1] Dabei werden domänenspezifische Sprachen (englisch …   Deutsch Wikipedia

  • Modellgesteuerte Entwicklung — Modellgetriebene Softwareentwicklung (englisch Model Driven Software Development, MDSD) ist ein Oberbegriff für Techniken, die aus formalen Modellen automatisiert lauffähige Software erzeugen.[1] Dabei werden domänenspezifische Sprachen (englisch …   Deutsch Wikipedia

  • Itemis AG — Unternehmensform Aktiengesellschaft Gründung 2003 Unternehmenssitz …   Deutsch Wikipedia

  • Modellgetriebene Softwareentwicklung — (englisch Model Driven Software Development, kurz MDSD) ist ein Oberbegriff für Techniken, die automatisiert aus formalen Modellen lauffähige Software erzeugen.[1] Dabei werden domänenspezifische Sprachen (englisch Domain Specific Languages, kurz …   Deutsch Wikipedia

  • itemis — AG Rechtsform Aktiengesellschaft Gründung 2003 Sitz Lünen …   Deutsch Wikipedia

  • Language-oriented programming — is a style of computer programming, via metaprogramming in which, rather than solving problems in general purpose programming languages, the programmer creates one or more domain specific programming languages for the problem first, and solves… …   Wikipedia

  • Model-driven engineering — (MDE) is a software development methodology which focuses on creating and exploiting domain models (that is, abstract representations of the knowledge and activities that govern a particular application domain), rather than on the computing (or… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”