MOSKitt Transformations And Traceability
-
Upload
javier-munoz -
Category
Technology
-
view
1.119 -
download
0
Transcript of MOSKitt Transformations And Traceability
![Page 1: MOSKitt Transformations And Traceability](https://reader033.fdocuments.us/reader033/viewer/2022050614/5467fb4caf795950298b485e/html5/thumbnails/1.jpg)
Javier Muñoz – Miguel Llacer{jmunoz,mllacer}@prodevelop.es
Prodevelop
MOSKitt Infrastructure to ManageMOSKitt Infrastructure to ManageTransformations and TraceabilityTransformations and Traceability
![Page 2: MOSKitt Transformations And Traceability](https://reader033.fdocuments.us/reader033/viewer/2022050614/5467fb4caf795950298b485e/html5/thumbnails/2.jpg)
Contents• Goals
• Selecting Transformations
• Configuring Transformations
• Executing Transformations
• Editing Traces
• Synchronizing
• Conclusions
![Page 3: MOSKitt Transformations And Traceability](https://reader033.fdocuments.us/reader033/viewer/2022050614/5467fb4caf795950298b485e/html5/thumbnails/3.jpg)
Goals
• MOSKitt is a MDSD tool
• Model Transformations are key on MDSD
• MOSKitt needs infrastructure to support Model Transformations functionality• Invocation
• Configuration
• Traceability
• Synchronization,
• etc.
![Page 4: MOSKitt Transformations And Traceability](https://reader033.fdocuments.us/reader033/viewer/2022050614/5467fb4caf795950298b485e/html5/thumbnails/4.jpg)
Goals
• A common scenario in MDSD tools:
• Transform UML2 model into DB model
• Configure transformation
• E.g.: ¿How to transform inheritances? ¿Which classes must be transformed and wich not?
• Tweak (or create) traces between models
• Keep models synchronized
• Changes on UML2 trigger DB model updates
![Page 5: MOSKitt Transformations And Traceability](https://reader033.fdocuments.us/reader033/viewer/2022050614/5467fb4caf795950298b485e/html5/thumbnails/5.jpg)
Goals
• A common scenario in MDSD tools:
Selecting aTransformation
Configuring theTransformation
Executing theTransformation
Editing Traces
Synchronizingon modifications
![Page 6: MOSKitt Transformations And Traceability](https://reader033.fdocuments.us/reader033/viewer/2022050614/5467fb4caf795950298b485e/html5/thumbnails/6.jpg)
Goals
• A common scenario in MDSD tools:
Selecting aTransformation
Configuring theTransformation
Executing theTransformation
Editing Traces
Synchronizingon modifications
![Page 7: MOSKitt Transformations And Traceability](https://reader033.fdocuments.us/reader033/viewer/2022050614/5467fb4caf795950298b485e/html5/thumbnails/7.jpg)
Selecting a Transformation
• Two mechanisms:
Contextual Menu
TransformationsView
![Page 8: MOSKitt Transformations And Traceability](https://reader033.fdocuments.us/reader033/viewer/2022050614/5467fb4caf795950298b485e/html5/thumbnails/8.jpg)
Selecting a Transformation
• How to register a transformation?
• Define in a plug-in an extension to es.cv.gvcase.trmanager.transformation
• Implement a class that extends es.cv.gvcase.trmanager.Transformation
• Extension properties
• Trasformation unique identifier
• Name
• Transformation kind identifier
• Priority
• Package
• Priority
• Implementing class
• Input/Output resources
• File extension
• Configuration producer class
![Page 9: MOSKitt Transformations And Traceability](https://reader033.fdocuments.us/reader033/viewer/2022050614/5467fb4caf795950298b485e/html5/thumbnails/9.jpg)
Selecting a Transformation
• Transformation interfacepublic boolean inputsValid(HashMap<String, TransformedResource> inputs, List<String>
errorList)
• return value: are the input models valid to apply the transformation?
• inputs: a hash map where keys are the input argument names and values reference the resource:
TransformedResource
getName()
getPath()
• errorList: a list of strings that describe the execution result. t is shown to users.
public boolean transform(HashMap<String, TransformedResource> inputs, HashMap<String, TransformedResource> outputs, List<String> errorList)
• return value: was the transformation carried out ok?
• inputs: a hash map where keys are the input argument names and values reference the resource
• outputs: a hash map where keys are the output argument names and values reference the resource.
• errorList: a list of strings that describe the execution result. t is shown to users.
![Page 10: MOSKitt Transformations And Traceability](https://reader033.fdocuments.us/reader033/viewer/2022050614/5467fb4caf795950298b485e/html5/thumbnails/10.jpg)
Goals
• A common scenario in MDSD tools:
Selecting aTransformation
Configuring theTransformation
Executing theTransformation
Editing Traces
Synchronizingon modifications
![Page 11: MOSKitt Transformations And Traceability](https://reader033.fdocuments.us/reader033/viewer/2022050614/5467fb4caf795950298b485e/html5/thumbnails/11.jpg)
Configuring the Transformation
• Goal: support the transformations configuration process
• Based on FEFEM infraestructure
• Rules Catalog MM & Configuration MM• Rules: what can be configured for transformation T?
• Configuration: which are the selected options when transforming model M with transformation T?
• Configuration model is automatically generated: • transformation declared in extension point
![Page 12: MOSKitt Transformations And Traceability](https://reader033.fdocuments.us/reader033/viewer/2022050614/5467fb4caf795950298b485e/html5/thumbnails/12.jpg)
Configuring the Transformation
Model X
ConfigurationInitializer
TransformationT
ModelOutput
Config.of Model X for
Transf. T
Rules Catalogfor Transf. T
![Page 13: MOSKitt Transformations And Traceability](https://reader033.fdocuments.us/reader033/viewer/2022050614/5467fb4caf795950298b485e/html5/thumbnails/13.jpg)
Configuring the Transformation
![Page 14: MOSKitt Transformations And Traceability](https://reader033.fdocuments.us/reader033/viewer/2022050614/5467fb4caf795950298b485e/html5/thumbnails/14.jpg)
Goals
• A common scenario in MDSD tools:
Selecting aTransformation
Configuring theTransformation
Executing theTransformation
Editing Traces
Synchronizingon modifications
![Page 15: MOSKitt Transformations And Traceability](https://reader033.fdocuments.us/reader033/viewer/2022050614/5467fb4caf795950298b485e/html5/thumbnails/15.jpg)
Executing the Transformation
• Wizard to executed the transformation
1.- Select Parameters
2.- Configure
3.- Validateinputs
4.- Show results
![Page 16: MOSKitt Transformations And Traceability](https://reader033.fdocuments.us/reader033/viewer/2022050614/5467fb4caf795950298b485e/html5/thumbnails/16.jpg)
Executing the Transformation
UML Model“X.uml”
UML2DBTransformation
DB Model“Y.sqlschema”
Config.of Model M.uml forTransf. UML2DB
Traces between“X.uml” and
“Y.sqlschema”
![Page 17: MOSKitt Transformations And Traceability](https://reader033.fdocuments.us/reader033/viewer/2022050614/5467fb4caf795950298b485e/html5/thumbnails/17.jpg)
Goals
• A common scenario in MDSD tools:
Selecting aTransformation
Configuring theTransformation
Executing theTransformation
Editing Traces
Synchronizingon modifications
![Page 18: MOSKitt Transformations And Traceability](https://reader033.fdocuments.us/reader033/viewer/2022050614/5467fb4caf795950298b485e/html5/thumbnails/18.jpg)
Editing Traces
• Trace Generation:
• Based on AMW metamodel (with modifications)
• Traced Models
- n models
- no input/output semantic
• Traced Links
- links between arbitrary elements
¡¡Automatic generation of traces is a transformation responsibility!!
![Page 19: MOSKitt Transformations And Traceability](https://reader033.fdocuments.us/reader033/viewer/2022050614/5467fb4caf795950298b485e/html5/thumbnails/19.jpg)
Editing Traces
• Traces Editor:
• Based on FEFEM
Trace Links
Traced Elements
![Page 20: MOSKitt Transformations And Traceability](https://reader033.fdocuments.us/reader033/viewer/2022050614/5467fb4caf795950298b485e/html5/thumbnails/20.jpg)
Goals
• A common scenario in MDSD tools:
Selecting aTransformation
Configuring theTransformation
Executing theTransformation
Editing Traces
Synchronizingon modifications
![Page 21: MOSKitt Transformations And Traceability](https://reader033.fdocuments.us/reader033/viewer/2022050614/5467fb4caf795950298b485e/html5/thumbnails/21.jpg)
Synchronizing on modifications
UML Model“X.uml”
DB Model“Y.sqlschema”
Traces between“X.uml” and
“Y.sqlschema”
1.- on changein input
2.- updatetraced models
![Page 22: MOSKitt Transformations And Traceability](https://reader033.fdocuments.us/reader033/viewer/2022050614/5467fb4caf795950298b485e/html5/thumbnails/22.jpg)
Synchronization infrastructure
• Based on a listener that listens model changes
• Traces between models are required
• How to implement a Synchronizer?
• Define an extension to es.cv.gvcase.modelsync.core.Listener
• Implement a class that extends es.cv.gvcase.modelsync.core.listener.Synchronizer
• just one method: elementChanged()
![Page 23: MOSKitt Transformations And Traceability](https://reader033.fdocuments.us/reader033/viewer/2022050614/5467fb4caf795950298b485e/html5/thumbnails/23.jpg)
Synchronization
• When IN model is modified, the synchronizer creates a differences model
• ATL transformation must be implemented to generate a new differences model
• What modifications must be applied to OUT model?
![Page 24: MOSKitt Transformations And Traceability](https://reader033.fdocuments.us/reader033/viewer/2022050614/5467fb4caf795950298b485e/html5/thumbnails/24.jpg)
Synchronization
• Finally, another ATL transformation applies updates:
• updates OUT model
• updates Traces model
![Page 25: MOSKitt Transformations And Traceability](https://reader033.fdocuments.us/reader033/viewer/2022050614/5467fb4caf795950298b485e/html5/thumbnails/25.jpg)
Conclusions• Technological Infrastructure:
• From Eclipse: ATL, AMW, EMFCompare
• From MOSKitt:
• Transformation Registry
• Transformations Configuration
• Models Traceability and Synchronization
• It's in practice!!
• Future:• Feedback & evolution
• New functionalities? Sync. on demand?
![Page 26: MOSKitt Transformations And Traceability](https://reader033.fdocuments.us/reader033/viewer/2022050614/5467fb4caf795950298b485e/html5/thumbnails/26.jpg)
Javier Muñoz – Miguel Llacer{jmunoz,mllacer}@prodevelop.es
Prodevelop
MOSKitt Infrastructure to ManageMOSKitt Infrastructure to ManageTransformations and TraceabilityTransformations and Traceability