summaryrefslogtreecommitdiffstats
path: root/scripts
diff options
context:
space:
mode:
authorSandro S. Andrade <sandroandrade@kde.org>2013-06-17 15:54:21 -0300
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-06-17 21:01:04 +0200
commit00e21329a0499d356fca990804df6af1ddadfe5b (patch)
tree90adb157cb04a5268339795c786721974c2c2d16 /scripts
parent8579100a05c1a8ca9c59820aa7a9c6a6d64185ef (diff)
Provide enhanced DuSE metamodel
Change-Id: I0a1163ac782d19acdb43b7f886a04a0414751075 Reviewed-by: Sandro S. Andrade <sandroandrade@kde.org>
Diffstat (limited to 'scripts')
-rw-r--r--scripts/normative-xmi/DuSE.qtxmi124
-rw-r--r--scripts/normative-xmi/DuSE.xmi156
-rw-r--r--scripts/normative-xmi/xmi2qt.xq1
3 files changed, 276 insertions, 5 deletions
diff --git a/scripts/normative-xmi/DuSE.qtxmi b/scripts/normative-xmi/DuSE.qtxmi
index 32d8d7a3..9effda5e 100644
--- a/scripts/normative-xmi/DuSE.qtxmi
+++ b/scripts/normative-xmi/DuSE.qtxmi
@@ -1,12 +1,136 @@
<qtxmi:XMI xmlns:qtxmi="http://www.qt-project.org" xmlns:xmi="http://www.omg.org/spec/XMI/20110701" xmlns:uml="http://www.omg.org/spec/UML/20110701">
<namespace path="QtDuse">
<class name="QDuseDesignSpace" isAbstract="false">
+ <documentation>A design space entails the design dimensions (degrees of freedom) and quality metrics for a particular application domain.</documentation>
<qtinclude>QtCore/QString</qtinclude>
+ <qtinclude>QtCore/QList</qtinclude>
+ <qtinclude>QtCore/QSet</qtinclude>
+ <forwarddecl namespace="QtDuse" class="QDuseDesignDimension"/>
+ <forwarddecl namespace="QtDuse" class="QDuseQualityMetric"/>
<attribute isDerived="false" isDerivedUnion="false" isReadOnly="false" subsettedProperty="" redefinedProperty="" id="DesignSpace-name" defaultValue="" aggregation="none" subsettedBy="">
<accessor return="QString " name="name" constness=" const"/>
<accessor return="void " name="setName" constness="">
<parameter type="QString " name="name"/>
</accessor>
+ <documentation>The design space's name.</documentation>
+ </attribute>
+ <attribute isDerived="false" isDerivedUnion="false" isReadOnly="false" subsettedProperty="" redefinedProperty="" id="DesignSpace-designDimension" defaultValue="" aggregation="composite" subsettedBy="">
+ <accessor return="QList&lt;QDuseDesignDimension *&gt; " name="designDimensions" constness=" const"/>
+ <accessor return="void " name="addDesignDimension" constness="">
+ <parameter type="QDuseDesignDimension *" name="designDimension"/>
+ </accessor>
+ <accessor return="void " name="removeDesignDimension" constness="">
+ <parameter type="QDuseDesignDimension *" name="designDimension"/>
+ </accessor>
+ <documentation>The design dimensions (degrees of freedom) of the design space.</documentation>
+ </attribute>
+ <attribute isDerived="false" isDerivedUnion="false" isReadOnly="false" subsettedProperty="" redefinedProperty="" id="DesignSpace-qualityMetric" defaultValue="" aggregation="composite" subsettedBy="">
+ <accessor return="QSet&lt;QDuseQualityMetric *&gt; " name="qualityMetrics" constness=" const"/>
+ <accessor return="void " name="addQualityMetric" constness="">
+ <parameter type="QDuseQualityMetric *" name="qualityMetric"/>
+ </accessor>
+ <accessor return="void " name="removeQualityMetric" constness="">
+ <parameter type="QDuseQualityMetric *" name="qualityMetric"/>
+ </accessor>
+ <documentation>The quality metrics defined for the design space.</documentation>
+ </attribute>
+ </class>
+ <class name="QDuseDesignDimension" isAbstract="false">
+ <documentation>A design dimension captures a specific degree of freedom when designing architectures in the given application domain. A design dimension entails a set of variation points which denote alternative solutions for such degree of freedom. Optionally, a variation point may define validation rules which should return a true value if that variation point is to be considered valid for the corresponding input model. A variation point may also specify a set of other variation points which should be previously evaluated, defining a sort of design dimension dependency.</documentation>
+ <qtinclude>QtCore/QString</qtinclude>
+ <qtinclude>QtCore/QSet</qtinclude>
+ <forwarddecl namespace="QtDuse" class="QDuseDesignDimension"/>
+ <forwarddecl namespace="QtDuse" class="QDuseVariationPoint"/>
+ <forwarddecl namespace="QtDuse" class="QDuseDesignDimensionInstance"/>
+ <attribute isDerived="false" isDerivedUnion="false" isReadOnly="false" subsettedProperty="" redefinedProperty="" id="DesignSpace-name" defaultValue="" aggregation="none" subsettedBy="">
+ <accessor return="QString " name="name" constness=" const"/>
+ <accessor return="void " name="setName" constness="">
+ <parameter type="QString " name="name"/>
+ </accessor>
+ <documentation>The design dimension's name.</documentation>
+ </attribute>
+ <attribute isDerived="false" isDerivedUnion="false" isReadOnly="false" subsettedProperty="" redefinedProperty="" id="DesignSpace-instanceSelectionRule" defaultValue="" aggregation="none" subsettedBy="">
+ <accessor return="QString " name="instanceSelectionRule" constness=" const"/>
+ <accessor return="void " name="setInstanceSelectionRule" constness="">
+ <parameter type="QString " name="instanceSelectionRule"/>
+ </accessor>
+ <documentation>The rule for detecting a specific locus of architectural decision related to this design dimension. Such rule relies on the accompanying UML profile for the specific application domain, in order to identify the decision loci.</documentation>
+ </attribute>
+ <attribute isDerived="false" isDerivedUnion="false" isReadOnly="false" subsettedProperty="" redefinedProperty="" id="DesignDimension-requiredPreviousEvaluation" defaultValue="" aggregation="none" subsettedBy="">
+ <accessor return="QSet&lt;QDuseDesignDimension *&gt; " name="requiredPreviousEvaluations" constness=" const"/>
+ <accessor return="void " name="addRequiredPreviousEvaluation" constness="">
+ <parameter type="QDuseDesignDimension *" name="requiredPreviousEvaluation"/>
+ </accessor>
+ <accessor return="void " name="removeRequiredPreviousEvaluation" constness="">
+ <parameter type="QDuseDesignDimension *" name="requiredPreviousEvaluation"/>
+ </accessor>
+ <documentation>The design dimensions that must be previously evaluated before this design dimension. Such dependency may be required in order to tackle dependent design dimensions and identify invalid design space locations.</documentation>
+ </attribute>
+ <attribute isDerived="false" isDerivedUnion="false" isReadOnly="false" subsettedProperty="" redefinedProperty="" id="DesignDimension-variationPoint" defaultValue="" aggregation="composite" subsettedBy="">
+ <accessor return="QSet&lt;QDuseVariationPoint *&gt; " name="variationPoints" constness=" const"/>
+ <accessor return="void " name="addVariationPoint" constness="">
+ <parameter type="QDuseVariationPoint *" name="variationPoint"/>
+ </accessor>
+ <accessor return="void " name="removeVariationPoint" constness="">
+ <parameter type="QDuseVariationPoint *" name="variationPoint"/>
+ </accessor>
+ <documentation>The design dimension's variation points (alternative solutions for the design dimension's concern).</documentation>
+ </attribute>
+ <attribute isDerived="false" isDerivedUnion="false" isReadOnly="false" subsettedProperty="" redefinedProperty="" id="DesignDimension-designDimensionInstance" defaultValue="" aggregation="composite" subsettedBy="">
+ <accessor return="QSet&lt;QDuseDesignDimensionInstance *&gt; " name="designDimensionInstances" constness=" const"/>
+ <accessor return="void " name="addDesignDimensionInstance" constness="">
+ <parameter type="QDuseDesignDimensionInstance *" name="designDimensionInstance"/>
+ </accessor>
+ <accessor return="void " name="removeDesignDimensionInstance" constness="">
+ <parameter type="QDuseDesignDimensionInstance *" name="designDimensionInstance"/>
+ </accessor>
+ <documentation>A specific design dimension instance created for a identified locus of architectural decision.</documentation>
+ </attribute>
+ </class>
+ <class name="QDuseVariationPoint" isAbstract="false">
+ <documentation>A variation point represents a specific solution for a given design dimension. A variation point entails validation rules which check for valid combinations of variation points and a script which defines the architectural changes to be enacted from such solution.</documentation>
+ <qtinclude>QtCore/QString</qtinclude>
+ <attribute isDerived="false" isDerivedUnion="false" isReadOnly="false" subsettedProperty="" redefinedProperty="" id="VariationPoint-rationale" defaultValue="" aggregation="none" subsettedBy="">
+ <accessor return="QString " name="rationale" constness=" const"/>
+ <accessor return="void " name="setRationale" constness="">
+ <parameter type="QString " name="rationale"/>
+ </accessor>
+ <documentation>The variation point's rationale.</documentation>
+ </attribute>
+ <attribute isDerived="false" isDerivedUnion="false" isReadOnly="false" subsettedProperty="" redefinedProperty="" id="VariationPoint-preChangeValidationRule" defaultValue="" aggregation="none" subsettedBy="">
+ <accessor return="QString " name="preChangeValidationRule" constness=" const"/>
+ <accessor return="void " name="setPreChangeValidationRule" constness="">
+ <parameter type="QString " name="preChangeValidationRule"/>
+ </accessor>
+ <documentation>A set of rules which should be evaluated as true if design space locations containing such variation point are to be considered as valid ones.</documentation>
+ </attribute>
+ <attribute isDerived="false" isDerivedUnion="false" isReadOnly="false" subsettedProperty="" redefinedProperty="" id="VariationPoint-modelChange" defaultValue="" aggregation="none" subsettedBy="">
+ <accessor return="QString " name="modelChange" constness=" const"/>
+ <accessor return="void " name="setModelChange" constness="">
+ <parameter type="QString " name="modelChange"/>
+ </accessor>
+ <documentation>The architectural changes to be enacted as contributions arosen from this variation point. The complete set of architectural changes is the merge of architectural contributions from all involved variation points.</documentation>
+ </attribute>
+ </class>
+ <class name="QDuseDesignDimensionInstance" isAbstract="false">
+ <documentation>A specific design dimenstion instance created to tackle a particular locus of architectural decision in the input model.</documentation>
+ </class>
+ <class name="QDuseQualityMetric" isAbstract="false">
+ <documentation>A quality metric defined for the corresponding design space.</documentation>
+ <qtinclude>QtCore/QString</qtinclude>
+ <attribute isDerived="false" isDerivedUnion="false" isReadOnly="false" subsettedProperty="" redefinedProperty="" id="QualityMetric-name" defaultValue="" aggregation="none" subsettedBy="">
+ <accessor return="QString " name="name" constness=" const"/>
+ <accessor return="void " name="setName" constness="">
+ <parameter type="QString " name="name"/>
+ </accessor>
+ <documentation>The quality metric's name.</documentation>
+ </attribute>
+ <attribute isDerived="false" isDerivedUnion="false" isReadOnly="false" subsettedProperty="" redefinedProperty="" id="QualityMetric-expression" defaultValue="" aggregation="none" subsettedBy="">
+ <accessor return="QString " name="expression" constness=" const"/>
+ <accessor return="void " name="setExpression" constness="">
+ <parameter type="QString " name="expression"/>
+ </accessor>
+ <documentation>The quality metric's evaluation expression.</documentation>
</attribute>
</class>
</namespace>
diff --git a/scripts/normative-xmi/DuSE.xmi b/scripts/normative-xmi/DuSE.xmi
index 9330ca9f..abc71411 100644
--- a/scripts/normative-xmi/DuSE.xmi
+++ b/scripts/normative-xmi/DuSE.xmi
@@ -1,13 +1,161 @@
-<?xml version="1.0" encoding="UTF-8"?>
+<?xml version="1.0"?>
<xmi:XMI xmlns:xmi="http://www.omg.org/spec/XMI/20110701" xmlns:uml="http://www.omg.org/spec/UML/20110701">
- <uml:Package name="DuSE" xmi:id="">
- <packageImport xmi:type="uml:PackageImport" xmi:id="_packageImport.0">
+ <uml:Package xmi:type="uml:Package" xmi:id="" name="DuSE" URI="http://liveblue.wordpress.com">
+ <packageImport xmi:type="uml:PackageImport" xmi:id="PackageImport.0">
<importedPackage href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#_0"/>
</packageImport>
+ <packagedElement xmi:type="uml:Association" name="A_designSpace_designDimension" xmi:id="A_designSpace_designDimension">
+ <memberEnd xmi:idref="DesignSpace-designDimension"/>
+ <memberEnd xmi:idref="A_designSpace_designDimension-designSpace"/>
+ <ownedEnd xmi:type="uml:Property" name="designSpace" visibility="public" xmi:id="A_designSpace_designDimension-designSpace">
+ <type xmi:idref="DesignSpace"/>
+ <association xmi:idref="A_designSpace_designDimension"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" name="A_designDimension_previousEvaluation" xmi:id="A_designDimension_previousEvaluation">
+ <memberEnd xmi:idref="DesignDimension-requiredPreviousEvaluation"/>
+ <memberEnd xmi:idref="A_designDimension_previousEvaluation-requiringDesignDimension"/>
+ <ownedEnd xmi:type="uml:Property" name="designSpace" visibility="public" xmi:id="A_designDimension_previousEvaluation-requiringDesignDimension">
+ <type xmi:idref="DesignDimension"/>
+ <association xmi:idref="A_designDimension_previousEvaluation"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" name="A_designDimension_variationPoint" xmi:id="A_designDimension_variationPoint">
+ <memberEnd xmi:idref="DesignDimension-variationPoint"/>
+ <memberEnd xmi:idref="A_designDimension_variationPoint-designDimension"/>
+ <ownedEnd xmi:type="uml:Property" name="designDimension" visibility="public" xmi:id="A_designDimension_variationPoint-designDimension">
+ <type xmi:idref="DesignDimension"/>
+ <association xmi:idref="A_designDimension_variationPoint"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" name="A_designDimension_designDimensionInstance" xmi:id="A_designDimension_designDimensionInstance">
+ <memberEnd xmi:idref="DesignDimension-designDimensionInstance"/>
+ <memberEnd xmi:idref="A_designDimension_designDimensionInstance-designDimension"/>
+ <ownedEnd xmi:type="uml:Property" name="designDimension" visibility="public" xmi:id="A_designDimension_designDimensionInstance-designDimension">
+ <type xmi:idref="DesignDimension"/>
+ <association xmi:idref="A_designDimension_designDimensionInstance"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" name="A_designSpace_qualityMetric" xmi:id="A_designSpace_qualityMetric">
+ <memberEnd xmi:idref="DesignSpace-qualityMetric"/>
+ <memberEnd xmi:idref="A_designSpace_qualityMetric-designSpace"/>
+ <ownedEnd xmi:type="uml:Property" name="designDimension" visibility="public" xmi:id="A_designSpace_qualityMetric-designSpace">
+ <type xmi:idref="DesignSpace"/>
+ <association xmi:idref="A_designSpace_qualityMetric"/>
+ </ownedEnd>
+ </packagedElement>
<packagedElement xmi:type="uml:Class" name="DesignSpace" xmi:id="DesignSpace">
+ <ownedComment xmi:type="uml:Comment" xmi:id="DesignSpace-_ownedComment.0" annotatedElement="DesignSpace">
+ <body>A design space entails the design dimensions (degrees of freedom) and quality metrics for a particular application domain.</body>
+ </ownedComment>
+ <ownedAttribute xmi:type="uml:Property" name="name" visibility="public" xmi:id="DesignSpace-name">
+ <ownedComment xmi:type="uml:Comment" xmi:id="DesignSpace-name-_ownedComment.0" annotatedElement="DesignSpace-name">
+ <body>The design space's name.</body>
+ </ownedComment>
+ <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" name="designDimension" visibility="public" type="DesignDimension" aggregation="composite" isOrdered="true" xmi:id="DesignSpace-designDimension">
+ <ownedComment xmi:type="uml:Comment" xmi:id="DesignSpace-designDimension-_ownedComment.0" annotatedElement="DesignSpace-designDimension">
+ <body>The design dimensions (degrees of freedom) of the design space.</body>
+ </ownedComment>
+ <association xmi:idref="A_designSpace_designDimension"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" value="*" xmi:id="DesignSpace-designDimension-LiteralUnlimitedNatural.1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="DesignSpace-designDimension-LiteralInteger.1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" name="qualityMetric" visibility="public" type="QualityMetric" aggregation="composite" xmi:id="DesignSpace-qualityMetric">
+ <ownedComment xmi:type="uml:Comment" xmi:id="DesignSpace-qualityMetric-_ownedComment.0" annotatedElement="DesignSpace-qualityMetric">
+ <body>The quality metrics defined for the design space.</body>
+ </ownedComment>
+ <association xmi:idref="A_designSpace_qualityMetric"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" value="*" xmi:id="DesignSpace-qualityMetric-LiteralUnlimitedNatural.1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="DesignSpace-qualityMetric-LiteralInteger.1"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" name="DesignDimension" xmi:id="DesignDimension">
+ <ownedComment xmi:type="uml:Comment" xmi:id="DesignDimension-_ownedComment.0" annotatedElement="DesignDimension">
+ <body>A design dimension captures a specific degree of freedom when designing architectures in the given application domain. A design dimension entails a set of variation points which denote alternative solutions for such degree of freedom. Optionally, a variation point may define validation rules which should return a true value if that variation point is to be considered valid for the corresponding input model. A variation point may also specify a set of other variation points which should be previously evaluated, defining a sort of design dimension dependency.</body>
+ </ownedComment>
<ownedAttribute xmi:type="uml:Property" visibility="public" name="name" xmi:id="DesignSpace-name">
+ <ownedComment xmi:type="uml:Comment" xmi:id="DesignSpace-name-_ownedComment.0" annotatedElement="DesignSpace-name">
+ <body>The design dimension's name.</body>
+ </ownedComment>
+ <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" visibility="public" name="instanceSelectionRule" xmi:id="DesignSpace-instanceSelectionRule">
+ <ownedComment xmi:type="uml:Comment" xmi:id="DesignSpace-instanceSelectionRule-_ownedComment.0" annotatedElement="DesignSpace-instanceSelectionRule">
+ <body>The rule for detecting a specific locus of architectural decision related to this design dimension. Such rule relies on the accompanying UML profile for the specific application domain, in order to identify the decision loci.</body>
+ </ownedComment>
+ <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" name="requiredPreviousEvaluation" visibility="public" type="DesignDimension" xmi:id="DesignDimension-requiredPreviousEvaluation">
+ <ownedComment xmi:type="uml:Comment" xmi:id="DesignDimension-requiredPreviousEvaluation-_ownedComment.0" annotatedElement="DesignDimension-requiredPreviousEvaluation">
+ <body>The design dimensions that must be previously evaluated before this design dimension. Such dependency may be required in order to tackle dependent design dimensions and identify invalid design space locations.</body>
+ </ownedComment>
+ <association xmi:idref="A_designDimension_previousEvaluation"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" value="*" xmi:id="DesignDimension-requiredPreviousEvaluation-LiteralUnlimitedNatural.1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="DesignDimension-requiredPreviousEvaluation-LiteralInteger.1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" name="variationPoint" visibility="public" type="VariationPoint" aggregation="composite" xmi:id="DesignDimension-variationPoint">
+ <ownedComment xmi:type="uml:Comment" xmi:id="DesignDimension-variationPoint-_ownedComment.0" annotatedElement="DesignDimension-variationPoint">
+ <body>The design dimension's variation points (alternative solutions for the design dimension's concern).</body>
+ </ownedComment>
+ <association xmi:idref="A_designDimension_variationPoint"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" value="*" xmi:id="DesignDimension-variationPoint-LiteralUnlimitedNatural.1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="DesignDimension-variationPoint-LiteralInteger.1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" name="designDimensionInstance" visibility="public" type="DesignDimensionInstance" aggregation="composite" xmi:id="DesignDimension-designDimensionInstance">
+ <ownedComment xmi:type="uml:Comment" xmi:id="DesignDimension-designDimensionInstance-_ownedComment.0" annotatedElement="DesignDimension-designDimensionInstance">
+ <body>A specific design dimension instance created for a identified locus of architectural decision.</body>
+ </ownedComment>
+ <association xmi:idref="A_designDimension_designDimensionInstance"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" value="*" xmi:id="DesignDimension-designDimensionInstance-LiteralUnlimitedNatural.1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="DesignDimension-designDimensionInstance-LiteralInteger.1"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" name="VariationPoint" xmi:id="VariationPoint">
+ <ownedComment xmi:type="uml:Comment" xmi:id="VariationPoint-_ownedComment.0" annotatedElement="VariationPoint">
+ <body>A variation point represents a specific solution for a given design dimension. A variation point entails validation rules which check for valid combinations of variation points and a script which defines the architectural changes to be enacted from such solution.</body>
+ </ownedComment>
+ <ownedAttribute xmi:type="uml:Property" visibility="public" name="rationale" xmi:id="VariationPoint-rationale">
+ <ownedComment xmi:type="uml:Comment" xmi:id="VariationPoint-rationale-_ownedComment.0" annotatedElement="VariationPoint-rationale">
+ <body>The variation point's rationale.</body>
+ </ownedComment>
+ <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" visibility="public" name="preChangeValidationRule" xmi:id="VariationPoint-preChangeValidationRule">
+ <ownedComment xmi:type="uml:Comment" xmi:id="VariationPoint-preChangeValidationRule-_ownedComment.0" annotatedElement="VariationPoint-preChangeValidationRule">
+ <body>A set of rules which should be evaluated as true if design space locations containing such variation point are to be considered as valid ones.</body>
+ </ownedComment>
+ <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" visibility="public" name="modelChange" xmi:id="VariationPoint-modelChange">
+ <ownedComment xmi:type="uml:Comment" xmi:id="VariationPoint-modelChange-_ownedComment.0" annotatedElement="VariationPoint-modelChange">
+ <body>The architectural changes to be enacted as contributions arosen from this variation point. The complete set of architectural changes is the merge of architectural contributions from all involved variation points.</body>
+ </ownedComment>
+ <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#String"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" name="DesignDimensionInstance" xmi:id="DesignDimensionInstance">
+ <ownedComment xmi:type="uml:Comment" xmi:id="DesignDimensionInstance-_ownedComment.0" annotatedElement="DesignDimensionInstance">
+ <body>A specific design dimenstion instance created to tackle a particular locus of architectural decision in the input model.</body>
+ </ownedComment>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" name="QualityMetric" xmi:id="QualityMetric">
+ <ownedComment xmi:type="uml:Comment" xmi:id="QualityMetric-_ownedComment.0" annotatedElement="QualityMetric">
+ <body>A quality metric defined for the corresponding design space.</body>
+ </ownedComment>
+ <ownedAttribute xmi:type="uml:Property" visibility="public" name="name" xmi:id="QualityMetric-name">
+ <ownedComment xmi:type="uml:Comment" xmi:id="QualityMetric-name-_ownedComment.0" annotatedElement="QualityMetric-name">
+ <body>The quality metric's name.</body>
+ </ownedComment>
+ <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" visibility="public" name="expression" xmi:id="QualityMetric-expression">
+ <ownedComment xmi:type="uml:Comment" xmi:id="QualityMetric-expression-_ownedComment.0" annotatedElement="QualityMetric-expression">
+ <body>The quality metric's evaluation expression.</body>
+ </ownedComment>
<type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#String"/>
</ownedAttribute>
</packagedElement>
</uml:Package>
-</xmi:XMI>
+</xmi:XMI> \ No newline at end of file
diff --git a/scripts/normative-xmi/xmi2qt.xq b/scripts/normative-xmi/xmi2qt.xq
index c895c3af..594852bc 100644
--- a/scripts/normative-xmi/xmi2qt.xq
+++ b/scripts/normative-xmi/xmi2qt.xq
@@ -291,7 +291,6 @@ return
| $class/ownedAttribute/type/@xmi:idref | $class/ownedOperation/ownedParameter/type/@xmi:idref
| $class/ownedAttribute/type/@href | $class/ownedOperation/ownedParameter/type/@href)
let $forwardNamespace := tokenize(qtxmi:namespaceFromTypeString($id), "::")
- let $forwardNamespace := string-join(remove($forwardNamespace, count($forwardNamespace)), "::")
where qtxmi:elementFromTypeString($id)/@xmi:type = "uml:Class"
and empty(distinct-values($id[.=$superClasses]))
order by $forwardNamespace