Visual Modeling and Transformation...
Transcript of Visual Modeling and Transformation...
![Page 1: Visual Modeling and Transformation Systemmsdl.cs.mcgill.ca/people/hv/conferences/07.CAMPaM/material/intro/tihamer.pdfVMTS Visual Control Flow Language (VCFL) and Its Termination Properties](https://reader030.fdocuments.us/reader030/viewer/2022041005/5ea91db6355ab90ba62b55dc/html5/thumbnails/1.jpg)
Visual Modeling and Visual Modeling and Transformation SystemTransformation System
http://www.vmts.aut.bme.huhttp://www.vmts.aut.bme.hu
![Page 2: Visual Modeling and Transformation Systemmsdl.cs.mcgill.ca/people/hv/conferences/07.CAMPaM/material/intro/tihamer.pdfVMTS Visual Control Flow Language (VCFL) and Its Termination Properties](https://reader030.fdocuments.us/reader030/viewer/2022041005/5ea91db6355ab90ba62b55dc/html5/thumbnails/2.jpg)
OutlineOutline IntroductionIntroduction VMTS FeaturesVMTS Features Visual Language DefinitionVisual Language Definition
MetamodelingMetamodeling Appearance DefinitionAppearance Definition
Sample Built-in Visual LanguagesSample Built-in Visual Languages Model ProcessingModel Processing
VMTS Traversing Model ProcessorVMTS Traversing Model Processor VMTS Visual Model ProcessorVMTS Visual Model Processor
Validated Model TransformationValidated Model Transformation Aspect-Oriented Constraint Management & Constraint Aspect-Oriented Constraint Management & Constraint
WeavingWeaving Constraint SeparationConstraint Separation Further Case StudiesFurther Case Studies SummarySummary
![Page 3: Visual Modeling and Transformation Systemmsdl.cs.mcgill.ca/people/hv/conferences/07.CAMPaM/material/intro/tihamer.pdfVMTS Visual Control Flow Language (VCFL) and Its Termination Properties](https://reader030.fdocuments.us/reader030/viewer/2022041005/5ea91db6355ab90ba62b55dc/html5/thumbnails/3.jpg)
IntroductionIntroduction VMTS is an n-layer metamodeling environment VMTS is an n-layer metamodeling environment
which supports editing models according to their which supports editing models according to their metamodels, and allows specifying OCL metamodels, and allows specifying OCL constraints. Models are formalized as directed, constraints. Models are formalized as directed, labeled graphs. VMTS uses a simplified class labeled graphs. VMTS uses a simplified class diagram for its root metamodel (“visual diagram for its root metamodel (“visual vocabulary”). vocabulary”).
Also, VMTS is a model transformation system, Also, VMTS is a model transformation system, which transforms models using graph rewriting which transforms models using graph rewriting techniques. Moreover, the tool facilitates the techniques. Moreover, the tool facilitates the verification of the constraints specified in the verification of the constraints specified in the transformation step during the model transformation step during the model transformation process.transformation process.
![Page 4: Visual Modeling and Transformation Systemmsdl.cs.mcgill.ca/people/hv/conferences/07.CAMPaM/material/intro/tihamer.pdfVMTS Visual Control Flow Language (VCFL) and Its Termination Properties](https://reader030.fdocuments.us/reader030/viewer/2022041005/5ea91db6355ab90ba62b55dc/html5/thumbnails/4.jpg)
VMTS VMTS FeaturesFeatures User friendly metamodeling and modeling – n-layer User friendly metamodeling and modeling – n-layer
instantiation methodinstantiation method Efficient attribute handlingEfficient attribute handling Metamodel-based transformation step editingMetamodel-based transformation step editing Constraint management – both for metamodels and Constraint management – both for metamodels and
model transformation stepsmodel transformation steps Efficient constraint validation methodsEfficient constraint validation methods Traversing-based model processing, source code Traversing-based model processing, source code
generationgeneration Graph rewriting-based visual model transformation.Graph rewriting-based visual model transformation. Control flow support – sequencing transformation steps, Control flow support – sequencing transformation steps,
branching with OCL constraints, hierarchical steps, branching with OCL constraints, hierarchical steps, parallel executions of the steps and iterationparallel executions of the steps and iteration
Constraint normalization and optimizationConstraint normalization and optimization Aspect-oriented constraint managementAspect-oriented constraint management Validated model transformationValidated model transformation
![Page 5: Visual Modeling and Transformation Systemmsdl.cs.mcgill.ca/people/hv/conferences/07.CAMPaM/material/intro/tihamer.pdfVMTS Visual Control Flow Language (VCFL) and Its Termination Properties](https://reader030.fdocuments.us/reader030/viewer/2022041005/5ea91db6355ab90ba62b55dc/html5/thumbnails/5.jpg)
Visual Modeling and Transformation Visual Modeling and Transformation System (VMTS)System (VMTS)
![Page 6: Visual Modeling and Transformation Systemmsdl.cs.mcgill.ca/people/hv/conferences/07.CAMPaM/material/intro/tihamer.pdfVMTS Visual Control Flow Language (VCFL) and Its Termination Properties](https://reader030.fdocuments.us/reader030/viewer/2022041005/5ea91db6355ab90ba62b55dc/html5/thumbnails/6.jpg)
Metamodeling – Metamodel Definition Metamodeling – Metamodel Definition with VMTS – UML Activity Metamodelwith VMTS – UML Activity Metamodel
![Page 7: Visual Modeling and Transformation Systemmsdl.cs.mcgill.ca/people/hv/conferences/07.CAMPaM/material/intro/tihamer.pdfVMTS Visual Control Flow Language (VCFL) and Its Termination Properties](https://reader030.fdocuments.us/reader030/viewer/2022041005/5ea91db6355ab90ba62b55dc/html5/thumbnails/7.jpg)
Appearance Definition with VMTS Presentation Appearance Definition with VMTS Presentation DSL – UML Activity Concrete SyntaxDSL – UML Activity Concrete Syntax
![Page 8: Visual Modeling and Transformation Systemmsdl.cs.mcgill.ca/people/hv/conferences/07.CAMPaM/material/intro/tihamer.pdfVMTS Visual Control Flow Language (VCFL) and Its Termination Properties](https://reader030.fdocuments.us/reader030/viewer/2022041005/5ea91db6355ab90ba62b55dc/html5/thumbnails/8.jpg)
Plugin Generation with Model Plugin Generation with Model Transformation Transformation
Generated CodeDOM ModelVPD Model Appearance Definition
Transformation Generated Source CodeActivity MetamodelVPD Metamodel
Sample Model with theGenerated Plugin
![Page 9: Visual Modeling and Transformation Systemmsdl.cs.mcgill.ca/people/hv/conferences/07.CAMPaM/material/intro/tihamer.pdfVMTS Visual Control Flow Language (VCFL) and Its Termination Properties](https://reader030.fdocuments.us/reader030/viewer/2022041005/5ea91db6355ab90ba62b55dc/html5/thumbnails/9.jpg)
VMTS Traversing Model ProcessorVMTS Traversing Model Processor Traversing Processor WizardTraversing Processor Wizard
Walks through the model, andWalks through the model, and Generates domain-specific implementationGenerates domain-specific implementation Validates the model and model constraintsValidates the model and model constraints Completes the already existing modelsCompletes the already existing models Optimizes the model structuresOptimizes the model structures
Traversing Processor ExecuterTraversing Processor Executer Runs the implemented traversing Runs the implemented traversing
routinesroutines
![Page 10: Visual Modeling and Transformation Systemmsdl.cs.mcgill.ca/people/hv/conferences/07.CAMPaM/material/intro/tihamer.pdfVMTS Visual Control Flow Language (VCFL) and Its Termination Properties](https://reader030.fdocuments.us/reader030/viewer/2022041005/5ea91db6355ab90ba62b55dc/html5/thumbnails/10.jpg)
MetamodelBased RewritingMetamodelBased Rewriting An instantiation of LHS must be found in An instantiation of LHS must be found in
the graph the rule being applied to instead the graph the rule being applied to instead of the isomorphic subgraph of the LHSof the isomorphic subgraph of the LHS..
![Page 11: Visual Modeling and Transformation Systemmsdl.cs.mcgill.ca/people/hv/conferences/07.CAMPaM/material/intro/tihamer.pdfVMTS Visual Control Flow Language (VCFL) and Its Termination Properties](https://reader030.fdocuments.us/reader030/viewer/2022041005/5ea91db6355ab90ba62b55dc/html5/thumbnails/11.jpg)
VMTS MetamodelBased Model Transformation
VMTS Control Flow DesignerAdaptive Modeler –Input Metamodel
VMTS Rule Editor –Transformation Steps
Adaptive Modeler –Output Metamodel
VMTS Visual Model Processor
Adaptive Modeler –Input Model
Adaptive Modeler –Output Model
Instantiation Instantiation
![Page 12: Visual Modeling and Transformation Systemmsdl.cs.mcgill.ca/people/hv/conferences/07.CAMPaM/material/intro/tihamer.pdfVMTS Visual Control Flow Language (VCFL) and Its Termination Properties](https://reader030.fdocuments.us/reader030/viewer/2022041005/5ea91db6355ab90ba62b55dc/html5/thumbnails/12.jpg)
VMTS Visual Control Flow LanguageVMTS Visual Control Flow Language (VCFL)(VCFL) and Its Termination Properties and Its Termination Properties
VMTS is an n-layer metamodeling environment – directed, VMTS is an n-layer metamodeling environment – directed, labeled graphslabeled graphs
VCFL – sequencing transformation rules, branching with VCFL – sequencing transformation rules, branching with OCL constraints, hierarchical rules, parallel execution of the OCL constraints, hierarchical rules, parallel execution of the rules, and iteration.rules, and iteration.
Metamodel-based rules – multiplicity, OCL constraintsMetamodel-based rules – multiplicity, OCL constraints Internal causalities – create, delete, modify – XSLT scriptsInternal causalities – create, delete, modify – XSLT scripts External causalities – parameter passingExternal causalities – parameter passing VCFL transformation rule composing and termination VCFL transformation rule composing and termination
algorithmalgorithm
![Page 13: Visual Modeling and Transformation Systemmsdl.cs.mcgill.ca/people/hv/conferences/07.CAMPaM/material/intro/tihamer.pdfVMTS Visual Control Flow Language (VCFL) and Its Termination Properties](https://reader030.fdocuments.us/reader030/viewer/2022041005/5ea91db6355ab90ba62b55dc/html5/thumbnails/13.jpg)
Validated Model TransformationValidated Model Transformation MotivationMotivation
At the implementation level, system validation can be At the implementation level, system validation can be achieved by testing. There is no real possibility that the achieved by testing. There is no real possibility that the testing covers all the possible cases. testing covers all the possible cases.
In case of model transformation environments, it is not In case of model transformation environments, it is not enough to validate that the transformation engine itself enough to validate that the transformation engine itself works as it is expected. The transformation specification works as it is expected. The transformation specification should also be validated.should also be validated.
There are several transformation environment, but only There are several transformation environment, but only few of them supports some (offline) validation method.few of them supports some (offline) validation method.
There is a need for a solution that can validate model There is a need for a solution that can validate model transformation specifications: online validated model transformation specifications: online validated model transformation that guarantees if the transformation transformation that guarantees if the transformation finishes successfully, the generated output (database finishes successfully, the generated output (database schema) is valid, and it is in accordance with the schema) is valid, and it is in accordance with the requirements above.requirements above.
![Page 14: Visual Modeling and Transformation Systemmsdl.cs.mcgill.ca/people/hv/conferences/07.CAMPaM/material/intro/tihamer.pdfVMTS Visual Control Flow Language (VCFL) and Its Termination Properties](https://reader030.fdocuments.us/reader030/viewer/2022041005/5ea91db6355ab90ba62b55dc/html5/thumbnails/14.jpg)
Validated Model TransformationValidated Model Transformation /2 /2 A precondition assigned to a transformation step is a boolean A precondition assigned to a transformation step is a boolean
expression that must be true at the moment when the expression that must be true at the moment when the transformation step is fired.transformation step is fired.
A postcondition assigned to a transformation step is a boolean A postcondition assigned to a transformation step is a boolean expression that must be true after the completion of a expression that must be true after the completion of a transformation step. transformation step.
If a precondition of a transformation step is not true then the If a precondition of a transformation step is not true then the transformation step fails without being fired. transformation step fails without being fired.
If a postcondition of a transformation step is not true after the If a postcondition of a transformation step is not true after the execution of the transformation step then the transformation step execution of the transformation step then the transformation step fails. fails.
A direct corollary of this is that an OCL expression in LHS is a A direct corollary of this is that an OCL expression in LHS is a precondition to the transformation step, and an OCL expression in precondition to the transformation step, and an OCL expression in RHS is a postcondition to the transformation step. RHS is a postcondition to the transformation step.
A transformation step can be fired if and only if all conditions A transformation step can be fired if and only if all conditions enlisted in LHS are true. Also, if a transformation step finished enlisted in LHS are true. Also, if a transformation step finished successfully then all conditions enlisted in RHS must be true.successfully then all conditions enlisted in RHS must be true.
A model transformation is validated if satisfies a set of high-level A model transformation is validated if satisfies a set of high-level constructions (e.g. validation, preservation, guarantee type constructions (e.g. validation, preservation, guarantee type constructs).constructs).
Successful execution of the step guarantees that the output model Successful execution of the step guarantees that the output model fulfills the conditions required by high-level constructs.fulfills the conditions required by high-level constructs.
![Page 15: Visual Modeling and Transformation Systemmsdl.cs.mcgill.ca/people/hv/conferences/07.CAMPaM/material/intro/tihamer.pdfVMTS Visual Control Flow Language (VCFL) and Its Termination Properties](https://reader030.fdocuments.us/reader030/viewer/2022041005/5ea91db6355ab90ba62b55dc/html5/thumbnails/15.jpg)
Defining Transformation Steps with Defining Transformation Steps with ConstraintsConstraints
<<Class>>Class
<<Atom>>HelperNode
<<Table>>Table
1
dstTHelpE
<<Class>>Class 1
1 srcTHelpE
1
context Class inv NonAbstract:not self.abstract
Cons_C1
Cons_C2
context Class inv Processed:not self.isProcessed
Cons_C1
Cons_T1
context Table inv PrimaryKey:self.columns>exists(c | c.datatype = 'int' and c.is_primary_key)
context Atom inv ClassAttrsAndTableCols:self.class.attribute>forAll(self.table.column>exists(c | (c.columnName = class.attribute.name))
context Table inv PrimaryAndForeignKey:not self.columns>exists(c | (c.is_primary_key orc.is_foreign_key) and c.allows_null)
Cons_A1
Cons_T2
RHS with PostconditionsLHS with Preconditions
![Page 16: Visual Modeling and Transformation Systemmsdl.cs.mcgill.ca/people/hv/conferences/07.CAMPaM/material/intro/tihamer.pdfVMTS Visual Control Flow Language (VCFL) and Its Termination Properties](https://reader030.fdocuments.us/reader030/viewer/2022041005/5ea91db6355ab90ba62b55dc/html5/thumbnails/16.jpg)
Defining Transformation Steps with Defining Transformation Steps with ConstraintsConstraints /2 /2
<<Atom>>HelperNode 1
<<Table>>Table1
1
dstTHelpE
<<Class>>Class1 1
1 srcTHelpE
1
<<Atom>>HelperNode 2
<<Table>>Table2
1
dstTHelpE
<<Class>>Class2 1
1 srcTHelpE
1
association
1
1
<<Atom>>HelperNode1
<<Table>>Table1
1
dstTHelpE
<<Class>>Class1 1
1 srcTHelpE
1
<<Atom>>HelperNode2
<<Table>>Table2
1
dstTHelpE
<<Class>>Class2 1
1 srcTHelpE
1
association
1
1
<<Table>>AssocTable
1
1
0..1
0..1
relation
relationCons_A1
context Association inv Processed:not self.isProcessed
Cons_A2
context Association inv OneToOneOrOneToMany:(self.leftMaxMultiplicity = '1' or self.rightMaxMultiplicity = '1') impliesself.attribute>forAll (self.class1.helperNode.table.column>exists(c | (c.columnName = attribute.name)) or self.attribute>forAll(self.class2.helperNode.table.column>exists(c | (c.columnName = attribute.name))
context Association inv ManyToMany:(self.leftMaxMultiplicity = '*' and self.rightMaxMultiplicity = '*') impliesself.attribute>forAll(self.class1.helperNode.table. connectTable.column>exists(c | (c.columnName = attribute.name))
Cons_A3
RHS with PostconditionsLHS with Preconditions
![Page 17: Visual Modeling and Transformation Systemmsdl.cs.mcgill.ca/people/hv/conferences/07.CAMPaM/material/intro/tihamer.pdfVMTS Visual Control Flow Language (VCFL) and Its Termination Properties](https://reader030.fdocuments.us/reader030/viewer/2022041005/5ea91db6355ab90ba62b55dc/html5/thumbnails/17.jpg)
AspectOriented Constraint ManagementAspectOriented Constraint Management MotivationMotivation
Transformation consists of several steps, many Transformation consists of several steps, many times not only a transformation rule but a whole times not only a transformation rule but a whole transformation is required to validate, preserve or transformation is required to validate, preserve or guarantee a certain propertyguarantee a certain property
The same constraint appears numerous times in the The same constraint appears numerous times in the transformation transformation →→ crosscuts the transformation crosscuts the transformation
Aspect-oriented constraint managementAspect-oriented constraint management Aspect-oriented constraintsAspect-oriented constraints Constraint aspectsConstraint aspects Weaver algorithmsWeaver algorithms
Results:Results: Consistent constraint managementConsistent constraint management Reusable constraints and transformation rulesReusable constraints and transformation rules Weaving algorithms facilitates to require from not Weaving algorithms facilitates to require from not
only individual rules, but from whole transformations only individual rules, but from whole transformations to validate, preserve or guaranty certain properties.to validate, preserve or guaranty certain properties.
![Page 18: Visual Modeling and Transformation Systemmsdl.cs.mcgill.ca/people/hv/conferences/07.CAMPaM/material/intro/tihamer.pdfVMTS Visual Control Flow Language (VCFL) and Its Termination Properties](https://reader030.fdocuments.us/reader030/viewer/2022041005/5ea91db6355ab90ba62b55dc/html5/thumbnails/18.jpg)
Removing Crosscutting ConstraintsRemoving Crosscutting ConstraintsLeftHand Side RightHand Side
<<Atom>>HelperNode1
<<Table>>Table1
1
dstTHelpE
<<Class>>Class1 1
1 srcTHelpE
1
<<Atom>>HelperNode2
<<Table>>Table2
1
dstTHelpE
<<Class>>Class2 1
1 srcTHelpE
1
association
1
1
<<Atom>>HelperNode1
<<Table>>Table1
1
dstTHelpE
<<Class>>Class1 1
1 srcTHelpE
1
<<Atom>>HelperNode2
<<Table>>Table2
1
dstTHelpE
<<Class>>Class2 1
1 srcTHelpE
1
association
1
1
<<Table>>AssocTable
1
1
0..1
0..1
relation
relation
Const2
context Class inv Const1:
not Abstract
Const1
Const2Const1Const1
Const1
context Atom inv Const2: self.class.attribute->forAll(self.table.column->exists(c | (c.columnName = class.attribute.name))
Const2
Const2
![Page 19: Visual Modeling and Transformation Systemmsdl.cs.mcgill.ca/people/hv/conferences/07.CAMPaM/material/intro/tihamer.pdfVMTS Visual Control Flow Language (VCFL) and Its Termination Properties](https://reader030.fdocuments.us/reader030/viewer/2022041005/5ea91db6355ab90ba62b55dc/html5/thumbnails/19.jpg)
Global Constraint WeaverGlobal Constraint Weaver
GlobalConstraint
Weaver
Const2
Transformation Step
ConstrainedTransformation Step
AO Constraints
LeftHand Side RightHand Side
<<Atom>>HelperNode1
<<Table>>Table1
1
dstTHelpE
<<Class>>Class1 1
1 srcTHelpE
1
<<Atom>>HelperNode2
<<Table>>Table2
1
dstTHelpE
<<Class>>Class2 1
1 srcTHelpE
1
association
1
1
<<Atom>>HelperNode1
<<Table>>Table1
1
dstTHelpE
<<Class>>Class1 1
1 srcTHelpE
1
<<Atom>>HelperNode2
<<Table>>Table2
1
dstTHelpE
<<Class>>Class2 1
1 srcTHelpE
1
association
1
1
<<Table>>AssocTable
1
1
0..1
0..1
relation
relation
Const1
LeftHand Side RightHand Side
<<Atom>>HelperNode1
<<Table>>Table1
1
dstTHelpE
<<Class>>Class1 1
1 srcTHelpE
1
<<Atom>>HelperNode2
<<Table>>Table2
1
dstTHelpE
<<Class>>Class2 1
1 srcTHelpE
1
association
1
1
<<Atom>>HelperNode1
<<Table>>Table1
1
dstTHelpE
<<Class>>Class1 1
1 srcTHelpE
1
<<Atom>>HelperNode2
<<Table>>Table2
1
dstTHelpE
<<Class>>Class2 1
1 srcTHelpE
1
association
1
1
<<Table>>AssocTable
1
1
0..1
0..1
relation
relation
Const2
Const1Const1Const1
Const2Const2Const2
Const1
![Page 20: Visual Modeling and Transformation Systemmsdl.cs.mcgill.ca/people/hv/conferences/07.CAMPaM/material/intro/tihamer.pdfVMTS Visual Control Flow Language (VCFL) and Its Termination Properties](https://reader030.fdocuments.us/reader030/viewer/2022041005/5ea91db6355ab90ba62b55dc/html5/thumbnails/20.jpg)
Constraint AspectConstraint Aspect A constraint aspect is a pattern (structure) built from A constraint aspect is a pattern (structure) built from
metamodel elements to which OCL constraints are assigned. metamodel elements to which OCL constraints are assigned. A constraint aspect contains not only textual conditions A constraint aspect contains not only textual conditions described by the OCL constraints but it has: described by the OCL constraints but it has: Structure, type and multiplicity conditions,Structure, type and multiplicity conditions, OCL constraints, andOCL constraints, and Weaving constraints. Weaving constraints.
<<Atom>>HelperNode
<<Table>>Table
1
dstTHelpE
<<Class>>Class 1
1 srcTHelpE
1
Cons_T1
context Table inv PrimaryKey:self.columns>exists(c | c.datatype = 'int' and c.is_primary_key)
context Atom inv ClassAttrsAndTableCols:self.class.attribute>forAll(self .table.column>exists(c | (c.columnName = class.attribute.name))
context Table inv PrimaryAndForeignKey:not self.columns>exists(c | (c.is_primary_key orc.is_foreign_key) and c.allows_null)
Cons_A1
Cons_T2
context Class inv ClassName :self.name = "Persistent*"
Cons_C1
![Page 21: Visual Modeling and Transformation Systemmsdl.cs.mcgill.ca/people/hv/conferences/07.CAMPaM/material/intro/tihamer.pdfVMTS Visual Control Flow Language (VCFL) and Its Termination Properties](https://reader030.fdocuments.us/reader030/viewer/2022041005/5ea91db6355ab90ba62b55dc/html5/thumbnails/21.jpg)
Constraint Aspect WeaverConstraint Aspect WeaverTransformation Step
<<Class>>Class
<<Attribute>>Attribute
<<DataType>>DataType
1
1..*
1
1
attrs
type
<<Atom>>HelperNode
<<Table>>Table
<<Column>>Column
1
1..*
1
1
dstTHelpE
cols
<<Class>>Class 1
1 srcTHelpE
pkey
1
1
Constraint Aspect Weaver
Constrained Transformation Step
<<Atom>>HelperNode
<<Table>>Table
1
dstTHelpE
<<Class>>Class 1
1 srcTHelpE
1
Cons_T1
context Table inv PrimaryKey:self.columns>exists(c | c.datatype = 'int' and c.is_primary_key)
context Atom inv ClassAttrsAndTableCols:self.class .attribute>forAll(self.table.column>exists(c | (c.columnName = class.attribute.name))
context Table inv PrimaryAndForeignKey:not self.columns>exists(c | (c.is_primary_key orc.is_foreign_key) and c.allows_null)
Cons_A1
Cons_T2
context Class inv ClassName :self.name = "Persistent*"
Cons_C1
Constraint Aspect
<<Class>>Class
<<Attribute>>Attribute
<<DataType>>DataType
1
1..*
1
1
attrs
type
<<Atom>>HelperNode
<<Table>>Table
<<Column>>Column
1
1..*
1
1
dstTHelpE
cols
<<Class>>Class 1
1 srcTHelpE
pkey
1
1Cons_T1
context Table inv PrimaryKey:self.columns>exists(c | c.datatype = 'int' and c.is_primary_key)
context Atom inv ClassAttrsAndTableCols:self.class.attribute>forAll(self.table.column>exists(c | (c.columnName = class.attribute.name))
context Table inv PrimaryAndForeignKey:not self.columns>exists(c | (c.is_primary_key orc.is_foreign_key) and c.allows_null)
Cons_A1
Cons_T2
![Page 22: Visual Modeling and Transformation Systemmsdl.cs.mcgill.ca/people/hv/conferences/07.CAMPaM/material/intro/tihamer.pdfVMTS Visual Control Flow Language (VCFL) and Its Termination Properties](https://reader030.fdocuments.us/reader030/viewer/2022041005/5ea91db6355ab90ba62b55dc/html5/thumbnails/22.jpg)
Sample Case Studies Sample Case Studies Generating C++ and C# source code from class diagramGenerating C++ and C# source code from class diagram Generating C++ source code from statechart diagram for Generating C++ source code from statechart diagram for
Quantum FrameworkQuantum Framework Generating relational database model from class diagram Generating relational database model from class diagram
((Class2RDBMSClass2RDBMS)) Flattening hierarchical statechart diagram Flattening hierarchical statechart diagram Model-based software evolutionModel-based software evolution Model-based unification of mobile platformsModel-based unification of mobile platforms
VMTS
VisualModel
ProcessorGenerated
XML
.NET Class Directory
Uses
.NET CF
SimplianClass Directory
Uses
Simplian Framework
GeneratingC++ code
GeneratedcodeDOM
tree
Statechart >codeDOM
Resource >codeDOM
Statechart >codeDOM
Resource >Resource XML
Statechart Diagram
Resource Model
Describesthe operation
GeneratingC# code
![Page 23: Visual Modeling and Transformation Systemmsdl.cs.mcgill.ca/people/hv/conferences/07.CAMPaM/material/intro/tihamer.pdfVMTS Visual Control Flow Language (VCFL) and Its Termination Properties](https://reader030.fdocuments.us/reader030/viewer/2022041005/5ea91db6355ab90ba62b55dc/html5/thumbnails/23.jpg)
Summary /1Summary /1 Visual Model and Transformation Visual Model and Transformation
System – multipurpose n-layer System – multipurpose n-layer modeling and metamodel-based modeling and metamodel-based model transformation frameworkmodel transformation framework
Visual Language DefinitionVisual Language Definition Metamodeling, modelingMetamodeling, modeling Appearance definitionAppearance definition Generating VMTS plug-in with model Generating VMTS plug-in with model
transformationtransformation
![Page 24: Visual Modeling and Transformation Systemmsdl.cs.mcgill.ca/people/hv/conferences/07.CAMPaM/material/intro/tihamer.pdfVMTS Visual Control Flow Language (VCFL) and Its Termination Properties](https://reader030.fdocuments.us/reader030/viewer/2022041005/5ea91db6355ab90ba62b55dc/html5/thumbnails/24.jpg)
Summary /Summary /22 Optimized constraint handling and validationOptimized constraint handling and validation
Aspect-oriented constraint management (consistency, Aspect-oriented constraint management (consistency, reuse)reuse)
More efficient constraint propagation and validation More efficient constraint propagation and validation methods (Constraint Aspects)methods (Constraint Aspects)
Validated model transformationValidated model transformation Preconditions, postconditions – OCL constraints enlisted Preconditions, postconditions – OCL constraints enlisted
in model transformation stepsin model transformation steps.. Using the weaving algorithms we can require from not Using the weaving algorithms we can require from not
only individual steps, but from whole transformations to only individual steps, but from whole transformations to validate, preserve or guaranty certain propertiesvalidate, preserve or guaranty certain properties..
Constraint separation facilitates to reduce the Constraint separation facilitates to reduce the complexity of validation type constraints that complexity of validation type constraints that makes them understandable and working with makes them understandable and working with them becomes easier.them becomes easier.
![Page 25: Visual Modeling and Transformation Systemmsdl.cs.mcgill.ca/people/hv/conferences/07.CAMPaM/material/intro/tihamer.pdfVMTS Visual Control Flow Language (VCFL) and Its Termination Properties](https://reader030.fdocuments.us/reader030/viewer/2022041005/5ea91db6355ab90ba62b55dc/html5/thumbnails/25.jpg)
Open Issues – CAMPaM 2Open Issues – CAMPaM 2007007 Domain Specific Design PatternsDomain Specific Design Patterns
Partial InstantiationPartial Instantiation General Simulation ModelingGeneral Simulation Modeling
DSLsDSLs UI ProgrammabilityUI Programmability Transformation DebuggingTransformation Debugging
Round-Trip Engineering SupportRound-Trip Engineering Support TraceabilityTraceability Sophisticated diff mechanismsSophisticated diff mechanisms Testing modelsTesting models