Bluprint is an MDA tool designed to support Agile-MDA, by taking the output of UML Modeling tools such as MagicDraw and IBM Rational Rose, to generate source code in a number of target languages.

Key-points are:

1.It is built using itself – although to the end user this isn’t too relevant, it does mean it has been put through its paces and can accommodate non-trivial software projects.  Bluprint is thus self-describing as the architecture and design are contained within itself.  This is unique amongst MDA tools.

2.It supports full lifecycle software development, you can generate code from models, amend the generated code, amend the model and re-generate. All user modifications to the code are preserved because the tool supports intelligent model/code merging. There is no need to use sub-classing for user written extensions or annotations to mark and protect sections of the code.

3.Bluprint interprets UML models to create Java code currently (but other target languages will be possible in the future). It supports:

Classes

Interfaces

Enumerations

Inheritance, both extends and implements

Associations

Generation of member variables and corresponding accessors.

i.  unary members

ii.  non-unary members, from associations with cardinality greater than one

iii. qualified associations

Generation of constructors

Generation of stub-methods, including throws clauses

4.It makes very few uses of UML stereotypes. Currently its uses one called «nogen». This is used to prevent the generation of code from some parts of the model and is useful when you are modelling third-party APIs.