Hi Luis, hi Stephane,

thanks for your questions. I'll answer them here:


Q: AndroMDA seems to focus only on J2EE?

A: No. The philosophy of AndroMDA is to be a code generation framework
based on the MDA specification(s) by OMG. The J2EE capabilities contained
in AndroMDA are meant only as a proof of concept - we made the cartridges
so that people can see: Yes, AndroMDA works for a complex environment.

When you look into AndroMDA a little deeper, you will find that:
* We load a PIM, currently based on UML 1.4 but now configurable for any
metamodel.
* We represent that PIM in memory as an abstract syntax tree (AST), one
object per model element.
* We wrap each element in the AST inside another object (called a
"metamodel facade" or "metafacade" for short) that can transform that PIM
model element into a set of PSM elements or can simply return a
"PSM-formatted representation of that PIM element.
* We then run a template engine (Apache Velocity, for example) and let it
access that "PSM-formatted representation" and transform it to source code
or other text files.

The key thing to understand about AndroMDA is: Contrary to other tools we
do not ship "out of the box" solutions (although the sample J2EE demo
cartridges we supply are very very close). Instead, the process is as
follows: 
1) An architect of the target project analyzes the repeatable and boring
aspects of his architecture and decides which ones should be automated.
2) Then, she writes so-called "cartridges" for AndroMDA that do the code
generation for her. Cartridges consist of metafacades (modeled in UML and
generated by AndroMDA) and source code templates.
3) AndroMDA takes care of all that model loading, AST building, metafacade
instantiation and template engine invocation and finally invokes the
architect's cartridge templates.

Now, all this is completely generic and independent of a particular target
platform (except you need a JVM to run AndroMDA itself at build time!). We
have configurable mappings from PIM datatypes to programming language
datatypes and to database types. So, nothing would keep us/you from
generating code in C# for .Net, using ASP.Net and ADO.Net and let
everything run on Mono or Windows Server. When the architect decides that
she wants to generate Cobol code for an IBM 360, she can simply write a
cartridge for that platform, too! (Although I would not recommend that to
her). :-)

Summary:
* No, AndroMDA is not focused on J2EE.
* The J2EE cartridges are just meant to be excellent samples for how to
write cartridges.
* You need an experienced architect to customize AndroMDA for your project.
* I am happy to assist you with that.

---- Your next question: ----

Q: According to my current knowledge of MDA the transformation from
Platform Independent Model (PIM) to Platform Specific Module (PSM) should
be implemented through a J2EE profile (something I would classify as a
passive layer on which the transformation would be based). AndroMDA is more
like an active element to which a PIM is given as input and it will make it
into a 
J2EE application (and not a PSM).

A: It depends on what you mean by "profile". A UML profile, for example, is
just a set of modeling conventions based on stereotypes and tagged values.
We use a UML profile for enterprise applications, close to OMG's EDOC
profile but much simpler than that. You use stereotypes like <<Entity>>,
<<Service>>, <<FinderMethod>>, etc. and parameterize code generation by
tagged values that you attach to the PIM classes. An example for such a
tagged value is "@andromda.ejb.query" which tags a <<FinderMethod>>
operation so that the PSM objects and the templates know which EJB-QL query
string is attached to that operation. You could attach more tagged values
to the same <<FinderMethod>> that would allow you to generate Hibernate
queries or ADO.Net queries from the same PIM.

About active vs. passive: AndroMDA itself is an active code generation
framework that loads a model and invokes cartridges (a plug-in mechanism)
that generate PSM objects and text files, for example source code or config
files. Cartridges consist of PSM-generating metafacades and text-generating
templates.

Summary:
* A profile is used during PIM modeling.
* AndroMDA is active and extensible.
* AndroMDA generates PSM objects and then text files.

---- Your next question: ----

Q: Is AndroMDA approach/architecture flexible enough to use it in the
future as a means to transform a PIM into a, for instance, .Net
application? Does AndroMDA address this kind of extensibility for a MDA
tool?

