Skip to main content

Chi Gen: structure of a generator

The ChiGen is a java application that executes specific transformation (cartridges) against a specific metamodel (Chronos).

Components

Metamodel

The metamodel is the model that describes models, in other words it's a collection of the elements that we use in the modelling language. the CHiGen uses the Chronos and Ouranos Metamodels.

Xtend

Xtend is a functional language, with which it is possible to expand existing types described in the Metamodel with additional logic. The concept is called Extensions (it is also part of the C # 3.0 specification). These extensions can be accessed both within Xtend and in the other family's languages (check and Xpand)  . Furthermore, the concept of  Extensions simplifies the transformation of models in other models (M2M).

Check

the Check language is considered the be an equivalent of OCL. Unlike OCL, it's also based on the language family of oAW and can therefore be carried out not only on MOF-compliant models, but also to any other. It can also be accessed by means of defined Xtend Extensions.

Xpand

Xpand is a statically typed language template with specific, important features for code generation . Among other things, can thus be written in files directly within the templates , templates can be called  in a polymorphic fashion and extended with Aspects.

Workflow Engine

The structure of a generator must be flexibly designed and configured. The Workflow Engine is based  on a Dependency Injection (short DI ) , a lightweight components framework that makes it possible to divide complex operations  in individual steps. A step  is any section within a cartridge, which is edited into a kind of black box and can be easily reused. With a workflow description for each step the exact interface is defined .When the generator is delivered, everything can be packaged in a  jar and a selected  workflow for a cartridge can executed.

CWM and ChiGen: How this works

When you work with the Chronos Web Modeler web application, the information is initially created in the CWM front end – javascript component. In the second step it's send to a backend system - PHP component - called Chronos Business Object Repository (BOR). The BOR store it in a database (mySQL)
When you decide to generate information, the BOR reads the MYSQL DB and transforms the information in a plain XML format. Then it pass the XML to the Chi GEN itself - a Java program.
The data flow below shows the Transformations with their input and output artifacts:

the Chi Gen first transform the XML in UML (ECORE metamodel). Now you have a valid UML file. This could be achieved also by using other UML model program like Sparx Enterprise Architect (file EA to the right).
Having a valid UML file, you can apply any cartridge (transformation in a special technology). An example is generating a complete application in PHP as in the tutorial "Hello world". The generated code is exactly what you will write down manually in an ideal case, because is coming from a “Reference Implementation” that was previously written by an experience developer. In this case, the task of creating the single files are repeated for the amount of the objects in the model.

Download

you can download the ChiGen from 

Comments

garlanzablocki said…
Best Slot Machines and Bonuses for 2021 | Slot Mastering
We explain why you should try our new casino 당진 출장샵 slots games and what bonuses 영천 출장샵 are offered and best slot machine bonuses! Check 포항 출장마사지 out the best slot machine 영주 출장안마 casinos and 양주 출장마사지 bonuses!

Popular posts from this blog

TOGAF diagram examples

Foreword This article contains consistent examples of all TOGAF diagrams for the four architectural domains. After many years as a TOGAF practitioner, I have to say that it's a lot that can be improved in the framework, that often remains vague and some time is inconsistent. In the TOGAF specs, some of the metamodel elements  are well described while others are left to our best judgment. The DAF metamodel is a tailored version of the TOGAF one, implemented as UML profile and maintained in Sparx Enterprise Architect.  Those examples are the result of real life use of TOGAF in projects: you may or may not use them for the the sake of the TOGAF certification exams.

Can EA save the world?

Nowadays we have developed the most complex society humanity has ever known. And we have maintained it up to this point. But technological innovation evolves like any other aspect of complexity: the investments in research and development grow increasingly complex and reach diminishing returns. That is the point where the level of profits - or benefits - gained is less than the amount of money or energy invested . Therefore, we cannot expect continue forever to spend more and more on technological innovation when we’ve reached the point of diminishing returns. This is why Joseph Tainter, author of the book “The Collapse of Complex Societies ” argues that our system of innovation is going to change very significantly over the next decades. By the end of the century, it will not be anything like what we know today. It will have to change deeply. And it’s likely that innovation is not going to be able to solve our problems as readily as it has done to this point.

Beyond DevOps: Architecture for the XXI century Enterprise

Where DevOps come to play DevOps while over rated is part of the big picture of the Digitral transformation DevOps ( dev elopment and op erations) is an enterprise software developmen t term used to mean a type of agile relationship between software development and IT operations. The goal of DevOps is to create a better collaboration culture between the two functions. However often a DevOps implementation results in the adoption of a collection of tools that are supposed to automate processes in software development and operation rather than a real change in culture. Automation of some processes is laudable, but it represents only a part of the CIOs concerns. DevOps come in play when software is already being developed and maintained, it proposes nothing regarding the business strategic planning, the requirement analysis and architecture that precede it. Moreover,typically a DevOps environment requires a considerable cost to be set up and maintained, so it represen