<?xml version='1.0' encoding='UTF-8'?>
<xmi:XMI xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:uml="http://www.omg.org/spec/UML/20131001" xmlns:mofext="http://www.omg.org/spec/MOF/20131001">
  <uml:Profile xmi:id="UPR" URI="https://www.omg.org/spec/UPR/20190501/Profile" name="UPR">
    <metamodelReference xmi:id="UPR._packageImport.UML" xmi:type="uml:PackageImport">
      <importedPackage href="http://www.omg.org/spec/UML/20131001/UML.xmi#_0"/>
    </metamodelReference>
    <packageImport xmi:idref="UPR._packageImport.UML"/>
    <packageImport xmi:id="UPR._packageImport.PrimitiveTypes" xmi:type="uml:PackageImport">
      <importedPackage href="http://www.omg.org/spec/UML/20131001/PrimitiveTypes.xmi#_0"/>
    </packageImport>
    <packagedElement xmi:id="UPR.Operators" xmi:type="uml:Package" URI="" name="Operators">
      <packagedElement xmi:id="UPR.OperatorSemanticsClass" xmi:type="uml:Class" isAbstract="true" name="OperatorSemanticsClass">
        <ownedComment xmi:id="UPR.OperatorSemanticsClass._comment0" xmi:type="uml:Comment" body="Provide a abstract base class for defining the semantics of a ComparisonOperator"/>
        <ownedOperation xmi:id="UPR.OperatorSemanticsClass.applyTo_ValueSpecification_ValueSpecification" xmi:type="uml:Operation" isQuery="true" name="applyTo">
          <ownedComment 
          xmi:id="UPR.OperatorSemanticsClass.applyTo_ValueSpecification_ValueSpecification._comment0" xmi:type="uml:Comment" body="This operation is used for specifying how the result of the comparison shall be computed. It has to be defined in each concrete subclass according to the expected semantics of the corresponding operator.">
