diff options
author | Sandro S. Andrade <sandroandrade@kde.org> | 2013-06-17 15:54:21 -0300 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-06-17 21:01:04 +0200 |
commit | 00e21329a0499d356fca990804df6af1ddadfe5b (patch) | |
tree | 90adb157cb04a5268339795c786721974c2c2d16 /scripts | |
parent | 8579100a05c1a8ca9c59820aa7a9c6a6d64185ef (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.qtxmi | 124 | ||||
-rw-r--r-- | scripts/normative-xmi/DuSE.xmi | 156 | ||||
-rw-r--r-- | scripts/normative-xmi/xmi2qt.xq | 1 |
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<QDuseDesignDimension *> " 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<QDuseQualityMetric *> " 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<QDuseDesignDimension *> " 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<QDuseVariationPoint *> " 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<QDuseDesignDimensionInstance *> " 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 |