openArchitectureWare

from Wikipedia, the free encyclopedia
OpenArchitectureWare

official logo
Basic data

developer openArchitectureWare
Current  version 4.3.1
(December 22, 2008)
operating system all Java capable
category Development tool
License EPL
OpenArchitectureWare ( Memento from February 25, 2014 in the Internet Archive )

The term openArchitectureWare, or oAW for short , is a platform for model-driven software development and model-driven testing . openArchitectureWare is freely available under the open source license Eclipse Public License and is being further developed by a large developer community.

In essence, openArchitectureWare offers the possibility of processing code generators for any model. These models include EMF models, almost all models created with UML tools, but also Visio models or textual specifications. Any source code can be generated from the model sources. Extensive options for model validation and simple model transformations are available.

With the integration into the Eclipse Galileo Release, oAW has been discontinued and is being further developed as a modeling workflow engine in the Eclipse Modeling Projects.

oAW language family

At its core, oAW consists of a language family consisting of three parts. All languages ​​are statically typed and use the same expression engine and the same flexibly expandable type system .

Xtend

Xtend is a functional language with which it is possible to expand existing metamodel types with additional logic. The concept is called extensions and is also included in the C # 3.0 specification. These extensions can be called up both within Xtend and in the other languages ​​Check and Xpand. The concept of Create Extensions also simplifies the transformation of models .

Check

Check is the equivalent of OCL . In contrast to OCL, however, it is also based on the oAW language family and can therefore not only be executed on MOF-compatible models, but also on any other. In addition, extensions defined using Xtend can be accessed.

Xpand

Xpand is a statically typed template language with special features that are important for code generation. Among other things, it can be used to write to files within the templates, templates can be called polymorphically and expanded or hidden by aspects .

Workflow engine

The structure of a generator must be designed and configured flexibly. The oAW workflow engine is a lightweight component framework based on Dependency Injection (DI for short) , which enables complex generators to be divided into individual so-called cartridges. A cartridge is any section within a generator that is cut together to form a kind of black box , making it easier to reuse. The exact interface is defined for each cartridge using a workflow description. If a generator is delivered, everything can be packed in a jar and then called up and executed via the workflow interface.

Subprojects

In addition to the core components, various sub-projects are offered that support the integration of existing functionality from other open source projects.

Recipe

The integration of generated and non-generated source code can be ensured with the help of the Recipe Framework. Immediately after generation, recipes check whether certain conditions are met (e.g. that a certain class was created manually, which in turn inherits from a generated class).

UML2 adapter

With the UML2 adapter it is possible to import models based on the Eclipse UML2 project. In addition, the information from the profiles used is mapped dynamically to the corresponding meta types so that the polymorphic capabilities of the oAW languages ​​can be used.

Xtext

Xtext is a framework for creating textual domain-specific languages (DSL). With Xtext not only the language and a corresponding parser can be generated, but also a specific text editor for Eclipse , which u. a. Checks the defined constraints directly when saving.

GMF adapter

With the Graphical Modeling Framework, graphic DSLs and corresponding editors can be created. With this adapter it is possible to easily execute constraints defined in the Check language within the generated Eclipse editor and to generate corresponding messages and markers.

literature

Web links

Individual evidence

  1. UML2. In: www.eclipse.org. Eclipse Foundation, archived from the original on April 15, 2006 ; accessed on September 16, 2019 (English).