</ownedComment>
          <ownedParameter xmi:id="UPR.OperatorSemanticsClass.applyTo_ValueSpecification_ValueSpecification.x" xmi:type="uml:Parameter" effect="read" name="x">
            <type href="http://www.omg.org/spec/UML/20131001/UML.xmi#ValueSpecification"/>
          </ownedParameter>
          <ownedParameter xmi:id="UPR.OperatorSemanticsClass.applyTo_ValueSpecification_ValueSpecification.y" xmi:type="uml:Parameter" effect="read" name="y">
            <type href="http://www.omg.org/spec/UML/20131001/UML.xmi#ValueSpecification"/>
          </ownedParameter>
          <ownedParameter xmi:id="UPR.OperatorSemanticsClass.applyTo_ValueSpecification_ValueSpecification.result" xmi:type="uml:Parameter" direction="return" effect="create" name="result">
            <type href="http://www.omg.org/spec/UML/20131001/PrimitiveTypes.xmi#Boolean"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="UPR.OperatorSemanticsClass.symbol_" xmi:type="uml:Operation" isQuery="true" name="symbol">
          <ownedComment xmi:id="UPR.OperatorSemanticsClass.symbol_._comment0" xmi:type="uml:Comment" body="This operation is intended to be defined in each concrete subclass in order to return the string representing the operator symbol as a constant value."/>
          <ownedParameter xmi:id="UPR.OperatorSemanticsClass.symbol_." xmi:type="uml:Parameter" direction="return" effect="create" name="">
            <lowerValue xmi:id="UPR.OperatorSemanticsClass.symbol_..lowerValue0" xmi:type="uml:LiteralInteger" name="" value="1"/>
            <type href="http://www.omg.org/spec/UML/20131001/PrimitiveTypes.xmi#String"/>
            <upperValue xmi:id="UPR.OperatorSemanticsClass.symbol_..upperValue0" xmi:type="uml:LiteralUnlimitedNatural" name="" value="1"/>
          </ownedParameter>
        </ownedOperation>
      </packagedElement>
    </packagedElement>
    <packagedElement xmi:id="UPR.DesignObjectiveConstraints" xmi:type="uml:Package" URI="http://www.omg.org/spec/MARS/20170805/ROSETTA" name="Design Objective Constraints">
      <packagedElement xmi:id="UPR.DesignObjectiveConstraint" xmi:type="uml:Stereotype" name="DesignObjectiveConstraint">
        <generalization xmi:id="UPR.DesignObjectiveConstraint._generalization.UPR.UPRConstraint" xmi:type="uml:Generalization">
          <general xmi:idref="UPR.UPRConstraint"/>
        </generalization>
        <ownedAttribute xmi:id="UPR.DesignObjectiveConstraint.docID" xmi:type="uml:Property" isID="true" name="docID">
          <lowerValue xmi:id="UPR.DesignObjectiveConstraint.docID.lowerValue0" xmi:type="uml:LiteralInteger" name="" value="1"/>
          <ownedComment xmi:id="UPR.DesignObjectiveConstraint.docID._comment0" xmi:type="uml:Comment" body="This attribute represents the unique Identification Number of a Design Objective Constraint."/>
          <type href="http://www.omg.org/spec/UML/20131001/PrimitiveTypes.xmi#String"/>
          <upperValue xmi:id="UPR.DesignObjectiveConstraint.docID.upperValue0" xmi:type="uml:LiteralUnlimitedNatural" name="" value="1"/>
        </ownedAttribute>
        <ownedComment xmi:id="UPR.DesignObjectiveConstraint._comment0" xmi:type="uml:Comment" body="The DesignObjectiveConstraint stereotype specializes the UPRConstraint stereotype for specifying a Design Constraint."/>
      </packagedElement>
      <packagedElement xmi:id="UPR.ELMtoELMSensitivity" xmi:type="uml:Stereotype" name="ELMtoELMSensitivity">
        <generalization xmi:id="UPR.ELMtoELMSensitivity._generalization.UPR.Sensitivity" xmi:type="uml:Generalization">
          <general xmi:idref="UPR.Sensitivity"/>
        </generalization>
        <ownedComment xmi:id="UPR.ELMtoELMSensitivity._comment0" xmi:type="uml:Comment" body="The ELMtoELMSensitivity stereotype extends the UML Dependency to model a sensitivity-based relation between two NamedElements."/>
      </packagedElement>
      <packagedElement xmi:id="UPR.DOtoELMSensitivity" xmi:type="uml:Stereotype" name="DOtoELMSensitivity">
        <generalization xmi:id="UPR.DOtoELMSensitivity._generalization.UPR.Sensitivity" xmi:type="uml:Generalization">
          <general xmi:idref="UPR.Sensitivity"/>
        </generalization>
        <ownedComment xmi:id="UPR.DOtoELMSensitivity._comment0" xmi:type="uml:Comment" body="The DOtoELMSensitivity stereotype specializes the Sensitivity stereotype to model a sensitivity-based relation between a Design Objective that is constrained and a NamedElement"/>
        <ownedRule xmi:id="UPR.DOtoELMSensitivity._rule.client_designobjective" xmi:type="uml:Constraint" name="client_designobjective">
          <ownedComment xmi:id="UPR.DOtoELMSensitivity._rule.client_designobjective._comment0" xmi:type="uml:Comment" body="The client shall be constrained by a DesignObjectiveConstraint"/>
          <specification xmi:id="UPR.DOtoELMSensitivity._rule.client_designobjective.specification" xmi:type="uml:OpaqueExpression" body="self.base_Dependency.client-&gt;forAll(p | DesignObjectiveConstraint.allInstances().constrainedProperty()-&gt;includes(p))" language="OCL" name="specification">
            <type href="http://www.omg.org/spec/UML/20131001/PrimitiveTypes.xmi#Boolean"/>
          </specification>
        </ownedRule>
      </packagedElement>
      <packagedElement xmi:id="UPR.DOtoDOSensitivity" xmi:type="uml:Stereotype" name="DOtoDOSensitivity">
        <generalization xmi:id="UPR.DOtoDOSensitivity._generalization.UPR.Sensitivity" xmi:type="uml:Generalization">
          <general xmi:idref="UPR.Sensitivity"/>
        </generalization>
        <ownedComment xmi:id="UPR.DOtoDOSensitivity._comment0" xmi:type="uml:Comment" body="The DOtoDOSensitivity stereotype specializes the Sensitivity stereotype to model a sensitivity-based relation between two Design Objectives that are constrained."/>
        <ownedRule xmi:id="UPR.DOtoDOSensitivity._rule.client_and_supplier_designobjectives" xmi:type="uml:Constraint" name="client_and_supplier_designobjectives">
          <ownedComment xmi:id="UPR.DOtoDOSensitivity._rule.client_and_supplier_designobjectives._comment0" xmi:type="uml:Comment" body="Both the client and the supplier shall be constrained by a DesignObjectiveConstraint"/>
          <specification 
          xmi:id="UPR.DOtoDOSensitivity._rule.client_and_supplier_designobjectives.specification" xmi:type="uml:OpaqueExpression" body="self.base_Dependency.client-&gt;union(self.base_Dependency.supplier)-&gt;forAll(p | DesignObjectiveConstraint.allInstances().constrainedProperty()-&gt;includes(p))
" language="OCL" name="specification">
            <type href="http://www.omg.org/spec/UML/20131001/PrimitiveTypes.xmi#Boolean"/>
