As an ArgoUML contributor I'm going to blog my activities here, so that they may draw interest by other developers or help other developers when doing tasks similar to what I've done. AND(!) the grand vision that makes an Argonaut what he is, TO THRIVE IN THE BIG DANGEROUS WORLD, TAKING THE Argo TO A GOOD SHORE ;-))

Tuesday, February 01, 2005

ArgoUML and AndroMDA grand vision

I have a vision and in that vision ArgoUML will support full C++ round-trip engineering (RTE). In that vision you'll feed a makefile for a C++ application and you'll get a nice model in ArgoUML, with code docs included. It will be possible for you to modify the model make some nice refactoring and even add some classes for the realization of a new use case and them, with RTE you'll have the C++ application updated, with only the deep details of algorithms to be filled. - These will be marked as TODOs, though! It will also support generation of unit tests, based on the CppUnit framework.

ArgoUML will support out-of-the-box generation of simple applications, like an "Hello World!" example. You only need to setup the C++ compiler path in your particular application and it will create even simple makefiles.

Some well known C++ libraries and frameworks will have models (TAO, ACE, Qt, boost, GTK, WxWindows, etc), being these created by reverse engineering them with the C++ module. Of course STL and std library through STLPort will be available for modeling also. These models will be given hiding the details of the frameworks, in order for the users to not get annoyed with their weight and also internal details. Full models are of interest only to the respective projects.

ArgoUML will support aspect oriented programming (AOP). It will do it in a way that is independent of the respective implementation. The C++ module will be capable of generating AspectC++ code from models with aspects.

Python and C++ will integrate nicely and mixed applications will be supported with the – to be created – python module. The needed bridging will be done by boost::python library. It will be possible to make the model and using a given C++ and python profile, to generate the application from the model.

AndroMDA will sport transformations between platform independent models (PIMs) and platform specific models (PSMs). Included is the opposite possibility, of reversing entire PSMs (e.g., the ArgoUML model that was reversed using ArgoUML java reveng) to PIMs. This might not be out-of-the-box, but, it will be possible, by supporting the required transformations. It will also support merging of models like explained in AOP and MDA, metamodel mapping transformations, etc. Common open source frameworks will have already defined mappings and transformations, being possible to generate either for CCM, for COM+ or for Web Services implementations.

ArgoUML and AndroMDA will be integrated to support model navigation in ArgoUML between related models, like PIMs and PSMs. ArgoUML must also be capable of saving links to outer resources, like recorded project meetings where a particular discussion toke place and where part of the architecture was established.

No comments:

Reader Shared items