Check out what you can do with JTL
Bidirectional model transformations
Create and manipulate your models by means of bidirectional model transformations that can be specified in a declarative manner
Consistency and synchronization
Mantain consistency between models and propagate changes in both forward and backward directions
Traceability
Maintain links between your models artifacts by means of the JTL traceability facility
Solution space management
Keep under control your JTL execution by generating all the possible solution models according to your design.
Design uncertainty
Handle uncertainty occuring at design-time by maintainting all the modeling alternative in a model with uncertainty.
Constraint-based design decision
Specify your design decision in a very declarative manner by means of logical constraints.