</specification>
        </ownedRule>
      </packagedElement>
    </packagedElement>
    <packagedElement xmi:id="UPR.Foundations" xmi:type="uml:Package" URI="" name="Foundations">
      <packagedElement xmi:id="UPR.E_UPRConstraint_Constraint" xmi:type="uml:Extension" name="E_UPRConstraint_Constraint">
        <memberEnd xmi:idref="UPR.UPRConstraint.base_Constraint"/>
        <memberEnd xmi:idref="UPR.E_UPRConstraint_Constraint.extension_UPRConstraint"/>
        <navigableOwnedEnd xmi:idref="UPR.E_UPRConstraint_Constraint.extension_UPRConstraint"/>
        <ownedEnd xmi:id="UPR.E_UPRConstraint_Constraint.extension_UPRConstraint" xmi:type="uml:ExtensionEnd" aggregation="composite" name="extension_UPRConstraint">
          <association xmi:idref="UPR.E_UPRConstraint_Constraint"/>
          <lowerValue xmi:id="UPR.E_UPRConstraint_Constraint.extension_UPRConstraint.lowerValue0" xmi:type="uml:LiteralInteger" name=""/>
          <type xmi:idref="UPR.UPRConstraint"/>
          <upperValue xmi:id="UPR.E_UPRConstraint_Constraint.extension_UPRConstraint.upperValue0" xmi:type="uml:LiteralUnlimitedNatural" name="" value="1"/>
        </ownedEnd>
      </packagedElement>
      <packagedElement xmi:id="UPR.UPRConstraint" xmi:type="uml:Stereotype" isAbstract="true" name="UPRConstraint">
        <ownedAttribute xmi:id="UPR.UPRConstraint.base_Constraint" xmi:type="uml:Property" name="base_Constraint">
          <association xmi:idref="UPR.E_UPRConstraint_Constraint"/>
          <type href="http://www.omg.org/spec/UML/20131001/UML.xmi#Constraint"/>
        </ownedAttribute>
        <ownedComment 
        xmi:id="UPR.UPRConstraint._comment0" xmi:type="uml:Comment" body="An UPR constraint stereotype extends the UML Constraint metaclass which is used for specifying Design Objective Constraints and Design Variable Constraints. The specification of the UPR constraint is in the form of a comparison operator and a real number. Note that the UPR library provides a set of predefined comparison operators.">
</ownedComment>
        <ownedOperation xmi:id="UPR.UPRConstraint.name_" xmi:type="uml:Operation" isQuery="true" name="name">
          <bodyCondition xmi:id="UPR.UPRConstraint.name_._rule.body_condition" xmi:type="uml:Constraint" name="body_condition">
            <specification xmi:id="UPR.UPRConstraint.name_._rule.body_condition.specification" xmi:type="uml:OpaqueExpression" body="self.base_Constraint.name" language="OCL" name="specification"/>
          </bodyCondition>
          <ownedParameter xmi:id="UPR.UPRConstraint.name_.result" xmi:type="uml:Parameter" direction="return" effect="read" name="result">
            <lowerValue xmi:id="UPR.UPRConstraint.name_.result.lowerValue0" xmi:type="uml:LiteralInteger" name="" value="1"/>
            <type href="http://www.omg.org/spec/UML/20131001/PrimitiveTypes.xmi#String"/>
            <upperValue xmi:id="UPR.UPRConstraint.name_.result.upperValue0" xmi:type="uml:LiteralUnlimitedNatural" name="" value="1"/>
          </ownedParameter>
          <ownedRule xmi:idref="UPR.UPRConstraint.name_._rule.body_condition"/>
        </ownedOperation>
        <ownedOperation xmi:id="UPR.UPRConstraint.value_" xmi:type="uml:Operation" isQuery="true" name="value">
          <bodyCondition xmi:id="UPR.UPRConstraint.value_._rule.body_condition" xmi:type="uml:Constraint" name="body_condition">
            <specification xmi:id="UPR.UPRConstraint.value_._rule.body_condition.specification" xmi:type="uml:OpaqueExpression" body="self.base_Constraint.constrainedElement-&gt;at(2).oclAsType(UML::ValueSpecification)" language="OCL" name="specification"/>
          </bodyCondition>
          <ownedParameter xmi:id="UPR.UPRConstraint.value_.result" xmi:type="uml:Parameter" direction="return" effect="read" name="result">
            <lowerValue xmi:id="UPR.UPRConstraint.value_.result.lowerValue0" xmi:type="uml:LiteralInteger" name="" value="1"/>
            <type href="http://www.omg.org/spec/UML/20131001/UML.xmi#ValueSpecification"/>
            <upperValue xmi:id="UPR.UPRConstraint.value_.result.upperValue0" xmi:type="uml:LiteralUnlimitedNatural" name="" value="1"/>
          </ownedParameter>
          <ownedRule xmi:idref="UPR.UPRConstraint.value_._rule.body_condition"/>
        </ownedOperation>
        <ownedOperation xmi:id="UPR.UPRConstraint.comparisonOperator_" xmi:type="uml:Operation" isQuery="true" name="comparisonOperator">
          <bodyCondition xmi:id="UPR.UPRConstraint.comparisonOperator_._rule.body_condition" xmi:type="uml:Constraint" name="body_condition">
            <specification 
            xmi:id="UPR.UPRConstraint.comparisonOperator_._rule.body_condition.specification" xmi:type="uml:OpaqueExpression" body="let symbol: String = self.specification.oclAsType(OpaqueExpression)._body-&gt;first() in 
