Eclipse based framework to create interoperability among UML2 and Architectural Description Languages (ADLs). DUALLy works at two abstraction levels: meta-modeling (via AMW weaving models), and modeling (via UML, Ecore models and ATL transformations).
Be the first to post a text review of DUALLy. Rate and review a project by clicking thumbs up or thumbs down in the right column.
1) ADDED-CONCEPTS in the weaving meta-model: AbstractCorrespondence, GlobalElement, ParentCorrespondence, ConstantBinding, Annotation This changes are reflected in the corresponding changes in the higher-order transformations. 2) UI-IMPROVEMENT: added icons to woven metamodel panels 3) UI-IMROVEMENT: added a filter that masks everything that is not a EPackage, EClass, EStructuralFeature in the woven metamodel panels. 4) FIXEDBUG: the HOTs have been modified in order to generate the following code in the 'endpoint rule' of the generated transformation. This is the ATL code added to the Left2Right Transformation (it is specular in the Right2Left): --generate an end point rule that applies the right profile to the target UML modelif(AMW!Dually.allInstancesFrom('IN').first().right.isUML() and not AMW!Dually.allInstancesFrom('IN').first().left.isUML()) { currentHelper <- 'endpoint rule applyThePROprofile() {using {model : UML2!Model = UML2!Model.allInstancesFrom(\'OUT\')->asSequence().first();profile : UML2!Profile = UML2!Profile.allInstancesFrom(\'PRO\')->select(p | p.name = thisModule.toProfileName)->first();}do {model.applyProfile(profile);}}'.inject('OUT', 'ebnf2', 'ATL-calledRule'); currentHelper.module <- thisModule.resolveTemp(AMW!Dually.allInstancesFrom('IN').first(), 'atl'); currentHelper.commentsBefore <- Sequence{'-- GENERATED ::: This end point rule applies the UML profile to the root element of the target model'}; } The reason of this modification is that if we are generating a Ecore-to-UML transformation, such transformation has to apply the target profile to the root of the output model, otherwise we cannot apply the stereotypes. 5) FIXEDBUG: we added the following control. If a Correspondence has some subcorrespondeces, in the corresponding ATL Rule the condition s.isPROstereotypeApplied() cannot exist, otherwise it prevents the matching of the subrules. 6) FIXEDBUG: fixed some bug with minor changes in the higher-order transformations
1) ADDED-CONCEPTS in the weaving meta-model: AbstractCorrespondence, GlobalElement, ParentCorrespondence, ConstantBinding, Annotation This changes are reflected in the corresponding changes in the higher-order transformations. 2) UI-IMPROVEMENT: added icons to woven metamodel panels 3) UI-IMROVEMENT: added a filter that masks everything that is not a EPackage, EClass, EStructuralFeature in the woven metamodel panels. 4) FIXEDBUG: the HOTs have been modified in order to generate the following code in the 'endpoint rule' of the generated transformation. This is the ATL code added to the Left2Right Transformation (it is specular in the Right2Left): --generate an end point rule that applies the right profile to the target UML modelif(AMW!Dually.allInstancesFrom('IN').first().right.isUML() and not AMW!Dually.allInstancesFrom('IN').first().left.isUML()) { currentHelper <- 'endpoint rule applyThePROprofile() {using {model : UML2!Model = UML2!Model.allInstancesFrom(\'OUT\')->asSequence().first();profile : UML2!Profile = UML2!Profile.allInstancesFrom(\'PRO\')->select(p | p.name = thisModule.toProfileName)->first();}do {model.applyProfile(profile);}}'.inject('OUT', 'ebnf2', 'ATL-calledRule'); currentHelper.module <- thisModule.resolveTemp(AMW!Dually.allInstancesFrom('IN').first(), 'atl'); currentHelper.commentsBefore <- Sequence{'-- GENERATED ::: This end point rule applies the UML profile to the root element of the target model'}; } The reason of this modification is that if we are generating a Ecore-to-UML transformation, such transformation has to apply the target profile to the root of the output model, otherwise we cannot apply the stereotypes. 5) FIXEDBUG: we added the following control. If a Correspondence has some subcorrespondeces, in the corresponding ATL Rule the condition s.isPROstereotypeApplied() cannot exist, otherwise it prevents the matching of the subrules. 6) FIXEDBUG: fixed some bug with minor changes in the higher-order transformations
1) ADDED-CONCEPTS in the weaving meta-model: AbstractCorrespondence, GlobalElement, ParentCorrespondence, ConstantBinding, Annotation This changes are reflected in the corresponding changes in the higher-order transformations. 2) UI-IMPROVEMENT: added icons to woven metamodel panels 3) UI-IMROVEMENT: added a filter that masks everything that is not a EPackage, EClass, EStructuralFeature in the woven metamodel panels. 4) FIXEDBUG: the HOTs have been modified in order to generate the following code in the 'endpoint rule' of the generated transformation. This is the ATL code added to the Left2Right Transformation (it is specular in the Right2Left): --generate an end point rule that applies the right profile to the target UML modelif(AMW!Dually.allInstancesFrom('IN').first().right.isUML() and not AMW!Dually.allInstancesFrom('IN').first().left.isUML()) { currentHelper <- 'endpoint rule applyThePROprofile() {using {model : UML2!Model = UML2!Model.allInstancesFrom(\'OUT\')->asSequence().first();profile : UML2!Profile = UML2!Profile.allInstancesFrom(\'PRO\')->select(p | p.name = thisModule.toProfileName)->first();}do {model.applyProfile(profile);}}'.inject('OUT', 'ebnf2', 'ATL-calledRule'); currentHelper.module <- thisModule.resolveTemp(AMW!Dually.allInstancesFrom('IN').first(), 'atl'); currentHelper.commentsBefore <- Sequence{'-- GENERATED ::: This end point rule applies the UML profile to the root element of the target model'}; } The reason of this modification is that if we are generating a Ecore-to-UML transformation, such transformation has to apply the target profile to the root of the output model, otherwise we cannot apply the stereotypes. 5) FIXEDBUG: we added the following control. If a Correspondence has some subcorrespondeces, in the corresponding ATL Rule the condition s.isPROstereotypeApplied() cannot exist, otherwise it prevents the matching of the subrules. 6) FIXEDBUG: fixed some bug with minor changes in the higher-order transformations
Copyright © 2009 Geeknet, Inc. All rights reserved. Terms of Use
Thanks for your rating!
Would you also like to write a review?
Thanks for your review!
Get credit for your review by logging in via OpenID. Click your account provider: