openArchitectureWare
OpenArchitectureWare
|
|
---|---|
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
- Thomas Stahl, Markus Völter, Sven Efftinge: Model-driven software development. Techniques, engineering, management . 2nd updated and expanded edition. Dpunkt-Verlag, Heidelberg 2007, ISBN 978-3-89864-448-8 .
- Georg Pietrek, Jens Trompeter (Ed.): Model-driven software development. MDA and MDSD in practice . Developer Press, Frankfurt am Main 2007, ISBN 978-3-939084-11-2 . ( Website for the book ).
- Efftinge, Völter, Haase, Kolb - The pragmatic code generator programmer - the ServerSide
- Friese, Efftinge, Köhnlein - Build your own textual DSL with tools from the Eclipse Modeling Project
- Martin Fowler's DSL example implemented in Xtext
- Implementation and Integration of a Domain Specific Language with oAW and Xtext by Volker Koster (PDF file; 1000 kB)
- Creating DSLs in Java, Part 3: Internal and external DSLs - Parse and refine an external DSL with openArchitectureWare's Xtext By Venkat Subramaniam, JavaWorld.com, 08/19/08