OperatorSemanticsClass.allInstances()-&gt;any(o | o.symbol() = symbol)
" language="OCL" name="specification">
</specification>
          </bodyCondition>
          <ownedParameter xmi:id="UPR.UPRConstraint.comparisonOperator_.result" xmi:type="uml:Parameter" direction="return" effect="create" name="result">
            <lowerValue xmi:id="UPR.UPRConstraint.comparisonOperator_.result.lowerValue0" xmi:type="uml:LiteralInteger" name="" value="1"/>
            <type xmi:idref="UPR.OperatorSemanticsClass"/>
            <upperValue xmi:id="UPR.UPRConstraint.comparisonOperator_.result.upperValue0" xmi:type="uml:LiteralUnlimitedNatural" name="" value="1"/>
          </ownedParameter>
          <ownedRule xmi:idref="UPR.UPRConstraint.comparisonOperator_._rule.body_condition"/>
        </ownedOperation>
        <ownedOperation xmi:id="UPR.UPRConstraint.evaluate_Slot" xmi:type="uml:Operation" isQuery="true" name="evaluate">
          <bodyCondition xmi:id="UPR.UPRConstraint.evaluate_Slot._rule.body_condition" xmi:type="uml:Constraint" name="body_condition">
            <specification xmi:id="UPR.UPRConstraint.evaluate_Slot._rule.body_condition.specification" xmi:type="uml:OpaqueExpression" body="self.comparisonOperator().applyTo(slot.value, self.value())" language="OCL2.0" name="specification">
              <type href="http://www.omg.org/spec/UML/20131001/PrimitiveTypes.xmi#Boolean"/>
            </specification>
          </bodyCondition>
          <ownedParameter xmi:id="UPR.UPRConstraint.evaluate_Slot.result" xmi:type="uml:Parameter" direction="return" effect="create" name="result">
            <lowerValue xmi:id="UPR.UPRConstraint.evaluate_Slot.result.lowerValue0" xmi:type="uml:LiteralInteger" name="" value="1"/>
            <type href="http://www.omg.org/spec/UML/20131001/PrimitiveTypes.xmi#Boolean"/>
            <upperValue xmi:id="UPR.UPRConstraint.evaluate_Slot.result.upperValue0" xmi:type="uml:LiteralUnlimitedNatural" name="" value="1"/>
          </ownedParameter>
          <ownedParameter xmi:id="UPR.UPRConstraint.evaluate_Slot.slot" xmi:type="uml:Parameter" effect="create" name="slot">
            <lowerValue xmi:id="UPR.UPRConstraint.evaluate_Slot.slot.lowerValue0" xmi:type="uml:LiteralInteger" name="" value="1"/>
            <type href="http://www.omg.org/spec/UML/20131001/UML.xmi#Slot"/>
            <upperValue xmi:id="UPR.UPRConstraint.evaluate_Slot.slot.upperValue0" xmi:type="uml:LiteralUnlimitedNatural" name="" value="1"/>
          </ownedParameter>
          <ownedRule xmi:idref="UPR.UPRConstraint.evaluate_Slot._rule.body_condition"/>
          <ownedRule xmi:idref="UPR.UPRConstraint.evaluate_Slot._rule.precondition"/>
          <precondition xmi:id="UPR.UPRConstraint.evaluate_Slot._rule.precondition" xmi:type="uml:Constraint" name="precondition">
            <specification xmi:id="UPR.UPRConstraint.evaluate_Slot._rule.precondition.specification0" xmi:type="uml:OpaqueExpression" body="slot.definingFeature = self.constrainedProperty()" language="OCL2.0" name=""/>
          </precondition>
        </ownedOperation>
        <ownedOperation xmi:id="UPR.UPRConstraint.constrainedProperty_" xmi:type="uml:Operation" isQuery="true" name="constrainedProperty">
          <bodyCondition xmi:id="UPR.UPRConstraint.constrainedProperty_._rule.body_condition" xmi:type="uml:Constraint" name="body_condition">
            <specification xmi:id="UPR.UPRConstraint.constrainedProperty_._rule.body_condition.specification0" xmi:type="uml:OpaqueExpression" body="self.base_Constraint.constrainedElement-&gt;at(1).oclAsType(UML::Property)" language="OCL2.0" name=""/>
          </bodyCondition>
          <ownedParameter xmi:id="UPR.UPRConstraint.constrainedProperty_.result" xmi:type="uml:Parameter" direction="return" effect="read" name="result">
            <lowerValue xmi:id="UPR.UPRConstraint.constrainedProperty_.result.lowerValue0" xmi:type="uml:LiteralInteger" name="" value="1"/>
            <type href="http://www.omg.org/spec/UML/20131001/UML.xmi#Property"/>
            <upperValue xmi:id="UPR.UPRConstraint.constrainedProperty_.result.upperValue0" xmi:type="uml:LiteralUnlimitedNatural" name="" value="1"/>
          </ownedParameter>
          <ownedRule xmi:idref="UPR.UPRConstraint.constrainedProperty_._rule.body_condition"/>
        </ownedOperation>
        <ownedRule xmi:id="UPR.UPRConstraint._rule.operator_is_defined" xmi:type="uml:Constraint" name="operator_is_defined">
          <constrainedElement xmi:idref="UPR.UPRConstraint"/>
          <ownedComment xmi:id="UPR.UPRConstraint._rule.operator_is_defined._comment0" xmi:type="uml:Comment" body="The operator used by the specification of that constraint shall have a corresponding OperatorSemanticsClass that defines its semantics"/>
          <specification 
          xmi:id="UPR.UPRConstraint._rule.operator_is_defined.specification0" xmi:type="uml:OpaqueExpression" body="let symbol: String = self.specification.oclAsType(OpaqueExpression)._body-&gt;first() in
