Extensibility of D•OM

 

 

 

D•OM has modular, opened and stretchable architecture, allowing it to welcome generators of code or documentation.

Many generators are included in standard, the others can be easily developed to correspond to the specific necessities of a project or to target a language not supported yet.

Transformation principe

A generator implements transformation rules. Each rule describes how to produce one element of the target architecture depending on the given D•OM object model elements. The model can be enhanced with annotations which will be used as generation parameters.

These generators favor the capitalization of a reusable technical know-how in the other projects.

The automation of treatments guarantees a bigger reliability of the target code.

Extension of D•OM : the DomExtender component

A generator appears as an extension of D•OM, that is as a sort of module which comes to enrich the modelling environment. An extension of D•OM is developed using D•OM, with the same environment as for the functional prototyping.

So it is not necessary to learn a new language to develop an extension and all the power of the object modelling is available in order to specify the transformation rules. The user interface is automatically generated and integrated in D•OM interface.

D•OM integrates some predefined componants which allow :

// (Begin Article:new:Header preserved = false

public Article _new( String name, Object price) throws DomFailure {

// )End Article:new:Header

// (Begin Article:new:Body preserved = false

this.setName(name);

this.setPrice(price);

// )End Article:new:Body

// (Begin Article:new:User preserved = true

// This section will be preserved at the next code generation.

// )End Article:new:User

// (Begin Article:new:Footer preserved = false

return this;

}

// )End Article:new:Footer

Code generators

A lot of generators of code was developed by means of D•OM to meet the needs of various projects realized by ATOS. Each code generator is conceived in a modular way, It is in charge of implementing a software architecture service. The various generators can be organized to produce an application respecting the wished technical architecture.

Only the Java generation and persistence tools are delivered as example with D•OM. A complete and automated chain of development allowing the implementation of a business object server in distributed architecture Java / CORBA is proposed in a separate offer. Please consult us to know the availability of generators adapted to your needs.

Both generators delivered normally are describe in the following paragraphs:

Generation of objects in Java, JavaTool component

Application software objects are intended to run on the 3 tiers application server. They are generated from the business model. The implemented transformation principle produces classes Java having a behavior identical to that of the prototype generated by D•OM. However, some limitations were imposed to guarantee that the obtained Java source code is human-readable, maintainable and equivalent to the code written manually.

The correspondence between an UML class diagram UML (D•OM) and Java is rather simple because the concepts are close. The rules of transformation respect the usual standards of coding in Java, in particular those defined by Sun under the name JavaBean.

Generation of persistence, Persistence component

From an object model, defined in a set of packages, the D•OM extension named Persistence generates automatically the relational scheme necessary for the memorization in database of the model instances. Model annotations allow to steer the generation: for example, to specify the classes for which the instances should be memorized in the database, or to specify the names which will be used in the database (name of table, columns, etc.).
The result of the generation is a set of SQL scripts, whose purpose is to create the scheme (table, keys, constraints, stored procedures), to destroy the scheme, to activate or to deactivate the constraints.
The target database is Oracle, version 7 and later.

 

(c) Atos 2000, last page modification: january, 4th 2001