Hello Matthias and Stephane,


Wow! This is a great return for my humble replies to Stephane's questions. Furthermore 
since it made it much more clear how fostering Stephane's project [you should give it 
a name ;-)] may be for ArgoUML in the perspective of MDA using AndroMDA. ArgoUML 
capabilities are going the way of roundtrip engineering. My main concerns were how it 
could be used in the perspective of MDA. Now I know and it is possible to see how it 
might be achieved.



Best luck for your project Stephane - I'll stay tuned. And thanks once more for you 
good answers Matthias.



Luis



PS: At work I'm starting a major J2EE project (Telco management) and I'll give a try 
at AndroMDA in this context. We�re going to use Together for modeling work, but, I 
think it is capable of exporting XMI. (I'm just starting to catch the possibilities of 
AndroMDA approach.)



PS2: I�m cross posting to ArgoUML dev list since I think these answers are of interest 
there too. Sorry if inconvenient Argonauts...



> --- Mensagem Original ---

> De: "[EMAIL PROTECTED]" [EMAIL PROTECTED]

> Para: "" [EMAIL PROTECTED], "" [EMAIL PROTECTED], "" [EMAIL PROTECTED]

> Enviado a: 2004/04/07

> Assunto: RE: [Andromda-devel] A strategical and technical question from Luis



> 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/ .







Clix Rapidix - Aumente at� 6X a velocidade da sua Internet
Adira em http://acesso.clix.pt e comece logo a navegar




-------------------------------------------------------
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_id=1470&alloc_id=3638&op=click
_______________________________________________
Andromda-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/andromda-devel

Reply via email to