OperatorSemanticsClass.allInstances()-&gt;exists(o | o.symbol = symbol)" language="OCL2.0" name="">
</specification>
        </ownedRule>
        <ownedRule xmi:id="UPR.UPRConstraint._rule.two_constrained_elements" xmi:type="uml:Constraint" name="two_constrained_elements">
          <constrainedElement xmi:idref="UPR.UPRConstraint"/>
          <ownedComment xmi:id="UPR.UPRConstraint._rule.two_constrained_elements._comment0" xmi:type="uml:Comment" body="An UPRConstraint constraint shall have 2 constrained elements"/>
          <specification xmi:id="UPR.UPRConstraint._rule.two_constrained_elements.specification" xmi:type="uml:OpaqueExpression" body="self.base_Constraint.constrainedElement-&gt;size()=2" language="OCL" name="specification"/>
        </ownedRule>
        <ownedRule xmi:id="UPR.UPRConstraint._rule.constrainedElement2_value_specification" xmi:type="uml:Constraint" name="constrainedElement2_ value_specification">
          <constrainedElement xmi:idref="UPR.UPRConstraint"/>
          <ownedComment xmi:id="UPR.UPRConstraint._rule.constrainedElement2_value_specification._comment0" xmi:type="uml:Comment" body="The second constrained element shall be a value specification"/>
          <specification xmi:id="UPR.UPRConstraint._rule.constrainedElement2_value_specification.specification0" xmi:type="uml:OpaqueExpression" body="self.base_Constraint.constrainedElement-&gt;at(2).oclIsKindOf(ValueSpecification)" language="OCL2.0" name=""/>
        </ownedRule>
        <ownedRule xmi:id="UPR.UPRConstraint._rule.constrainedElement1_property" xmi:type="uml:Constraint" name="constrainedElement1_ property">
          <constrainedElement xmi:idref="UPR.UPRConstraint"/>
          <ownedComment xmi:id="UPR.UPRConstraint._rule.constrainedElement1_property._comment0" xmi:type="uml:Comment" body="The first constrained element shall be a property"/>
          <specification xmi:id="UPR.UPRConstraint._rule.constrainedElement1_property.specification0" xmi:type="uml:OpaqueExpression" body="self.base_Constraint.constrainedElement-&gt;at(1).oclIsKindOf(Property)" language="OCL2.0" name=""/>
        </ownedRule>
        <ownedRule xmi:id="UPR.UPRConstraint._rule.specified_by_opaque_expression" xmi:type="uml:Constraint" name="specified_by_opaque_expression">
          <constrainedElement xmi:idref="UPR.UPRConstraint"/>
          <ownedComment xmi:id="UPR.UPRConstraint._rule.specified_by_opaque_expression._comment0" xmi:type="uml:Comment" body="The specification of that constraint has to be an UML::OpaqueExpression with &quot;UPR&quot; as the specification language"/>
          <specification xmi:id="UPR.UPRConstraint._rule.specified_by_opaque_expression.specification0" xmi:type="uml:OpaqueExpression" body="self.specification.oclIsKindOf(OpaqueExpression) and specification.oclAsType(OpaqueExpression).language-&gt;first()='UPR'" language="OCL2.0" name=""/>
        </ownedRule>
      </packagedElement>
      <packagedElement xmi:id="UPR.Sensitivity" xmi:type="uml:Stereotype" isAbstract="true" name="Sensitivity">
        <ownedAttribute xmi:id="UPR.Sensitivity.polynomialCoefficient" xmi:type="uml:Property" isOrdered="true" name="polynomialCoefficient">
          <lowerValue xmi:id="UPR.Sensitivity.polynomialCoefficient.lowerValue0" xmi:type="uml:LiteralInteger" name=""/>
          <ownedComment 
          xmi:id="UPR.Sensitivity.polynomialCoefficient._comment0" xmi:type="uml:Comment" body="Provide the list of coefficients to be used for the univariate polynomial approximation of the mathematical relation between two variables. First element maps to the coefficient of the term of degree 1, the second to that of the term of degree 2, and so on. The base of the polynomial is supported by the specific attribute: ‘polynomialBase’.">
