AndroMDA 3.0M3 - open source MDA

Discussions

News: AndroMDA 3.0M3 - open source MDA

  1. AndroMDA 3.0M3 - open source MDA (56 messages)

    AndroMDA is a code generation framework that follows the Model Driven Architecture (MDA) paradigm. It takes a UML model from a CASE tool and generates classes and deployable components (J2EE or other), specific for your application architecture. Because of its built-in code generation support for real world target platforms, it has become the mainstream open source MDA tool for generating enterprise applications.
     
    The AndroMDA Team is proud to announce the AndromMDA 3.0M3 release! 3.0M3 is the third milestone of 3.0, the last milestone before we go to the first release candidate. It includes lots of new features, bug fixes and vastly improved documentation. Some of the exciting new features are:

    * The new Spring cartridge is a very full featured transactional/persistence cartridge that can generate code for EJB containers (i.e. JBoss) as well as standalone web containers (like Tomcat) with just a namespace property change.

    * The AndroMDApp maven plugin is now VERY configurable, it allows you to pretty much generate any kind of app you want (i.e. with/without webservices, with/without a web tier, also allows you to choose from the hibernate, spring and ejb cartridges for the transactional/persistence layer). For 3.0 final, the app generator will be able to generate standalone WARs as well.
     
    * The Hibernate cartridge now supports Hibernate's Three Inheritance Strategies and allows root entities to be generated as interfaces.
     
    * The bpm4struts cartridge now allows you to have fine grain control of all the different aspects of the generated web application. Most of the web app will run out of the box, without manual intervention!
     
    * We now allow merging of templates + cartridge descriptors and metafacade descriptors, this means it's VERY easy to configure/extend cartridges without having to update the jar (basically the extended features could become part of your project).

    * We support the concept of merge-points in any cartridge or descriptor, this allows users to add anything to generated content that may not be included in content generated directly from the model.

    For exact details about all the improvements that we made in this release, see http://www.andromda.org/changes-report.html#3_0M3

    You can download the 3.0M3 release from the following URL:
    http://sourceforge.net/project/showfiles.php?group_id=73047&package_id=117392&release_id=292668

    Enjoy working with Open Source MDA!

    Cheers...
    The AndroMDA team

    Threaded Messages (56)

  2. Some time ago I took a look a mda and it seemed rather difficult to implement in real large applications?

    So it would be great if there where people out there using this kind of technology (especially the Spring Hibernate cardridges interests me) and willing to share some experiences on how and when is can be used, what the positive and negatives feelings are about using this kind of technology instead of making your own pojo and marking them with i.e. xdoclet

    Grtz
  3. AndroMDA - Applications[ Go to top ]

    First of all, congrats to AndroMDA team for delivering the newest milestone!

    Here are some of my opinions about AndroMDA:

    1. Great tool: easy to use, very good documentation. In a very short time I could write my own "cartridges" (transformation rules). The problem of doing your own cartrigde is to understand the 4 layer (M0 - Instance, M1 - Model, M2 - Metamodel, M3 - Meta-Metamodel) concept of OMG. If you want to write your own cartridge you need to work in the meta layer (M2) and - in my experience - for many people this is not that easy.

    2. You don't need to introduce AndroMDA in one time. Do it step by step. I'm using AndroMDA to replace some of the codes in OpenUSS right now. OpenUSS has more than 400 HTML files for the user interface, totally more than 2500 compiled Java classes. Also, we have some other components, which we separated from OpenUSS. So, I think OpenUSS is a middle size J2EE web application.
    For this purpose I built EJOSA which is the infrastructure to build any other J2EE-based information system. On the other side EJOSA also plays a role in teaching students in J2EE area.

    Surely, I'm lucky, because we already have a rigorous structure in EJOSA and therefore OpenUSS. We use "seperation of concerns" concept and component-based software engineering concept since beginning of the project, so it is very easy for us to introduce the "model" part for each components. In this way we don't have to do "one time introduction". Instead we are bringing "model" layer step by step for each components. Generate what you need to generate.

    3. To compare with XDoclet (some AndroMDA cartridges use XDoclet as well), I feel that MDA concept - in general - is a lot more powerful than XDoclet or annotations in JDK 5 alone. You use attributes or annotations to "describe" something. So at the end you want to mix between:
    - "imperative" (all OO languages are imperative languages). You tell the computer *how* to reach your target and
    - "descriptive". You tell your computer *what* to reach without to tell it how to reach that target.
    These both concepts in combination are very powerful.

    If you do your modelling your application in the beginning you only describe "what" to reach and not "how". And this is the power of MDA, because at the end you mix the "what" and the "how" and you don't loose your "what". If you are *not* using transformation you will loose your "what" later because you just implement ("how") the codes without to update the model ("what").

    3. UML tools. This is still the weakest point in our MDA world. To be able to spread MDA concept we need to have a reference implementation of a UML tool, because UML is the language for this purpose (I know that Microsoft and any others would prefer to have their own DSL but I'm for UML :-)). If you are interested in this topic, just search in TSS something about DSL, there are a lot of interesting discussions...

    The point is that we don't have any Open Source reference implementation of UML tool, which really implement the standards correctly (XMI, UML, MOF, ...). Do you think, J2EE (web, ejb container) will be very successful without any Open Source reference implementations like Tomcat? Would Java very successful if we need to buy the compiler and all the components (API) first? I DON'T THINK SO.

    And this is the problem of OMG. OMG is not a company like Sun with Java and JCP... Who wants to give us a UML tool (RI) for free or Open Source? Nobody, and OMG will not be able to do this task.

    ArgoUML is not usable with AndroMDA. You can use MagicDraw CE for free but it only offers you class diagram, which is too contraint. You can use PoseidonUML CE for free and you get all the UML diagrams you need, but now with the PoseidonUML 3.0 version they changed the license, so you can only use PoseidonUML CE 3.0 for non-commercial projects. The last version to be used for any projects is PoseidonUML CE 2.6.


    So, I hope I can help you a bit with all your questions :-)

    Cheers,
    Lofi.

    More info about EJOSA (which integrated AndroMDA):
    http://www.theserverside.com/news/thread.tss?thread_id=30685
    Article series (Part I) of EJOSA:
    http://www.jaxmagazine.com/itr/online_artikel/psecom,id,653,nodeid,147.html
    OpenUSS:
    http://sourceforge.net/projects/openuss
  4. AndroMDA - Applications[ Go to top ]

    Lofi,
      
    If you can say, which UML tool do you use?

    And thanks for saying we need a reference implementation. I was sort of trying to say that.
  5. AndroMDA - Applications Tools[ Go to top ]

    Hi Mark,

    I use PoseidonUML CE 2.6. The "look&feel" of the tool is not so good to compare with MagicDraw but PoseidonUML CE offers a full support of all UML diagrams. I need to develop OpenUSS web user interface with Enhydra and XMLC, so I need the capability of the activity diagram.

    See my article series part I:
    http://www.jaxmagazine.com/itr/online_artikel/psecom,id,653,nodeid,147.html

    Regards,
    Lofi.
  6. AndroMDA - UML Tools[ Go to top ]

    BTW.: We maybe can hope that this big project with the total budget of 20 Mio. EUR will reach something like RI for UML tool :-)

    http://www.modelware-ist.org/

    Cheers,
    Lofi.
  7. ArgoUML is not usable with AndroMDA.

    Argo works just fine with many MDA tools at SourceForge including Argo2ECore/EMF, jUMLMDA, Dresden, Ivata, and pmMDA.

    If the lack of a freeware studio is preventing Andro's adoption, and since Argo is so poor, maybe it's time for a studio on SourceForge. I think Argo's BSD license allows for forking. I might pursue this.
  8. Support for a few other tools such as ArgoUML can be implemented in a very straightforward way: you just need to implement the UML 1.3 AndroMDA metafacades (we have UML 1.4 metafacades); the only reason we did not do this yet ourselves is: time.

    (metafacades are the AndroMDA classes that wrap around each element in a UML model and expose their services as an API, used in the cartridge templates)

    Mind you, UML 1.3 has some drawbacks such as support for only one stereotype per model element. In MDA you often want to have more than one: let's say you model a class in UML that is a persistent enumeration (cfr. Hibernate); in this case you would add stereotypes <
    The problem is that this can get out of hand, when you want to support all combinations of stereotypes.

    -- Wouter

    ps: you could model an enumeration element as opposed to a regular class of course, but how many UML tools support this ? Only a very small subset unfortunately.
  9. *repost: sorry, forgot to escape some characters*

    ... <snip> ...

    Mind you, UML 1.3 has some drawbacks such as support for only one stereotype per model element. In MDA you often want to have more than one: let's say you model a class in UML that is a persistent enumeration (cfr. Hibernate); in this case you would add stereotypes <enumeration>> and <<persistent>> to denote these feature. In UML 1.3 you can forget about doing this, so you'll probably want to workaround that by specifying a <persistentEnumeration>> stereotype.

    ... <snip> ...
  10. AndroMDA 3.0M3 - open source MDA[ Go to top ]

    I've looked at it a few times. One of the things that prevents me from moving on it (or at least trying it out) is the UML tool requirement. It would be nice if I could use ArgoUML to at least give it a whirl. The supported UML tools don't seem to have Community editions anymore. I'm not thrilled about getting locked into a tool on which I would be depending greatly on.

    I think that MDA could be used for alot of apps especially those with simple requirements. There are other issues to be concerned with though.

    One of my problems is that I feel I could code it faster than I could draw it. Which is why I would like to be able to give it a whirl without a big initial investment.
  11. Slight correction[ Go to top ]

    The UML tools are not "required". But how (efficiently) am I going to get XMI?

    Quote:
    " None of these tools are required to use AndroMDA; it just happens to be that they are able to import and export UML models in a version of XMI that is compatible with AndroMDA and they provide a set of features that make it suitable for AndroMDA users, most other tools that we have tried do not seem to provide adequate support for a serious UML/MDA developer."

    Does it mean ArgoUML (or something else) will work? If so, how well?
  12. UML tools[ Go to top ]

    The UML tools are not "required".
    Hi Mark,

    UML includes representing models too.thats how i see it. UML should be the only modeling language,modeling Models too.
    The other day,i was searching for free software(need not be open source) tools for UML(My only discovery till then had been AgroUML or ArgoUML?).
    I found these tools very interesting ,in perspective of representing Models.

    1) JUDE community
    2) FUJABA Tool Suite (FUJABA- Further unto Java and Back again ,interesting name?)
    3) UML studio (this one has a trial period)

    My main search criteria for these tools, were
    a) seamless forward-reverse engineering. when i say seamless - i mean automatic synching between codebase and diagrams.
    b) Ability to represent pattern catalog,with some intelligence of customizing to specific needs ,by just updating the name and fields.
    c) Ability to publish any UML diagram in any other image format.

    You may find these tools useful.

    Regards
    Surajeet
  13. UML tools - clarification[ Go to top ]

    Basically AndroMDA does not need an UML Tool at all, if one does the magic to code valid XMI by hand >:)

    Seriously - It would be for example possible, but not desirable, to use tree-based editors like UMT, or the EMF editor to get a valid XMI model.

    So for the sake of clarification, here is a list of required features, that a UML tool should support, if one wants to use that praticular tool together with AndroMDA.

     * XMI v1.0, v1.1 or v1.2
     * At the time the XMI file should contain an UML 1.4
       metamodel
     * Class Diagrams
     * Activity Graphs (if you are using the bpm4struts
       cartridge)
     * UML tagged values
     * UML constraints
  14. UML tools - clarification[ Go to top ]

    <quote>
    Seriously - It would be for example possible, but not desirable, to use tree-based editors like UMT, or the EMF editor to get a valid XMI model.
    </quote>

    The problem is that, we "describe" (the "what") something and IMO to do this we need the capability to have a "visual" representation of the description. Without visual representations it is almost impossible to make good descriptions.

    It is like if you were an architect and you want to build houses for your customers and you only show them some data and numbers of their houses without showing any pictures, or so :-)

    We still need a very good Open Source RI for UML to spread the concept of MDA.

    Cheers,
    Lofi.
  15. UML tools - clarification[ Go to top ]

    We still need a very good Open Source RI for UML to spread the concept of MDA.Cheers,Lofi.
    There is UML project in eclipse, it looks like EMF implements UML model too. There are free graphical editors to draw code too, this one is integrated with eclipse http://www.omondo.com/download/free/index.html.
    That kind of RI do you need to make MDA stuff usefull ?
    BTW I found annotated JAVA interfaces is the best way to model static part of JAVA applications.
  16. UML tools - clarification[ Go to top ]

    <quote>
    There is UML project in eclipse, it looks like EMF implements UML model too. There are free graphical editors to draw code too, this one is integrated with eclipse http://www.omondo.com/download/free/index.html.
    </quote>

    yup, I know these projects and products. But they are not so far that we can call them RI :-( As far as I know you cannot use Omondo with AndroMDA, see:
    http://team.andromda.org/docs/case-tools.html

    Or maybe Daniel can explain about this more...

    There are still some problems to solve: just google "emf mdr"

    Sometime in the future I hope that we will have just a very simple UML tool. This tool should only be able to do UML with all the standards, not more (no code generation, etc.) and not less.

    <quote>
    BTW I found annotated JAVA interfaces is the best way to model static part of JAVA applications.
    </quote>

    UML class diagram would be better :-)

    Cheers,
    Lofi.
  17. UML tools - clarification[ Go to top ]

    Sometime in the future I hope that we will have just a very simple UML tool. This tool should only be able to do UML with all the standards, not more (no code generation, etc.)
    Probably you need new "standard". UML is not designed for development, but it is good to draw presentations. Eclipse or NetBeans is better development environment for JAVA than any CASE tool.

    BTW it must not be a very big problem to generate and print pictures from class files too.
  18. UML tools - clarification[ Go to top ]

    Probably you need new "standard". UML is not designed for development, but it is good to draw presentations. Eclipse or NetBeans is better development environment for JAVA than any CASE tool.BTW it must not be a very big problem to generate and print pictures from class files too.

    I'm with you. For MDA too be succesful in a short future, well, there is no fix for that, but for MDA to be succesfull at all a new standard metamodel is needed. UML can be great as a general-purpose standard, but a more constrained domain model is needed here in Enterprise application development. UML doesn't work at all for capturing the dynamic information of an application, there is too much choice in there.
    I've seen constrained meta-models in action and they do a great job. However there is no standard in sight. EMF falls short in the dynamic part, again.
  19. UML tools - clarification[ Go to top ]

    For MDA too be succesful in a short future, well, there is no fix for that, but for MDA to be succesfull at all a new standard metamodel is needed. UML can be great as a general-purpose standard, but a more constrained domain model is needed here in Enterprise application development. UML doesn't work at all for capturing the dynamic information of an application, there is too much choice in there.

    PetStore is an abstract web application that is widely acknowledged as a litmus test for demonstrating the viability of enterprise frameworks. Presumably a CRUD-centric MDA tool such as EMF or SourceForge's JAG can produce a crude but mostly-working PetStore. Can Andro actually make an application?
  20. UML tools - clarification[ Go to top ]

    Brian,

    it would be too much to list here so I'll stick to a concrete example: suppose you want to generate a triple-tier application with a web front-end using Struts/Hibernate/Spring complete with AXIS based web-services

    andromda will generate the following from your modeled classes, activity graphs and use-cases:

    (100% no manual implementation needed)

    Spring descriptors (100%)
    Spring DAOs (finders can be written in OCL: no Java coding needed!)
    Hibernate pojo's + mappings (100%)
    Spring wrappers around SLSB
    Value object and pojo2VO transformations
    Struts config: 100%
    web.xml: 100%
    jsps: 100% (complete with all types of widgets, but you probably want to edit style & layout)
    popup calendars (100%)
    css stylesheets
    Struts Actions (100%)
    Struts Forms (100%)
    any possible Struts validation (numeric,email,date,range,ip,password-confirm check..)
    Proper exception handling in the web tier (back to original page with a nice message, no stacktrace page) - exceptions can be redirected to other resources/pages
    Convenient session handling (you can model session data) (100%)
    Access to back-end services can also be auto-generated from UML dependencies (100%)
    configurable breadcrumbs (100%)
    online help and javadocs (100%, rendered from documentation on model elements and also some analysis is performed and automatically added to the docs)
    tooltips (100%)
    JAAS security (only actors associated with the use-case have access to it: buttons greyed out, web-resources contrained, 100%)
    complete internationalization: resource bundles (100%, just need to add you own language packs)
    web-services complete with client stubs (100%)

    so what needs to be done: just fill in the gaps with business logic, you'll need to put code in your services because by default they do nothing; you'll also need to implement some operations in the web-tier (the actions are process logic and are generated 100%, on demand they can defer to a custom operation callback to have your own code executed, these operations also do nothing by default)

    a very simple use-case has been modeled and put online here: http://team.andromda.org:8080/OnlineStore

    this application has been generated *without* any additional handcoding, after generation it was directly deployed in JBoss and that's what you're seeing

    in the meantime you'll still have full control over the generation process: anything can be tweaked, either by customizing the templates, either by tuning global namespace properties

    benefits of AndroMDA code-generation:
    * stay with your business
    * keep your code in sync with the requirements
    * keep your code readable, consistent and documented
    * refactor more easily and quickly
    * developers do not need to know all the details of the underlying technology
    * extend application lifetime: easier to move to newer version of libraries/frameworks

    ...

    more info on the homepage and mailinglists

    -- Wouter
  21. Andro, UML tools - clarification[ Go to top ]

    Brian,it would be too much to list here so I'll stick to a concrete example: suppose you want to generate a triple-tier application with a web front-end using Struts/Hibernate/Spring complete with AXIS based web-services

    andromda will generate the following from your modeled classes, activity graphs and use-cases...

    I tried your store demo and am impressed. I'm always impressed when an MDA tool goes beyond code generation to provide model execution.

    I'm skeptical of the Axis integration. WS-I wants literal encoding, which begs a data binding. I see that Andro's WebService cartridge has a required 'schemaTypeMappingsUri' property that points to a mapping file. When literal encoding is used per WS-I, can Andro generate the schema mapping?
  22. AndroMDA WebServices[ Go to top ]

    I'm skeptical of the Axis integration. WS-I wants literal encoding, which begs a data binding. I see that Andro's WebService cartridge has a required 'schemaTypeMappingsUri' property that points to a mapping file. When literal encoding is used per WS-I, can Andro generate the schema mapping?

    Brian,

    The schemaTypeMappingUri allows you to map PIM datatypes to the schema Schema types that you're WSDL may need, for example datatype.Date, datatype.Timestamp, or datatype.DateTime would be mapped to the valid schema type "dateTime". By default the style of WSDL generated by AndroMDA is literal/wrapped, so it is completely WS-I compliant (the use and style can be configured based on what we call "namespace properties"). We don't just generate the WSDD file for axis for literal/wrapped but we generate the entire WSDL as well. If you're familar with Axis, you'll know that by default it generates RPC/encoded.

    We have a very simple example call the Animal Quiz which is exposing its single service as a literal/wrapped web service. The sample is fully generated (except for the guessing logic). You can see the sample here: http://team.andromda.org:8080/AnimalQuiz. The actual web service (which the web app uses) is located here: http://team.andromda.org:8080/AnimalQuizServices/services.

    Chad
  23. UML tools - clarification[ Go to top ]

    I faund JMerge and JET are usefull in EMF, generated stuff and UML support (XMI serialization) is not very interesting. Probably it is better to use plain XML to save model, there are many XMI 'standards' anyway.
  24. <quote>
    I'm with you. For MDA too be succesful in a short future, well, there is no fix for that, but for MDA to be succesfull at all a new standard metamodel is needed. UML can be great as a general-purpose standard, but a more constrained domain model is needed here in Enterprise application development. UML doesn't work at all for capturing the dynamic information of an application, there is too much choice in there.
    </quote>

    You *CAN* use UML to define your own DSL!

    "Lightweight":
    1. Stereotypes.
    2. TaggedValues.
    3. Constraints.

    "Heavyweight":
    1. Extend the metamodel of UML.

    To build your own DSL: mix "lightweight" and "heavyweight".

    We don't need another metamodel language standards. We already have MOF (M3).

    You see, this is what I already said: for many developers it is a bit tough to really understand the 4 layer architecture (M0 - M3). Read the book of Mr. Frankel: Model Driven Architecture and you will see how MDA works completely.

    Cheers,
    Lofi.
  25. We don't need another metamodel language standards. We already have MOF (M3).
    XML Schema is a yet another metamodel language standard too, is not it ? As I understand it is more generic, XMI is defined using this metamodel language :)
    There are many ways to define metadata and I do not think UML is the best.
  26. You see, this is what I already said: for many developers it is a bit tough to really understand the 4 layer architecture (M0 - M3). Read the book of Mr. Frankel: Model Driven Architecture and you will see how MDA works completely.

    Whaaat? You know me so well that you think you can judge me like that?
    My claim is that UML doesn't work for capturing the business behaviour (rules + process) of enterprise applications in a way that is amenable for code generation. A more appropiate system/model should be needed, and it would be a Good Thing if it was a standard. It doesn't have anything to do with the M0-M3 architecture, which I understand at least sufficiently.
  27. <quote>
    Whaaat? You know me so well that you think you can judge me like that?
    My claim is that UML doesn't work for capturing the business behaviour (rules + process) of enterprise applications in a way that is amenable for code generation. A more appropiate system/model should be needed, and it would be a Good Thing if it was a standard. It doesn't have anything to do with the M0-M3 architecture, which I understand at least sufficiently.
    </quote>

    Sorry I don't mean to judge your knowledge. Pardon me if you feel that way.

    IMHO, UML is good enough to capture business rules and process... Anyway if you need your own language (instead of UML) you may do so by extending MOF directly - MOF is also standardized. You can build your own language with your own metamodel, so you are not depending on UML at all (and still you are using standard -> MOF ;-)). This is what Microsoft people don't want to do (at least if you read all their publications).

    Cheers,
    Lofi.
  28. IMHO, UML is good enough to capture business rules and process.

    Just because diagraming is software's future doesn't mean that UML is worthy. Even UML 2 lacks a diagram for process modeling. OMG requested action semantics, got many proposals, but hasn't chosen anything.

    All of the successful visual processing notations (OpenDX, ProGraph, LabView, etc) are based on data flow diagrams. Maybe control flow diagrams are also useful. But OMG leaves us guessing. Can I design even a simple algorithm (sorting, Fibonnaci, etc) with OCL?
  29. Brian,

    <quote>
    Just because diagraming is software's future doesn't mean that UML is worthy. Even UML 2 lacks a diagram for process modeling. OMG requested action semantics, got many proposals, but hasn't chosen anything.
    </quote>

    you have activity diagram for process modelling (in "coarse grained" processes -> workflows, business processes). In UML 2.0 the activity diagram is becoming very similar with petri net diagram.

    Action Semantics (AS) is not a process model, it is a "programming language" for models. With action semantics you can implement e.g. methods within a class. So, with AS you don't need to implement your business logic with other 3GL programming language like Java. Again, AS only works with models. One thing to add: AS itself is an abstract syntax. It means you need to use a concrete implementation of AS. There are some implementations of AS (some of them use OCL syntax).

    <quote>
    Can I design even a simple algorithm (sorting, Fibonnaci, etc) with OCL?
    </quote>

    If you can model the thing with UML + you use AS, you surely can do it :-)

    For more information:
    http://www.theserverside.com/articles/article.tss?l=MDA_Haywood

    And look for "translationist" vs. "elaborationist" MDA

    Cheers,
    Lofi.
  30. UML tools - clarification[ Go to top ]

    This post is about EMF/EclispeUML Free/EclipseUML Studio

    just some realy quick notes (you'll have to do some google searches to get mor infos) ...

     * EMF does not produce proper XMI that could be used
       together with AndroMDA. You will need some tools like
       UMT or a simple XSL Stylesheet to do a transformation.

     * EclispeUML Free stores its UML models into XMI files, but
       AFAIK they'll contain an UML 1.3 metamodel. Additionally
       It is not possible to assign multible stereotypes to an
       UML model element. Finally I am not quite sure whether it
       is possible to assign stereotypes to associations in
       EclipseUML Free.

     * At the time, at least to my knowledge, EclispeUML Studio
       stores its metamodel as plain Javadoc anotations right
       into the Java source file. Thus there will be no UML
       model which is based on XMI. Thus EclipseUML Studio can't
       be used together with AndroMDA.

    --
    Mit freundlichen Gruessen / With kind regards
    Daniel S. Haischt

    Wan't a complete signature??? Type at a shell prompt:
    $ > finger -l haischt@daniel.stefan.haischt.name
  31. UML tools - clarification[ Go to top ]

    Lofi,

    I didn't want to be picky - I just wanted to point out that AndroMDA isn't tightly bound to one specific UML tool (e.g. MagicDraw). Tho - I have to admit that for example it is quite challenging to use the EMF/EclipseUML2 tree-based editor. At least it is a time-consuming effort.

    --
    Mit freundlichen Gruessen / With kind regards
    Daniel S. Haischt

    Wan't a complete signature??? Type at a shell prompt:
    $ > finger -l haischt@daniel.stefan.haischt.name
  32. >> AndroMDA 3.0M3 - open source MDA[ Go to top ]

    The supported UML tools don't seem to have Community editions anymore.

    I could be wrong but MagicDraw UML does have a community edition.. Not 100% sure it works with Andro though.
  33. I don't know what I was clicking on last week but it does have a community edition. Community == not for commercial use and just class diagrams. I'm not sure if that is enough either. Even so, being limited to two Commercial vendors is not good.
  34. AndroMDA works well with MagicDraw UML[ Go to top ]

    We are using MagicDraw with AndroMDA for a simple MDA solution.

    The community edition of MagicDraw works well. Indeed you can only use class diagrams, but that is sufficient for AndroMDA. MagicDraw CE is by far the most robust and stable of the free UML tools I have used (compared especially with Argo and Poseidon).

    In our project we started with the stock Hibernate cartridge and extended it heavily. As I see it the main thing AndroMDA gives you is a way of accessing the UML model in velovity templates, but it turns out you can do a heck of a lot with this.
  35. AndroMDA works well with MagicDraw UML[ Go to top ]

    We are using MagicDraw with AndroMDA for a simple MDA solution.The community edition of MagicDraw works well. Indeed you can only use class diagrams, but that is sufficient for AndroMDA. MagicDraw CE is by far the most robust and stable of the free UML tools I have used (compared especially with Argo and Poseidon).In our project we started with the stock Hibernate cartridge and extended it heavily. As I see it the main thing AndroMDA gives you is a way of accessing the UML model in velovity templates, but it turns out you can do a heck of a lot with this.

    Thanks for the info Dan. I guess the only downside is that you will have to purchase a license(s) if you plan to use your code commercially.
  36. AndroMDA 3.0M3 - open source MDA[ Go to top ]

    a rough overview of what tools are supported can be found here.

    MagicDraw UML is in fact the preferred tool.

    -- Wouter
  37. Try OptimalJ[ Go to top ]

    I've looked at it a few times. One of the things that prevents me from moving on it (or at least trying it out) is the UML tool requirement. It would be nice if I could use ArgoUML to at least give it a whirl. The supported UML tools don't seem to have Community editions anymore. I'm not thrilled about getting locked into a tool on which I would be depending greatly on.I think that MDA could be used for alot of apps especially those with simple requirements. There are other issues to be concerned with though.One of my problems is that I feel I could code it faster than I could draw it. Which is why I would like to be able to give it a whirl without a big initial investment.

    Well, for your case, you may want to try OptimalJ. It is very good commercial tool and it provides UML drawing functions. I was a OptimalJ developer one month ago so I know the tool very well. Try it, you will like it.

    go to www.compuware.com, then click the OptimalJ to download a trial version.

    Han
  38. Try OptimalJ[ Go to top ]

    ... OptimalJ ...

    Unfortunately it puts me (and thus my clients) more in bed with one Vendor. I've had conversations with the OptimalJ salesguys and experience with other Compuware tools. I was not impressed with them or the products. I didn't have experience with OptimalJ itself but they were not able to answer questions on how to deal with certain issues. I just got the same sales pitch.
  39. It's nearly impossible to get off Compuware's mailinglists. They tend to call you until you get impolite on the phone.
  40. Has there been any improvement on the metafacade documentation? Right now, they sound like a great feature but they're pretty much unusable due to completely missing documentation.

    It seems like a lot of attention is paid to creating pre-built cartridges when (i feel) more should be paid to helping people create their own. I believe that tools like this are far more useful when they allow developers and development shops to automate their own boilerplate code, rather than forcing their boilerplate code to match someone else's architecture.
  41. AndroMDA 3.0M3 - open source MDA[ Go to top ]

    hi Drew,

    documentation is not missing, it's right here: Metafacades docs (mind you, we will be updating/rewriting those portions of the docs that need it, so we welcome any feedback that points us in the good direction)

    not many people ask for instructions on how to write a new cartridge; those that have managed to write one did it by reading the docs and looking at the existing cartridges (questions are answered pretty quickly too on the mailing lists)

    anyway, the next couple of weeks much more time will be spent on the documentation where needed, for the final release everything should be clearly documented

    -- Wouter
  42. LARGE PROJECT EXPERIENCE???[ Go to top ]

    What I'm missing in this post are some people who share their real life experience in large projects (proof-of-concepts, demo's, ... don't count). I think it would be interestfull to hear how mda, and more specific andromda is implemented in large 'working' projects. What the pro and the con where, what still needed to be done by hand, custom cartridges, limitations, ... .

    Grtz

    M.
  43. LARGE PROJECT EXPERIENCE???[ Go to top ]

    <quote>
    What I'm missing in this post are some people who share their real life experience in large projects (proof-of-concepts, demo's, ... don't count). I think it would be interestfull to hear how mda, and more specific andromda is implemented in large 'working' projects. What the pro and the con where, what still needed to be done by hand, custom cartridges, limitations, ... .
    </quote>

    For some real experiences in MDA you need to go to some MDA conferences :-) This is for example the latest conference managed by AndroMDA members (German language):
    http://www.openarchitecture.de/programm.htm
    You can see there how DaimlerChrysler, etc. use MDA...

    There are also a lot of use cases from MDA tool vendors and of courese OMG, just google...

    Cheers,
    Lofi.
  44. LARGE PROJECT EXPERIENCE???[ Go to top ]

    I think that all of us know that the showcase documentation involving the implementation of MDA is always written in a positive manner and most of the time are exaggerated. And I think reading those 'management' letters doesn't learn us anything.

    Instead, it would be usefull to hear from people who worked on those 'showcase' or other projects and have hands-on experience. Those people can tell us exactly where the fun stops and the pain begins when using (andro)mda.

    So I still hope we'll get some valuable information here

    Grtz

    M.
  45. LARGE PROJECT EXPERIENCE???[ Go to top ]

    I am successfully using AndroMDA for the 4th time .. on a medium-sized project (35-40 tables, 12-15 use-cases (without CRUDs), around 25 pages), never used AndroMDA on a real big project: 80+ tables, 100+ pages, 30+ use-cases
  46. LARGE PROJECT EXPERIENCE???[ Go to top ]

    I am working on a project with a 300 classes model, more that 60 services, 60 use cases and arround 300 pages.

    Usually threre are three task that I do with Andromda daily:
    -Add/remove/move attributes for classes
    -Add/remove/move clasess from packages
    -Create realtionships with entities.

    The great thing about Andromda is that this changes are not painfull, for the way it works it helps you to detect and solve all the problems related with this changes, for big models is a "must have" tool, otherwise you can get crazy very easily.

    And after three months of changes, you still have all the documentation up to date, and you are *completelly sure* everything is syncronized, so the application does not degradated over the time. The best part is that you are not doing any efford on this, and it is not time consuming.

    After one year of work with Andromda version 3, I can tell you that you will reduce the time of all the phases of a project (desing,coding and debugging) on nearly a 50%.
  47. LARGE PROJECT EXPERIENCE???[ Go to top ]

    Carlos,
      Which UML tool are you using to maintain the models?

    Mark
  48. LARGE PROJECT EXPERIENCE???[ Go to top ]

    Hi Mark,

    currently Magic Draw, but I also used Poseidon some time ago

    Carlos
  49. LARGE PROJECT EXPERIENCE???[ Go to top ]

    Thanks Carlos. I keep hoping someone will say different. Guess I will need to get the CE and see how it works. Then upgrade to a $$$ version if I decide to go ahead with it.
  50. LARGE PROJECT EXPERIENCE???[ Go to top ]

    See: http://www.omg.org/mda/products_success.htm
  51. About:open source MDA[ Go to top ]

    I don't know if MDA just means code generation tool.Anyone could tell me the answer?
    And there is a fairly new open source CRM product OpenCRX based on the OpenMDX Java framework which is the leading open source MDA platform based on the Object Management Group’s Model Driven Architecture standards(concerpt from openmdx.org).
    I am very expecting to hear some discussion about openMDX for the decision of which MDA platform I'm going to choosing.
  52. choosing MDA tooll[ Go to top ]

    Wing,

    We also looking for the MDA direction. And found also OpenMDX and AndroMDA. OpenMDX has a real implementation with OpenCRX and seems working in this real world scenario.
    But some advice from the MDA professionals would be great.

    Thanks, Holger
  53. Choosing MDA tools[ Go to top ]

    There are a lot of choices in Open Source MDA tools:
    - AndroMDA,
    - ArchitectureWare: http://www.architectureware.org/site/,
    - OpenMDX, ...

    A good list:
    http://www.modelbased.net/mda_tools.html

    Many of them look very promising...

    What I really like about AndroMDA is that you model your cartridges (transformation rules) with AndroMDA + UML itself! Correct me if I'm wrong but this is not the case with other MDA tools (in the area of Model-To-Text or Model-To-Code). In the part of Model-To-Model I really like the idea of MTL. I'm doing an integration of MTL into EJOSA right now, so that EJOSA will support Model-To-Code and Model-To-Text (with AndroMDA) and Model-To-Model (with MTL). Maybe we also can find a way to integrate MTL to AndroMDA, so that AndroMDA also supports Model-To-Model transformation?

    At the moment I have a student working on a comparison of all Open Source MDA tools, hope he'll finish his work :-)

    Cheers,
    Lofi.
  54. Making MDA tools, Choosing MDA tools[ Go to top ]

    What I really like about AndroMDA is that you model your cartridges (transformation rules) with AndroMDA + UML itself!

    GCC builds itself. Javac builds itself. A best-of-breed MDA tool should also be able to build itself.

    How Does MTL compare to QVT?
  55. Making MDA tools, Choosing MDA tools[ Go to top ]

    Brian,

    <quote>
    GCC builds itself. Javac builds itself. A best-of-breed MDA tool should also be able to build itself.
    </quote>

    agree with you!

    <quote>
    How Does MTL compare to QVT?
    </quote>

    QVT is a standard for query, view and transformation of models and MTL is an implementation. The QVT standard is recently published if I'm not wrong, so it's take time to see whether all the vendors (incl. Open Source projects like MTL, AndroMDA) will implement this standard. The idea is very good: treat your transformation rules as the most important thing, so that you will be able to *reuse* all the transformation rules ("cartridges", "transformators") within all the MDA tools available on the market just like UML and UML tools.

    Back to MTL: MTL has its own language BasicMTL with a very simple syntax. MTL aims to work with models. I don't think that MTL is good for Model-To-Text/Code transformation but for Model-To-Model it is gorgeous.

    To open a model and write it back to model you write:

    // Create the model with MDR, save result in another file
    sourceModel := mdrdriver.getModelFromXMI(
      metamodelFilename, 'UML', 'UML1.4_model',
      inputFilename, outputFilename);

    You can use MDR or EMF to read the models with their metamodels easily.

    To go through all the model elements which have the type of AssociationEnd:

    ...
    foreach (associationEnd: sourceModel::Core::AssociationEnd)
      in (!sourceModel::Core::AssociationEnd!.allInstances()) {

      ...
    }

    etc...

    I really enjoy writing a Model-To-Model transformation with BasicMTL :-)

    Hope this helps,
    Lofi.
  56. Choosing MDA tools[ Go to top ]

    One thing I want to add:

    AndroMDA and ArchitectureWare are quite similar in concept (Model-To-Text/Model-To-Code with templates Velocity/XPAND)...

    ArchitectureWare:
    http://www.architectureware.org/site/tools/genfw.html

    AndroMDA:
    http://www.andromda.org/andromda-metafacades/index.html

    Only the way you create the transformation rules ("cartridges") in AndroMDA, IMHO, much more nicer (yeah, I really like the idea of "eat your own dog food" in AndroMDA cartridge concept) :-)

    Cheers,
    Lofi.
  57. About:open source MDA[ Go to top ]

    MDA basically means you take a Platform Indepedent Model (PIM) that is very abstract (for example by modeling your application in UML); you then refine that model into a Platform Specific Model, optionally you can refine that PSM into another PSM which is even more specific.

    At the end you have a PSM that very closely maps onto your platform of choice, for example you'll have a PSM containing all the necessary Struts information for your application.

    The logical next step is code generation, you simply have your PSM emitting stuff using templates.

    -- Wouter

    ps: a PSM does not need to be another UML model, or a physical file on disk; in AndroMDA our PSMs are the cartridge metamodel instances, which are completely in memory during the AndroMDA run.

    ps2: please note that refining not always means adding PSM details, it can also mean you leave out information: my management once asked me whether it was possible to generate high-level UML diagrams from the (rather technical) ones I wrote for AndroMDA. For example to have a one page overview of the complete application, together with a document containing an analysis. Trust me, it can be done :-)