A: Yes, it is flexible and extensible. The AndroMDA 3.0 architecture
consists of three main elements: Repository, metamodel and cartridge. A
repository is something that can load an arbitrary metamodel and can then
load models based on that metamodel. A metamodel is a model that can
describe the structure of a set of models (UML has a metamodel, for
example). A cartridge is a set of metamodel facades and templates. The
repository does not know which metamodel and model it loads. The metamodel
does not know into which repository it was loaded. The metafacades in the
cartridge know about the metamodel AST objects they hide and transform to
PSM objects. The templates know about the metafacades and the PSM objects
from which they generate their code but know nothing about the metamodel
itself and the repository.

Summary:
* Everything is pretty independent and light-weight.
* You can extend AndroMDA in all three architectural elements, that means:
* Yes, you can generate from an arbitrary repository, loaded with models
based on an arbitrary metamodel, transform into objects of an arbitrary PSM
that will be transformed into arbitrary text files.

Is that flexible enough for you? :-)

------ Stephane's question: -----------------

Q: I've told him that AndroMDA "follow MDA pardigm" and is not a real MDA
platform, I sent him to openMDX.
A: This was possibly a mistake, depending on what Luis calls a "real MDA
platform". Luis should decide if AndroMDA is a real MDA platform, based on
the answers to his questions above.

Luis, what do you say?

Cheers...
Matthias


Original Message:
-----------------
From:  [EMAIL PROTECTED]
Date: Wed,  7 Apr 2004 14:05:22 CEST
To: [EMAIL PROTECTED]
Subject: [Andromda-devel] A strategical and technical question from Luis


Hi evrybody, 
 
I've a good question on AndroMDA by Luis ([EMAIL PROTECTED]) 
from ArgoUML list. I've tried to answer him but I also told him I'll 
copy to this list so he maybe will have a more pecise answer (It 
seems to be an good and important question): CUT AND PASTE 
 
"As a return to my attemptive (I hope with 50% accuracy) to answering 
your questions I would like you to answer the following question: 
AndroMDA seams to focus only on J2EE (I only knew about it a few days 
ago, so, maybe I'm wrong here). According to my current knowledge of 
MDA the transformation from Platform Independent Model (PIM) to 
Platform Specific Module (PSM) should be implemented through a J2EE 
profile (something I would classify as a passive layer on which the 
transformation would be based). AndroMDA is more like an active 
element to which a PIM is given as input and it will make it into a 
J2EE application (and not a PSM). Is AndroMDA approach/architecture 
flexible enough to use it in the future as a means to transform a PIM 
into a, for instance, .Net application? Does AndroMDA address this 
kind of extensibility for a MDA tool? - This is the approach I've 
seen proposed for Agile MDA in a white paper in OMG site." 
 
I've told him that AndroMDA "follow MDA pardigm" and is not a real 
MDA platform, I sent him to openMDX. 
 
If someone can take pleasure to answer this strategical question : 
[EMAIL PROTECTED] 
 
THANKS 

-------------------------------------------------------------
NetCourrier, votre bureau virtuel sur Internet : Mail, Agenda, Clubs,
Toolbar...
Web/Wap : www.netcourrier.com
T�l�phone/Fax : 08 92 69 00 21 (0,34 � TTC/min)
Minitel: 3615 NETCOURRIER (0,16 � TTC/min)



-------------------------------------------------------
This SF.Net email is sponsored by: IBM Linux Tutorials
Free Linux tutorial presented by Daniel Robbins, President and CEO of
GenToo technologies. Learn everything from fundamentals to system
administration.http://ads.osdn.com/?ad_id70&alloc_id638&op�k
_______________________________________________
Andromda-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/andromda-devel


--------------------------------------------------------------------
mail2web - Check your email from the web at
http://mail2web.com/ .




-------------------------------------------------------
This SF.Net email is sponsored by: IBM Linux Tutorials
Free Linux tutorial presented by Daniel Robbins, President and CEO of
GenToo technologies. Learn everything from fundamentals to system
administration.http://ads.osdn.com/?ad_id70&alloc_id638&op=click
_______________________________________________
Andromda-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/andromda-devel

Reply via email to