</ownedComment>
          <type href="http://www.omg.org/spec/UML/20131001/PrimitiveTypes.xmi#Real"/>
          <upperValue xmi:id="UPR.Sensitivity.polynomialCoefficient.upperValue0" xmi:type="uml:LiteralUnlimitedNatural" name="" value="*"/>
        </ownedAttribute>
        <ownedAttribute xmi:id="UPR.Sensitivity.dataSourceType" xmi:type="uml:Property" name="dataSourceType">
          <lowerValue xmi:id="UPR.Sensitivity.dataSourceType.lowerValue0" xmi:type="uml:LiteralInteger" name="" value="1"/>
          <ownedComment xmi:id="UPR.Sensitivity.dataSourceType._comment0" xmi:type="uml:Comment" body="Represents the data source (DSTypeKind enumeration) used to specify Sensitivity"/>
          <type xmi:idref="UPR_dataType.DSTypeKind"/>
          <upperValue xmi:id="UPR.Sensitivity.dataSourceType.upperValue0" xmi:type="uml:LiteralUnlimitedNatural" name="" value="1"/>
        </ownedAttribute>
        <ownedAttribute xmi:id="UPR.Sensitivity.base_Dependency" xmi:type="uml:Property" name="base_Dependency">
          <association xmi:idref="UPR.E_Sensitivity_Dependency"/>
          <lowerValue xmi:id="UPR.Sensitivity.base_Dependency.lowerValue0" xmi:type="uml:LiteralInteger" name="" value="1"/>
          <type href="http://www.omg.org/spec/UML/20131001/UML.xmi#Dependency"/>
          <upperValue xmi:id="UPR.Sensitivity.base_Dependency.upperValue0" xmi:type="uml:LiteralUnlimitedNatural" name="" value="1"/>
        </ownedAttribute>
        <ownedAttribute xmi:id="UPR.Sensitivity.polynomialBase" xmi:type="uml:Property" name="polynomialBase">
          <defaultValue xmi:id="UPR.Sensitivity.polynomialBase.defaultValue0" xmi:type="uml:LiteralReal" name="" value="0.0"/>
          <lowerValue xmi:id="UPR.Sensitivity.polynomialBase.lowerValue0" xmi:type="uml:LiteralInteger" name="" value="1"/>
          <ownedComment xmi:id="UPR.Sensitivity.polynomialBase._comment0" xmi:type="uml:Comment" body="Base of the polynomial, i.e. the coefficient of the polynomial term with degree 0. If not specified, 0 is used as the default value."/>
          <type href="http://www.omg.org/spec/UML/20131001/PrimitiveTypes.xmi#Real"/>
          <upperValue xmi:id="UPR.Sensitivity.polynomialBase.upperValue0" xmi:type="uml:LiteralUnlimitedNatural" name="" value="1"/>
        </ownedAttribute>
        <ownedComment xmi:id="UPR.Sensitivity._comment0" xmi:type="uml:Comment" body="The Sensitivity abstract stereotype extends the UML Dependency to model the Sensitivity between two NamedElements."/>
        <ownedRule xmi:id="UPR.Sensitivity._rule.is_binary" xmi:type="uml:Constraint" name="is_binary">
          <ownedComment xmi:id="UPR.Sensitivity._rule.is_binary._comment0" xmi:type="uml:Comment" body="A Sensitivity is a binary relationship"/>
          <specification xmi:id="UPR.Sensitivity._rule.is_binary.specification" xmi:type="uml:OpaqueExpression" body="self.base_Dependency.supplier-&gt;size() = 1 and self.base_Dependency.client-&gt;size() = 1" language="OCL" name="specification">
            <type href="http://www.omg.org/spec/UML/20131001/PrimitiveTypes.xmi#Boolean"/>
          </specification>
        </ownedRule>
      </packagedElement>
      <packagedElement xmi:id="UPR.E_Sensitivity_Dependency" xmi:type="uml:Extension" name="E_Sensitivity_Dependency">
        <memberEnd xmi:idref="UPR.Sensitivity.base_Dependency"/>
        <memberEnd xmi:idref="UPR.E_Sensitivity_Dependency.extension_Sensitivity"/>
        <navigableOwnedEnd xmi:idref="UPR.E_Sensitivity_Dependency.extension_Sensitivity"/>
        <ownedEnd xmi:id="UPR.E_Sensitivity_Dependency.extension_Sensitivity" xmi:type="uml:ExtensionEnd" aggregation="composite" name="extension_Sensitivity">
          <association xmi:idref="UPR.E_Sensitivity_Dependency"/>
          <lowerValue xmi:id="UPR.E_Sensitivity_Dependency.extension_Sensitivity.lowerValue0" xmi:type="uml:LiteralInteger" name=""/>
          <type xmi:idref="UPR.Sensitivity"/>
          <upperValue xmi:id="UPR.E_Sensitivity_Dependency.extension_Sensitivity.upperValue0" xmi:type="uml:LiteralUnlimitedNatural" name="" value="1"/>
        </ownedEnd>
      </packagedElement>
      <packagedElement xmi:id="UPR_dataType.DSTypeKind" xmi:type="uml:Enumeration" name="DSTypeKind">
        <ownedLiteral xmi:id="UPR_dataType.DSTypeKind.estimated" xmi:type="uml:EnumerationLiteral" name="estimated">
          <ownedComment xmi:id="UPR_dataType.DSTypeKind.estimated._comment0" xmi:type="uml:Comment" body="Specifies that the attribute owned by the sensitivity stereotype is an estimated value based on subjective decision."/>
        </ownedLiteral>
        <ownedLiteral xmi:id="UPR_dataType.DSTypeKind.derived" xmi:type="uml:EnumerationLiteral" name="derived">
          <ownedComment xmi:id="UPR_dataType.DSTypeKind.derived._comment0" xmi:type="uml:Comment" body="Specifies that the set of values in Sensitivity::polynomialCoefficient are derived from data"/>
        </ownedLiteral>
        <ownedLiteral xmi:id="UPR_dataType.DSTypeKind.implied" xmi:type="uml:EnumerationLiteral" name="implied">
          <ownedComment xmi:id="UPR_dataType.DSTypeKind.implied._comment0" xmi:type="uml:Comment" body="Specifies that the attribute owned by the sensitivity stereotype is an implied value determined from the Binary Relational Transformation (RT-B)."/>
        </ownedLiteral>
      </packagedElement>
    </packagedElement>
    <packagedElement xmi:id="UPR.RelationalStructureandDesign" xmi:type="uml:Package" URI="" name="Relational Structure and Design">
      <packageImport xmi:id="UPR.RelationalStructureandDesign._packageImport.UPR.DesignVariableConstraints" xmi:type="uml:PackageImport">
        <importedPackage xmi:idref="UPR.DesignVariableConstraints"/>
      </packageImport>
      <packageImport xmi:id="UPR.RelationalStructureandDesign._packageImport.UPR.DesignObjectiveConstraints" xmi:type="uml:PackageImport">
        <importedPackage xmi:idref="UPR.DesignObjectiveConstraints"/>
      </packageImport>
      <packagedElement xmi:id="UPR.DOtoDVSensitivity" xmi:type="uml:Stereotype" name="DOtoDVSensitivity">
        <generalization xmi:id="UPR.DOtoDVSensitivity._generalization.UPR.Sensitivity" xmi:type="uml:Generalization">
          <general xmi:idref="UPR.Sensitivity"/>
        </generalization>
        <ownedComment 
        xmi:id="UPR.DOtoDVSensitivity._comment0" xmi:type="uml:Comment" body="The DOtoDVSensitivity stereotype specializes the Sensitivity stereotype to model a sensitivity-based relation between a Design Objective that is constrained by DesignObjectiveConstraints and a Design Variable that is constrained by DesignVariableConstraints.">
</ownedComment>
        <ownedRule xmi:id="UPR.DOtoDVSensitivity._rule.client_designconstraint" xmi:type="uml:Constraint" name="client_designconstraint">
          <ownedComment xmi:id="UPR.DOtoDVSensitivity._rule.client_designconstraint._comment0" xmi:type="uml:Comment" body="The client shall be constrained by a DesignObjectiveConstraint"/>
          <specification xmi:id="UPR.DOtoDVSensitivity._rule.client_designconstraint.specification" xmi:type="uml:OpaqueExpression" body="self.base_Dependency.client-&gt;forAll(p | DesignObjectiveConstraint.allInstances().constrainedProperty()-&gt;includes(p))

" language="OCL" name="specification">
            <type href="http://www.omg.org/spec/UML/20131001/PrimitiveTypes.xmi#Boolean"/>
          </specification>
        </ownedRule>
        <ownedRule xmi:id="UPR.DOtoDVSensitivity._rule.supplier_designvariable" xmi:type="uml:Constraint" name="supplier_designvariable">
          <ownedComment xmi:id="UPR.DOtoDVSensitivity._rule.supplier_designvariable._comment0" xmi:type="uml:Comment" body="shall be constrained by a DesignVariableConstraint"/>
          <specification xmi:id="UPR.DOtoDVSensitivity._rule.supplier_designvariable.specification" xmi:type="uml:OpaqueExpression" body="self.base_Dependency.supplier-&gt;forAll(p | DesignVariableConstraint.allInstances().constrainedProperty()-&gt;includes(p))" language="OCL" name="specification">
            <type href="http://www.omg.org/spec/UML/20131001/PrimitiveTypes.xmi#Boolean"/>
          </specification>
        </ownedRule>
      </packagedElement>
    </packagedElement>
    <packagedElement xmi:id="UPR.DesignVariableConstraints" xmi:type="uml:Package" URI="" name="Design Variable Constraints">
      <packagedElement xmi:id="UPR.DesignVariableConstraint" xmi:type="uml:Stereotype" name="DesignVariableConstraint">
        <generalization xmi:id="UPR.DesignVariableConstraint._generalization.UPR.UPRConstraint" xmi:type="uml:Generalization">
          <general xmi:idref="UPR.UPRConstraint"/>
        </generalization>
        <ownedAttribute xmi:id="UPR.DesignVariableConstraint.dvcID" xmi:type="uml:Property" isID="true" name="dvcID">
          <lowerValue xmi:id="UPR.DesignVariableConstraint.dvcID.lowerValue0" xmi:type="uml:LiteralInteger" name="" value="1"/>
          <ownedComment xmi:id="UPR.DesignVariableConstraint.dvcID._comment0" xmi:type="uml:Comment" body="This attribute represents the unique Identification Number of a Design Variable Constraint."/>
          <type href="http://www.omg.org/spec/UML/20131001/PrimitiveTypes.xmi#String"/>
          <upperValue xmi:id="UPR.DesignVariableConstraint.dvcID.upperValue0" xmi:type="uml:LiteralUnlimitedNatural" name="" value="1"/>
        </ownedAttribute>
        <ownedAttribute xmi:id="UPR.DesignVariableConstraint.initialDesign" xmi:type="uml:Property" name="initialDesign">
          <lowerValue xmi:id="UPR.DesignVariableConstraint.initialDesign.lowerValue0" xmi:type="uml:LiteralInteger" name=""/>
          <ownedComment xmi:id="UPR.DesignVariableConstraint.initialDesign._comment0" xmi:type="uml:Comment" body="This attribute represents the initial design choice for the Design Variable. "/>
          <type href="http://www.omg.org/spec/UML/20131001/UML.xmi#ValueSpecification"/>
          <upperValue xmi:id="UPR.DesignVariableConstraint.initialDesign.upperValue0" xmi:type="uml:LiteralUnlimitedNatural" name="" value="1"/>
        </ownedAttribute>
        <ownedAttribute xmi:id="UPR.DesignVariableConstraint.kind" xmi:type="uml:Property" name="kind">
          <lowerValue xmi:id="UPR.DesignVariableConstraint.kind.lowerValue0" xmi:type="uml:LiteralInteger" name="" value="1"/>
          <ownedComment xmi:id="UPR.DesignVariableConstraint.kind._comment0" xmi:type="uml:Comment" body="This attribute represents the kind of range, i.e. designRange or feasibleRange, being specified for the Design Variable Constraint."/>
          <type xmi:idref="UPR_dataType.RangeKind"/>
          <upperValue xmi:id="UPR.DesignVariableConstraint.kind.upperValue0" xmi:type="uml:LiteralUnlimitedNatural" name="" value="1"/>
        </ownedAttribute>
        <ownedComment 
        xmi:id="UPR.DesignVariableConstraint._comment0" xmi:type="uml:Comment" body="The DesignVariableConstraint stereotype specializes the UPRConstraint stereotype for specifying, Design Range(s) and Feasible Range(s) for a Design Variable. In addition, the initial value to be used for the design optimization is provided by the initialDesign property.">
</ownedComment>
      </packagedElement>
      <packagedElement xmi:id="UPR_dataType.RangeKind" xmi:type="uml:Enumeration" name="RangeKind">
        <ownedComment 
        xmi:id="UPR_dataType.RangeKind._comment0" xmi:type="uml:Comment" body="A RangeKind describes the nature of the specified mathematical constraint on a Design Variable. Note that there can be multiple DesignVariableConstraints specified for one Design Variable, but each DesignVariableConstraint stereotype is only associated to one of the RangeKind as specified below:">
</ownedComment>
        <ownedLiteral xmi:id="UPR_dataType.RangeKind.designRange" xmi:type="uml:EnumerationLiteral" name="designRange">
          <ownedComment 
          xmi:id="UPR_dataType.RangeKind.designRange._comment0" xmi:type="uml:Comment" body="Indicates that the constraint specified for the Design Variable is a Design Range that is attributed to physical limit or design knowledge. Not every design point within this range is necessarily a feasible solution.">
</ownedComment>
        </ownedLiteral>
        <ownedLiteral xmi:id="UPR_dataType.RangeKind.feasibleRange" xmi:type="uml:EnumerationLiteral" name="feasibleRange">
          <ownedComment 
          xmi:id="UPR_dataType.RangeKind.feasibleRange._comment0" xmi:type="uml:Comment" body="Indicates that the constraint specified for the Design Variable is a Feasible Range that is imposed by a set of Design Objective Constraints. Every design point within this range is a feasible solution.">
</ownedComment>
        </ownedLiteral>
      </packagedElement>
    </packagedElement>
  </uml:Profile>
  <mofext:Tag xmi:id="UPR_mofTag0" xmi:type="mofext:Tag" name="org.omg.xmi.nsPrefix" element="UPR"/>
</xmi:XMI>
