<?xml version="1.0" encoding="UTF-8"?>
<xmi:XMI xmi:version="2.1" xmlns:xmi="http://schema.omg.org/spec/XMI/2.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:Ecore="http://www.eclipse.org/uml2/schemas/Ecore/4" xmlns:Standard="http://www.eclipse.org/uml2/schemas/Standard/1" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/3.0.0/UML" xsi:schemaLocation="http://www.eclipse.org/uml2/schemas/Ecore/4 pathmap://UML_PROFILES/Ecore.profile.uml#_B7dOIMEREduRdatXodjBjA">
  <uml:Model xmi:id="_0" name="AADL2">
    <eAnnotations xmi:id="_http2F2Fwww.eclipse.org2Fuml22F2.0.02FUML" source="http://www.eclipse.org/uml2/2.0.0/UML">
      <eAnnotations xmi:id="_http2F2Fwww.eclipse.org2Fuml22F2.0.02FUML-_AADLInfrastructure" source="AADLInfrastructure" references="Element-ownedElement Element-ownedComment Element-allOwnedElements Element-mustBeOwned Element A_ownedElement_owner-owner A_ownedElement_owner A_ownedComment_owningElement-owningElement A_ownedComment_owningElement Comment-body Comment NamedElement-name NamedElement-qualifiedName NamedElement-allNamespaces NamedElement-isDistinguishableFrom NamedElement-separator NamedElement-qualifiedName.1 NamedElement-getPropertyValues NamedElement Namespace-ownedMember Namespace-member Namespace-getNamesOfMember Namespace-membersAreDistinguishable Namespace A_ownedMember_namespace-namespace A_ownedMember_namespace A_member_namespace-namespace A_member_namespace Type-conformsTo Type TypedElement-type TypedElement A_type_typedElement-typedElement A_type_typedElement Relationship-relatedElement Relationship A_relatedElement_relationship-relationship A_relatedElement_relationship DirectedRelationship-source DirectedRelationship-target DirectedRelationship A_source_directedRelationship-relationship A_source_directedRelationship A_target_directedRelationship-relationship A_target_directedRelationship Generalization-specific Generalization-general Generalization A_generalization_specific A_general_generalization-generalization A_general_generalization Classifier-classifierFeature Classifier-inheritedMember Classifier-generalization Classifier-general Classifier-allFeatures Classifier-inheritedMember.1 Classifier-parents Classifier-allParents Classifier-inheritableMembers Classifier-hasVisibilityOf Classifier-inherit Classifier-maySpecializeType Classifier A_classifier_inheritedMember-_ownedEnd.0 A_classifier_inheritedMember A_general_classifier-classifier A_general_classifier RefinableElement-refinementContext RefinableElement-refinedElement RefinableElement A_refinementContext_refinableElement-_ownedEnd.0 A_refinementContext_refinableElement A_refiningElement_refinedElement-refiningElement A_refiningElement_refinedElement ClassifierFeature-featuringClassifier ClassifierFeature A_classifierFeature_featuringClassifier StructuralFeature BehavioralFeature Boolean Integer String Real"/>
      <eAnnotations xmi:id="_http2F2Fwww.eclipse.org2Fuml22F2.0.02FUML-_AADLPropertiesAssociations" source="AADLProperties::Associations" references="NamedElement Classifier ModalElement PackageSection PropertyAssociation-property PropertyAssociation-appliesTo PropertyAssociation-inBinding PropertyAssociation-append PropertyAssociation-constant PropertyAssociation-ownedValue PropertyAssociation A_propertyAssociation_property-propertyAssociation A_propertyAssociation_property A_basicPropertyAssociation_ownedValue-owner A_basicPropertyAssociation_ownedValue A_propertyAssociation_appliesTo-propertyAssociation A_propertyAssociation_appliesTo A_propertyAssociation_inBinding-propertyAssociation A_propertyAssociation_inBinding A_namedElement_ownedPropertyAssociation-owner A_namedElement_ownedPropertyAssociation NamedElement-ownedPropertyAssociation BasicPropertyAssociation-property BasicPropertyAssociation-ownedValue BasicPropertyAssociation A_basicPropertyAssociation_property-propertyAssociation A_basicPropertyAssociation_property ArrayRange-lowerBound ArrayRange-upperBound ArrayRange ContainedNamedElement-containmentPathElement ContainedNamedElement A_containmentPathElement_arrayRange-containmentPathElement A_containmentPathElement_arrayRange A_containmentPathElement_namedElement-containmentPathElement A_containmentPathElement_namedElement ContainmentPathElement-arrayRange ContainmentPathElement-namedElement ContainmentPathElement A_containedNamedElement_containmentPathElement-containedNamedElement A_containedNamedElement_containmentPathElement Classifier-noProperties PackageSection-noProperties ModalPropertyValue-ownedValue ModalPropertyValue A_propertyAssociation_ownedValue-owner A_propertyAssociation_ownedValue A_modalPropertyValue_ownedValue-owner A_modalPropertyValue_ownedValue"/>
      <eAnnotations xmi:id="_http2F2Fwww.eclipse.org2Fuml22F2.0.02FUML-_AADLPropertiesPropertySets" source="AADLProperties::PropertySets" references="Namespace GlobalNamespace ModelUnit PropertySet-ownedPropertyType PropertySet-ownedProperty PropertySet-ownedPropertyConstant PropertySet-importedUnit PropertySet-ownedAnnexSubclause PropertySet A_globalNamespace_propertySet-globalNamespace A_globalNamespace_propertySet A_propertySet_ownedPropertyType-owner A_propertySet_ownedPropertyType A_propertySet_ownedProperty-owner A_propertySet_ownedProperty A_propertySet_ownedPropertyConstant-owner A_propertySet_ownedPropertyConstant GlobalNamespace-propertySet A_propertySet_importedUnit-propertySet A_propertySet_importedUnit A_propertySet_ownedAnnexSubclause-owner A_propertySet_ownedAnnexSubclause"/>
      <eAnnotations xmi:id="_http2F2Fwww.eclipse.org2Fuml22F2.0.02FUML-_AADLConstructsExtensibility" source="AADLConstructs::Extensibility" references="Classifier AnnexLibrary AnnexSubclause DefaultAnnexLibrary-sourceText DefaultAnnexLibrary DefaultAnnexSubclause-sourceText DefaultAnnexSubclause A_classifier_ownedAnnexSubclause-owner A_classifier_ownedAnnexSubclause A_packageSection_ownedAnnexLibrary-owner A_packageSection_ownedAnnexLibrary Classifier-ownedAnnexSubclause"/>
      <eAnnotations xmi:id="_http2F2Fwww.eclipse.org2Fuml22F2.0.02FUML-_AADLConstructsTemplates" source="AADLConstructs::Templates" references="Classifier Prototype-refined Prototype PrototypeBinding-formal PrototypeBinding A_prototypeBinding_formal-binding A_prototypeBinding_formal A_classifier_ownedPrototype-owner A_classifier_ownedPrototype A_classifier_ownedPrototypeBinding-owner A_classifier_ownedPrototypeBinding A_subcomponent_ownedPrototypeBinding-owner A_subcomponent_ownedPrototypeBinding A_subcomponent_prototype-subcomponent A_subcomponent_prototype Classifier-ownedPrototype Classifier-ownedPrototypeBinding ComponentPrototype-array ComponentPrototype-constrainingClassifier ComponentPrototype ComponentPrototypeBinding-formal ComponentPrototypeBinding-actual ComponentPrototypeBinding A_componentPrototype_constrainingClassifier-prototype A_componentPrototype_constrainingClassifier A_componentPrototypeBinding_formal-binding A_componentPrototypeBinding_formal FeatureGroupPrototype-constrainingFeatureGroupType FeatureGroupPrototype FeatureGroupPrototypeBinding-formal FeatureGroupPrototypeBinding-actual FeatureGroupPrototypeBinding A_featureGroupPrototypeBinding_formal-binding A_featureGroupPrototypeBinding_formal A_featureGroupPrototype_constrainingFeatureGroupType-prototype A_featureGroupPrototype_constrainingFeatureGroupType FeaturePrototype-direction FeaturePrototype-constrainingClassifier FeaturePrototype FeaturePrototypeBinding-actual FeaturePrototypeBinding-formal FeaturePrototypeBinding A_featurePrototypeBinding_formal-binding A_featurePrototypeBinding_formal A_featurePrototype_constrainingClassifier-prototype A_featurePrototype_constrainingClassifier A_featurePrototypeBinding_Classifier-owner A_featurePrototypeBinding_Classifier FeaturePrototypeActual AccessSpecification-kind AccessSpecification-category AccessSpecification-classifier AccessSpecification PortSpecification-direction PortSpecification-category PortSpecification-classifier PortSpecification FeaturePrototypeReference-direction FeaturePrototypeReference-prototype FeaturePrototypeReference A_accessSpecification_classifier-accessSpecification A_accessSpecification_classifier A_portSpecification_classifier-portSpecification A_portSpecification_classifier A_featureProtoypeReference_prototype-reference A_featureProtoypeReference_prototype ComponentPrototypeActual-category ComponentPrototypeActual-binding ComponentPrototypeActual-subcomponentType ComponentPrototypeActual A_componentPrototypeBinding_actual-owner A_componentPrototypeBinding_actual A_classifierReference_binding-owner A_classifierReference_binding FeatureGroupPrototypeActual-binding FeatureGroupPrototypeActual-featureType FeatureGroupPrototypeActual A_featureGroupPrototypeBinding_actual-owner A_featureGroupPrototypeBinding_actual A_featureGroupPrototypeActual_binding-owner A_featureGroupPrototypeActual_binding A_prototype_refined-prototype A_prototype_refined A_3CaccessSpecification3E_3CcomponentPrototype3E-accessSpecification A_3CaccessSpecification3E_3CcomponentPrototype3E-componentPrototype A_3CaccessSpecification3E_3CcomponentPrototype3E A_3CportSpecification3E_3CcomponentPrototype3E-portSpecification A_3CportSpecification3E_3CcomponentPrototype3E-componentPrototype A_3CportSpecification3E_3CcomponentPrototype3E A_componentPrototypeActual_subcomponentType-componentPrototypeActual A_componentPrototypeActual_subcomponentType A_3CfeatureGroupPrototypeActual3E_3CfeatureType3E-featureGroupPrototypeActual A_3CfeatureGroupPrototypeActual3E_3CfeatureType3E A_abstractFeature_featurePrototype-abstractFeature A_abstractFeature_featurePrototype"/>
      <eAnnotations xmi:id="_http2F2Fwww.eclipse.org2Fuml22F2.0.02FUML-_AADLDetailsNoneSupport" source="AADLDetails::NoneSupport" references="Classifier ComponentClassifier ComponentType ComponentImplementation PackageSection PackageSection-noAnnexes ComponentType-noFeatures ComponentImplementation-noSubcomponents ComponentImplementation-noConnections ComponentImplementation-noCalls Classifier-noPrototypes Classifier-noAnnexes ComponentClassifier-noFlows ComponentClassifier-noModes"/>
      <eAnnotations xmi:id="_http2F2Fwww.eclipse.org2Fuml22F2.0.02FUML-_AADLConstructsArrays" source="AADLConstructs::Arrays" references="ArrayDimension-size ArrayDimension ArrayableElement-arrayDimension ArrayableElement A_arrayableElement_arrayDimension-owner A_arrayableElement_arrayDimension ArraySize-size ArraySize A_arraySpecification_size-owner A_arraySpecification_size ComponentImplementationReference-implementation ComponentImplementationReference-ownedPrototypeBinding ComponentImplementationReference A_componentImplementationReference_implementation-reference A_componentImplementationReference_implementation A_componentImplementationReference_ownedPrototypeBinding-owner A_componentImplementationReference_ownedPrototypeBinding"/>
      <eAnnotations xmi:id="_http2F2Fwww.eclipse.org2Fuml22F2.0.02FUML-_AADLPropertiesArrays" source="AADLProperties::Arrays" references="ArraySize ArraySize-sizeProperty ArraySizeProperty A_arraySize_sizeProperty-arraySize A_arraySize_sizeProperty"/>
      <eAnnotations xmi:id="_http2F2Fwww.eclipse.org2Fuml22F2.0.02FUML-_AADLConstructsComponents" source="AADLConstructs::Components" references="TypeExtension-extended TypeExtension A_typeExtension_extended-extension A_typeExtension_extended ImplementationExtension-extended ImplementationExtension A_implementationExtension_extended-extension A_implementationExtension_extended Realization-implemented Realization A_realization_implemented-realization A_realization_implemented ComponentClassifier-ownedMode ComponentClassifier-ownedModeTransition ComponentClassifier-derivedModes ComponentClassifier ComponentType-ownedFeature ComponentType-extended ComponentType-ownedFlowSpecification ComponentType-ownedExtension ComponentType-ownedFeatureGroup ComponentType-ownedAbstractFeature ComponentType A_componentType_ownedExtension-owner A_componentType_ownedExtension A_componentType_extended-extending A_componentType_extended A_componentType_ownedFeature-owner A_componentType_ownedFeature A_componentType_ownedAbstractFeature-owner A_componentType_ownedAbstractFeature A_componentType_ownedFlowSpecification-owner A_componentType_ownedFlowSpecification ComponentImplementation-type ComponentImplementation-ownedSubcomponent ComponentImplementation-extended ComponentImplementation-ownedFlowImplementation ComponentImplementation-ownedConnection ComponentImplementation-ownedExtension ComponentImplementation-ownedRealization ComponentImplementation-ownedEndToEndFlow ComponentImplementation-getAllSubcomponents ComponentImplementation A_componentImplementation_ownedExtension-owner A_componentImplementation_ownedExtension A_componentImplementation_ownedRealization-owner A_componentImplementation_ownedRealization A_componentImplementation_extended-extending A_componentImplementation_extended A_componentImplementation_ComponentType-implementing A_componentImplementation_ComponentType A_componentImplementation_ownedConnection-owner A_componentImplementation_ownedConnection A_componentImplementation_ownedFlowImplementation-owner A_componentImplementation_ownedFlowImplementation A_componentImplementation_ownedSubcomponent-owner A_componentImplementation_ownedSubcomponent Subcomponent-subcomponentType Subcomponent-ownedPrototypeBinding Subcomponent-prototype Subcomponent-ownedModeBinding Subcomponent-allModes Subcomponent-implementationReference Subcomponent-refined Subcomponent-classifier Subcomponent-inMode Subcomponent A_subcomponent_subcomponentType-subcomponent A_subcomponent_subcomponentType A_subcomponent_refined-subcomponent A_subcomponent_refined A_subcomponent_implementationReference-owner A_subcomponent_implementationReference A_componentClassifier_ownedMode-owner A_componentClassifier_ownedMode A_componentClassifier_ownedModeTransition-owner A_componentClassifier_ownedModeTransition ComponentCategory SubcomponentType A_subcomponent_classifier-subcomponent A_subcomponent_classifier"/>
      <eAnnotations xmi:id="_http2F2Fwww.eclipse.org2Fuml22F2.0.02FUML-_AADLDetailsComponentsAbstract" source="AADLDetails::Components::Abstract" references="ComponentImplementation Abstract AbstractType-ownedBusAccess AbstractType-ownedDataAccess AbstractType-ownedSubprogramAccess AbstractType-ownedDataPort AbstractType-ownedEventPort AbstractType-ownedEventDataPort AbstractType-ownedSubprogramGroupAccess AbstractType AbstractImplementation-type AbstractImplementation-ownedBusSubcomponent AbstractImplementation-ownedDataSubcomponent AbstractImplementation-ownedDeviceSubcomponent AbstractImplementation-ownedMemorySubcomponent AbstractImplementation-ownedProcessSubcomponent AbstractImplementation-ownedProcessorSubcomponent AbstractImplementation-ownedSystemSubcomponent AbstractImplementation-ownedSubprogramSubcomponent AbstractImplementation-ownedSubprogramGroupSubcomponent AbstractImplementation-ownedThreadSubcomponent AbstractImplementation-ownedThreadGroupSubcomponent AbstractImplementation-ownedVirtualBusSubcomponent AbstractImplementation-ownedVirtualProcessorSubcomponent AbstractImplementation AbstractClassifier A_abstractImplementation_abstractType-implementation A_abstractImplementation_abstractType AbstractSubcomponent-abstractSubcomponentType AbstractSubcomponent A_abstractImplementation_ownedBusSubcomponent-owner A_abstractImplementation_ownedBusSubcomponent A_abstractImplementation_ownedDataSubcomponent-owner A_abstractImplementation_ownedDataSubcomponent A_abstractImplementation_ownedDeviceSubcomponent-owner A_abstractImplementation_ownedDeviceSubcomponent A_abstractImplementation_ownedMemorySubcomponent-owner A_abstractImplementation_ownedMemorySubcomponent A_abstractImplementation_ownedProcessSubcomponent-owner A_abstractImplementation_ownedProcessSubcomponent A_abstractImplementation_ownedProcessorSubcomponent-owner A_abstractImplementation_ownedProcessorSubcomponent A_abstractImplementation_ownedSystemSubcomponent-owner A_abstractImplementation_ownedSystemSubcomponent A_abstractImplementation_ownedSubprogramSubcomponent-owner A_abstractImplementation_ownedSubprogramSubcomponent A_abstractImplementation_ownedSubprogramGroupSubcomponent-owner A_abstractImplementation_ownedSubprogramGroupSubcomponent A_abstractImplementation_ownedThreadSubcomponent-owner A_abstractImplementation_ownedThreadSubcomponent A_abstractImplementation_ownedThreadGroupSubcomponent-owner A_abstractImplementation_ownedThreadGroupSubcomponent A_abstractImplementation_ownedVirtualBusSubcomponent-owner A_abstractImplementation_ownedVirtualBusSubcomponent A_abstractImplementation_ownedVirtualProcessorSubcomponent-owner A_abstractImplementation_ownedVirtualProcessorSubcomponent A_abstractType_ownedBusAccess-owner A_abstractType_ownedBusAccess A_abstractType_ownedDataAccess-owner A_abstractType_ownedDataAccess A_abstractType_ownedSubprogramAccess-owner A_abstractType_ownedSubprogramAccess A_abstractType_ownedDataPort-owner A_abstractType_ownedDataPort A_abstractType_ownedEventPort-owner A_abstractType_ownedEventPort A_abstractType_ownedEventDataPort-owner A_abstractType_ownedEventDataPort A_abstractType_ownedSubprogramGroupAccess-owner A_abstractType_ownedSubprogramGroupAccess A_componentImplementation_ownedAbstractSubcomponent-owner A_componentImplementation_ownedAbstractSubcomponent ComponentImplementation-ownedAbstractSubcomponent A_abstractSubcomponent_abstractSubcomponentType-subcomponent A_abstractSubcomponent_abstractSubcomponentType AbstractSubcomponentType AbstractPrototype"/>
      <eAnnotations xmi:id="_http2F2Fwww.eclipse.org2Fuml22F2.0.02FUML-_AADLDetailsConnections" source="AADLDetails::Connections" references="ComponentImplementation FeatureGroup Feature AccessConnection-accessCategory AccessConnection ParameterConnection PortConnection AccessConnectionEnd ParameterConnectionEnd PortConnectionEnd FeatureGroupConnection FeatureGroupConnectionEnd FeatureConnection FeatureConnectionEnd ComponentImplementation-ownedAccessConnection ComponentImplementation-ownedParameterConnection ComponentImplementation-ownedPortConnection ComponentImplementation-ownedFeatureConnection ComponentImplementation-ownedFeatureGroupConnection A_componentImplementation_ownedAccessConnection-owner A_componentImplementation_ownedAccessConnection A_componentImplementation_ownedParameterConnection3E-owner A_componentImplementation_ownedParameterConnection3E A_componentImplementation_ownedPortConnection-owner A_componentImplementation_ownedPortConnection A_componentImplementation_ownedFeatureConnection-owner A_componentImplementation_ownedFeatureConnection A_componentImplementation_ownedFeatureGroupConnection-owner A_componentImplementation_ownedFeatureGroupConnection"/>
      <eAnnotations xmi:id="_http2F2Fwww.eclipse.org2Fuml22F2.0.02FUML-_AADLConstructsConnections" source="AADLConstructs::Connections" references="Connection-destination Connection-source Connection-bidirectional Connection-refined Connection A_connection_destination-connection A_connection_destination A_connection_source-connection A_connection_source ConnectionEnd Context A_connection_refined-connection A_connection_refined A_connectedElement_context-connectedElement A_connectedElement_context ConnectedElement-context ConnectedElement-connectionEnd ConnectedElement A_connectedElement_connectionEnd-connectedElement A_connectedElement_connectionEnd ElementName-kind ElementName ElementNameKind AbstractConnectionEnd"/>
      <eAnnotations xmi:id="_http2F2Fwww.eclipse.org2Fuml22F2.0.02FUML-_AADLConstructsFeatures" source="AADLConstructs::Features" references="FeatureGroup-inverse FeatureGroup-featureType FeatureGroup-featureGroupType FeatureGroup-featureGroupPrototype FeatureGroup Feature-prototype Feature-featureClassifier Feature-refined Feature-classifier Feature A_featureGroupType_ownedFeature-owner A_featureGroupType_ownedFeature FeatureGroupType-ownedFeature FeatureGroupType-extended FeatureGroupType-inverse FeatureGroupType-ownedExtension FeatureGroupType A_featureGroup_type-featureGroup A_featureGroup_type Access-kind Access-category Access Port-category Port Parameter A_extending_extended-extending A_extending_extended A_featureGroupType_inverse-featureGroupType A_featureGroupType_inverse AccessType DirectionType A_componentType_ownedFeatureGroup-owner A_componentType_ownedFeatureGroup A_feature_prototype-feature A_feature_prototype GroupExtension-extended GroupExtension A_featureGroupType_ownedExtension-owner A_featureGroupType_ownedExtension A_groupExtension_extended-groupExtension A_groupExtension_extended AbstractFeature-featurePrototype AbstractFeature A_feature_featureClassifier-feature A_feature_featureClassifier AccessCategory PortCategory A_feature_refined-feature A_feature_refined DirectedFeature-direction DirectedFeature FeatureType A_featureGroup_featureGroupType-featureGroup A_featureGroup_featureGroupType A_featureGroup_featureGroupPrototype-featureGroup A_featureGroup_featureGroupPrototype FeatureClassifier A_feature_componentClassifier-feature A_feature_componentClassifier"/>
      <eAnnotations xmi:id="_http2F2Fwww.eclipse.org2Fuml22F2.0.02FUML-_AADLDetailsFeatures" source="AADLDetails::Features" references="FeatureGroupType Parameter DataAccess-dataFeatureClassifier DataAccess BusAccess-busFeatureClassifier BusAccess SubprogramAccess-subprogramFeatureClassifier SubprogramAccess DataPort-dataFeatureClassifier DataPort EventPort EventDataPort-dataFeatureClassifier EventDataPort A_dataPort_dataFeatureClassifier-dataPort A_dataPort_dataFeatureClassifier A_eventDataPort_dataFeatureClassifier-eventDataPort A_eventDataPort_dataFeatureClassifier Parameter-dataFeatureClassifier SubprogramGroupAccess-subprogramGroupFeatureClassifier SubprogramGroupAccess A_dataAccess_dataFeatureClassifier-dataAccess A_dataAccess_dataFeatureClassifier A_parameter_dataFeatureClassifier-parameter A_parameter_dataFeatureClassifier A_busAccess_busFeatureClassifier-busAccess A_busAccess_busFeatureClassifier A_subprogramAccess_subprogramFeatureClassifier-subprogramAccess A_subprogramAccess_subprogramFeatureClassifier A_subprogramGroupAccess_subprogramGroupFeatureClassifier-subprogramGroupAccess A_subprogramGroupAccess_subprogramGroupFeatureClassifier A_featureGroupType_ownedBusAccess-owner A_featureGroupType_ownedBusAccess A_featureGroupType_ownedDataAccess-owner A_featureGroupType_ownedDataAccess A_featureGroupType_ownedDataPort-owner A_featureGroupType_ownedDataPort A_featureGroupType_ownedEventDataPort-owner A_featureGroupType_ownedEventDataPort A_featureGroupType_ownedEventPort-owner A_featureGroupType_ownedEventPort A_featureGroupType_ownedFeatureGroup-owner A_featureGroupType_ownedFeatureGroup A_featureGroupType_ownedParameter-owner A_featureGroupType_ownedParameter A_featureGroupType_ownedSubprogramAccess-owner A_featureGroupType_ownedSubprogramAccess A_featureGroupType_ownedSubprogramGroupAccess-owner A_featureGroupType_ownedSubprogramGroupAccess FeatureGroupType-ownedBusAccess FeatureGroupType-ownedDataAccess FeatureGroupType-ownedDataPort FeatureGroupType-ownedEventDataPort FeatureGroupType-ownedEventPort FeatureGroupType-ownedFeatureGroup FeatureGroupType-ownedParameter FeatureGroupType-ownedSubprogramAccess FeatureGroupType-ownedSubprogramGroupAccess FeatureGroupType-ownedAbstractFeature A_featureGroupType_ownedAbstractFeature-owner A_featureGroupType_ownedAbstractFeature"/>
      <eAnnotations xmi:id="_http2F2Fwww.eclipse.org2Fuml22F2.0.02FUML-_AADLConstructsFlows" source="AADLConstructs::Flows" references="FlowSpecification-refined FlowSpecification-kind FlowSpecification-outEnd FlowSpecification-InEnd FlowSpecification FlowImplementation-kind FlowImplementation-specification FlowImplementation-ownedFlowSegment FlowImplementation FlowElement A_flowImplementation_specification-implementation A_flowImplementation_specification A_flowSegment_flowElement-implementation A_flowSegment_flowElement EndToEndFlow-refined EndToEndFlow-ownedEndToEndFlowSegment EndToEndFlow A_flowSpecification_outEnd-owner A_flowSpecification_outEnd A_flowSpecification_inEnd-owner A_flowSpecification_inEnd EndToEndFlowElement A_endToEndFlow_flowElement-flow A_endToEndFlow_flowElement A_componentImplementation_ownedEndToEndFlow-owner A_componentImplementation_ownedEndToEndFlow FlowKind A_endToEndFlow_refined-flow A_endToEndFlow_refined A_flowSpecification_refined-flow A_flowSpecification_refined FlowFeature FlowEnd-context FlowEnd-feature FlowEnd A_flowEnd_feature-flowEnd A_flowEnd_feature A_flowEnd_context-flowEnd A_flowEnd_context FlowSegment-flowElement FlowSegment-context FlowSegment A_flowImplementation_ownedFlowSegment-owner A_flowImplementation_ownedFlowSegment A_flowSegment_context-flowSegment A_flowSegment_context EndToEndFlowSegment-flowElement EndToEndFlowSegment-context EndToEndFlowSegment A_endToEndFlow_ownedEndToEndFlowSegment-owner A_endToEndFlow_ownedEndToEndFlowSegment A_endToEndFlowSegment_context-endToEndFlowSegment A_endToEndFlowSegment_context Flow"/>
      <eAnnotations xmi:id="_http2F2Fwww.eclipse.org2Fuml22F2.0.02FUML-_AADLConstructsModes" source="AADLConstructs::Modes" references="Mode-initial Mode-derived Mode ModeTransition-source ModeTransition-destination ModeTransition-ownedTrigger ModeTransition A_modeTransition_source-transition A_modeTransition_source A_modeTransition_destination-transition A_modeTransition_destination ModeTransitionTrigger A_modalElement_inMode-modalElement A_modalElement_inMode ModeFeature ModalElement-inMode ModalElement ModalPath-inModeOrTransition ModalPath-inMode ModalPath A_modalPath_inModeOrTransition-modalPath A_modalPath_inModeOrTransition TriggerPort-context TriggerPort-port TriggerPort A_triggerPort_portContext-triggerPort A_triggerPort_portContext A_triggerPort_port-triggerPort A_triggerPort_port A_modeTransition_ownedTrigger-owner A_modeTransition_ownedTrigger ModeBinding-parentMode ModeBinding-derivedMode ModeBinding A_subcomponent_ownedModeBinding-owner A_subcomponent_ownedModeBinding A_modeBinding_parentMode-modeBinding A_modeBinding_parentMode A_modeBinding_derivedMode-modeBinding A_modeBinding_derivedMode A_modalPath_inMode-modalPath A_modalPath_inMode A_subcomponent_inMode-subcomponent A_subcomponent_inMode"/>
      <eAnnotations xmi:id="_http2F2Fwww.eclipse.org2Fuml22F2.0.02FUML-_AADLConstructsPackaging" source="AADLConstructs::Packaging" references="PublicPackageSection-privateSection PublicPackageSection PackageRename-renamedPackage PackageRename-renameAll PackageRename ComponentTypeRename-category ComponentTypeRename-renamedComponentType ComponentTypeRename A_packageSection_packageRename-owner A_packageSection_packageRename A_packageSection_componentTypeRename-owner A_packageSection_componentTypeRename A_packageRename_renamedPackage-packageRename A_packageRename_renamedPackage A_classifierRename_renamedComponentType-componentTypeRename A_classifierRename_renamedComponentType A_packageSection_ownedClassifier-owner A_packageSection_ownedClassifier Package-ownedPublicSection Package-ownedPrivateSection Package-publicSection Package-privateSection Package A_package_ownedPublicSection-owner A_package_ownedPublicSection A_package_ownedPrivateSection-owner A_package_ownedPrivateSection PackageSection-ownedPackageRename PackageSection-ownedComponentTypeRename PackageSection-ownedClassifier PackageSection-ownedFeatureGroupTypeRename PackageSection-ownedAnnexLibrary PackageSection-name PackageSection-importedUnit PackageSection PrivatePackageSection-publicSection PrivatePackageSection GlobalNamespace-package GlobalNamespace A_globalNamespace_package-globalNamespace A_globalNamespace_package A_public_private FeatureGroupTypeRename-renamedFeatureGroupType FeatureGroupTypeRename A_packageSection_ownedFeatureGroupRename-owner A_packageSection_ownedFeatureGroupRename A_featureGroupTypeRename_renamedFeatureGroupType-rename A_featureGroupTypeRename_renamedFeatureGroupType A_package_publicSection-package A_package_publicSection A_package_privateSection-package A_package_privateSection ModelUnit A_packageSection_importedUnit-packageSection A_packageSection_importedUnit"/>
      <eAnnotations xmi:id="_http2F2Fwww.eclipse.org2Fuml22F2.0.02FUML-_AADLDetailsCalls" source="AADLDetails::Calls" references="Prototype SubprogramCallSequence-ownedCallSpecification SubprogramCallSequence CallSpecification CalledSubprogram A_subprogramCall_calledSubprogram-subprogramCall A_subprogramCall_calledSubprogram A_behavioredImplementation_callSpecification-implementation A_behavioredImplementation_callSpecification ProcessorCall-subprogramAccessName ProcessorCall A_behavioredImplementation_ownedSubprogramCallSequence-owner A_behavioredImplementation_ownedSubprogramCallSequence BehavioredImplementation-callSpecification BehavioredImplementation-ownedSubprogramCallSequence BehavioredImplementation-callSpecifications BehavioredImplementation A_subprogramCallSequence_ownedCallSpecification-sequence A_subprogramCallSequence_ownedCallSpecification SubprogramCall-calledSubprogram SubprogramCall-context SubprogramCall CallContext A_subprogramCall_context-subprogramCall A_subprogramCall_context"/>
      <eAnnotations xmi:id="_http2F2Fwww.eclipse.org2Fuml22F2.0.02FUML-_AADLDetailsComponentsBus" source="AADLDetails::Components::Bus" references="Bus BusClassifier BusSubcomponent-busSubcomponentType BusSubcomponent BusType-ownedBusAccess BusType-ownedDataPort BusType-ownedEventDataPort BusType-ownedEventPort BusType BusImplementation-type BusImplementation-ownedVirtualBusSubcomponent BusImplementation A_busImplementation_busType-implementation A_busImplementation_busType A_busSubcomponent_busSubcomponentType-subcomponent A_busSubcomponent_busSubcomponentType A_busType_ownedBusAccess-owner A_busType_ownedBusAccess A_busImplementation_ownedVirtualBusSubcomponent-owner A_busImplementation_ownedVirtualBusSubcomponent BusSubcomponentType BusPrototype A_busType_ownedDataPort-owner A_busType_ownedDataPort A_busType_ownedEventDataPort-owner A_busType_ownedEventDataPort A_busType_ownedEventPort-owner A_busType_ownedEventPort"/>
      <eAnnotations xmi:id="_http2F2Fwww.eclipse.org2Fuml22F2.0.02FUML-_AADLDetailsComponentsData" source="AADLDetails::Components::Data" references="DataSubcomponent-dataSubcomponentType DataSubcomponent DataClassifier Data DataType-ownedSubprogramAccess DataType-ownedDataAccess DataType-ownedSubprogramGroupAccess DataType DataImplementation-type DataImplementation-ownedDataSubcomponent DataImplementation-ownedSubprogramSubcomponent DataImplementation A_dataSubcomponent_dataSubcomponentType-subcomponent A_dataSubcomponent_dataSubcomponentType A_dataImplementation_dataType-implementation A_dataImplementation_dataType A_dataType_ownedDataAccess-owner A_dataType_ownedDataAccess A_dataType_ownedSubprogramAccess-owner A_dataType_ownedSubprogramAccess A_dataType_ownedSubprogramGroupAccess-owner A_dataType_ownedSubprogramGroupAccess A_dataImplementation_ownedDataSubcomponent-owner A_dataImplementation_ownedDataSubcomponent A_dataImplementation_ownedSubprogramSubcomponent-owner A_dataImplementation_ownedSubprogramSubcomponent DataSubcomponentType DataPrototype"/>
      <eAnnotations xmi:id="_http2F2Fwww.eclipse.org2Fuml22F2.0.02FUML-_AADLDetailsComponentsDevice" source="AADLDetails::Components::Device" references="Device DeviceClassifier DeviceSubcomponent-deviceSubcomponentType DeviceSubcomponent DeviceType-ownedDataPort DeviceType-ownedEventDataPort DeviceType-ownedEventPort DeviceType-ownedBusAccess DeviceType-ownedSubprogramAccess DeviceType-ownedSubprogramGroupAccess DeviceType DeviceImplementation-type DeviceImplementation-ownedBusSubcomponent DeviceImplementation-ownedDataSubcomponent DeviceImplementation-ownedVirtualBusSubcomponent DeviceImplementation A_deviceImplementation_deviceType-implementation A_deviceImplementation_deviceType A_deviceSubcomponent_deviceSubcomponentType-subcomponent A_deviceSubcomponent_deviceSubcomponentType A_deviceType_ownedDataPort-owner A_deviceType_ownedDataPort A_deviceType_ownedEventDataPort-owner A_deviceType_ownedEventDataPort A_deviceType_ownedEventPort-owner A_deviceType_ownedEventPort A_deviceType_ownedBusAccess-owner A_deviceType_ownedBusAccess A_deviceType_ownedSubprogramAccess-owner A_deviceType_ownedSubprogramAccess A_deviceType_ownedSubprogramGroupAccess-owner A_deviceType_ownedSubprogramGroupAccess A_deviceImplementation_ownedBusSubcomponent-owner A_deviceImplementation_ownedBusSubcomponent A_deviceImplementation_ownedDataSubcomponent-owner A_deviceImplementation_ownedDataSubcomponent A_3CdeviceImplementation3E_3CvirtualBusSubcomponent3E-owner A_3CdeviceImplementation3E_3CvirtualBusSubcomponent3E DeviceSubcomponentType DevicePrototype"/>
      <eAnnotations xmi:id="_http2F2Fwww.eclipse.org2Fuml22F2.0.02FUML-_AADLDetailsComponentsMemory" source="AADLDetails::Components::Memory" references="Memory MemoryClassifier MemoryType-ownedBusAccess MemoryType-ownedDataPort MemoryType-ownedEventDataPort MemoryType-ownedEventPort MemoryType MemorySubcomponent-memorySubcomponentType MemorySubcomponent MemoryImplementation-type MemoryImplementation-ownedBusSubcomponent MemoryImplementation-ownedMemorySubcomponent MemoryImplementation A_memoryImplementation_memoryType-implementation A_memoryImplementation_memoryType A_memorySubcomponent_memorySubcomponentType-subcomponent A_memorySubcomponent_memorySubcomponentType A_memoryImplementation_ownedBusSubcomponent-owner A_memoryImplementation_ownedBusSubcomponent A_memoryImplementation_ownedMemorySubcomponent-owner A_memoryImplementation_ownedMemorySubcomponent A_memoryType_ownedBusAccess-owner A_memoryType_ownedBusAccess MemoryPrototype MemorySubcomponentType A_memoryType_ownedDataPort-owner A_memoryType_ownedDataPort A_memoryType_ownedEventDataPort-owner A_memoryType_ownedEventDataPort A_memoryType_ownedEventPort-owner A_memoryType_ownedEventPort"/>
      <eAnnotations xmi:id="_http2F2Fwww.eclipse.org2Fuml22F2.0.02FUML-_AADLDetailsComponentsSubprogram" source="AADLDetails::Components::Subprogram" references="Subprogram SubprogramClassifier SubprogramSubcomponent-subprogramSubcomponentType SubprogramSubcomponent SubprogramType-ownedEventDataPort SubprogramType-ownedEventPort SubprogramType-ownedParameter SubprogramType-ownedDataAccess SubprogramType-ownedSubprogramAccess SubprogramType-ownedSubprogramGroupAccess SubprogramType SubprogramImplementation-type SubprogramImplementation-ownedDataSubcomponent SubprogramImplementation-ownedSubprogramSubcomponent SubprogramImplementation A_subprogramSubcomponent_subprogramSubcomponentType-subcomponent A_subprogramSubcomponent_subprogramSubcomponentType A_subprogramImplementation_subprogramType-implementation A_subprogramImplementation_subprogramType A_subprogramImplementation_ownedDataSubcomponent-owner A_subprogramImplementation_ownedDataSubcomponent A_subprogramType_ownedEventDataPort-owner A_subprogramType_ownedEventDataPort A_subprogramType_ownedEventPort-owner A_subprogramType_ownedEventPort A_subprogramType_ownedParameter-owner A_subprogramType_ownedParameter A_subprogramType_ownedDataAccess-owner A_subprogramType_ownedDataAccess A_subprogramType_ownedSubprogramAccess-owner A_subprogramType_ownedSubprogramAccess A_subprogramType_ownedSubprogramGroupAccess-owner A_subprogramType_ownedSubprogramGroupAccess SubprogramSubcomponentType SubprogramPrototype A_subprogramImplementation_owbedSubprogramSubcomponent-owner A_subprogramImplementation_owbedSubprogramSubcomponent"/>
      <eAnnotations xmi:id="_http2F2Fwww.eclipse.org2Fuml22F2.0.02FUML-_AADLDetailsComponentsSubprogramGroup" source="AADLDetails::Components::SubprogramGroup" references="SubprogramGroup SubprogramGroupClassifier SubprogramGroupType-ownedSubprogramAccess SubprogramGroupType-ownedSubprogramGroupAccess SubprogramGroupType SubprogramGroupSubcomponent-subprogramGroupSubcomponentType SubprogramGroupSubcomponent SubprogramGroupImplementation-type SubprogramGroupImplementation-ownedSubprogramSubcomponent SubprogramGroupImplementation-ownedSubprogramGroupSubcomponent SubprogramGroupImplementation-ownedDataSubcomponent SubprogramGroupImplementation A_subprogramGroupImplementation_subprogramGroupType-implementation A_subprogramGroupImplementation_subprogramGroupType A_subprogramGroupSubcomponent_subprogramSubcomponentType-subcomponent A_subprogramGroupSubcomponent_subprogramSubcomponentType A_subprogramGroupImplementation_ownedSubprogramSubcomponent-owner A_subprogramGroupImplementation_ownedSubprogramSubcomponent A_subprogramGroupType_ownedSubprogramAccess-owner A_subprogramGroupType_ownedSubprogramAccess A_subprogramGroupType_ownedSubprogramGroupAccess-owner A_subprogramGroupType_ownedSubprogramGroupAccess A_subprogramGroupImplementation_ownedSubprogramGroupSubcomponent-owner A_subprogramGroupImplementation_ownedSubprogramGroupSubcomponent SubprogramGroupSubcomponentType SubprogramGroupPrototype A_subprogramGroupImplementation_ownedDataSubcomponent-owner A_subprogramGroupImplementation_ownedDataSubcomponent"/>
      <eAnnotations xmi:id="_http2F2Fwww.eclipse.org2Fuml22F2.0.02FUML-_AADLDetailsComponentsSystem" source="AADLDetails::Components::System" references="System SystemClassifier SystemType-ownedBusAccess SystemType-ownedDataAccess SystemType-ownedDataPort SystemType-ownedSubprogramGroupAccess SystemType-ownedSubprogramAccess SystemType-ownedEventPort SystemType-ownedEventDataPort SystemType SystemSubcomponent-systemSubcomponentType SystemSubcomponent SystemImplementation-type SystemImplementation-ownedBusSubcomponent SystemImplementation-ownedDataSubcomponent SystemImplementation-ownedDeviceSubcomponent SystemImplementation-ownedMemorySubcomponent SystemImplementation-ownedProcessSubcomponent SystemImplementation-ownedProcessorSubcomponent SystemImplementation-ownedSubprogramSubcomponent SystemImplementation-ownedSubprogramGroupSubcomponent SystemImplementation-ownedSystemSubcomponent SystemImplementation-ownedVirtualBusSubcomponent SystemImplementation-ownedVirtualProcessorSubcomponent SystemImplementation A_systemSubcomponent_systemSubcomponentType-subcomponent A_systemSubcomponent_systemSubcomponentType A_systemImplementation_systemType-implementation A_systemImplementation_systemType A_systemImplementation_ownedBusSubcomponent-owner A_systemImplementation_ownedBusSubcomponent A_systemImplementation_ownedDataSubcomponent-owner A_systemImplementation_ownedDataSubcomponent A_systemImplementation_ownedDeviceSubcomponent-owner A_systemImplementation_ownedDeviceSubcomponent A_systemImplementation_ownedMemorySubcomponent-owner A_systemImplementation_ownedMemorySubcomponent A_systemImplementation_ownedProcessSubcomponent-owner A_systemImplementation_ownedProcessSubcomponent A_systemImplementation_ownedProcessorSubcomponent-owner A_systemImplementation_ownedProcessorSubcomponent A_systemImplementation_ownedSubprogramSubcomponent-owner A_systemImplementation_ownedSubprogramSubcomponent A_systemImplementation_ownedSubprogramGroupSubcomponent-owner A_systemImplementation_ownedSubprogramGroupSubcomponent A_systemImplementation_ownedSystemSubcomponent-owner A_systemImplementation_ownedSystemSubcomponent A_systemImplementation_ownedVirtualBusSubcomponent-owner A_systemImplementation_ownedVirtualBusSubcomponent A_systemImplementation_ownedVirtualProcessorSubcomponent-owner A_systemImplementation_ownedVirtualProcessorSubcomponent A_systemType_ownedBusAccess-owner A_systemType_ownedBusAccess A_systemType_ownedDataAccess-owner A_systemType_ownedDataAccess A_systemType_ownedDataPort-owner A_systemType_ownedDataPort A_systemType_ownedSubprogramGroupAccess-owner A_systemType_ownedSubprogramGroupAccess A_systemType_ownedSubprogramAccess-owner A_systemType_ownedSubprogramAccess A_systemType_ownedEventPort-owner A_systemType_ownedEventPort A_systemType_ownedEventDataPort-owner A_systemType_ownedEventDataPort SystemSubcomponentType SystemPrototype"/>
      <eAnnotations xmi:id="_http2F2Fwww.eclipse.org2Fuml22F2.0.02FUML-_AADLDetailsComponentsProcessor" source="AADLDetails::Components::Processor" references="Processor ProcessorClassifier ProcessorType-ownedDataPort ProcessorType-ownedEventDataPort ProcessorType-ownedEventPort ProcessorType-ownedBusAccess ProcessorType-ownedSubprogramAccess ProcessorType-ownedSubprogramGroupAccess ProcessorType ProcessorSubcomponent-processorSubcomponentType ProcessorSubcomponent ProcessorImplementation-type ProcessorImplementation-ownedBusSubcomponent ProcessorImplementation-ownedMemorySubcomponent ProcessorImplementation-ownedVirtualBusSubcomponent ProcessorImplementation-ownedVirtualProcessorSubcomponent ProcessorImplementation A_processorSubcomponent_processorSubcomponentType-subcomponent A_processorSubcomponent_processorSubcomponentType A_processorImplementation_processorType-implementation A_processorImplementation_processorType A_processorImplementation_ownedBusSubcomponent-owner A_processorImplementation_ownedBusSubcomponent A_processorImplementation_ownedMemorySubcomponent-owner A_processorImplementation_ownedMemorySubcomponent A_processorImplementation_ownedVirtualBusSubcomponent-owner A_processorImplementation_ownedVirtualBusSubcomponent A_processorImplementation_ownedVirtualProcessorSubcomponent-owner A_processorImplementation_ownedVirtualProcessorSubcomponent A_processorType_ownedDataPort-owner A_processorType_ownedDataPort A_processorType_ownedEventDataPort-owner A_processorType_ownedEventDataPort A_processorType_ownedEventPort-owner A_processorType_ownedEventPort A_processorType_ownedBusAccess-owner A_processorType_ownedBusAccess A_processorType_ownedSubprogramAccess-owner A_processorType_ownedSubprogramAccess A_processorType_ownedSubprogramGroupAccess-owner A_processorType_ownedSubprogramGroupAccess ProcessorSubcomponentType ProcessorPrototype"/>
      <eAnnotations xmi:id="_http2F2Fwww.eclipse.org2Fuml22F2.0.02FUML-_AADLDetailsComponentsProcess" source="AADLDetails::Components::Process" references="Process ProcessClassifier ProcessType-ownedDataPort ProcessType-ownedEventDataPort ProcessType-ownedEventPort ProcessType-ownedDataAccess ProcessType-ownedSubprogramAccess ProcessType-ownedSubprogramGroupAccess ProcessType ProcessSubcomponent-processSubcomponentType ProcessSubcomponent ProcessImplementation-type ProcessImplementation-ownedDataSubcomponent ProcessImplementation-ownedSubprogramSubcomponent ProcessImplementation-ownedSubprogramGroupSubcomponent ProcessImplementation-ownedThreadSubcomponent ProcessImplementation-ownedThreadGroupSubcomponent ProcessImplementation A_processSubcomponent_processSubcomponentType-subcomponent A_processSubcomponent_processSubcomponentType A_processImplementation_processType-implementation A_processImplementation_processType A_processImplementation_ownedDataSubcomponent-owner A_processImplementation_ownedDataSubcomponent A_processImplementation_ownedSubprogramSubcomponent-owner A_processImplementation_ownedSubprogramSubcomponent A_processImplementation_ownedSubprogramGroupSubcomponent-owner A_processImplementation_ownedSubprogramGroupSubcomponent A_processImplementation_ownedThreadSubcomponent-owner A_processImplementation_ownedThreadSubcomponent A_processImplementation_ownedThreadGroupSubcomponent-owner A_processImplementation_ownedThreadGroupSubcomponent A_processType_ownedDataPort-owner A_processType_ownedDataPort A_processType_ownedEventDataPort-owner A_processType_ownedEventDataPort A_processType_ownedEventPort-owner A_processType_ownedEventPort A_processType_ownedDataAccess-owner A_processType_ownedDataAccess A_processType_ownedSubprogramAccess-owner A_processType_ownedSubprogramAccess A_processType_ownedSubprogramGroupAccess-owner A_processType_ownedSubprogramGroupAccess ProcessSubcomponentType ProcessPrototype"/>
      <eAnnotations xmi:id="_http2F2Fwww.eclipse.org2Fuml22F2.0.02FUML-_AADLDetailsComponentsThread" source="AADLDetails::Components::Thread" references="Thread ThreadClassifier ThreadType-ownedDataPort ThreadType-ownedEventDataPort ThreadType-ownedEventPort ThreadType-ownedDataAccess ThreadType-ownedSubprogramAccess ThreadType-ownedSubprogramGroupAccess ThreadType ThreadSubcomponent-threadSubcomponentType ThreadSubcomponent ThreadImplementation-type ThreadImplementation-ownedSubprogramGroupSubcomponent ThreadImplementation-ownedSubprogramSubcomponent ThreadImplementation-ownedDataSubcomponent ThreadImplementation A_threadImplementation_threadType-implementation A_threadImplementation_threadType A_threadSubcomponent_threadSubcomponentType-subcomponent A_threadSubcomponent_threadSubcomponentType A_threadImplementation_ownedSubprogramGroupSubcomponent-owner A_threadImplementation_ownedSubprogramGroupSubcomponent A_threadImplementation_ownedSubprogramSubcomponent-owner A_threadImplementation_ownedSubprogramSubcomponent A_threadImplementation_ownedDataSubcomponent-owner A_threadImplementation_ownedDataSubcomponent A_threadType_ownedDataPort-owner A_threadType_ownedDataPort A_threadType_ownedEventDataPort-owner A_threadType_ownedEventDataPort A_threadType_ownedEventPort-owner A_threadType_ownedEventPort A_threadType_ownedDataAccess-owner A_threadType_ownedDataAccess A_threadType_ownedSubprogramAccess-owner A_threadType_ownedSubprogramAccess A_threadType_ownedSubprogramGroupAccess-owner A_threadType_ownedSubprogramGroupAccess ThreadSubcomponentType ThreadPrototype"/>
      <eAnnotations xmi:id="_http2F2Fwww.eclipse.org2Fuml22F2.0.02FUML-_AADLDetailsComponentsThreadGroup" source="AADLDetails::Components::ThreadGroup" references="ThreadGroup ThreadGroupClassifier ThreadGroupType-ownedDataPort ThreadGroupType-ownedEventDataPort ThreadGroupType-ownedEventPort ThreadGroupType-ownedDataAccess ThreadGroupType-ownedSubprogramAccess ThreadGroupType-ownedSubprogramGroupAccess ThreadGroupType ThreadGroupSubcomponent-threadGroupSubcomponentType ThreadGroupSubcomponent ThreadGroupImplementation-type ThreadGroupImplementation-ownedDataSubcomponent ThreadGroupImplementation-ownedThreadSubcomponent ThreadGroupImplementation-ownedThreadGroupSubcomponent ThreadGroupImplementation-ownedSubprogramSubcomponent ThreadGroupImplementation-ownedSubprogramGroupSubcomponent ThreadGroupImplementation A_threadGroupSubcomponent_threadGroupSubcomponentType-subcomponent A_threadGroupSubcomponent_threadGroupSubcomponentType A_threadGroupImplementation_threadGroupType-implementation A_threadGroupImplementation_threadGroupType A_threadGroupImplementation_ownedDataSubcomponent-owner A_threadGroupImplementation_ownedDataSubcomponent A_threadGroupImplementation_ownedThreadSubcomponent-owner A_threadGroupImplementation_ownedThreadSubcomponent A_threadGroupImplementation_ownedThreadGroupSubcomponent-owner A_threadGroupImplementation_ownedThreadGroupSubcomponent A_threadGroupImplementation_ownedSubprogramSubcomponent-owner A_threadGroupImplementation_ownedSubprogramSubcomponent A_threadGroupImplementation_ownedSubprogramGroupSubcomponent-owner A_threadGroupImplementation_ownedSubprogramGroupSubcomponent A_threadGroupType_ownedDataPort-owner A_threadGroupType_ownedDataPort A_threadGroupType_ownedEventDataPort-owner A_threadGroupType_ownedEventDataPort A_threadGroupType_ownedEventPort-owner A_threadGroupType_ownedEventPort A_threadGroupType_ownedDataAccess-owner A_threadGroupType_ownedDataAccess A_threadGroupType_ownedSubprogramAccess-owner A_threadGroupType_ownedSubprogramAccess A_threadGroupType_ownedSubprogramGroupAccess-owner A_threadGroupType_ownedSubprogramGroupAccess ThreadGroupSubcomponentType ThreadGroupPrototype"/>
      <eAnnotations xmi:id="_http2F2Fwww.eclipse.org2Fuml22F2.0.02FUML-_AADLDetailsComponentsVirtualBus" source="AADLDetails::Components::VirtualBus" references="VirtualBus VirtualBusClassifier VirtualBusType-ownedDataPort VirtualBusType-ownedEventDataPort VirtualBusType-ownedEventPort VirtualBusType VirtualBusSubcomponent-virtualBusSubcomponentType VirtualBusSubcomponent VirtualBusImplementation-type VirtualBusImplementation-ownedVirtualBusSubcomponent VirtualBusImplementation A_virtualBusImplementation_virtualBusType-implementation A_virtualBusImplementation_virtualBusType A_virtualBusSubcomponent_virtualBusSubcomponentType-subcomponent A_virtualBusSubcomponent_virtualBusSubcomponentType A_virtualBusImplementation_ownedVirtualBusSubcomponent-owner A_virtualBusImplementation_ownedVirtualBusSubcomponent VirtualBusPrototype VitualBusSubcomponentType A_virtualBusType_ownedDataPort-owner A_virtualBusType_ownedDataPort A_virtualBusType_ownedEventDataPort-owner A_virtualBusType_ownedEventDataPort A_virtualBusType_ownedEventPort-owner A_virtualBusType_ownedEventPort"/>
      <eAnnotations xmi:id="_http2F2Fwww.eclipse.org2Fuml22F2.0.02FUML-_AADLDetailsComponentsVirtualProcessor" source="AADLDetails::Components::VirtualProcessor" references="VirtualProcessor VirtualProcessorClassifier VirtualProcessorSubcomponent-virtualProcessorSubcomponentType VirtualProcessorSubcomponent VirtualProcessorType-ownedDataPort VirtualProcessorType-ownedEventDataPort VirtualProcessorType-ownedEventPort VirtualProcessorType-ownedSubprogramAccess VirtualProcessorType-ownedSubprogramGroupAccess VirtualProcessorType VirtualProcessorImplementation-type VirtualProcessorImplementation-ownedVirtualBusSubcomponent VirtualProcessorImplementation-ownedVirtualProcessorSubcomponent VirtualProcessorImplementation A_virtualProcessorImplementation_virtualProcessorType-implementation A_virtualProcessorImplementation_virtualProcessorType A_virtualProcessorSubcomponent_virtualProcessorClassifier-subcomponent A_virtualProcessorSubcomponent_virtualProcessorClassifier A_virtualProcessorType_ownedDataPort-owner A_virtualProcessorType_ownedDataPort A_virtualProcessorType_ownedEventDataPort-owner A_virtualProcessorType_ownedEventDataPort A_virtualProcessorType_ownedEventPort-owner A_virtualProcessorType_ownedEventPort A_virtualProcessorType_ownedSubprogramAccess-owner A_virtualProcessorType_ownedSubprogramAccess A_virtualProcessorType_ownedSubprogramGroupAccess-owner A_virtualProcessorType_ownedSubprogramGroupAccess A_virtualProcessorImplementation_ownedVirtualBusSubcomponent-owner A_virtualProcessorImplementation_ownedVirtualBusSubcomponent A_virtualProcessorImplementation_ownedVirtualProcessorSubcomponent-owner A_virtualProcessorImplementation_ownedVirtualProcessorSubcomponent VirtualProcessorSubcomponentType VirtualProcessorPrototype"/>
      <eAnnotations xmi:id="_http2F2Fwww.eclipse.org2Fuml22F2.0.02FUML-_AADLPropertiesConstants" source="AADLProperties::Constants" references="PropertyConstant-propertyType PropertyConstant-ownedPropertyType PropertyConstant-constantValue PropertyConstant A_propertyConstant_propertyType-propertyConstant A_propertyConstant_propertyType A_propertyConstant_ownedPropertyType-owner A_propertyConstant_ownedPropertyType A_propertyConstant_constantValue-owner A_propertyConstant_constantValue"/>
      <eAnnotations xmi:id="_http2F2Fwww.eclipse.org2Fuml22F2.0.02FUML-_AADLPropertiesDefinitions" source="AADLProperties::Definitions" references="Property-inherit Property-defaultValue Property-appliesToMetaclass Property-appliesToClassifier Property-appliesTo Property-emptyListDefault Property PropertyOwner A_property_appliesTo-owner A_property_appliesTo A_basicProperty_propertyType-propertyDefinition A_basicProperty_propertyType A_basicProperty_ownedPropertyType-owner A_basicProperty_ownedPropertyType A_property_defaultValue-owner A_property_defaultValue BasicProperty-propertyType BasicProperty-ownedPropertyType BasicProperty A_property_appliesToMetaclass-property A_property_appliesToMetaclass A_property_appliesToClassifier-property A_property_appliesToClassifier"/>
      <eAnnotations xmi:id="_http2F2Fwww.eclipse.org2Fuml22F2.0.02FUML-_AADLPropertiesExpressions" source="AADLProperties::Expressions" references="PropertyExpression StringLiteral-value StringLiteral NumberValue-unit NumberValue-getScaledValue NumberValue-getScaledValue.1 NumberValue-getScaledValue.2 NumberValue ClassifierValue-classifier ClassifierValue ReferenceValue A_classifierValue_classifier-classifierValue A_classifierValue_classifier BooleanLiteral-value BooleanLiteral RangeValue-minimum RangeValue-maximum RangeValue-delta RangeValue IntegerLiteral-base IntegerLiteral-value IntegerLiteral RealLiteral-value RealLiteral A_numberValue_unit-numberValue A_numberValue_unit A_rangeValue_minimum-owner A_rangeValue_minimum A_rangeValue_maximum-owner A_rangeValue_maximum A_rangeValue_delta-owner A_rangeValue_delta PropertyValue Operation-op Operation-ownedPropertyExpression Operation OperationKind A_propertyOperation_operand-owner A_propertyOperation_operand RecordValue-ownedFieldValue RecordValue A_recordValue_ownedFieldValue-recordValue A_recordValue_ownedFieldValue ComputedValue-function ComputedValue ListValue-ownedListElement ListValue A_listValue_element-owner A_listValue_element AbstractNamedValue NamedValue-namedValue NamedValue A_namedValue_namedValue-value A_namedValue_namedValue"/>
      <eAnnotations xmi:id="_http2F2Fwww.eclipse.org2Fuml22F2.0.02FUML-_AADLPropertiesTypes" source="AADLProperties::Types" references="NonListType AadlBoolean AadlString AadlInteger AadlReal EnumerationType-ownedLiteral EnumerationType EnumerationLiteral A_enumeration_ownedLiteral-owner A_enumeration_ownedLiteral ClassifierType-classifierReference ClassifierType A_classifierType_classifierReference-owner A_classifierType_classifierReference MetaclassReference-annexName MetaclassReference-metaclassName MetaclassReference NumberType-ownedUnitsType NumberType-unitsType NumberType-range NumberType A_numberType_ownedUnitsType-owner A_numberType_ownedUnitsType A_numberType_unitsType-numberType A_numberType_unitsType A_numberType_range-owner A_numberType_range NumericRange-upperBound NumericRange-lowerBound NumericRange A_range_upperBound-owner A_range_upperBound A_range_lowerBound-owner A_range_lowerBound RangeType-ownedNumberType RangeType-numberType RangeType A_rangeType_ownedNumberType-owner A_rangeType_ownedNumberType A_rangeType_numberType-rangeType A_rangeType_numberType RecordType-ownedField RecordType RecordField A_recordType_ownedField-owner A_recordType_ownedField ReferenceType-namedElementReference ReferenceType A_referenceType_namedElementReference-owner A_referenceType_namedElementReference UnitsType-ownedLiteral UnitsType A_derivedUnit_baseUnit-derivedUnit A_derivedUnit_baseUnit UnitLiteral-baseUnit UnitLiteral-factor UnitLiteral-getAbsoluteFactor UnitLiteral A_unitsType_ownedUnitLiteral-owner A_unitsType_ownedUnitLiteral A_unitLiteral_factor-owner A_unitLiteral_factor ListType-ownedElementType ListType-elementType ListType PropertyType A_listType_ownedElementType-owner A_listType_ownedElementType A_listType_elementType-listType A_listType_elementType"/>
      <eAnnotations xmi:id="_http2F2Fwww.eclipse.org2Fuml22F2.0.02FUML-_AADLDetailsNamedProxies" source="AADLDetails::NamedProxies" references="ProcessorPort InternalEvent ProcessorSubprogram"/>
    </eAnnotations>
    <ownedComment xmi:id="_ownedComment.0">
      <body>The AADL infrastructure model library contains general concepts that are not AADL-specific. Most of the classes are simplified versions of classes from the UML Infrastructure library.</body>
    </ownedComment>
    <ownedComment xmi:id="_ownedComment.1">
      <body>This package defines multi-dimensional arrays of subcomponents and features.&#xD;
Additionally, it defines how a subcomponent array can be instantiated as a list of component implementations.</body>
    </ownedComment>
    <ownedComment xmi:id="_ownedComment.2">
      <body>This package contains basic metaclasses for modeling AADL component types and implementations.</body>
    </ownedComment>
    <ownedComment xmi:id="_ownedComment.3">
      <body>This package contains basic metaclasses for modeling connections.</body>
    </ownedComment>
    <ownedComment xmi:id="_ownedComment.4">
      <body>This package contains metaclasses needed for modeling AADL language extension with annexes. </body>
    </ownedComment>
    <ownedComment xmi:id="_ownedComment.5">
      <body>This package contains metaclasses needed for modeling features and feature groups.</body>
    </ownedComment>
    <ownedComment xmi:id="_ownedComment.6">
      <body>This package contains metaclasses for modeling flows.</body>
    </ownedComment>
    <ownedComment xmi:id="_ownedComment.7">
      <body>This package contains metaclasses for modeling modes and modal elements.</body>
    </ownedComment>
    <ownedComment xmi:id="_ownedComment.8">
      <body>This package contains metaclasses for modeling packages and their public and private sections.</body>
    </ownedComment>
    <ownedComment xmi:id="_ownedComment.9">
      <body>This package contains metaclasses needed for modeling prototypes and prototype bindings.</body>
    </ownedComment>
    <ownedComment xmi:id="_ownedComment.10">
      <body>This package contains metaclasses for modeling the different kinds of connections that exist in AADL.</body>
    </ownedComment>
    <ownedComment xmi:id="_ownedComment.11">
      <body>This package contains metaclasses needed for modeling property associations.</body>
    </ownedComment>
    <ownedComment xmi:id="_ownedComment.12">
      <body>This package contains metaclasses needed to model property constants.</body>
    </ownedComment>
    <ownedComment xmi:id="_ownedComment.13">
      <body>This package contains metaclasses needed to model property definitions.</body>
    </ownedComment>
    <ownedComment xmi:id="_ownedComment.14">
      <body>This package contains metaclasses for modeling property sets.</body>
    </ownedComment>
    <ownedComment xmi:id="_ownedComment.15">
      <body>This package contains metaclasses needed to model property types.</body>
    </ownedComment>
    <ownedComment xmi:id="_ownedComment.16">
      <body>The AADL2 model merges the contents of all packages from the model libraries AADLInfrastructure, AADLConstructs, AADLDetails, and AADLProperties. The result is a flat model containing all metaclasses directly without nested packages.</body>
    </ownedComment>
    <packagedElement xmi:type="uml:Class" xmi:id="Element" name="Element" isAbstract="true">
      <ownedComment xmi:id="Element-_ownedComment.0" annotatedElement="Element">
        <body>An element is a constituent of a model.</body>
      </ownedComment>
      <ownedComment xmi:id="Element-_ownedComment.1" annotatedElement="Element">
        <body>An element is a constituent of a model. As such, it has the capability of owning other elements.</body>
      </ownedComment>
      <ownedRule xmi:id="Element-not_own_self" name="not_own_self" constrainedElement="Element">
        <ownedComment xmi:id="Element-not_own_self-_ownedComment.0" annotatedElement="Element-not_own_self">
          <body>An element may not directly or indirectly own itself.</body>
        </ownedComment>
        <specification xmi:type="uml:OpaqueExpression" xmi:id="Element-not_own_self-_specification">
          <language>OCL</language>
          <body>not self.allOwnedElements()->includes(self)</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="Element-has_owner" name="has_owner" constrainedElement="Element">
        <ownedComment xmi:id="Element-has_owner-_ownedComment.0" annotatedElement="Element-has_owner">
          <body>Elements that must be owned must have an owner.</body>
        </ownedComment>
        <specification xmi:type="uml:OpaqueExpression" xmi:id="Element-has_owner-_specification">
          <language>OCL</language>
          <body>self.mustBeOwned() implies owner->notEmpty()</body>
        </specification>
      </ownedRule>
      <ownedAttribute xmi:id="Element-ownedElement" name="ownedElement" type="Element" isReadOnly="true" isDerived="true" isDerivedUnion="true" aggregation="composite" association="A_ownedElement_owner">
        <eAnnotations xmi:id="Element-ownedElement-_http2F2Fwww.topcased.org2Fdocumentation" source="http://www.topcased.org/documentation">
          <details xmi:id="Element-ownedElement-_http2F2Fwww.topcased.org2Fdocumentation-_details.0" key="documentation" value="The Elements owned by this element."/>
        </eAnnotations>
        <ownedComment xmi:id="Element-ownedElement-_ownedComment.0" annotatedElement="Element-ownedElement">
          <body>The Elements owned by this element.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="Element-ownedElement-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="Element-ownedElement-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Element-ownedComment" name="ownedComment" type="Comment" aggregation="composite" subsettedProperty="Element-ownedElement" association="A_ownedComment_owningElement">
        <eAnnotations xmi:id="Element-ownedComment-_http2F2Fwww.topcased.org2Fdocumentation" source="http://www.topcased.org/documentation">
          <details xmi:id="Element-ownedComment-_http2F2Fwww.topcased.org2Fdocumentation-_details.0" key="documentation" value="The Comments owned by this element."/>
        </eAnnotations>
        <ownedComment xmi:id="Element-ownedComment-_ownedComment.0" annotatedElement="Element-ownedComment">
          <body>The Comments owned by this element.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="Element-ownedComment-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="Element-ownedComment-_lowerValue"/>
      </ownedAttribute>
      <ownedOperation xmi:id="Element-getOwner" name="getOwner">
        <ownedParameter xmi:id="Element-getOwner-_ownedParameter.0" type="Element" direction="return"/>
      </ownedOperation>
      <ownedOperation xmi:id="Element-allOwnedElements" name="allOwnedElements" isQuery="true" bodyCondition="Element-allOwnedElements-spec">
        <ownedComment xmi:id="Element-allOwnedElements-_ownedComment.0" annotatedElement="Element-allOwnedElements">
          <body>The query allOwnedElements() gives all of the direct and indirect owned elements of an element.</body>
        </ownedComment>
        <ownedRule xmi:id="Element-allOwnedElements-spec" name="spec" constrainedElement="Element-allOwnedElements">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="Element-allOwnedElements-spec-_specification">
            <language>OCL</language>
            <body>ownedElement->union(ownedElement->collect(e | e.allOwnedElements()))</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="Element-allOwnedElements-_ownedParameter.0" type="Element" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="Element-allOwnedElements-_ownedParameter.0-_upperValue" value="*"/>
          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="Element-allOwnedElements-_ownedParameter.0-_lowerValue"/>
        </ownedParameter>
      </ownedOperation>
      <ownedOperation xmi:id="Element-mustBeOwned" name="mustBeOwned" isQuery="true" bodyCondition="Element-mustBeOwned-spec">
        <ownedComment xmi:id="Element-mustBeOwned-_ownedComment.0" annotatedElement="Element-mustBeOwned">
          <body>The query mustBeOwned() indicates whether elements of this type must have an owner. Subclasses of Element that do not require an owner must override this operation.</body>
        </ownedComment>
        <ownedRule xmi:id="Element-mustBeOwned-spec" name="spec" constrainedElement="Element-mustBeOwned">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="Element-mustBeOwned-spec-_specification">
            <language>OCL</language>
            <body>true</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="Element-mustBeOwned-_ownedParameter.0" type="Boolean" direction="return"/>
      </ownedOperation>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_ownedElement_owner" name="A_ownedElement_owner" visibility="private" memberEnd="Element-ownedElement A_ownedElement_owner-owner">
      <ownedEnd xmi:id="A_ownedElement_owner-owner" name="owner" type="Element" isReadOnly="true" isDerived="true" isDerivedUnion="true" association="A_ownedElement_owner">
        <eAnnotations xmi:id="A_ownedElement_owner-owner-_http2F2Fwww.topcased.org2Fdocumentation" source="http://www.topcased.org/documentation">
          <details xmi:id="A_ownedElement_owner-owner-_http2F2Fwww.topcased.org2Fdocumentation-_details.0" key="documentation" value="The Element that owns this element."/>
        </eAnnotations>
        <ownedComment xmi:id="A_ownedElement_owner-owner-_ownedComment.0" annotatedElement="A_ownedElement_owner-owner">
          <body>The Element that owns this element.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_ownedElement_owner-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_ownedElement_owner-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_ownedComment_owningElement" name="A_ownedComment_owningElement" visibility="private" memberEnd="Element-ownedComment A_ownedComment_owningElement-owningElement">
      <generalization xmi:id="A_ownedComment_owningElement-_generalization.0" general="A_ownedElement_owner"/>
      <ownedEnd xmi:id="A_ownedComment_owningElement-owningElement" name="owningElement" type="Element" subsettedProperty="A_ownedElement_owner-owner" association="A_ownedComment_owningElement">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_ownedComment_owningElement-owningElement-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_ownedComment_owningElement-owningElement-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="Comment" name="Comment">
      <ownedComment xmi:id="Comment-_ownedComment.0" annotatedElement="Comment">
        <body>A comment is a textual annotation that can be attached to a set of elements.</body>
      </ownedComment>
      <generalization xmi:id="Comment-_generalization.0" general="Element"/>
      <ownedAttribute xmi:id="Comment-body" name="body" type="String">
        <eAnnotations xmi:id="Comment-body-_http2F2Fwww.topcased.org2Fdocumentation" source="http://www.topcased.org/documentation">
          <details xmi:id="Comment-body-_http2F2Fwww.topcased.org2Fdocumentation-_details.0" key="documentation" value="Specifies a string that is the comment"/>
        </eAnnotations>
        <ownedComment xmi:id="Comment-body-_ownedComment.0" annotatedElement="Comment-body">
          <body>Specifies a string that is the comment</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="Comment-body-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="Comment-body-_lowerValue"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_ownedMember_namespace" name="A_ownedMember_namespace" visibility="private" memberEnd="Namespace-ownedMember A_ownedMember_namespace-namespace">
      <generalization xmi:id="A_ownedMember_namespace-_generalization.0" general="A_ownedElement_owner"/>
      <generalization xmi:id="A_ownedMember_namespace-_generalization.1" general="A_member_namespace"/>
      <ownedEnd xmi:id="A_ownedMember_namespace-namespace" name="namespace" type="Namespace" isReadOnly="true" isDerived="true" redefinedProperty="A_member_namespace-namespace" association="A_ownedMember_namespace">
        <eAnnotations xmi:id="A_ownedMember_namespace-namespace-_http2F2Fwww.topcased.org2Fdocumentation" source="http://www.topcased.org/documentation">
          <details xmi:id="A_ownedMember_namespace-namespace-_http2F2Fwww.topcased.org2Fdocumentation-_details.0" key="documentation" value="Specifies the namespace that owns the NamedElement."/>
        </eAnnotations>
        <ownedComment xmi:id="A_ownedMember_namespace-namespace-_ownedComment.0" annotatedElement="A_ownedMember_namespace-namespace">
          <body>Specifies the namespace that owns the NamedElement.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_ownedMember_namespace-namespace-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_ownedMember_namespace-namespace-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_member_namespace" name="A_member_namespace" visibility="private" memberEnd="Namespace-member A_member_namespace-namespace">
      <ownedEnd xmi:id="A_member_namespace-namespace" name="namespace" type="Namespace" association="A_member_namespace">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_member_namespace-namespace-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_member_namespace-namespace-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="Type" name="Type" isAbstract="true">
      <ownedComment xmi:id="Type-_ownedComment.0" annotatedElement="Type">
        <body>A type constrains the values represented by a typed element.</body>
      </ownedComment>
      <generalization xmi:id="Type-_generalization.0" general="NamedElement"/>
      <ownedOperation xmi:id="Type-conformsTo" name="conformsTo" isQuery="true" bodyCondition="Type-conformsTo-spec">
        <ownedComment xmi:id="Type-conformsTo-_ownedComment.0" annotatedElement="Type-conformsTo">
          <body>The query conformsTo() gives true for a type that conforms to another. By default, two types do not conform to each other. This query is intended to be redefined for specific conformance situations.</body>
        </ownedComment>
        <ownedRule xmi:id="Type-conformsTo-spec" name="spec" constrainedElement="Type-conformsTo">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="Type-conformsTo-spec-_specification">
            <language>OCL</language>
            <body>result = false</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="Type-conformsTo-_ownedParameter.0" type="Boolean" direction="return"/>
        <ownedParameter xmi:id="Type-conformsTo-other" name="other" type="Type"/>
      </ownedOperation>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="TypedElement" name="TypedElement" isAbstract="true">
      <ownedComment xmi:id="TypedElement-_ownedComment.0" annotatedElement="TypedElement">
        <body>A typed element has a type.</body>
      </ownedComment>
      <generalization xmi:id="TypedElement-_generalization.0" general="NamedElement"/>
      <ownedAttribute xmi:id="TypedElement-type" name="type" type="Type" association="A_type_typedElement">
        <eAnnotations xmi:id="TypedElement-type-_http2F2Fwww.topcased.org2Fdocumentation" source="http://www.topcased.org/documentation">
          <details xmi:id="TypedElement-type-_http2F2Fwww.topcased.org2Fdocumentation-_details.0" key="documentation" value="The type of the TypedElement."/>
        </eAnnotations>
        <ownedComment xmi:id="TypedElement-type-_ownedComment.0" annotatedElement="TypedElement-type">
          <body>The type of the TypedElement.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="TypedElement-type-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="TypedElement-type-_lowerValue"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_type_typedElement" name="A_type_typedElement" visibility="private" memberEnd="TypedElement-type A_type_typedElement-typedElement">
      <ownedEnd xmi:id="A_type_typedElement-typedElement" name="typedElement" type="TypedElement" association="A_type_typedElement">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_type_typedElement-typedElement-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_type_typedElement-typedElement-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="Relationship" name="Relationship" isAbstract="true">
      <ownedComment xmi:id="Relationship-_ownedComment.0" annotatedElement="Relationship">
        <body>Relationship is an abstract concept that specifies some kind of relationship between elements.</body>
      </ownedComment>
      <generalization xmi:id="Relationship-_generalization.0" general="Element"/>
      <ownedAttribute xmi:id="Relationship-relatedElement" name="relatedElement" type="Element" isReadOnly="true" isDerived="true" isDerivedUnion="true" association="A_relatedElement_relationship">
        <ownedComment xmi:id="Relationship-relatedElement-_ownedComment.0" annotatedElement="Relationship-relatedElement">
          <body>Specifies the elements related by the Relationship.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="Relationship-relatedElement-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="Relationship-relatedElement-_lowerValue" value="1"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_relatedElement_relationship" name="A_relatedElement_relationship" visibility="private" memberEnd="Relationship-relatedElement A_relatedElement_relationship-relationship">
      <ownedEnd xmi:id="A_relatedElement_relationship-relationship" name="relationship" type="Relationship" association="A_relatedElement_relationship">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_relatedElement_relationship-relationship-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_relatedElement_relationship-relationship-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="DirectedRelationship" name="DirectedRelationship" isAbstract="true">
      <ownedComment xmi:id="DirectedRelationship-_ownedComment.0" annotatedElement="DirectedRelationship">
        <body>A directed relationship represents a relationship between a collection of source model elements and a collection of target model elements.</body>
      </ownedComment>
      <generalization xmi:id="DirectedRelationship-_generalization.0" general="Relationship"/>
      <ownedAttribute xmi:id="DirectedRelationship-source" name="source" type="Element" isReadOnly="true" isDerived="true" isDerivedUnion="true" subsettedProperty="Relationship-relatedElement" association="A_source_directedRelationship">
        <ownedComment xmi:id="DirectedRelationship-source-_ownedComment.0" annotatedElement="DirectedRelationship-source">
          <body>Specifies the sources of the DirectedRelationship.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="DirectedRelationship-source-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="DirectedRelationship-source-_lowerValue" value="1"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="DirectedRelationship-target" name="target" type="Element" isReadOnly="true" isDerived="true" isDerivedUnion="true" subsettedProperty="Relationship-relatedElement" association="A_target_directedRelationship">
        <ownedComment xmi:id="DirectedRelationship-target-_ownedComment.0" annotatedElement="DirectedRelationship-target">
          <body>Specifies the targets of the DirectedRelationship.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="DirectedRelationship-target-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="DirectedRelationship-target-_lowerValue" value="1"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_source_directedRelationship" name="A_source_directedRelationship" visibility="private" memberEnd="DirectedRelationship-source A_source_directedRelationship-relationship">
      <generalization xmi:id="A_source_directedRelationship-_generalization.0" general="A_relatedElement_relationship"/>
      <ownedEnd xmi:id="A_source_directedRelationship-relationship" name="relationship" type="DirectedRelationship" association="A_source_directedRelationship">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_source_directedRelationship-relationship-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_source_directedRelationship-relationship-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_target_directedRelationship" name="A_target_directedRelationship" visibility="private" memberEnd="DirectedRelationship-target A_target_directedRelationship-relationship">
      <generalization xmi:id="A_target_directedRelationship-_generalization.0" general="A_relatedElement_relationship"/>
      <ownedEnd xmi:id="A_target_directedRelationship-relationship" name="relationship" type="DirectedRelationship" association="A_target_directedRelationship">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_target_directedRelationship-relationship-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_target_directedRelationship-relationship-_lowerValue"/>
        <defaultValue xmi:type="uml:LiteralString" xmi:id="A_target_directedRelationship-relationship-_defaultValue" value=""/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="Generalization" name="Generalization" isAbstract="true">
      <ownedComment xmi:id="Generalization-_ownedComment.0" annotatedElement="Generalization">
        <body>A generalization is a taxonomic relationship between a more general classifier and a more specific classifier. Each instance of the specific classifier is also an instance of the general classifier. Thus, the specific classifier indirectly has features of the more general classifier.</body>
      </ownedComment>
      <generalization xmi:id="Generalization-_generalization.0" general="DirectedRelationship"/>
      <ownedAttribute xmi:id="Generalization-specific" name="specific" type="Classifier" isDerived="true" subsettedProperty="DirectedRelationship-source A_ownedElement_owner-owner" association="A_generalization_specific">
        <ownedComment xmi:id="Generalization-specific-_ownedComment.0" annotatedElement="Generalization-specific">
          <body>References the specializing classifier in the Generalization relationship. </body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="Generalization-specific-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="Generalization-specific-_lowerValue" value="1"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Generalization-general" name="general" type="Classifier" isReadOnly="true" isDerived="true" isDerivedUnion="true" subsettedProperty="DirectedRelationship-target" association="A_general_generalization">
        <ownedComment xmi:id="Generalization-general-_ownedComment.0" annotatedElement="Generalization-general">
          <body>References the general classifier in the Generalization relationship.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="Generalization-general-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="Generalization-general-_lowerValue" value="1"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_generalization_specific" name="A_generalization_specific" visibility="private" memberEnd="Classifier-generalization Generalization-specific">
      <generalization xmi:id="A_generalization_specific-_generalization.0" general="A_ownedElement_owner"/>
      <generalization xmi:id="A_generalization_specific-_generalization.1" general="A_source_directedRelationship"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_general_generalization" name="A_general_generalization" visibility="private" memberEnd="Generalization-general A_general_generalization-generalization">
      <generalization xmi:id="A_general_generalization-_generalization.0" general="A_target_directedRelationship"/>
      <ownedEnd xmi:id="A_general_generalization-generalization" name="generalization" type="Generalization" association="A_general_generalization">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_general_generalization-generalization-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_general_generalization-generalization-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_classifier_inheritedMember" name="A_classifier_inheritedMember" visibility="private" memberEnd="A_classifier_inheritedMember-_ownedEnd.0 Classifier-inheritedMember">
      <generalization xmi:id="A_classifier_inheritedMember-_generalization.0" general="A_member_namespace"/>
      <ownedEnd xmi:id="A_classifier_inheritedMember-_ownedEnd.0" type="Classifier" redefinedProperty="A_member_namespace-namespace" association="A_classifier_inheritedMember">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_classifier_inheritedMember-_ownedEnd.0-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_classifier_inheritedMember-_ownedEnd.0-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_general_classifier" name="A_general_classifier" visibility="private" memberEnd="Classifier-general A_general_classifier-classifier">
      <ownedEnd xmi:id="A_general_classifier-classifier" name="classifier" type="Classifier" association="A_general_classifier">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_general_classifier-classifier-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_general_classifier-classifier-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="RefinableElement" name="RefinableElement" isAbstract="true">
      <ownedComment xmi:id="RefinableElement-_ownedComment.0" annotatedElement="RefinableElement-refinementContext">
        <body>A refinable element can be refined by another element. Refinement is limited to classifier features, which can be refined by a classifier feature of the same name in an extended classifier. A refining element can add detail to an incomplete declaration.</body>
      </ownedComment>
      <generalization xmi:id="RefinableElement-_generalization.0" general="NamedElement"/>
      <ownedAttribute xmi:id="RefinableElement-refinementContext" name="refinementContext" type="Classifier" isReadOnly="true" isDerived="true" association="A_refinementContext_refinableElement">
        <ownedComment xmi:id="RefinableElement-refinementContext-_ownedComment.0" annotatedElement="RefinableElement-refinementContext">
          <body>References the contexts that this element may be redefined from.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="RefinableElement-refinementContext-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="RefinableElement-refinementContext-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="RefinableElement-refinedElement" name="refinedElement" type="RefinableElement" isReadOnly="true" isDerived="true" isDerivedUnion="true" association="A_refiningElement_refinedElement">
        <ownedComment xmi:id="RefinableElement-refinedElement-_ownedComment.0" annotatedElement="RefinableElement-refinedElement">
          <body>The refinable element that is being refined by this element.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="RefinableElement-refinedElement-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="RefinableElement-refinedElement-_lowerValue"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_refinementContext_refinableElement" name="A_refinementContext_refinableElement" visibility="private" memberEnd="A_refinementContext_refinableElement-_ownedEnd.0 RefinableElement-refinementContext">
      <ownedEnd xmi:id="A_refinementContext_refinableElement-_ownedEnd.0" name="" type="RefinableElement" association="A_refinementContext_refinableElement">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_refinementContext_refinableElement-_ownedEnd.0-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_refinementContext_refinableElement-_ownedEnd.0-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_refiningElement_refinedElement" name="A_refiningElement_refinedElement" visibility="private" memberEnd="A_refiningElement_refinedElement-refiningElement RefinableElement-refinedElement">
      <ownedEnd xmi:id="A_refiningElement_refinedElement-refiningElement" name="refiningElement" type="RefinableElement" association="A_refiningElement_refinedElement">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_refiningElement_refinedElement-refiningElement-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_refiningElement_refinedElement-refiningElement-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="ClassifierFeature" name="ClassifierFeature" isAbstract="true">
      <ownedComment xmi:id="ClassifierFeature-_ownedComment.0" annotatedElement="ClassifierFeature">
        <body>A classifier feature declares a behavioral or structural characteristic of instances of classifiers.</body>
      </ownedComment>
      <generalization xmi:id="ClassifierFeature-_generalization.0" general="NamedElement"/>
      <ownedAttribute xmi:id="ClassifierFeature-featuringClassifier" name="featuringClassifier" type="Classifier" isReadOnly="true" isDerived="true" association="A_classifierFeature_featuringClassifier">
        <ownedComment xmi:id="ClassifierFeature-featuringClassifier-_ownedComment.0" annotatedElement="ClassifierFeature-featuringClassifier">
          <body>The Classifiers that have this ClassifierFeature as a feature.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="ClassifierFeature-featuringClassifier-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="ClassifierFeature-featuringClassifier-_lowerValue"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_classifierFeature_featuringClassifier" name="A_classifierFeature_featuringClassifier" visibility="private" memberEnd="Classifier-classifierFeature ClassifierFeature-featuringClassifier">
      <generalization xmi:id="A_classifierFeature_featuringClassifier-_generalization.0" general="A_member_namespace"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="StructuralFeature" name="StructuralFeature" isAbstract="true">
      <generalization xmi:id="StructuralFeature-_generalization.0" general="ClassifierFeature"/>
      <generalization xmi:id="StructuralFeature-_generalization.1" general="RefinableElement"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="BehavioralFeature" name="BehavioralFeature" isAbstract="true">
      <ownedComment xmi:id="BehavioralFeature-_ownedComment.0">
        <annotatedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#BehavioralFeature"/>
        <body>A behavioral feature is a feature of a classifier that specifies an aspect of the behavior of its instances.</body>
      </ownedComment>
      <generalization xmi:id="BehavioralFeature-_generalization.0" general="ClassifierFeature"/>
    </packagedElement>
    <packagedElement xmi:type="uml:PrimitiveType" xmi:id="Boolean" name="Boolean">
      <eAnnotations xmi:id="Boolean-_http2F2Fwww.topcased.org2Fdocumentation" source="http://www.topcased.org/documentation">
        <details xmi:id="Boolean-_http2F2Fwww.topcased.org2Fdocumentation-_details.0" key="documentation" value="A Boolean type is used for logical expression, consisting of the predefined values true and false."/>
      </eAnnotations>
    </packagedElement>
    <packagedElement xmi:type="uml:PrimitiveType" xmi:id="Integer" name="Integer">
      <eAnnotations xmi:id="Integer-_http2F2Fwww.topcased.org2Fdocumentation" source="http://www.topcased.org/documentation">
        <details xmi:id="Integer-_http2F2Fwww.topcased.org2Fdocumentation-_details.0" key="documentation" value="An integer is a primitive type representing integer values."/>
      </eAnnotations>
    </packagedElement>
    <packagedElement xmi:type="uml:PrimitiveType" xmi:id="String" name="String">
      <eAnnotations xmi:id="String-_http2F2Fwww.topcased.org2Fdocumentation" source="http://www.topcased.org/documentation">
        <details xmi:id="String-_http2F2Fwww.topcased.org2Fdocumentation-_details.0" key="documentation" value="A string is a sequence of characters in some suitable character set used to display information about the model. Character sets may include non-Roman alphabets and characters."/>
      </eAnnotations>
    </packagedElement>
    <packagedElement xmi:type="uml:PrimitiveType" xmi:id="Real" name="Real">
      <eAnnotations xmi:id="Real-_http2F2Fwww.topcased.org2Fdocumentation" source="http://www.topcased.org/documentation">
        <details xmi:id="Real-_http2F2Fwww.topcased.org2Fdocumentation-_details.0" key="documentation" value="A real is a primitive type representing real numeric values."/>
      </eAnnotations>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="ArrayDimension" name="ArrayDimension">
      <ownedComment xmi:id="ArrayDimension-_ownedComment.0">
        <body>Specifies a one or multi-dimensional array. </body>
      </ownedComment>
      <generalization xmi:id="ArrayDimension-_generalization.0" general="Element"/>
      <ownedAttribute xmi:id="ArrayDimension-size" name="size" type="ArraySize" isOrdered="true" aggregation="composite" association="A_arraySpecification_size">
        <ownedComment xmi:id="ArrayDimension-size-_ownedComment.0">
          <body>References the specification of the size of an array dimension. </body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="ArrayDimension-size-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="ArrayDimension-size-_lowerValue"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="ArrayableElement" name="ArrayableElement" isAbstract="true">
      <ownedComment xmi:id="ArrayableElement-_ownedComment.0">
        <body>An arrayable element may be declared as a one or multi-dimensional array.</body>
      </ownedComment>
      <generalization xmi:id="ArrayableElement-_generalization.0" general="Element"/>
      <ownedAttribute xmi:id="ArrayableElement-arrayDimension" name="arrayDimension" type="ArrayDimension" isOrdered="true" aggregation="composite" association="A_arrayableElement_arrayDimension">
        <ownedComment xmi:id="ArrayableElement-arrayDimension-_ownedComment.0">
          <body></body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="ArrayableElement-arrayDimension-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="ArrayableElement-arrayDimension-_lowerValue"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_arrayableElement_arrayDimension" name="A_arrayableElement_arrayDimension" visibility="private" memberEnd="A_arrayableElement_arrayDimension-owner ArrayableElement-arrayDimension">
      <ownedEnd xmi:id="A_arrayableElement_arrayDimension-owner" name="owner" type="ArrayableElement" association="A_arrayableElement_arrayDimension">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_arrayableElement_arrayDimension-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_arrayableElement_arrayDimension-owner-_lowerValue" value="1"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_arraySpecification_size" name="A_arraySpecification_size" visibility="private" memberEnd="A_arraySpecification_size-owner ArrayDimension-size">
      <ownedEnd xmi:id="A_arraySpecification_size-owner" name="owner" type="ArrayDimension" association="A_arraySpecification_size">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_arraySpecification_size-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_arraySpecification_size-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="ComponentImplementationReference" name="ComponentImplementationReference">
      <ownedComment xmi:id="ComponentImplementationReference-_ownedComment.0">
        <body>A reference to a component implementation and together with bindings for its prototypes.</body>
      </ownedComment>
      <generalization xmi:id="ComponentImplementationReference-_generalization.0" general="Element"/>
      <ownedAttribute xmi:id="ComponentImplementationReference-implementation" name="implementation" type="ComponentImplementation" association="A_componentImplementationReference_implementation">
        <ownedComment xmi:id="ComponentImplementationReference-implementation-_ownedComment.0">
          <body>References a component implementation.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="ComponentImplementationReference-implementation-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="ComponentImplementationReference-implementation-_lowerValue" value="1"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="ComponentImplementationReference-ownedPrototypeBinding" name="ownedPrototypeBinding" type="PrototypeBinding" aggregation="composite" association="A_componentImplementationReference_ownedPrototypeBinding">
        <ownedComment xmi:id="ComponentImplementationReference-ownedPrototypeBinding-_ownedComment.0">
          <body>A list of prototype bindings. The bindings apply to the referenced component implementation.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="ComponentImplementationReference-ownedPrototypeBinding-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="ComponentImplementationReference-ownedPrototypeBinding-_lowerValue"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_componentImplementationReference_implementation" name="A_componentImplementationReference_implementation" visibility="private" memberEnd="A_componentImplementationReference_implementation-reference ComponentImplementationReference-implementation">
      <ownedEnd xmi:id="A_componentImplementationReference_implementation-reference" name="reference" type="ComponentImplementationReference" association="A_componentImplementationReference_implementation">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_componentImplementationReference_implementation-reference-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_componentImplementationReference_implementation-reference-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_componentImplementationReference_ownedPrototypeBinding" name="A_componentImplementationReference_ownedPrototypeBinding" visibility="private" memberEnd="A_componentImplementationReference_ownedPrototypeBinding-owner ComponentImplementationReference-ownedPrototypeBinding">
      <ownedEnd xmi:id="A_componentImplementationReference_ownedPrototypeBinding-owner" name="owner" type="ComponentImplementationReference" association="A_componentImplementationReference_ownedPrototypeBinding">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_componentImplementationReference_ownedPrototypeBinding-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_componentImplementationReference_ownedPrototypeBinding-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="TypeExtension" name="TypeExtension">
      <ownedComment xmi:id="TypeExtension-_ownedComment.0">
        <body>A type extension is the relationship between a component type and a component type that it extends.</body>
      </ownedComment>
      <generalization xmi:id="TypeExtension-_generalization.0" general="Generalization"/>
      <ownedAttribute xmi:id="TypeExtension-extended" name="extended" type="ComponentType" subsettedProperty="Generalization-general" association="A_typeExtension_extended">
        <ownedComment xmi:id="TypeExtension-extended-_ownedComment.0">
          <body>References the extended component type.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="TypeExtension-extended-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="TypeExtension-extended-_lowerValue" value="1"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_typeExtension_extended" name="A_typeExtension_extended" visibility="private" memberEnd="A_typeExtension_extended-extension TypeExtension-extended">
      <generalization xmi:id="A_typeExtension_extended-_generalization.0" general="A_general_generalization"/>
      <ownedEnd xmi:id="A_typeExtension_extended-extension" name="extension" type="TypeExtension" association="A_typeExtension_extended">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_typeExtension_extended-extension-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_typeExtension_extended-extension-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="ImplementationExtension" name="ImplementationExtension">
      <ownedComment xmi:id="ImplementationExtension-_ownedComment.0">
        <body>An implementation extension is the relationship between a component implementation and a component implementation that it extends.</body>
      </ownedComment>
      <generalization xmi:id="ImplementationExtension-_generalization.0" general="Generalization"/>
      <ownedAttribute xmi:id="ImplementationExtension-extended" name="extended" type="ComponentImplementation" subsettedProperty="Generalization-general" association="A_implementationExtension_extended">
        <ownedComment xmi:id="ImplementationExtension-extended-_ownedComment.0">
          <body>References the extended component implementation.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="ImplementationExtension-extended-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="ImplementationExtension-extended-_lowerValue" value="1"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_implementationExtension_extended" name="A_implementationExtension_extended" visibility="private" memberEnd="A_implementationExtension_extended-extension ImplementationExtension-extended">
      <generalization xmi:id="A_implementationExtension_extended-_generalization.0" general="A_general_generalization"/>
      <ownedEnd xmi:id="A_implementationExtension_extended-extension" name="extension" type="ImplementationExtension" association="A_implementationExtension_extended">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_implementationExtension_extended-extension-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_implementationExtension_extended-extension-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="Realization" name="Realization">
      <ownedComment xmi:id="Realization-_ownedComment.0">
        <body>A realization is the relationship between a component implementation and its component type.</body>
      </ownedComment>
      <generalization xmi:id="Realization-_generalization.0" general="Generalization"/>
      <ownedAttribute xmi:id="Realization-implemented" name="implemented" type="ComponentType" subsettedProperty="Generalization-general" association="A_realization_implemented">
        <ownedComment xmi:id="Realization-implemented-_ownedComment.0">
          <body>References to the implemented component type.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="Realization-implemented-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="Realization-implemented-_lowerValue" value="1"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_realization_implemented" name="A_realization_implemented" visibility="private" memberEnd="A_realization_implemented-realization Realization-implemented">
      <generalization xmi:id="A_realization_implemented-_generalization.0" general="A_general_generalization"/>
      <ownedEnd xmi:id="A_realization_implemented-realization" name="realization" type="Realization" association="A_realization_implemented">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_realization_implemented-realization-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_realization_implemented-realization-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_componentType_ownedExtension" name="A_componentType_ownedExtension" visibility="private" memberEnd="A_componentType_ownedExtension-owner ComponentType-ownedExtension">
      <generalization xmi:id="A_componentType_ownedExtension-_generalization.0" general="A_generalization_specific"/>
      <ownedEnd xmi:id="A_componentType_ownedExtension-owner" name="owner" type="ComponentType" association="A_componentType_ownedExtension">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_componentType_ownedExtension-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_componentType_ownedExtension-owner-_lowerValue" value="1"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_componentType_extended" name="A_componentType_extended" visibility="private" memberEnd="A_componentType_extended-extending ComponentType-extended">
      <generalization xmi:id="A_componentType_extended-_generalization.0" general="A_general_classifier"/>
      <ownedEnd xmi:id="A_componentType_extended-extending" name="extending" type="ComponentType" association="A_componentType_extended">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_componentType_extended-extending-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_componentType_extended-extending-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_componentType_ownedFeature" name="A_componentType_ownedFeature" visibility="private" memberEnd="A_componentType_ownedFeature-owner ComponentType-ownedFeature">
      <generalization xmi:id="A_componentType_ownedFeature-_generalization.0" general="A_classifierFeature_featuringClassifier"/>
      <generalization xmi:id="A_componentType_ownedFeature-_generalization.1" general="A_ownedMember_namespace"/>
      <ownedEnd xmi:id="A_componentType_ownedFeature-owner" name="owner" type="ComponentType" association="A_componentType_ownedFeature">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_componentType_ownedFeature-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_componentType_ownedFeature-owner-_lowerValue" value="1"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_componentType_ownedAbstractFeature" name="A_componentType_ownedAbstractFeature" visibility="private" memberEnd="A_componentType_ownedAbstractFeature-owner ComponentType-ownedAbstractFeature">
      <generalization xmi:id="A_componentType_ownedAbstractFeature-_generalization.0" general="A_componentType_ownedFeature"/>
      <ownedEnd xmi:id="A_componentType_ownedAbstractFeature-owner" name="owner" type="ComponentType" association="A_componentType_ownedAbstractFeature">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_componentType_ownedAbstractFeature-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_componentType_ownedAbstractFeature-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_componentType_ownedFlowSpecification" name="A_componentType_ownedFlowSpecification" visibility="private" memberEnd="A_componentType_ownedFlowSpecification-owner ComponentType-ownedFlowSpecification">
      <generalization xmi:id="A_componentType_ownedFlowSpecification-_generalization.0" general="A_classifierFeature_featuringClassifier"/>
      <generalization xmi:id="A_componentType_ownedFlowSpecification-_generalization.1" general="A_ownedMember_namespace"/>
      <ownedEnd xmi:id="A_componentType_ownedFlowSpecification-owner" name="owner" type="ComponentType" association="A_componentType_ownedFlowSpecification">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_componentType_ownedFlowSpecification-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_componentType_ownedFlowSpecification-owner-_lowerValue" value="1"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_componentImplementation_ownedExtension" name="A_componentImplementation_ownedExtension" visibility="private" memberEnd="A_componentImplementation_ownedExtension-owner ComponentImplementation-ownedExtension">
      <generalization xmi:id="A_componentImplementation_ownedExtension-_generalization.0" general="A_generalization_specific"/>
      <ownedEnd xmi:id="A_componentImplementation_ownedExtension-owner" name="owner" type="ComponentImplementation" association="A_componentImplementation_ownedExtension">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_componentImplementation_ownedExtension-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_componentImplementation_ownedExtension-owner-_lowerValue" value="1"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_componentImplementation_ownedRealization" name="A_componentImplementation_ownedRealization" visibility="private" memberEnd="A_componentImplementation_ownedRealization-owner ComponentImplementation-ownedRealization">
      <generalization xmi:id="A_componentImplementation_ownedRealization-_generalization.0" general="A_generalization_specific"/>
      <ownedEnd xmi:id="A_componentImplementation_ownedRealization-owner" name="owner" type="ComponentImplementation" association="A_componentImplementation_ownedRealization">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_componentImplementation_ownedRealization-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_componentImplementation_ownedRealization-owner-_lowerValue" value="1"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_componentImplementation_extended" name="A_componentImplementation_extended" visibility="private" memberEnd="A_componentImplementation_extended-extending ComponentImplementation-extended">
      <generalization xmi:id="A_componentImplementation_extended-_generalization.0" general="A_general_classifier"/>
      <ownedEnd xmi:id="A_componentImplementation_extended-extending" name="extending" type="ComponentImplementation" association="A_componentImplementation_extended">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_componentImplementation_extended-extending-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_componentImplementation_extended-extending-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_componentImplementation_ComponentType" name="A_componentImplementation_ComponentType" visibility="private" memberEnd="A_componentImplementation_ComponentType-implementing ComponentImplementation-type">
      <generalization xmi:id="A_componentImplementation_ComponentType-_generalization.0" general="A_general_classifier"/>
      <ownedEnd xmi:id="A_componentImplementation_ComponentType-implementing" name="implementing" type="ComponentImplementation" association="A_componentImplementation_ComponentType">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_componentImplementation_ComponentType-implementing-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_componentImplementation_ComponentType-implementing-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_componentImplementation_ownedConnection" name="A_componentImplementation_ownedConnection" visibility="private" memberEnd="A_componentImplementation_ownedConnection-owner ComponentImplementation-ownedConnection">
      <generalization xmi:id="A_componentImplementation_ownedConnection-_generalization.0" general="A_classifierFeature_featuringClassifier"/>
      <generalization xmi:id="A_componentImplementation_ownedConnection-_generalization.1" general="A_ownedMember_namespace"/>
      <ownedEnd xmi:id="A_componentImplementation_ownedConnection-owner" name="owner" type="ComponentImplementation" association="A_componentImplementation_ownedConnection">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_componentImplementation_ownedConnection-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_componentImplementation_ownedConnection-owner-_lowerValue" value="1"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_componentImplementation_ownedFlowImplementation" name="A_componentImplementation_ownedFlowImplementation" visibility="private" memberEnd="A_componentImplementation_ownedFlowImplementation-owner ComponentImplementation-ownedFlowImplementation">
      <generalization xmi:id="A_componentImplementation_ownedFlowImplementation-_generalization.0" general="A_classifierFeature_featuringClassifier"/>
      <ownedEnd xmi:id="A_componentImplementation_ownedFlowImplementation-owner" name="owner" type="ComponentImplementation" association="A_componentImplementation_ownedFlowImplementation">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_componentImplementation_ownedFlowImplementation-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_componentImplementation_ownedFlowImplementation-owner-_lowerValue" value="1"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_componentImplementation_ownedSubcomponent" name="A_componentImplementation_ownedSubcomponent" visibility="private" memberEnd="A_componentImplementation_ownedSubcomponent-owner ComponentImplementation-ownedSubcomponent">
      <generalization xmi:id="A_componentImplementation_ownedSubcomponent-_generalization.0" general="A_classifierFeature_featuringClassifier"/>
      <generalization xmi:id="A_componentImplementation_ownedSubcomponent-_generalization.1" general="A_ownedMember_namespace"/>
      <ownedEnd xmi:id="A_componentImplementation_ownedSubcomponent-owner" name="owner" type="ComponentImplementation" association="A_componentImplementation_ownedSubcomponent">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_componentImplementation_ownedSubcomponent-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_componentImplementation_ownedSubcomponent-owner-_lowerValue" value="1"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="Subcomponent" name="Subcomponent" isAbstract="true">
      <generalization xmi:id="Subcomponent-_generalization.0" general="StructuralFeature"/>
      <generalization xmi:id="Subcomponent-_generalization.1" general="ArrayableElement"/>
      <generalization xmi:id="Subcomponent-_generalization.2" general="Context"/>
      <generalization xmi:id="Subcomponent-_generalization.3" general="FlowElement"/>
      <generalization xmi:id="Subcomponent-_generalization.4" general="ModalElement"/>
      <ownedAttribute xmi:id="Subcomponent-subcomponentType" name="subcomponentType" type="SubcomponentType" isUnique="false" isReadOnly="true" isDerived="true" isDerivedUnion="true" association="A_subcomponent_subcomponentType">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="Subcomponent-subcomponentType-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="Subcomponent-subcomponentType-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Subcomponent-ownedPrototypeBinding" name="ownedPrototypeBinding" type="PrototypeBinding" aggregation="composite" association="A_subcomponent_ownedPrototypeBinding">
        <ownedComment xmi:id="Subcomponent-ownedPrototypeBinding-_ownedComment.0">
          <body>A list of prototype bindings owned by this subcomponent. The bindings apply to prototypes of the subcomponent's classifier.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="Subcomponent-ownedPrototypeBinding-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="Subcomponent-ownedPrototypeBinding-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Subcomponent-prototype" name="prototype" type="ComponentPrototype" isReadOnly="true" isDerived="true" subsettedProperty="Subcomponent-subcomponentType" association="A_subcomponent_prototype">
        <ownedComment xmi:id="Subcomponent-prototype-_ownedComment.0">
          <body>References a prototype whose  binding determines the subcomponent's type. This is allowed only if the subcomponent does not reference a classifier.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="Subcomponent-prototype-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="Subcomponent-prototype-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Subcomponent-ownedModeBinding" name="ownedModeBinding" type="ModeBinding" aggregation="composite" association="A_subcomponent_ownedModeBinding">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="Subcomponent-ownedModeBinding-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="Subcomponent-ownedModeBinding-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Subcomponent-allModes" name="allModes" type="Boolean"/>
      <ownedAttribute xmi:id="Subcomponent-implementationReference" name="implementationReference" type="ComponentImplementationReference" isOrdered="true" aggregation="composite" association="A_subcomponent_implementationReference">
        <ownedComment xmi:id="Subcomponent-implementationReference-_ownedComment.0">
          <body>A list of references to component implementations, one for each element in the subcomponent array.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="Subcomponent-implementationReference-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="Subcomponent-implementationReference-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Subcomponent-refined" name="refined" type="Subcomponent" subsettedProperty="RefinableElement-refinedElement" association="A_subcomponent_refined">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="Subcomponent-refined-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="Subcomponent-refined-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Subcomponent-classifier" name="classifier" type="ComponentClassifier" isReadOnly="true" isDerived="true" subsettedProperty="Subcomponent-subcomponentType" association="A_subcomponent_classifier">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="Subcomponent-classifier-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="Subcomponent-classifier-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Subcomponent-inMode" name="inMode" type="Mode" isDerived="true" redefinedProperty="ModalElement-inMode" association="A_subcomponent_inMode">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="Subcomponent-inMode-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="Subcomponent-inMode-_lowerValue"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_subcomponent_subcomponentType" name="A_subcomponent_subcomponentType" visibility="private" memberEnd="A_subcomponent_subcomponentType-subcomponent Subcomponent-subcomponentType">
      <ownedEnd xmi:id="A_subcomponent_subcomponentType-subcomponent" name="subcomponent" type="Subcomponent" association="A_subcomponent_subcomponentType">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_subcomponent_subcomponentType-subcomponent-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_subcomponent_subcomponentType-subcomponent-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_subcomponent_refined" name="A_subcomponent_refined" visibility="private" memberEnd="A_subcomponent_refined-subcomponent Subcomponent-refined">
      <generalization xmi:id="A_subcomponent_refined-_generalization.0" general="A_refiningElement_refinedElement"/>
      <ownedEnd xmi:id="A_subcomponent_refined-subcomponent" name="subcomponent" type="Subcomponent" association="A_subcomponent_refined">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_subcomponent_refined-subcomponent-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_subcomponent_refined-subcomponent-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_subcomponent_implementationReference" name="A_subcomponent_implementationReference" visibility="private" memberEnd="A_subcomponent_implementationReference-owner Subcomponent-implementationReference">
      <ownedEnd xmi:id="A_subcomponent_implementationReference-owner" name="owner" type="Subcomponent" association="A_subcomponent_implementationReference">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_subcomponent_implementationReference-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_subcomponent_implementationReference-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_componentClassifier_ownedMode" name="A_componentClassifier_ownedMode" visibility="private" memberEnd="A_componentClassifier_ownedMode-owner ComponentClassifier-ownedMode">
      <generalization xmi:id="A_componentClassifier_ownedMode-_generalization.0" general="A_classifierFeature_featuringClassifier"/>
      <generalization xmi:id="A_componentClassifier_ownedMode-_generalization.1" general="A_ownedMember_namespace"/>
      <ownedEnd xmi:id="A_componentClassifier_ownedMode-owner" name="owner" type="ComponentClassifier" association="A_componentClassifier_ownedMode">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_componentClassifier_ownedMode-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_componentClassifier_ownedMode-owner-_lowerValue" value="1"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_componentClassifier_ownedModeTransition" name="A_componentClassifier_ownedModeTransition" visibility="private" memberEnd="A_componentClassifier_ownedModeTransition-owner ComponentClassifier-ownedModeTransition">
      <generalization xmi:id="A_componentClassifier_ownedModeTransition-_generalization.0" general="A_classifierFeature_featuringClassifier"/>
      <generalization xmi:id="A_componentClassifier_ownedModeTransition-_generalization.1" general="A_ownedMember_namespace"/>
      <ownedEnd xmi:id="A_componentClassifier_ownedModeTransition-owner" name="owner" type="ComponentClassifier" association="A_componentClassifier_ownedModeTransition">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_componentClassifier_ownedModeTransition-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_componentClassifier_ownedModeTransition-owner-_lowerValue" value="1"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Enumeration" xmi:id="ComponentCategory" name="ComponentCategory">
      <ownedComment xmi:id="ComponentCategory-_ownedComment.0">
        <body>===TBD===</body>
      </ownedComment>
      <ownedLiteral xmi:id="ComponentCategory-abstract" name="abstract"/>
      <ownedLiteral xmi:id="ComponentCategory-bus" name="bus"/>
      <ownedLiteral xmi:id="ComponentCategory-data" name="data"/>
      <ownedLiteral xmi:id="ComponentCategory-device" name="device"/>
      <ownedLiteral xmi:id="ComponentCategory-memory" name="memory"/>
      <ownedLiteral xmi:id="ComponentCategory-process" name="process"/>
      <ownedLiteral xmi:id="ComponentCategory-processor" name="processor"/>
      <ownedLiteral xmi:id="ComponentCategory-subprogram" name="subprogram"/>
      <ownedLiteral xmi:id="ComponentCategory-subprogramGroup" name="subprogramGroup"/>
      <ownedLiteral xmi:id="ComponentCategory-system" name="system"/>
      <ownedLiteral xmi:id="ComponentCategory-thread" name="thread"/>
      <ownedLiteral xmi:id="ComponentCategory-threadGroup" name="threadGroup"/>
      <ownedLiteral xmi:id="ComponentCategory-virtualBus" name="virtualBus"/>
      <ownedLiteral xmi:id="ComponentCategory-virtualProcessor" name="virtualProcessor"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="SubcomponentType" name="SubcomponentType" isAbstract="true">
      <generalization xmi:id="SubcomponentType-_generalization.0" general="Type"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_subcomponent_classifier" name="A_subcomponent_classifier" visibility="private" memberEnd="A_subcomponent_classifier-subcomponent Subcomponent-classifier">
      <generalization xmi:id="A_subcomponent_classifier-_generalization.0" general="A_subcomponent_subcomponentType"/>
      <ownedEnd xmi:id="A_subcomponent_classifier-subcomponent" name="subcomponent" type="Subcomponent" association="A_subcomponent_classifier">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_subcomponent_classifier-subcomponent-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_subcomponent_classifier-subcomponent-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="Connection" name="Connection" isAbstract="true">
      <ownedComment xmi:id="Connection-_ownedComment.0">
        <body>The base class of all connetions in AADL.</body>
      </ownedComment>
      <generalization xmi:id="Connection-_generalization.0" general="StructuralFeature"/>
      <generalization xmi:id="Connection-_generalization.1" general="FlowElement"/>
      <generalization xmi:id="Connection-_generalization.2" general="ModalPath"/>
      <ownedAttribute xmi:id="Connection-destination" name="destination" type="AbstractConnectionEnd" aggregation="composite" association="A_connection_destination">
        <ownedComment xmi:id="Connection-destination-_ownedComment.0">
          <body>Specifies the destination end of the connection. This is the end written on the right hand side of the connection symbol in textual AADL.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="Connection-destination-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="Connection-destination-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Connection-source" name="source" type="AbstractConnectionEnd" aggregation="composite" association="A_connection_source">
        <ownedComment xmi:id="Connection-source-_ownedComment.0">
          <body>Specifies the source end of the connection. This is the end written on the left hand side of the connection symbol in textual AADL.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="Connection-source-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="Connection-source-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Connection-bidirectional" name="bidirectional" type="Boolean">
        <ownedComment xmi:id="Connection-bidirectional-_ownedComment.0">
          <body>Specifies if the connection is bidirectional.</body>
        </ownedComment>
      </ownedAttribute>
      <ownedAttribute xmi:id="Connection-refined" name="refined" type="Connection" subsettedProperty="RefinableElement-refinedElement" association="A_connection_refined">
        <ownedComment xmi:id="Connection-refined-_ownedComment.0">
          <body>References a connection that is refined by this connection.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="Connection-refined-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="Connection-refined-_lowerValue"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_connection_destination" name="A_connection_destination" visibility="private" memberEnd="A_connection_destination-connection Connection-destination">
      <ownedEnd xmi:id="A_connection_destination-connection" name="connection" type="Connection" association="A_connection_destination">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_connection_destination-connection-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_connection_destination-connection-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_connection_source" name="A_connection_source" visibility="private" memberEnd="A_connection_source-connection Connection-source">
      <ownedEnd xmi:id="A_connection_source-connection" name="connection" type="Connection" association="A_connection_source">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_connection_source-connection-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_connection_source-connection-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="ConnectionEnd" name="ConnectionEnd" isAbstract="true">
      <ownedComment xmi:id="ConnectionEnd-_ownedComment.0">
        <body>An end of a connection.</body>
      </ownedComment>
      <generalization xmi:id="ConnectionEnd-_generalization.0" general="NamedElement"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="Context" name="Context" isAbstract="true">
      <ownedComment xmi:id="Context-_ownedComment.0">
        <body>The superclass of all elements that can be the context of a connection end or mode transition trigger.
The context owns the connection end instance.</body>
      </ownedComment>
      <generalization xmi:id="Context-_generalization.0" general="NamedElement"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_connection_refined" name="A_connection_refined" visibility="private" memberEnd="A_connection_refined-connection Connection-refined">
      <generalization xmi:id="A_connection_refined-_generalization.0" general="A_refiningElement_refinedElement"/>
      <ownedEnd xmi:id="A_connection_refined-connection" name="connection" type="Connection" association="A_connection_refined">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_connection_refined-connection-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_connection_refined-connection-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_connectedElement_context" name="A_connectedElement_context" visibility="private" memberEnd="A_connectedElement_context-connectedElement ConnectedElement-context">
      <ownedEnd xmi:id="A_connectedElement_context-connectedElement" name="connectedElement" type="ConnectedElement" association="A_connectedElement_context">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_connectedElement_context-connectedElement-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_connectedElement_context-connectedElement-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="ConnectedElement" name="ConnectedElement">
      <generalization xmi:id="ConnectedElement-_generalization.0" general="Element"/>
      <generalization xmi:id="ConnectedElement-_generalization.1" general="AbstractConnectionEnd"/>
      <ownedAttribute xmi:id="ConnectedElement-context" name="context" type="Context" association="A_connectedElement_context">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="ConnectedElement-context-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="ConnectedElement-context-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="ConnectedElement-connectionEnd" name="connectionEnd" type="ConnectionEnd" association="A_connectedElement_connectionEnd">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="ConnectedElement-connectionEnd-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="ConnectedElement-connectionEnd-_lowerValue" value="1"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_connectedElement_connectionEnd" name="A_connectedElement_connectionEnd" visibility="private" memberEnd="A_connectedElement_connectionEnd-connectedElement ConnectedElement-connectionEnd">
      <ownedEnd xmi:id="A_connectedElement_connectionEnd-connectedElement" name="connectedElement" type="ConnectedElement" association="A_connectedElement_connectionEnd">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_connectedElement_connectionEnd-connectedElement-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_connectedElement_connectionEnd-connectedElement-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="ElementName" name="ElementName">
      <generalization xmi:id="ElementName-_generalization.0" general="ConnectionEnd"/>
      <ownedAttribute xmi:id="ElementName-kind" name="kind" type="ElementNameKind"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Enumeration" xmi:id="ElementNameKind" name="ElementNameKind">
      <ownedLiteral xmi:id="ElementNameKind-InternalEvent" name="InternalEvent"/>
      <ownedLiteral xmi:id="ElementNameKind-ProcessorPort" name="ProcessorPort"/>
      <ownedLiteral xmi:id="ElementNameKind-ProcessorSubprogram" name="ProcessorSubprogram"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="AbstractConnectionEnd" name="AbstractConnectionEnd" isAbstract="true"/>
    <packagedElement xmi:type="uml:Class" xmi:id="AnnexLibrary" name="AnnexLibrary" isAbstract="true">
      <ownedComment xmi:id="AnnexLibrary-_ownedComment.0">
        <body>An annex library.</body>
      </ownedComment>
      <generalization xmi:id="AnnexLibrary-_generalization.0" general="NamedElement"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="AnnexSubclause" name="AnnexSubclause" isAbstract="true">
      <ownedComment xmi:id="AnnexSubclause-_ownedComment.0">
        <body>An annex subclause.</body>
      </ownedComment>
      <generalization xmi:id="AnnexSubclause-_generalization.0" general="ModalElement"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="DefaultAnnexLibrary" name="DefaultAnnexLibrary">
      <ownedComment xmi:id="DefaultAnnexLibrary-_ownedComment.0">
        <body>A default annex library that stores uninterpreted source text.</body>
      </ownedComment>
      <generalization xmi:id="DefaultAnnexLibrary-_generalization.0" general="AnnexLibrary"/>
      <ownedAttribute xmi:id="DefaultAnnexLibrary-sourceText" name="sourceText" type="String">
        <ownedComment xmi:id="DefaultAnnexLibrary-sourceText-_ownedComment.0">
          <body>Specifies the AADL source text of this annex library.</body>
        </ownedComment>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="DefaultAnnexSubclause" name="DefaultAnnexSubclause">
      <ownedComment xmi:id="DefaultAnnexSubclause-_ownedComment.0">
        <body>A default annex subclasue that stores uninterpreted source text.</body>
      </ownedComment>
      <generalization xmi:id="DefaultAnnexSubclause-_generalization.0" general="AnnexSubclause"/>
      <ownedAttribute xmi:id="DefaultAnnexSubclause-sourceText" name="sourceText" type="String">
        <ownedComment xmi:id="DefaultAnnexSubclause-sourceText-_ownedComment.0">
          <body>Specifies the source text of this annex subclause.</body>
        </ownedComment>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_classifier_ownedAnnexSubclause" name="A_classifier_ownedAnnexSubclause" visibility="private" memberEnd="A_classifier_ownedAnnexSubclause-owner Classifier-ownedAnnexSubclause">
      <generalization xmi:id="A_classifier_ownedAnnexSubclause-_generalization.0" general="A_ownedMember_namespace"/>
      <ownedEnd xmi:id="A_classifier_ownedAnnexSubclause-owner" name="owner" type="Classifier" association="A_classifier_ownedAnnexSubclause">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_classifier_ownedAnnexSubclause-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_classifier_ownedAnnexSubclause-owner-_lowerValue" value="1"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_packageSection_ownedAnnexLibrary" name="A_packageSection_ownedAnnexLibrary" visibility="private" memberEnd="A_packageSection_ownedAnnexLibrary-owner PackageSection-ownedAnnexLibrary">
      <generalization xmi:id="A_packageSection_ownedAnnexLibrary-_generalization.0" general="A_ownedMember_namespace"/>
      <ownedEnd xmi:id="A_packageSection_ownedAnnexLibrary-owner" name="owner" type="PackageSection" association="A_packageSection_ownedAnnexLibrary">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_packageSection_ownedAnnexLibrary-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_packageSection_ownedAnnexLibrary-owner-_lowerValue" value="1"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_featureGroupType_ownedFeature" name="A_featureGroupType_ownedFeature" visibility="private" memberEnd="A_featureGroupType_ownedFeature-owner FeatureGroupType-ownedFeature">
      <generalization xmi:id="A_featureGroupType_ownedFeature-_generalization.0" general="A_classifierFeature_featuringClassifier"/>
      <generalization xmi:id="A_featureGroupType_ownedFeature-_generalization.1" general="A_ownedMember_namespace"/>
      <ownedEnd xmi:id="A_featureGroupType_ownedFeature-owner" name="owner" type="FeatureGroupType" association="A_featureGroupType_ownedFeature">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_featureGroupType_ownedFeature-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_featureGroupType_ownedFeature-owner-_lowerValue" value="1"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_featureGroup_type" name="A_featureGroup_type" visibility="private" memberEnd="A_featureGroup_type-featureGroup FeatureGroup-featureType">
      <ownedEnd xmi:id="A_featureGroup_type-featureGroup" name="featureGroup" type="FeatureGroup" association="A_featureGroup_type">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_featureGroup_type-featureGroup-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_featureGroup_type-featureGroup-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="Access" name="Access" isAbstract="true">
      <ownedComment xmi:id="Access-_ownedComment.0">
        <body>An AADL access feature.</body>
      </ownedComment>
      <generalization xmi:id="Access-_generalization.0" general="Feature"/>
      <generalization xmi:id="Access-_generalization.1" general="AccessConnectionEnd"/>
      <ownedAttribute xmi:id="Access-kind" name="kind" type="AccessType">
        <ownedComment xmi:id="Access-kind-_ownedComment.0">
          <body>Specifies if the feature provides or requires access.</body>
        </ownedComment>
      </ownedAttribute>
      <ownedAttribute xmi:id="Access-category" name="category" type="AccessCategory" isReadOnly="true" isDerived="true">
        <ownedComment xmi:id="Access-category-_ownedComment.0">
          <body>Specifies the category of the access feature.</body>
        </ownedComment>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="Port" name="Port" isAbstract="true">
      <ownedComment xmi:id="Port-_ownedComment.0">
        <body>An AADL port feature.</body>
      </ownedComment>
      <generalization xmi:id="Port-_generalization.0" general="DirectedFeature"/>
      <generalization xmi:id="Port-_generalization.1" general="PortConnectionEnd"/>
      <ownedAttribute xmi:id="Port-category" name="category" type="PortCategory" isReadOnly="true" isDerived="true">
        <ownedComment xmi:id="Port-category-_ownedComment.0">
          <body>Specifies the category of the port.</body>
        </ownedComment>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_extending_extended" name="A_extending_extended" visibility="private" memberEnd="A_extending_extended-extending FeatureGroupType-extended">
      <generalization xmi:id="A_extending_extended-_generalization.0" general="A_general_classifier"/>
      <ownedEnd xmi:id="A_extending_extended-extending" name="extending" type="FeatureGroupType" association="A_extending_extended">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_extending_extended-extending-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_extending_extended-extending-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_featureGroupType_inverse" name="A_featureGroupType_inverse" visibility="private" memberEnd="A_featureGroupType_inverse-featureGroupType FeatureGroupType-inverse">
      <ownedEnd xmi:id="A_featureGroupType_inverse-featureGroupType" name="featureGroupType" type="FeatureGroupType" association="A_featureGroupType_inverse">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_featureGroupType_inverse-featureGroupType-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_featureGroupType_inverse-featureGroupType-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Enumeration" xmi:id="AccessType" name="AccessType">
      <ownedComment xmi:id="AccessType-_ownedComment.0">
        <body>The direction of component sharing.</body>
      </ownedComment>
      <ownedLiteral xmi:id="AccessType-provides" name="provides">
        <ownedComment xmi:id="AccessType-provides-_ownedComment.0">
          <ownedComment xmi:id="AccessType-provides-_ownedComment.0-_ownedComment.0">
            <body>===TBD===</body>
          </ownedComment>
          <body>Specifies that access to a shared component is provided.</body>
        </ownedComment>
      </ownedLiteral>
      <ownedLiteral xmi:id="AccessType-requires" name="requires">
        <ownedComment xmi:id="AccessType-requires-_ownedComment.0">
          <body>Specifies that access to an externally defined shared component is required.</body>
        </ownedComment>
      </ownedLiteral>
    </packagedElement>
    <packagedElement xmi:type="uml:Enumeration" xmi:id="DirectionType" name="DirectionType">
      <ownedComment xmi:id="DirectionType-_ownedComment.0">
        <body>The direction of data flow.</body>
      </ownedComment>
      <ownedLiteral xmi:id="DirectionType-in" name="in">
        <ownedComment xmi:id="DirectionType-in-_ownedComment.0">
          <body>Data can enter a component through an in feature.</body>
        </ownedComment>
      </ownedLiteral>
      <ownedLiteral xmi:id="DirectionType-out" name="out">
        <ownedComment xmi:id="DirectionType-out-_ownedComment.0">
          <body>Data can leave a component through an out feature.</body>
        </ownedComment>
      </ownedLiteral>
      <ownedLiteral xmi:id="DirectionType-inOut" name="inOut">
        <ownedComment xmi:id="DirectionType-inOut-_ownedComment.0">
          <body>Data can enter and leave a component through an in out feature.</body>
        </ownedComment>
      </ownedLiteral>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_componentType_ownedFeatureGroup" name="A_componentType_ownedFeatureGroup" visibility="private" memberEnd="A_componentType_ownedFeatureGroup-owner ComponentType-ownedFeatureGroup">
      <generalization xmi:id="A_componentType_ownedFeatureGroup-_generalization.0" general="A_componentType_ownedFeature"/>
      <ownedEnd xmi:id="A_componentType_ownedFeatureGroup-owner" name="owner" type="ComponentType" association="A_componentType_ownedFeatureGroup">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_componentType_ownedFeatureGroup-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_componentType_ownedFeatureGroup-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_feature_prototype" name="A_feature_prototype" visibility="private" memberEnd="A_feature_prototype-feature Feature-prototype">
      <generalization xmi:id="A_feature_prototype-_generalization.0" general="A_feature_featureClassifier"/>
      <ownedEnd xmi:id="A_feature_prototype-feature" name="feature" type="Feature" association="A_feature_prototype">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_feature_prototype-feature-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_feature_prototype-feature-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="GroupExtension" name="GroupExtension">
      <ownedComment xmi:id="GroupExtension-_ownedComment.0">
        <body>A group extension is the relationship between a feature group type and a feature group type that it extends.</body>
      </ownedComment>
      <generalization xmi:id="GroupExtension-_generalization.0" general="Generalization"/>
      <ownedAttribute xmi:id="GroupExtension-extended" name="extended" type="FeatureGroupType" subsettedProperty="Generalization-general" association="A_groupExtension_extended">
        <ownedComment xmi:id="GroupExtension-extended-_ownedComment.0">
          <body>References the extended feature group type.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="GroupExtension-extended-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="GroupExtension-extended-_lowerValue" value="1"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_featureGroupType_ownedExtension" name="A_featureGroupType_ownedExtension" visibility="private" memberEnd="A_featureGroupType_ownedExtension-owner FeatureGroupType-ownedExtension">
      <generalization xmi:id="A_featureGroupType_ownedExtension-_generalization.0" general="A_generalization_specific"/>
      <ownedEnd xmi:id="A_featureGroupType_ownedExtension-owner" name="owner" type="FeatureGroupType" association="A_featureGroupType_ownedExtension">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_featureGroupType_ownedExtension-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_featureGroupType_ownedExtension-owner-_lowerValue" value="1"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_groupExtension_extended" name="A_groupExtension_extended" visibility="private" memberEnd="A_groupExtension_extended-groupExtension GroupExtension-extended">
      <generalization xmi:id="A_groupExtension_extended-_generalization.0" general="A_general_generalization"/>
      <ownedEnd xmi:id="A_groupExtension_extended-groupExtension" name="groupExtension" type="GroupExtension" association="A_groupExtension_extended">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_groupExtension_extended-groupExtension-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_groupExtension_extended-groupExtension-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="AbstractFeature" name="AbstractFeature">
      <ownedComment xmi:id="AbstractFeature-_ownedComment.0">
        <body>A generic feature.</body>
      </ownedComment>
      <generalization xmi:id="AbstractFeature-_generalization.0" general="DirectedFeature"/>
      <ownedAttribute xmi:id="AbstractFeature-featurePrototype" name="featurePrototype" type="FeaturePrototype" association="A_abstractFeature_featurePrototype">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="AbstractFeature-featurePrototype-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="AbstractFeature-featurePrototype-_lowerValue"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_feature_featureClassifier" name="A_feature_featureClassifier" visibility="private" memberEnd="A_feature_featureClassifier-feature Feature-featureClassifier">
      <ownedEnd xmi:id="A_feature_featureClassifier-feature" name="feature" type="Feature" association="A_feature_featureClassifier">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_feature_featureClassifier-feature-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_feature_featureClassifier-feature-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Enumeration" xmi:id="AccessCategory" name="AccessCategory">
      <ownedComment xmi:id="AccessCategory-_ownedComment.0">
        <body>The category of the components being accessed.</body>
      </ownedComment>
      <ownedLiteral xmi:id="AccessCategory-bus" name="bus">
        <ownedComment xmi:id="AccessCategory-bus-_ownedComment.0">
          <body>Specifies access to a shared bus component.</body>
        </ownedComment>
      </ownedLiteral>
      <ownedLiteral xmi:id="AccessCategory-data" name="data">
        <ownedComment xmi:id="AccessCategory-data-_ownedComment.0">
          <ownedComment xmi:id="AccessCategory-data-_ownedComment.0-_ownedComment.0">
            <body>===TBD===</body>
          </ownedComment>
          <body>Specifies access to a shared data component.</body>
        </ownedComment>
      </ownedLiteral>
      <ownedLiteral xmi:id="AccessCategory-subprogram" name="subprogram">
        <ownedComment xmi:id="AccessCategory-subprogram-_ownedComment.0">
          <body>Specifies access to a shared subprogram component.</body>
        </ownedComment>
      </ownedLiteral>
      <ownedLiteral xmi:id="AccessCategory-subprogramGroup" name="subprogramGroup">
        <ownedComment xmi:id="AccessCategory-subprogramGroup-_ownedComment.0">
          <body>Specifies access to a shared subprogram group component.</body>
        </ownedComment>
      </ownedLiteral>
    </packagedElement>
    <packagedElement xmi:type="uml:Enumeration" xmi:id="PortCategory" name="PortCategory">
      <ownedComment xmi:id="PortCategory-_ownedComment.0">
        <body>The category of an AADL port.</body>
      </ownedComment>
      <ownedLiteral xmi:id="PortCategory-data" name="data">
        <ownedComment xmi:id="PortCategory-data-_ownedComment.0">
          <body>A data port.</body>
        </ownedComment>
      </ownedLiteral>
      <ownedLiteral xmi:id="PortCategory-event" name="event">
        <ownedComment xmi:id="PortCategory-event-_ownedComment.0">
          <body>An event port.</body>
        </ownedComment>
      </ownedLiteral>
      <ownedLiteral xmi:id="PortCategory-eventData" name="eventData">
        <ownedComment xmi:id="PortCategory-eventData-_ownedComment.0">
          <ownedComment xmi:id="PortCategory-eventData-_ownedComment.0-_ownedComment.0">
            <body>===TBD===</body>
          </ownedComment>
          <body>An event data port.</body>
        </ownedComment>
      </ownedLiteral>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_feature_refined" name="A_feature_refined" visibility="private" memberEnd="A_feature_refined-feature Feature-refined">
      <generalization xmi:id="A_feature_refined-_generalization.0" general="A_refiningElement_refinedElement"/>
      <ownedEnd xmi:id="A_feature_refined-feature" name="feature" type="Feature" association="A_feature_refined">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_feature_refined-feature-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_feature_refined-feature-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="DirectedFeature" name="DirectedFeature" isAbstract="true">
      <generalization xmi:id="DirectedFeature-_generalization.0" general="Feature"/>
      <ownedAttribute xmi:id="DirectedFeature-direction" name="direction" type="DirectionType">
        <ownedComment xmi:id="DirectedFeature-direction-_ownedComment.0">
          <body>Specifies the direction of the port.</body>
        </ownedComment>
        <defaultValue xmi:type="uml:LiteralString" xmi:id="DirectedFeature-direction-inOut" name="inOut" type="DirectionType" value="inOut"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="FeatureType" name="FeatureType" isAbstract="true"/>
    <packagedElement xmi:type="uml:Association" xmi:id="A_featureGroup_featureGroupType" name="A_featureGroup_featureGroupType" visibility="private" memberEnd="A_featureGroup_featureGroupType-featureGroup FeatureGroup-featureGroupType">
      <generalization xmi:id="A_featureGroup_featureGroupType-_generalization.0" general="A_featureGroup_type"/>
      <ownedEnd xmi:id="A_featureGroup_featureGroupType-featureGroup" name="featureGroup" type="FeatureGroup" association="A_featureGroup_featureGroupType">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_featureGroup_featureGroupType-featureGroup-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_featureGroup_featureGroupType-featureGroup-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_featureGroup_featureGroupPrototype" name="A_featureGroup_featureGroupPrototype" visibility="private" memberEnd="A_featureGroup_featureGroupPrototype-featureGroup FeatureGroup-featureGroupPrototype">
      <generalization xmi:id="A_featureGroup_featureGroupPrototype-_generalization.0" general="A_featureGroup_type"/>
      <ownedEnd xmi:id="A_featureGroup_featureGroupPrototype-featureGroup" name="featureGroup" type="FeatureGroup" association="A_featureGroup_featureGroupPrototype">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_featureGroup_featureGroupPrototype-featureGroup-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_featureGroup_featureGroupPrototype-featureGroup-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="FeatureClassifier" name="FeatureClassifier" isAbstract="true"/>
    <packagedElement xmi:type="uml:Association" xmi:id="A_feature_componentClassifier" name="A_feature_componentClassifier" visibility="private" memberEnd="A_feature_componentClassifier-feature Feature-classifier">
      <generalization xmi:id="A_feature_componentClassifier-_generalization.0" general="A_feature_featureClassifier"/>
      <ownedEnd xmi:id="A_feature_componentClassifier-feature" name="feature" type="Feature" association="A_feature_componentClassifier">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_feature_componentClassifier-feature-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_feature_componentClassifier-feature-_lowerValue" value="1"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="FlowSpecification" name="FlowSpecification">
      <ownedComment xmi:id="FlowSpecification-_ownedComment.0">
        <body>The specification of a flow of a component.</body>
      </ownedComment>
      <generalization xmi:id="FlowSpecification-_generalization.0" general="FlowFeature"/>
      <generalization xmi:id="FlowSpecification-_generalization.1" general="ModalPath"/>
      <generalization xmi:id="FlowSpecification-_generalization.2" general="FlowElement"/>
      <ownedAttribute xmi:id="FlowSpecification-refined" name="refined" type="FlowSpecification" subsettedProperty="RefinableElement-refinedElement" association="A_flowSpecification_refined">
        <ownedComment xmi:id="FlowSpecification-refined-_ownedComment.0">
          <body>References a flow specifacion that is refined by this flow specification.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="FlowSpecification-refined-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="FlowSpecification-refined-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="FlowSpecification-kind" name="kind" type="FlowKind">
        <ownedComment xmi:id="FlowSpecification-kind-_ownedComment.0">
          <body>Specifies if this flow specification is a source, path, or sink.</body>
        </ownedComment>
      </ownedAttribute>
      <ownedAttribute xmi:id="FlowSpecification-outEnd" name="outEnd" type="FlowEnd" aggregation="composite" association="A_flowSpecification_outEnd">
        <ownedComment xmi:id="FlowSpecification-outEnd-_ownedComment.0">
          <body>The feature at which the flow enters the component. Empty for a flow source.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="FlowSpecification-outEnd-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="FlowSpecification-outEnd-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="FlowSpecification-InEnd" name="InEnd" type="FlowEnd" aggregation="composite" association="A_flowSpecification_inEnd">
        <ownedComment xmi:id="FlowSpecification-InEnd-_ownedComment.0">
          <body>The feature at which the flow exits the component. Empty for a flow sink.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="FlowSpecification-InEnd-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="FlowSpecification-InEnd-_lowerValue"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="FlowImplementation" name="FlowImplementation">
      <ownedComment xmi:id="FlowImplementation-_ownedComment.0">
        <body>The implementation of a flow specification in terms of flow elements.</body>
      </ownedComment>
      <generalization xmi:id="FlowImplementation-_generalization.0" general="ModalPath"/>
      <generalization xmi:id="FlowImplementation-_generalization.1" general="ClassifierFeature"/>
      <generalization xmi:id="FlowImplementation-_generalization.2" general="Flow"/>
      <ownedAttribute xmi:id="FlowImplementation-kind" name="kind" type="FlowKind">
        <ownedComment xmi:id="FlowImplementation-kind-_ownedComment.0">
          <body>Specifies if this flow specification is a source, path, or sink. Derived from the corresponding flow specification.</body>
        </ownedComment>
      </ownedAttribute>
      <ownedAttribute xmi:id="FlowImplementation-specification" name="specification" type="FlowSpecification" association="A_flowImplementation_specification">
        <ownedComment xmi:id="FlowImplementation-specification-_ownedComment.0">
          <body>References the flow specificaton that is implemented.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="FlowImplementation-specification-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="FlowImplementation-specification-_lowerValue" value="1"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="FlowImplementation-ownedFlowSegment" name="ownedFlowSegment" type="FlowSegment" isOrdered="true" aggregation="composite" association="A_flowImplementation_ownedFlowSegment">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="FlowImplementation-ownedFlowSegment-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="FlowImplementation-ownedFlowSegment-_lowerValue"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="FlowElement" name="FlowElement" isAbstract="true">
      <ownedComment xmi:id="FlowElement-_ownedComment.0">
        <body>An element that may be used in a flow implementation or an end to end flow.</body>
      </ownedComment>
      <generalization xmi:id="FlowElement-_generalization.0" general="EndToEndFlowElement"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_flowImplementation_specification" name="A_flowImplementation_specification" visibility="private" memberEnd="A_flowImplementation_specification-implementation FlowImplementation-specification">
      <ownedEnd xmi:id="A_flowImplementation_specification-implementation" name="implementation" type="FlowImplementation" association="A_flowImplementation_specification">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_flowImplementation_specification-implementation-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_flowImplementation_specification-implementation-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_flowSegment_flowElement" name="A_flowSegment_flowElement" visibility="private" memberEnd="A_flowSegment_flowElement-implementation FlowSegment-flowElement">
      <ownedEnd xmi:id="A_flowSegment_flowElement-implementation" name="implementation" type="FlowSegment" association="A_flowSegment_flowElement">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_flowSegment_flowElement-implementation-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_flowSegment_flowElement-implementation-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="EndToEndFlow" name="EndToEndFlow">
      <ownedComment xmi:id="EndToEndFlow-_ownedComment.0">
        <body>The specification of an end to end flow in a component.</body>
      </ownedComment>
      <generalization xmi:id="EndToEndFlow-_generalization.0" general="FlowFeature"/>
      <generalization xmi:id="EndToEndFlow-_generalization.1" general="ModalPath"/>
      <generalization xmi:id="EndToEndFlow-_generalization.2" general="EndToEndFlowElement"/>
      <ownedAttribute xmi:id="EndToEndFlow-refined" name="refined" type="EndToEndFlow" subsettedProperty="RefinableElement-refinedElement" association="A_endToEndFlow_refined">
        <ownedComment xmi:id="EndToEndFlow-refined-_ownedComment.0">
          <body>References an end to end flow that is refined by this end to end flow.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="EndToEndFlow-refined-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="EndToEndFlow-refined-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="EndToEndFlow-ownedEndToEndFlowSegment" name="ownedEndToEndFlowSegment" type="EndToEndFlowSegment" aggregation="composite" association="A_endToEndFlow_ownedEndToEndFlowSegment">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="EndToEndFlow-ownedEndToEndFlowSegment-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="EndToEndFlow-ownedEndToEndFlowSegment-_lowerValue" value="1"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_flowSpecification_outEnd" name="A_flowSpecification_outEnd" visibility="private" memberEnd="A_flowSpecification_outEnd-owner FlowSpecification-outEnd">
      <ownedEnd xmi:id="A_flowSpecification_outEnd-owner" name="owner" type="FlowSpecification" association="A_flowSpecification_outEnd">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_flowSpecification_outEnd-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_flowSpecification_outEnd-owner-_lowerValue" value="1"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_flowSpecification_inEnd" name="A_flowSpecification_inEnd" visibility="private" memberEnd="A_flowSpecification_inEnd-owner FlowSpecification-InEnd">
      <ownedEnd xmi:id="A_flowSpecification_inEnd-owner" name="owner" type="FlowSpecification" association="A_flowSpecification_inEnd">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_flowSpecification_inEnd-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_flowSpecification_inEnd-owner-_lowerValue" value="1"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="EndToEndFlowElement" name="EndToEndFlowElement" isAbstract="true">
      <ownedComment xmi:id="EndToEndFlowElement-_ownedComment.0">
        <body>An element that may occur in an end to end flow.</body>
      </ownedComment>
      <generalization xmi:id="EndToEndFlowElement-_generalization.0" general="NamedElement"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_endToEndFlow_flowElement" name="A_endToEndFlow_flowElement" visibility="private" memberEnd="A_endToEndFlow_flowElement-flow EndToEndFlowSegment-flowElement">
      <ownedEnd xmi:id="A_endToEndFlow_flowElement-flow" name="flow" type="EndToEndFlowSegment" isUnique="false" association="A_endToEndFlow_flowElement">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_endToEndFlow_flowElement-flow-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_endToEndFlow_flowElement-flow-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_componentImplementation_ownedEndToEndFlow" name="A_componentImplementation_ownedEndToEndFlow" visibility="private" memberEnd="A_componentImplementation_ownedEndToEndFlow-owner ComponentImplementation-ownedEndToEndFlow">
      <generalization xmi:id="A_componentImplementation_ownedEndToEndFlow-_generalization.0" general="A_classifierFeature_featuringClassifier"/>
      <generalization xmi:id="A_componentImplementation_ownedEndToEndFlow-_generalization.1" general="A_ownedMember_namespace"/>
      <ownedEnd xmi:id="A_componentImplementation_ownedEndToEndFlow-owner" name="owner" type="ComponentImplementation" association="A_componentImplementation_ownedEndToEndFlow">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_componentImplementation_ownedEndToEndFlow-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_componentImplementation_ownedEndToEndFlow-owner-_lowerValue" value="1"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Enumeration" xmi:id="FlowKind" name="FlowKind">
      <ownedComment xmi:id="FlowKind-_ownedComment.0">
        <body>A list of labels to specify if a flow is a source, path, or sink.</body>
      </ownedComment>
      <ownedLiteral xmi:id="FlowKind-source" name="source"/>
      <ownedLiteral xmi:id="FlowKind-path" name="path"/>
      <ownedLiteral xmi:id="FlowKind-sink" name="sink"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_endToEndFlow_refined" name="A_endToEndFlow_refined" visibility="private" memberEnd="A_endToEndFlow_refined-flow EndToEndFlow-refined">
      <generalization xmi:id="A_endToEndFlow_refined-_generalization.0" general="A_refiningElement_refinedElement"/>
      <ownedEnd xmi:id="A_endToEndFlow_refined-flow" name="flow" type="EndToEndFlow" association="A_endToEndFlow_refined">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_endToEndFlow_refined-flow-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_endToEndFlow_refined-flow-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_flowSpecification_refined" name="A_flowSpecification_refined" visibility="private" memberEnd="A_flowSpecification_refined-flow FlowSpecification-refined">
      <generalization xmi:id="A_flowSpecification_refined-_generalization.0" general="A_refiningElement_refinedElement"/>
      <ownedEnd xmi:id="A_flowSpecification_refined-flow" name="flow" type="FlowSpecification" association="A_flowSpecification_refined">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_flowSpecification_refined-flow-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_flowSpecification_refined-flow-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="FlowFeature" name="FlowFeature" isAbstract="true">
      <generalization xmi:id="FlowFeature-_generalization.0" general="StructuralFeature"/>
      <generalization xmi:id="FlowFeature-_generalization.1" general="Flow"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="FlowEnd" name="FlowEnd">
      <generalization xmi:id="FlowEnd-_generalization.0" general="Element"/>
      <ownedAttribute xmi:id="FlowEnd-context" name="context" type="Context" association="A_flowEnd_context">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="FlowEnd-context-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="FlowEnd-context-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="FlowEnd-feature" name="feature" type="Feature" association="A_flowEnd_feature">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="FlowEnd-feature-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="FlowEnd-feature-_lowerValue" value="1"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_flowEnd_feature" name="A_flowEnd_feature" visibility="private" memberEnd="A_flowEnd_feature-flowEnd FlowEnd-feature">
      <ownedEnd xmi:id="A_flowEnd_feature-flowEnd" name="flowEnd" type="FlowEnd" association="A_flowEnd_feature">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_flowEnd_feature-flowEnd-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_flowEnd_feature-flowEnd-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_flowEnd_context" name="A_flowEnd_context" visibility="private" memberEnd="A_flowEnd_context-flowEnd FlowEnd-context">
      <ownedEnd xmi:id="A_flowEnd_context-flowEnd" name="flowEnd" type="FlowEnd" association="A_flowEnd_context">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_flowEnd_context-flowEnd-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_flowEnd_context-flowEnd-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="FlowSegment" name="FlowSegment">
      <generalization xmi:id="FlowSegment-_generalization.0" general="Element"/>
      <ownedAttribute xmi:id="FlowSegment-flowElement" name="flowElement" type="FlowElement" isUnique="false" association="A_flowSegment_flowElement">
        <ownedComment xmi:id="FlowSegment-flowElement-_ownedComment.0">
          <body>Specifies the sequence of flow elements in this flow implementation.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="FlowSegment-flowElement-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="FlowSegment-flowElement-_lowerValue" value="1"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="FlowSegment-context" name="context" type="Context" association="A_flowSegment_context">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="FlowSegment-context-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="FlowSegment-context-_lowerValue"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_flowImplementation_ownedFlowSegment" name="A_flowImplementation_ownedFlowSegment" visibility="private" memberEnd="A_flowImplementation_ownedFlowSegment-owner FlowImplementation-ownedFlowSegment">
      <ownedEnd xmi:id="A_flowImplementation_ownedFlowSegment-owner" name="owner" type="FlowImplementation" association="A_flowImplementation_ownedFlowSegment">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_flowImplementation_ownedFlowSegment-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_flowImplementation_ownedFlowSegment-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_flowSegment_context" name="A_flowSegment_context" visibility="private" memberEnd="A_flowSegment_context-flowSegment FlowSegment-context">
      <ownedEnd xmi:id="A_flowSegment_context-flowSegment" name="flowSegment" type="FlowSegment" association="A_flowSegment_context">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_flowSegment_context-flowSegment-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_flowSegment_context-flowSegment-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="EndToEndFlowSegment" name="EndToEndFlowSegment">
      <generalization xmi:id="EndToEndFlowSegment-_generalization.0" general="Element"/>
      <ownedAttribute xmi:id="EndToEndFlowSegment-flowElement" name="flowElement" type="EndToEndFlowElement" isOrdered="true" isUnique="false" association="A_endToEndFlow_flowElement">
        <ownedComment xmi:id="EndToEndFlowSegment-flowElement-_ownedComment.0">
          <body>The sequence of elements in this end to end flow.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="EndToEndFlowSegment-flowElement-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="EndToEndFlowSegment-flowElement-_lowerValue" value="1"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="EndToEndFlowSegment-context" name="context" type="Context" association="A_endToEndFlowSegment_context">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="EndToEndFlowSegment-context-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="EndToEndFlowSegment-context-_lowerValue"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_endToEndFlow_ownedEndToEndFlowSegment" name="A_endToEndFlow_ownedEndToEndFlowSegment" visibility="private" memberEnd="A_endToEndFlow_ownedEndToEndFlowSegment-owner EndToEndFlow-ownedEndToEndFlowSegment">
      <ownedEnd xmi:id="A_endToEndFlow_ownedEndToEndFlowSegment-owner" name="owner" type="EndToEndFlow" association="A_endToEndFlow_ownedEndToEndFlowSegment">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_endToEndFlow_ownedEndToEndFlowSegment-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_endToEndFlow_ownedEndToEndFlowSegment-owner-_lowerValue" value="1"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_endToEndFlowSegment_context" name="A_endToEndFlowSegment_context" visibility="private" memberEnd="A_endToEndFlowSegment_context-endToEndFlowSegment EndToEndFlowSegment-context">
      <ownedEnd xmi:id="A_endToEndFlowSegment_context-endToEndFlowSegment" name="endToEndFlowSegment" type="EndToEndFlowSegment" association="A_endToEndFlowSegment_context">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_endToEndFlowSegment_context-endToEndFlowSegment-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_endToEndFlowSegment_context-endToEndFlowSegment-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="Flow" name="Flow" isAbstract="true">
      <generalization xmi:id="Flow-_generalization.0" general="NamedElement"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="Mode" name="Mode">
      <ownedComment xmi:id="Mode-_ownedComment.0">
        <body>A mode of a component.</body>
      </ownedComment>
      <generalization xmi:id="Mode-_generalization.0" general="ModeFeature"/>
      <ownedAttribute xmi:id="Mode-initial" name="initial" type="Boolean">
        <ownedComment xmi:id="Mode-initial-_ownedComment.0">
          <body>Specifies the initial mode of a component.</body>
        </ownedComment>
        <defaultValue xmi:type="uml:LiteralString" xmi:id="Mode-initial-_defaultValue" value="false"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Mode-derived" name="derived" visibility="public" type="Boolean" isReadOnly="true" isDerived="true">
        <ownedComment xmi:id="Mode-derived-_ownedComment.0">
          <body>Specifies that this mode is derived from the mode of the parent component.</body>
        </ownedComment>
        <defaultValue xmi:type="uml:LiteralString" xmi:id="Mode-derived-_defaultValue" value="false"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="ModeTransition" name="ModeTransition">
      <ownedComment xmi:id="ModeTransition-_ownedComment.0">
        <body>A transition from one mode of a component to another mode.</body>
      </ownedComment>
      <generalization xmi:id="ModeTransition-_generalization.0" general="ModeFeature"/>
      <ownedAttribute xmi:id="ModeTransition-source" name="source" type="Mode" association="A_modeTransition_source">
        <ownedComment xmi:id="ModeTransition-source-_ownedComment.0">
          <body>The component's mode before the transition.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="ModeTransition-source-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="ModeTransition-source-_lowerValue" value="1"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="ModeTransition-destination" name="destination" type="Mode" association="A_modeTransition_destination">
        <ownedComment xmi:id="ModeTransition-destination-_ownedComment.0">
          <body>The component's mode after the transition.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="ModeTransition-destination-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="ModeTransition-destination-_lowerValue" value="1"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="ModeTransition-ownedTrigger" name="ownedTrigger" type="ModeTransitionTrigger" aggregation="composite" association="A_modeTransition_ownedTrigger">
        <ownedComment xmi:id="ModeTransition-ownedTrigger-_ownedComment.0">
          <body>===TBD===</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="ModeTransition-ownedTrigger-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="ModeTransition-ownedTrigger-_lowerValue" value="1"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_modeTransition_source" name="A_modeTransition_source" visibility="private" memberEnd="A_modeTransition_source-transition ModeTransition-source">
      <ownedEnd xmi:id="A_modeTransition_source-transition" name="transition" type="ModeTransition" association="A_modeTransition_source">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_modeTransition_source-transition-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_modeTransition_source-transition-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_modeTransition_destination" name="A_modeTransition_destination" visibility="private" memberEnd="A_modeTransition_destination-transition ModeTransition-destination">
      <ownedEnd xmi:id="A_modeTransition_destination-transition" name="transition" type="ModeTransition" association="A_modeTransition_destination">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_modeTransition_destination-transition-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_modeTransition_destination-transition-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="ModeTransitionTrigger" name="ModeTransitionTrigger" isAbstract="true">
      <ownedComment xmi:id="ModeTransitionTrigger-_ownedComment.0">
        <body>Mode transition triggers can cause a mode transition.</body>
      </ownedComment>
      <generalization xmi:id="ModeTransitionTrigger-_generalization.0" general="Element"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_modalElement_inMode" name="A_modalElement_inMode" visibility="private" memberEnd="A_modalElement_inMode-modalElement ModalElement-inMode">
      <ownedEnd xmi:id="A_modalElement_inMode-modalElement" name="modalElement" type="ModalElement" association="A_modalElement_inMode">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_modalElement_inMode-modalElement-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_modalElement_inMode-modalElement-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="ModeFeature" name="ModeFeature" isAbstract="true">
      <ownedComment xmi:id="ModeFeature-_ownedComment.0">
        <body>Features of a component classifer related to modal behavios of the component.</body>
      </ownedComment>
      <generalization xmi:id="ModeFeature-_generalization.0" general="ClassifierFeature"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="ModalPath" name="ModalPath" isAbstract="true">
      <ownedComment xmi:id="ModalPath-_ownedComment.0">
        <body>===TBD===</body>
      </ownedComment>
      <generalization xmi:id="ModalPath-_generalization.0" general="ModalElement"/>
      <ownedAttribute xmi:id="ModalPath-inModeOrTransition" name="inModeOrTransition" type="ModeFeature" association="A_modalPath_inModeOrTransition">
        <ownedComment xmi:id="ModalPath-inModeOrTransition-_ownedComment.0"/>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="ModalPath-inModeOrTransition-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="ModalPath-inModeOrTransition-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="ModalPath-inMode" name="inMode" type="Mode" isDerived="true" redefinedProperty="ModalElement-inMode" subsettedProperty="ModalPath-inModeOrTransition" association="A_modalPath_inMode">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="ModalPath-inMode-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="ModalPath-inMode-_lowerValue"/>
      </ownedAttribute>
      <ownedOperation xmi:id="ModalPath-getInModes" name="getInModes">
        <ownedParameter xmi:id="ModalPath-getInModes-_ownedParameter.0" name="" type="Mode" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="ModalPath-getInModes-_ownedParameter.0-_upperValue" value="*"/>
          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="ModalPath-getInModes-_ownedParameter.0-_lowerValue"/>
        </ownedParameter>
      </ownedOperation>
      <ownedOperation xmi:id="ModalPath-getInModeTransitions" name="getInModeTransitions">
        <ownedParameter xmi:id="ModalPath-getInModeTransitions-_ownedParameter.0" name="" type="ModeTransition" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="ModalPath-getInModeTransitions-_ownedParameter.0-_upperValue" value="*"/>
          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="ModalPath-getInModeTransitions-_ownedParameter.0-_lowerValue"/>
        </ownedParameter>
      </ownedOperation>
      <ownedOperation xmi:id="ModalPath-getAllInModeTransitions" name="getAllInModeTransitions">
        <ownedParameter xmi:id="ModalPath-getAllInModeTransitions-_ownedParameter.0" name="" type="ModeTransition" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="ModalPath-getAllInModeTransitions-_ownedParameter.0-_upperValue" value="*"/>
          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="ModalPath-getAllInModeTransitions-_ownedParameter.0-_lowerValue"/>
        </ownedParameter>
      </ownedOperation>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_modalPath_inModeOrTransition" name="A_modalPath_inModeOrTransition" visibility="private" memberEnd="A_modalPath_inModeOrTransition-modalPath ModalPath-inModeOrTransition">
      <ownedEnd xmi:id="A_modalPath_inModeOrTransition-modalPath" name="modalPath" type="ModalPath" association="A_modalPath_inModeOrTransition">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_modalPath_inModeOrTransition-modalPath-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_modalPath_inModeOrTransition-modalPath-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="TriggerPort" name="TriggerPort">
      <ownedComment xmi:id="TriggerPort-_ownedComment.0">
        <body>An instance of a port feature that may trigger a mode transition.</body>
      </ownedComment>
      <generalization xmi:id="TriggerPort-_generalization.0" general="ModeTransitionTrigger"/>
      <ownedAttribute xmi:id="TriggerPort-context" name="context" type="Context" association="A_triggerPort_portContext">
        <ownedComment xmi:id="TriggerPort-context-_ownedComment.0">
          <body>Specifies which instance of the port feature is the trigger.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="TriggerPort-context-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="TriggerPort-context-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="TriggerPort-port" name="port" type="Port" association="A_triggerPort_port">
        <ownedComment xmi:id="TriggerPort-port-_ownedComment.0">
          <body>Specifies the port feature of this trigger.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="TriggerPort-port-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="TriggerPort-port-_lowerValue" value="1"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_triggerPort_portContext" name="A_triggerPort_portContext" visibility="private" memberEnd="A_triggerPort_portContext-triggerPort TriggerPort-context">
      <ownedEnd xmi:id="A_triggerPort_portContext-triggerPort" name="triggerPort" type="TriggerPort" association="A_triggerPort_portContext">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_triggerPort_portContext-triggerPort-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_triggerPort_portContext-triggerPort-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_triggerPort_port" name="A_triggerPort_port" visibility="private" memberEnd="A_triggerPort_port-triggerPort TriggerPort-port">
      <ownedEnd xmi:id="A_triggerPort_port-triggerPort" name="triggerPort" type="TriggerPort" association="A_triggerPort_port">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_triggerPort_port-triggerPort-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_triggerPort_port-triggerPort-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_modeTransition_ownedTrigger" name="A_modeTransition_ownedTrigger" visibility="private" memberEnd="A_modeTransition_ownedTrigger-owner ModeTransition-ownedTrigger">
      <ownedEnd xmi:id="A_modeTransition_ownedTrigger-owner" name="owner" type="ModeTransition" association="A_modeTransition_ownedTrigger">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_modeTransition_ownedTrigger-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_modeTransition_ownedTrigger-owner-_lowerValue" value="1"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="ModeBinding" name="ModeBinding">
      <ownedComment xmi:id="ModeBinding-_ownedComment.0">
        <body>The mapping of a component's modes to a derived mode of an owned modal element. Mode mode bindings apply to the element that owns them.</body>
      </ownedComment>
      <generalization xmi:id="ModeBinding-_generalization.0" general="Element"/>
      <ownedAttribute xmi:id="ModeBinding-parentMode" name="parentMode" type="Mode" association="A_modeBinding_parentMode">
        <ownedComment xmi:id="ModeBinding-parentMode-_ownedComment.0">
          <body>Specifies one or more modes of the component that result in the same derived mode.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="ModeBinding-parentMode-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="ModeBinding-parentMode-_lowerValue" value="1"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="ModeBinding-derivedMode" name="derivedMode" type="Mode" association="A_modeBinding_derivedMode">
        <ownedComment xmi:id="ModeBinding-derivedMode-_ownedComment.0">
          <body>Specifies the derived mode of the modal element that owns this mode binding.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="ModeBinding-derivedMode-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="ModeBinding-derivedMode-_lowerValue"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_subcomponent_ownedModeBinding" name="A_subcomponent_ownedModeBinding" visibility="private" memberEnd="A_subcomponent_ownedModeBinding-owner Subcomponent-ownedModeBinding">
      <ownedEnd xmi:id="A_subcomponent_ownedModeBinding-owner" name="owner" type="Subcomponent" association="A_subcomponent_ownedModeBinding">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_subcomponent_ownedModeBinding-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_subcomponent_ownedModeBinding-owner-_lowerValue" value="1"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_modeBinding_parentMode" name="A_modeBinding_parentMode" visibility="private" memberEnd="A_modeBinding_parentMode-modeBinding ModeBinding-parentMode">
      <ownedEnd xmi:id="A_modeBinding_parentMode-modeBinding" name="modeBinding" type="ModeBinding" association="A_modeBinding_parentMode">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_modeBinding_parentMode-modeBinding-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_modeBinding_parentMode-modeBinding-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_modeBinding_derivedMode" name="A_modeBinding_derivedMode" visibility="private" memberEnd="A_modeBinding_derivedMode-modeBinding ModeBinding-derivedMode">
      <ownedEnd xmi:id="A_modeBinding_derivedMode-modeBinding" name="modeBinding" type="ModeBinding" association="A_modeBinding_derivedMode">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_modeBinding_derivedMode-modeBinding-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_modeBinding_derivedMode-modeBinding-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_modalPath_inMode" name="A_modalPath_inMode" visibility="private" memberEnd="A_modalPath_inMode-modalPath ModalPath-inMode">
      <generalization xmi:id="A_modalPath_inMode-_generalization.0" general="A_modalElement_inMode"/>
      <generalization xmi:id="A_modalPath_inMode-_generalization.1" general="A_modalPath_inModeOrTransition"/>
      <ownedEnd xmi:id="A_modalPath_inMode-modalPath" name="modalPath" type="ModalPath" association="A_modalPath_inMode">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_modalPath_inMode-modalPath-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_modalPath_inMode-modalPath-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_subcomponent_inMode" name="A_subcomponent_inMode" visibility="private" memberEnd="A_subcomponent_inMode-subcomponent Subcomponent-inMode">
      <generalization xmi:id="A_subcomponent_inMode-_generalization.0" general="A_modalElement_inMode"/>
      <ownedEnd xmi:id="A_subcomponent_inMode-subcomponent" name="subcomponent" type="Subcomponent" association="A_subcomponent_inMode">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_subcomponent_inMode-subcomponent-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_subcomponent_inMode-subcomponent-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="PublicPackageSection" name="PublicPackageSection">
      <ownedComment xmi:id="PublicPackageSection-_ownedComment.0">
        <body>A public package section. Its name is the same as the name of the package that owns this section.</body>
      </ownedComment>
      <generalization xmi:id="PublicPackageSection-_generalization.0" general="PackageSection"/>
      <ownedAttribute xmi:id="PublicPackageSection-privateSection" name="privateSection" type="PrivatePackageSection" isReadOnly="true" isDerived="true" association="A_public_private">
        <ownedComment xmi:id="PublicPackageSection-privateSection-_ownedComment.0">
          <body>References the private section that is in the same package as this public section.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="PublicPackageSection-privateSection-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="PublicPackageSection-privateSection-_lowerValue"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="PackageRename" name="PackageRename">
      <ownedComment xmi:id="PackageRename-_ownedComment.0">
        <body>The specification of a local name for a package.</body>
      </ownedComment>
      <generalization xmi:id="PackageRename-_generalization.0" general="NamedElement"/>
      <ownedAttribute xmi:id="PackageRename-renamedPackage" name="renamedPackage" type="Package" association="A_packageRename_renamedPackage">
        <ownedComment xmi:id="PackageRename-renamedPackage-_ownedComment.0">
          <body>References the renamed package.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="PackageRename-renamedPackage-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="PackageRename-renamedPackage-_lowerValue" value="1"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="PackageRename-renameAll" name="renameAll" type="Boolean">
        <ownedComment xmi:id="PackageRename-renameAll-_ownedComment.0">
          <body>Specifies that the local name is empty.</body>
        </ownedComment>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="ComponentTypeRename" name="ComponentTypeRename">
      <ownedComment xmi:id="ComponentTypeRename-_ownedComment.0">
        <body>The specification of local name for a component type contained in another package.</body>
      </ownedComment>
      <generalization xmi:id="ComponentTypeRename-_generalization.0" general="NamedElement"/>
      <ownedAttribute xmi:id="ComponentTypeRename-category" name="category" type="ComponentCategory">
        <ownedComment xmi:id="ComponentTypeRename-category-_ownedComment.0">
          <body>Specifies the category of the renamed component type.</body>
        </ownedComment>
      </ownedAttribute>
      <ownedAttribute xmi:id="ComponentTypeRename-renamedComponentType" name="renamedComponentType" type="ComponentType" association="A_classifierRename_renamedComponentType">
        <ownedComment xmi:id="ComponentTypeRename-renamedComponentType-_ownedComment.0">
          <body>References the renamed component type.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="ComponentTypeRename-renamedComponentType-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="ComponentTypeRename-renamedComponentType-_lowerValue" value="1"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_packageSection_packageRename" name="A_packageSection_packageRename" visibility="private" memberEnd="A_packageSection_packageRename-owner PackageSection-ownedPackageRename">
      <generalization xmi:id="A_packageSection_packageRename-_generalization.0" general="A_ownedMember_namespace"/>
      <ownedEnd xmi:id="A_packageSection_packageRename-owner" name="owner" type="PackageSection" association="A_packageSection_packageRename">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_packageSection_packageRename-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_packageSection_packageRename-owner-_lowerValue" value="1"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_packageSection_componentTypeRename" name="A_packageSection_componentTypeRename" visibility="private" memberEnd="A_packageSection_componentTypeRename-owner PackageSection-ownedComponentTypeRename">
      <generalization xmi:id="A_packageSection_componentTypeRename-_generalization.0" general="A_ownedMember_namespace"/>
      <ownedEnd xmi:id="A_packageSection_componentTypeRename-owner" name="owner" type="PackageSection" association="A_packageSection_componentTypeRename">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_packageSection_componentTypeRename-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_packageSection_componentTypeRename-owner-_lowerValue" value="1"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_packageRename_renamedPackage" name="A_packageRename_renamedPackage" visibility="private" memberEnd="A_packageRename_renamedPackage-packageRename PackageRename-renamedPackage">
      <ownedEnd xmi:id="A_packageRename_renamedPackage-packageRename" name="packageRename" type="PackageRename" association="A_packageRename_renamedPackage">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_packageRename_renamedPackage-packageRename-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_packageRename_renamedPackage-packageRename-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_classifierRename_renamedComponentType" name="A_classifierRename_renamedComponentType" visibility="private" memberEnd="A_classifierRename_renamedComponentType-componentTypeRename ComponentTypeRename-renamedComponentType">
      <ownedEnd xmi:id="A_classifierRename_renamedComponentType-componentTypeRename" name="componentTypeRename" type="ComponentTypeRename" association="A_classifierRename_renamedComponentType">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_classifierRename_renamedComponentType-componentTypeRename-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_classifierRename_renamedComponentType-componentTypeRename-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_packageSection_ownedClassifier" name="A_packageSection_ownedClassifier" visibility="private" memberEnd="A_packageSection_ownedClassifier-owner PackageSection-ownedClassifier">
      <generalization xmi:id="A_packageSection_ownedClassifier-_generalization.0" general="A_ownedMember_namespace"/>
      <ownedEnd xmi:id="A_packageSection_ownedClassifier-owner" name="owner" type="PackageSection" association="A_packageSection_ownedClassifier">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_packageSection_ownedClassifier-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_packageSection_ownedClassifier-owner-_lowerValue" value="1"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="Package" name="Package">
      <ownedComment xmi:id="Package-_ownedComment.0">
        <body>An AADL package. </body>
      </ownedComment>
      <generalization xmi:id="Package-_generalization.0" general="ModelUnit"/>
      <ownedAttribute xmi:id="Package-ownedPublicSection" name="ownedPublicSection" type="PublicPackageSection" aggregation="composite" subsettedProperty="Package-publicSection Element-ownedElement" association="A_package_ownedPublicSection">
        <ownedComment xmi:id="Package-ownedPublicSection-_ownedComment.0">
          <body>Specifies a private section owned by this package.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="Package-ownedPublicSection-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="Package-ownedPublicSection-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Package-ownedPrivateSection" name="ownedPrivateSection" type="PrivatePackageSection" aggregation="composite" subsettedProperty="Package-privateSection Element-ownedElement" association="A_package_ownedPrivateSection">
        <ownedComment xmi:id="Package-ownedPrivateSection-_ownedComment.0">
          <body>Specifies a public section owned by this package.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="Package-ownedPrivateSection-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="Package-ownedPrivateSection-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Package-publicSection" name="publicSection" type="PublicPackageSection" association="A_package_publicSection">
        <ownedComment xmi:id="Package-publicSection-_ownedComment.0">
          <body>References the public section of this package. If this package owns its public section, the reference is to the owned public section.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="Package-publicSection-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="Package-publicSection-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Package-privateSection" name="privateSection" type="PrivatePackageSection" association="A_package_privateSection">
        <ownedComment xmi:id="Package-privateSection-_ownedComment.0">
          <body>References the private section of this package. If this package owns its private section, the reference is to the owned private section.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="Package-privateSection-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="Package-privateSection-_lowerValue"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_package_ownedPublicSection" name="A_package_ownedPublicSection" visibility="private" memberEnd="A_package_ownedPublicSection-owner Package-ownedPublicSection">
      <generalization xmi:id="A_package_ownedPublicSection-_generalization.0" general="A_package_publicSection"/>
      <generalization xmi:id="A_package_ownedPublicSection-_generalization.1" general="A_ownedElement_owner"/>
      <ownedEnd xmi:id="A_package_ownedPublicSection-owner" name="owner" type="Package" association="A_package_ownedPublicSection">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_package_ownedPublicSection-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_package_ownedPublicSection-owner-_lowerValue" value="1"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_package_ownedPrivateSection" name="A_package_ownedPrivateSection" visibility="private" memberEnd="A_package_ownedPrivateSection-owner Package-ownedPrivateSection">
      <generalization xmi:id="A_package_ownedPrivateSection-_generalization.0" general="A_package_privateSection"/>
      <generalization xmi:id="A_package_ownedPrivateSection-_generalization.1" general="A_ownedElement_owner"/>
      <ownedEnd xmi:id="A_package_ownedPrivateSection-owner" name="owner" type="Package" association="A_package_ownedPrivateSection">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_package_ownedPrivateSection-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_package_ownedPrivateSection-owner-_lowerValue" value="1"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="PrivatePackageSection" name="PrivatePackageSection">
      <ownedComment xmi:id="PrivatePackageSection-_ownedComment.0">
        <body>A private package section. Its name is the same as the name of the package that owns this section.</body>
      </ownedComment>
      <generalization xmi:id="PrivatePackageSection-_generalization.0" general="PackageSection"/>
      <ownedAttribute xmi:id="PrivatePackageSection-publicSection" name="publicSection" type="PublicPackageSection" isReadOnly="true" isDerived="true" association="A_public_private">
        <ownedComment xmi:id="PrivatePackageSection-publicSection-_ownedComment.0">
          <body>References the public section that is in the same package as this private section.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="PrivatePackageSection-publicSection-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="PrivatePackageSection-publicSection-_lowerValue"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_globalNamespace_package" name="A_globalNamespace_package" visibility="private" memberEnd="A_globalNamespace_package-globalNamespace GlobalNamespace-package">
      <generalization xmi:id="A_globalNamespace_package-_generalization.0" general="A_member_namespace"/>
      <ownedEnd xmi:id="A_globalNamespace_package-globalNamespace" name="globalNamespace" type="GlobalNamespace" association="A_globalNamespace_package">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_globalNamespace_package-globalNamespace-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_globalNamespace_package-globalNamespace-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_public_private" name="A_public_private" visibility="private" memberEnd="PrivatePackageSection-publicSection PublicPackageSection-privateSection"/>
    <packagedElement xmi:type="uml:Class" xmi:id="FeatureGroupTypeRename" name="FeatureGroupTypeRename">
      <ownedComment xmi:id="FeatureGroupTypeRename-_ownedComment.0">
        <body>The specification of local name for a feature group type contained in another package.</body>
      </ownedComment>
      <generalization xmi:id="FeatureGroupTypeRename-_generalization.0" general="NamedElement"/>
      <ownedAttribute xmi:id="FeatureGroupTypeRename-renamedFeatureGroupType" name="renamedFeatureGroupType" type="FeatureGroupType" association="A_featureGroupTypeRename_renamedFeatureGroupType">
        <ownedComment xmi:id="FeatureGroupTypeRename-renamedFeatureGroupType-_ownedComment.0">
          <body>References the renamed feature group type.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="FeatureGroupTypeRename-renamedFeatureGroupType-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="FeatureGroupTypeRename-renamedFeatureGroupType-_lowerValue" value="1"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_packageSection_ownedFeatureGroupRename" name="A_packageSection_ownedFeatureGroupRename" visibility="private" memberEnd="A_packageSection_ownedFeatureGroupRename-owner PackageSection-ownedFeatureGroupTypeRename">
      <generalization xmi:id="A_packageSection_ownedFeatureGroupRename-_generalization.0" general="A_ownedMember_namespace"/>
      <ownedEnd xmi:id="A_packageSection_ownedFeatureGroupRename-owner" name="owner" type="PackageSection" association="A_packageSection_ownedFeatureGroupRename">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_packageSection_ownedFeatureGroupRename-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_packageSection_ownedFeatureGroupRename-owner-_lowerValue" value="1"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_featureGroupTypeRename_renamedFeatureGroupType" name="A_featureGroupTypeRename_renamedFeatureGroupType" visibility="private" memberEnd="A_featureGroupTypeRename_renamedFeatureGroupType-rename FeatureGroupTypeRename-renamedFeatureGroupType">
      <ownedEnd xmi:id="A_featureGroupTypeRename_renamedFeatureGroupType-rename" name="rename" type="FeatureGroupTypeRename" association="A_featureGroupTypeRename_renamedFeatureGroupType">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_featureGroupTypeRename_renamedFeatureGroupType-rename-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_featureGroupTypeRename_renamedFeatureGroupType-rename-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_package_publicSection" name="A_package_publicSection" visibility="private" memberEnd="A_package_publicSection-package Package-publicSection">
      <ownedEnd xmi:id="A_package_publicSection-package" name="package" type="Package" association="A_package_publicSection">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_package_publicSection-package-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_package_publicSection-package-_lowerValue" value="1"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_package_privateSection" name="A_package_privateSection" visibility="private" memberEnd="A_package_privateSection-package Package-privateSection">
      <ownedEnd xmi:id="A_package_privateSection-package" name="package" type="Package" association="A_package_privateSection">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_package_privateSection-package-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_package_privateSection-package-_lowerValue" value="1"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_packageSection_importedUnit" name="A_packageSection_importedUnit" visibility="private" memberEnd="A_packageSection_importedUnit-packageSection PackageSection-importedUnit">
      <ownedEnd xmi:id="A_packageSection_importedUnit-packageSection" name="packageSection" type="PackageSection" association="A_packageSection_importedUnit">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_packageSection_importedUnit-packageSection-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_packageSection_importedUnit-packageSection-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="PrototypeBinding" name="PrototypeBinding" isAbstract="true">
      <ownedComment xmi:id="PrototypeBinding-_ownedComment.0">
        <body>A binding of a prototype to an actual value.</body>
      </ownedComment>
      <generalization xmi:id="PrototypeBinding-_generalization.0" general="Element"/>
      <ownedAttribute xmi:id="PrototypeBinding-formal" name="formal" type="Prototype" association="A_prototypeBinding_formal">
        <ownedComment xmi:id="PrototypeBinding-formal-_ownedComment.0">
          <body>References the prototype that is bound in this prototype binding.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="PrototypeBinding-formal-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="PrototypeBinding-formal-_lowerValue" value="1"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_prototypeBinding_formal" name="A_prototypeBinding_formal" visibility="private" isAbstract="true" memberEnd="A_prototypeBinding_formal-binding PrototypeBinding-formal">
      <ownedEnd xmi:id="A_prototypeBinding_formal-binding" name="binding" type="PrototypeBinding" association="A_prototypeBinding_formal">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_prototypeBinding_formal-binding-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_prototypeBinding_formal-binding-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_classifier_ownedPrototype" name="A_classifier_ownedPrototype" visibility="private" memberEnd="A_classifier_ownedPrototype-owner Classifier-ownedPrototype">
      <generalization xmi:id="A_classifier_ownedPrototype-_generalization.0" general="A_ownedMember_namespace"/>
      <ownedEnd xmi:id="A_classifier_ownedPrototype-owner" name="owner" type="Classifier" association="A_classifier_ownedPrototype">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_classifier_ownedPrototype-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_classifier_ownedPrototype-owner-_lowerValue" value="1"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_classifier_ownedPrototypeBinding" name="A_classifier_ownedPrototypeBinding" visibility="private" memberEnd="A_classifier_ownedPrototypeBinding-owner Classifier-ownedPrototypeBinding">
      <ownedComment xmi:id="A_classifier_ownedPrototypeBinding-_ownedComment.0" annotatedElement="A_classifier_ownedPrototypeBinding">
        <body>These prototype bindings apply to an extended classifier.</body>
      </ownedComment>
      <ownedEnd xmi:id="A_classifier_ownedPrototypeBinding-owner" name="owner" type="Classifier" association="A_classifier_ownedPrototypeBinding">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_classifier_ownedPrototypeBinding-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_classifier_ownedPrototypeBinding-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_subcomponent_ownedPrototypeBinding" name="A_subcomponent_ownedPrototypeBinding" visibility="private" memberEnd="A_subcomponent_ownedPrototypeBinding-owner Subcomponent-ownedPrototypeBinding">
      <ownedEnd xmi:id="A_subcomponent_ownedPrototypeBinding-owner" name="owner" type="Subcomponent" association="A_subcomponent_ownedPrototypeBinding">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_subcomponent_ownedPrototypeBinding-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_subcomponent_ownedPrototypeBinding-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_subcomponent_prototype" name="A_subcomponent_prototype" visibility="private" memberEnd="A_subcomponent_prototype-subcomponent Subcomponent-prototype">
      <generalization xmi:id="A_subcomponent_prototype-_generalization.0" general="A_subcomponent_subcomponentType"/>
      <ownedEnd xmi:id="A_subcomponent_prototype-subcomponent" name="subcomponent" type="Subcomponent" association="A_subcomponent_prototype">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_subcomponent_prototype-subcomponent-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_subcomponent_prototype-subcomponent-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="ComponentPrototype" name="ComponentPrototype" isAbstract="true">
      <ownedComment xmi:id="ComponentPrototype-_ownedComment.0">
        <body>A prototype that can be bound to a component classifier.</body>
      </ownedComment>
      <generalization xmi:id="ComponentPrototype-_generalization.0" general="Prototype"/>
      <generalization xmi:id="ComponentPrototype-_generalization.1" general="SubcomponentType"/>
      <generalization xmi:id="ComponentPrototype-_generalization.2" general="FeatureClassifier"/>
      <ownedAttribute xmi:id="ComponentPrototype-array" name="array" type="Boolean">
        <ownedComment xmi:id="ComponentPrototype-array-_ownedComment.0">
          <body>Specifies if the prototype can be bound to an array of classifiers.</body>
        </ownedComment>
      </ownedAttribute>
      <ownedAttribute xmi:id="ComponentPrototype-constrainingClassifier" name="constrainingClassifier" type="ComponentClassifier" association="A_componentPrototype_constrainingClassifier">
        <ownedComment xmi:id="ComponentPrototype-constrainingClassifier-_ownedComment.0">
          <body>Constrains any binding of this prototype to a classifier that extends or implements the specified classifier.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="ComponentPrototype-constrainingClassifier-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="ComponentPrototype-constrainingClassifier-_lowerValue"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="ComponentPrototypeBinding" name="ComponentPrototypeBinding">
      <ownedComment xmi:id="ComponentPrototypeBinding-_ownedComment.0">
        <body>A binding of a component prototype to an actual.</body>
      </ownedComment>
      <generalization xmi:id="ComponentPrototypeBinding-_generalization.0" general="PrototypeBinding"/>
      <ownedAttribute xmi:id="ComponentPrototypeBinding-formal" name="formal" type="ComponentPrototype" redefinedProperty="PrototypeBinding-formal" association="A_componentPrototypeBinding_formal">
        <ownedComment xmi:id="ComponentPrototypeBinding-formal-_ownedComment.0">
          <body>Specifies the component prototype that is bound in this binding.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="ComponentPrototypeBinding-formal-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="ComponentPrototypeBinding-formal-_lowerValue" value="1"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="ComponentPrototypeBinding-actual" name="actual" type="ComponentPrototypeActual" isOrdered="true" aggregation="composite" association="A_componentPrototypeBinding_actual">
        <ownedComment xmi:id="ComponentPrototypeBinding-actual-_ownedComment.0">
          <body>Specifies a list of actuals to which the component prototype is bound.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="ComponentPrototypeBinding-actual-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="ComponentPrototypeBinding-actual-_lowerValue" value="1"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_componentPrototype_constrainingClassifier" name="A_componentPrototype_constrainingClassifier" visibility="private" memberEnd="A_componentPrototype_constrainingClassifier-prototype ComponentPrototype-constrainingClassifier">
      <ownedEnd xmi:id="A_componentPrototype_constrainingClassifier-prototype" name="prototype" type="ComponentPrototype" association="A_componentPrototype_constrainingClassifier">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_componentPrototype_constrainingClassifier-prototype-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_componentPrototype_constrainingClassifier-prototype-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_componentPrototypeBinding_formal" name="A_componentPrototypeBinding_formal" visibility="private" memberEnd="A_componentPrototypeBinding_formal-binding ComponentPrototypeBinding-formal">
      <generalization xmi:id="A_componentPrototypeBinding_formal-_generalization.0" general="A_prototypeBinding_formal"/>
      <ownedEnd xmi:id="A_componentPrototypeBinding_formal-binding" name="binding" type="ComponentPrototypeBinding" association="A_componentPrototypeBinding_formal">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_componentPrototypeBinding_formal-binding-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_componentPrototypeBinding_formal-binding-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="FeatureGroupPrototype" name="FeatureGroupPrototype">
      <ownedComment xmi:id="FeatureGroupPrototype-_ownedComment.0">
        <body>A prototype that can be bound to a feature group type.</body>
      </ownedComment>
      <generalization xmi:id="FeatureGroupPrototype-_generalization.0" general="Prototype"/>
      <generalization xmi:id="FeatureGroupPrototype-_generalization.1" general="FeatureType"/>
      <ownedAttribute xmi:id="FeatureGroupPrototype-constrainingFeatureGroupType" name="constrainingFeatureGroupType" type="FeatureGroupType" association="A_featureGroupPrototype_constrainingFeatureGroupType">
        <ownedComment xmi:id="FeatureGroupPrototype-constrainingFeatureGroupType-_ownedComment.0">
          <body>Constrains any binding of this prototype to a classifier that extends the referenced feature group type.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="FeatureGroupPrototype-constrainingFeatureGroupType-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="FeatureGroupPrototype-constrainingFeatureGroupType-_lowerValue"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="FeatureGroupPrototypeBinding" name="FeatureGroupPrototypeBinding">
      <ownedComment xmi:id="FeatureGroupPrototypeBinding-_ownedComment.0">
        <body>A binding of a feature group prototype to an actual.</body>
      </ownedComment>
      <generalization xmi:id="FeatureGroupPrototypeBinding-_generalization.0" general="PrototypeBinding"/>
      <ownedAttribute xmi:id="FeatureGroupPrototypeBinding-formal" name="formal" type="FeatureGroupPrototype" redefinedProperty="PrototypeBinding-formal" association="A_featureGroupPrototypeBinding_formal">
        <ownedComment xmi:id="FeatureGroupPrototypeBinding-formal-_ownedComment.0">
          <body>Specifies the feature group prototype that is bound in this binding.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="FeatureGroupPrototypeBinding-formal-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="FeatureGroupPrototypeBinding-formal-_lowerValue" value="1"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="FeatureGroupPrototypeBinding-actual" name="actual" type="FeatureGroupPrototypeActual" aggregation="composite" association="A_featureGroupPrototypeBinding_actual">
        <ownedComment xmi:id="FeatureGroupPrototypeBinding-actual-_ownedComment.0">
          <body>Specifies the actual to which the feature group prototype is bound.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="FeatureGroupPrototypeBinding-actual-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="FeatureGroupPrototypeBinding-actual-_lowerValue" value="1"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_featureGroupPrototypeBinding_formal" name="A_featureGroupPrototypeBinding_formal" visibility="private" memberEnd="A_featureGroupPrototypeBinding_formal-binding FeatureGroupPrototypeBinding-formal">
      <generalization xmi:id="A_featureGroupPrototypeBinding_formal-_generalization.0" general="A_prototypeBinding_formal"/>
      <ownedEnd xmi:id="A_featureGroupPrototypeBinding_formal-binding" name="binding" type="FeatureGroupPrototypeBinding" association="A_featureGroupPrototypeBinding_formal">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_featureGroupPrototypeBinding_formal-binding-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_featureGroupPrototypeBinding_formal-binding-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_featureGroupPrototype_constrainingFeatureGroupType" name="A_featureGroupPrototype_constrainingFeatureGroupType" visibility="private" memberEnd="A_featureGroupPrototype_constrainingFeatureGroupType-prototype FeatureGroupPrototype-constrainingFeatureGroupType">
      <ownedEnd xmi:id="A_featureGroupPrototype_constrainingFeatureGroupType-prototype" name="prototype" type="FeatureGroupPrototype" association="A_featureGroupPrototype_constrainingFeatureGroupType">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_featureGroupPrototype_constrainingFeatureGroupType-prototype-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_featureGroupPrototype_constrainingFeatureGroupType-prototype-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="FeaturePrototype" name="FeaturePrototype">
      <ownedComment xmi:id="FeaturePrototype-_ownedComment.0">
        <body>A prototype that can be bound to a feature specification.</body>
      </ownedComment>
      <generalization xmi:id="FeaturePrototype-_generalization.0" general="Prototype"/>
      <ownedAttribute xmi:id="FeaturePrototype-direction" name="direction" type="DirectionType">
        <ownedComment xmi:id="FeaturePrototype-direction-_ownedComment.0">
          <body>===TBD===</body>
        </ownedComment>
        <defaultValue xmi:type="uml:LiteralString" xmi:id="FeaturePrototype-direction-_defaultValue" value="inOut"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="FeaturePrototype-constrainingClassifier" name="constrainingClassifier" type="ComponentClassifier" association="A_featurePrototype_constrainingClassifier">
        <ownedComment xmi:id="FeaturePrototype-constrainingClassifier-_ownedComment.0">
          <body>Constrains any binding of this prototype to a feature that references the classifier.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="FeaturePrototype-constrainingClassifier-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="FeaturePrototype-constrainingClassifier-_lowerValue"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="FeaturePrototypeBinding" name="FeaturePrototypeBinding">
      <ownedComment xmi:id="FeaturePrototypeBinding-_ownedComment.0">
        <body>A binding of a feature prototype to an actual.</body>
      </ownedComment>
      <generalization xmi:id="FeaturePrototypeBinding-_generalization.0" general="PrototypeBinding"/>
      <ownedAttribute xmi:id="FeaturePrototypeBinding-actual" name="actual" type="FeaturePrototypeActual" aggregation="composite" association="A_featurePrototypeBinding_Classifier">
        <ownedComment xmi:id="FeaturePrototypeBinding-actual-_ownedComment.0">
          <body>Specifies the actual to which the feature prototype is bound.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="FeaturePrototypeBinding-actual-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="FeaturePrototypeBinding-actual-_lowerValue" value="1"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="FeaturePrototypeBinding-formal" name="formal" type="FeaturePrototype" redefinedProperty="PrototypeBinding-formal" association="A_featurePrototypeBinding_formal">
        <ownedComment xmi:id="FeaturePrototypeBinding-formal-_ownedComment.0">
          <body>Specifies the feature prototype that is bound in this binding.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="FeaturePrototypeBinding-formal-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="FeaturePrototypeBinding-formal-_lowerValue" value="1"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_featurePrototypeBinding_formal" name="A_featurePrototypeBinding_formal" visibility="private" memberEnd="A_featurePrototypeBinding_formal-binding FeaturePrototypeBinding-formal">
      <generalization xmi:id="A_featurePrototypeBinding_formal-_generalization.0" general="A_prototypeBinding_formal"/>
      <ownedEnd xmi:id="A_featurePrototypeBinding_formal-binding" name="binding" type="FeaturePrototypeBinding" association="A_featurePrototypeBinding_formal">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_featurePrototypeBinding_formal-binding-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_featurePrototypeBinding_formal-binding-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_featurePrototype_constrainingClassifier" name="A_featurePrototype_constrainingClassifier" visibility="private" memberEnd="A_featurePrototype_constrainingClassifier-prototype FeaturePrototype-constrainingClassifier">
      <ownedEnd xmi:id="A_featurePrototype_constrainingClassifier-prototype" name="prototype" type="FeaturePrototype" association="A_featurePrototype_constrainingClassifier">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_featurePrototype_constrainingClassifier-prototype-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_featurePrototype_constrainingClassifier-prototype-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_featurePrototypeBinding_Classifier" name="A_featurePrototypeBinding_Classifier" visibility="private" memberEnd="A_featurePrototypeBinding_Classifier-owner FeaturePrototypeBinding-actual">
      <ownedEnd xmi:id="A_featurePrototypeBinding_Classifier-owner" name="owner" type="FeaturePrototypeBinding" association="A_featurePrototypeBinding_Classifier">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_featurePrototypeBinding_Classifier-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_featurePrototypeBinding_Classifier-owner-_lowerValue" value="1"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="FeaturePrototypeActual" name="FeaturePrototypeActual" isAbstract="true">
      <ownedComment xmi:id="FeaturePrototypeActual-_ownedComment.0">
        <body>An element to which a feature prototype may be bound.</body>
      </ownedComment>
      <generalization xmi:id="FeaturePrototypeActual-_generalization.0" general="Element"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="AccessSpecification" name="AccessSpecification">
      <ownedComment xmi:id="AccessSpecification-_ownedComment.0">
        <body>A specification of an access feature.</body>
      </ownedComment>
      <generalization xmi:id="AccessSpecification-_generalization.0" general="FeaturePrototypeActual"/>
      <ownedAttribute xmi:id="AccessSpecification-kind" name="kind" type="AccessType">
        <ownedComment xmi:id="AccessSpecification-kind-_ownedComment.0">
          <body>Specifies if the access is provided or required.</body>
        </ownedComment>
      </ownedAttribute>
      <ownedAttribute xmi:id="AccessSpecification-category" name="category" type="AccessCategory">
        <ownedComment xmi:id="AccessSpecification-category-_ownedComment.0">
          <body>Specifes the component category that is accessed.</body>
        </ownedComment>
      </ownedAttribute>
      <ownedAttribute xmi:id="AccessSpecification-classifier" name="classifier" type="ComponentClassifier" association="A_accessSpecification_classifier">
        <ownedComment xmi:id="AccessSpecification-classifier-_ownedComment.0">
          <body>References the type of the shared element.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="AccessSpecification-classifier-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="AccessSpecification-classifier-_lowerValue"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="PortSpecification" name="PortSpecification">
      <ownedComment xmi:id="PortSpecification-_ownedComment.0">
        <body>A specification of a port feature.</body>
      </ownedComment>
      <generalization xmi:id="PortSpecification-_generalization.0" general="FeaturePrototypeActual"/>
      <ownedAttribute xmi:id="PortSpecification-direction" name="direction" type="DirectionType">
        <ownedComment xmi:id="PortSpecification-direction-_ownedComment.0">
          <body>Specifies the direction of the port.</body>
        </ownedComment>
      </ownedAttribute>
      <ownedAttribute xmi:id="PortSpecification-category" name="category" type="PortCategory">
        <ownedComment xmi:id="PortSpecification-category-_ownedComment.0">
          <body>Specifies if the port is a data, event data, or event port.</body>
        </ownedComment>
      </ownedAttribute>
      <ownedAttribute xmi:id="PortSpecification-classifier" name="classifier" type="ComponentClassifier" association="A_portSpecification_classifier">
        <ownedComment xmi:id="PortSpecification-classifier-_ownedComment.0">
          <body>Specifies the classifier referenced by the port.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="PortSpecification-classifier-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="PortSpecification-classifier-_lowerValue"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="FeaturePrototypeReference" name="FeaturePrototypeReference">
      <ownedComment xmi:id="FeaturePrototypeReference-_ownedComment.0">
        <body>A reference to a feature prototype. This is used to pass  a prototype actual down the containment hierarchy.</body>
      </ownedComment>
      <generalization xmi:id="FeaturePrototypeReference-_generalization.0" general="FeaturePrototypeActual"/>
      <ownedAttribute xmi:id="FeaturePrototypeReference-direction" name="direction" type="DirectionType">
        <ownedComment xmi:id="FeaturePrototypeReference-direction-_ownedComment.0">
          <body>Specifies the direction of the actual feature.</body>
        </ownedComment>
      </ownedAttribute>
      <ownedAttribute xmi:id="FeaturePrototypeReference-prototype" name="prototype" type="FeaturePrototype" association="A_featureProtoypeReference_prototype">
        <ownedComment xmi:id="FeaturePrototypeReference-prototype-_ownedComment.0">
          <body>References the feature prototype that is used as a prototype actual.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="FeaturePrototypeReference-prototype-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="FeaturePrototypeReference-prototype-_lowerValue" value="1"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_accessSpecification_classifier" name="A_accessSpecification_classifier" visibility="private" memberEnd="A_accessSpecification_classifier-accessSpecification AccessSpecification-classifier">
      <ownedEnd xmi:id="A_accessSpecification_classifier-accessSpecification" name="accessSpecification" type="AccessSpecification" association="A_accessSpecification_classifier">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_accessSpecification_classifier-accessSpecification-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_accessSpecification_classifier-accessSpecification-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_portSpecification_classifier" name="A_portSpecification_classifier" visibility="private" memberEnd="A_portSpecification_classifier-portSpecification PortSpecification-classifier">
      <ownedEnd xmi:id="A_portSpecification_classifier-portSpecification" name="portSpecification" type="PortSpecification" association="A_portSpecification_classifier">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_portSpecification_classifier-portSpecification-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_portSpecification_classifier-portSpecification-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_featureProtoypeReference_prototype" name="A_featureProtoypeReference_prototype" visibility="private" memberEnd="A_featureProtoypeReference_prototype-reference FeaturePrototypeReference-prototype">
      <ownedEnd xmi:id="A_featureProtoypeReference_prototype-reference" name="reference" type="FeaturePrototypeReference" association="A_featureProtoypeReference_prototype">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_featureProtoypeReference_prototype-reference-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_featureProtoypeReference_prototype-reference-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="ComponentPrototypeActual" name="ComponentPrototypeActual">
      <ownedComment xmi:id="ComponentPrototypeActual-_ownedComment.0">
        <body>An element to which a component prototype may be bound.</body>
      </ownedComment>
      <generalization xmi:id="ComponentPrototypeActual-_generalization.0" general="Element"/>
      <ownedAttribute xmi:id="ComponentPrototypeActual-category" name="category" type="ComponentCategory">
        <ownedComment xmi:id="ComponentPrototypeActual-category-_ownedComment.0">
          <body>Specifies the component category of this actual.</body>
        </ownedComment>
      </ownedAttribute>
      <ownedAttribute xmi:id="ComponentPrototypeActual-binding" name="binding" type="PrototypeBinding" aggregation="composite" association="A_classifierReference_binding">
        <ownedComment xmi:id="ComponentPrototypeActual-binding-_ownedComment.0">
          <body>A list of prototype bindings. These bindings apply to the component classifier of this reference.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="ComponentPrototypeActual-binding-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="ComponentPrototypeActual-binding-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="ComponentPrototypeActual-subcomponentType" name="subcomponentType" type="SubcomponentType" association="A_componentPrototypeActual_subcomponentType">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="ComponentPrototypeActual-subcomponentType-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="ComponentPrototypeActual-subcomponentType-_lowerValue" value="1"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_componentPrototypeBinding_actual" name="A_componentPrototypeBinding_actual" visibility="private" memberEnd="A_componentPrototypeBinding_actual-owner ComponentPrototypeBinding-actual">
      <ownedEnd xmi:id="A_componentPrototypeBinding_actual-owner" name="owner" type="ComponentPrototypeBinding" association="A_componentPrototypeBinding_actual">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_componentPrototypeBinding_actual-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_componentPrototypeBinding_actual-owner-_lowerValue" value="1"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_classifierReference_binding" name="A_classifierReference_binding" visibility="private" memberEnd="A_classifierReference_binding-owner ComponentPrototypeActual-binding">
      <ownedEnd xmi:id="A_classifierReference_binding-owner" name="owner" type="ComponentPrototypeActual" association="A_classifierReference_binding">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_classifierReference_binding-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_classifierReference_binding-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="FeatureGroupPrototypeActual" name="FeatureGroupPrototypeActual">
      <ownedComment xmi:id="FeatureGroupPrototypeActual-_ownedComment.0">
        <body>An element to which a feature group prototype may be bound.</body>
      </ownedComment>
      <generalization xmi:id="FeatureGroupPrototypeActual-_generalization.0" general="FeaturePrototypeActual"/>
      <ownedAttribute xmi:id="FeatureGroupPrototypeActual-binding" name="binding" type="PrototypeBinding" aggregation="composite" association="A_featureGroupPrototypeActual_binding">
        <ownedComment xmi:id="FeatureGroupPrototypeActual-binding-_ownedComment.0">
          <body>A list of prototype bindings. These bindings apply to the feature group type of this reference.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="FeatureGroupPrototypeActual-binding-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="FeatureGroupPrototypeActual-binding-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="FeatureGroupPrototypeActual-featureType" name="featureType" type="FeatureType" association="A_3CfeatureGroupPrototypeActual3E_3CfeatureType3E">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="FeatureGroupPrototypeActual-featureType-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="FeatureGroupPrototypeActual-featureType-_lowerValue" value="1"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_featureGroupPrototypeBinding_actual" name="A_featureGroupPrototypeBinding_actual" visibility="private" memberEnd="A_featureGroupPrototypeBinding_actual-owner FeatureGroupPrototypeBinding-actual">
      <ownedEnd xmi:id="A_featureGroupPrototypeBinding_actual-owner" name="owner" type="FeatureGroupPrototypeBinding" association="A_featureGroupPrototypeBinding_actual">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_featureGroupPrototypeBinding_actual-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_featureGroupPrototypeBinding_actual-owner-_lowerValue" value="1"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_featureGroupPrototypeActual_binding" name="A_featureGroupPrototypeActual_binding" visibility="private" memberEnd="A_featureGroupPrototypeActual_binding-owner FeatureGroupPrototypeActual-binding">
      <ownedEnd xmi:id="A_featureGroupPrototypeActual_binding-owner" name="owner" type="FeatureGroupPrototypeActual" association="A_featureGroupPrototypeActual_binding">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_featureGroupPrototypeActual_binding-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_featureGroupPrototypeActual_binding-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_prototype_refined" name="A_prototype_refined" visibility="private" memberEnd="A_prototype_refined-prototype Prototype-refined">
      <generalization xmi:id="A_prototype_refined-_generalization.0" general="A_refiningElement_refinedElement"/>
      <ownedEnd xmi:id="A_prototype_refined-prototype" name="prototype" type="Prototype" association="A_prototype_refined">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_prototype_refined-prototype-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_prototype_refined-prototype-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_3CaccessSpecification3E_3CcomponentPrototype3E" name="A_&lt;accessSpecification>_&lt;componentPrototype>" visibility="private" memberEnd="A_3CaccessSpecification3E_3CcomponentPrototype3E-accessSpecification A_3CaccessSpecification3E_3CcomponentPrototype3E-componentPrototype" navigableOwnedEnd="A_3CaccessSpecification3E_3CcomponentPrototype3E-componentPrototype">
      <ownedEnd xmi:id="A_3CaccessSpecification3E_3CcomponentPrototype3E-accessSpecification" name="accessSpecification" type="AccessSpecification" association="A_3CaccessSpecification3E_3CcomponentPrototype3E">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_3CaccessSpecification3E_3CcomponentPrototype3E-accessSpecification-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_3CaccessSpecification3E_3CcomponentPrototype3E-accessSpecification-_lowerValue"/>
      </ownedEnd>
      <ownedEnd xmi:id="A_3CaccessSpecification3E_3CcomponentPrototype3E-componentPrototype" name="componentPrototype" type="ComponentPrototype" association="A_3CaccessSpecification3E_3CcomponentPrototype3E">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_3CaccessSpecification3E_3CcomponentPrototype3E-componentPrototype-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_3CaccessSpecification3E_3CcomponentPrototype3E-componentPrototype-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_3CportSpecification3E_3CcomponentPrototype3E" name="A_&lt;portSpecification>_&lt;componentPrototype>" visibility="private" memberEnd="A_3CportSpecification3E_3CcomponentPrototype3E-portSpecification A_3CportSpecification3E_3CcomponentPrototype3E-componentPrototype" navigableOwnedEnd="A_3CportSpecification3E_3CcomponentPrototype3E-componentPrototype">
      <ownedEnd xmi:id="A_3CportSpecification3E_3CcomponentPrototype3E-portSpecification" name="portSpecification" type="PortSpecification" association="A_3CportSpecification3E_3CcomponentPrototype3E">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_3CportSpecification3E_3CcomponentPrototype3E-portSpecification-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_3CportSpecification3E_3CcomponentPrototype3E-portSpecification-_lowerValue"/>
      </ownedEnd>
      <ownedEnd xmi:id="A_3CportSpecification3E_3CcomponentPrototype3E-componentPrototype" name="componentPrototype" type="ComponentPrototype" association="A_3CportSpecification3E_3CcomponentPrototype3E">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_3CportSpecification3E_3CcomponentPrototype3E-componentPrototype-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_3CportSpecification3E_3CcomponentPrototype3E-componentPrototype-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_componentPrototypeActual_subcomponentType" name="A_componentPrototypeActual_subcomponentType" visibility="private" memberEnd="A_componentPrototypeActual_subcomponentType-componentPrototypeActual ComponentPrototypeActual-subcomponentType">
      <ownedEnd xmi:id="A_componentPrototypeActual_subcomponentType-componentPrototypeActual" name="componentPrototypeActual" type="ComponentPrototypeActual" association="A_componentPrototypeActual_subcomponentType">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_componentPrototypeActual_subcomponentType-componentPrototypeActual-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_componentPrototypeActual_subcomponentType-componentPrototypeActual-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_3CfeatureGroupPrototypeActual3E_3CfeatureType3E" name="A_&lt;featureGroupPrototypeActual>_&lt;featureType>" visibility="private" memberEnd="A_3CfeatureGroupPrototypeActual3E_3CfeatureType3E-featureGroupPrototypeActual FeatureGroupPrototypeActual-featureType">
      <ownedEnd xmi:id="A_3CfeatureGroupPrototypeActual3E_3CfeatureType3E-featureGroupPrototypeActual" name="featureGroupPrototypeActual" type="FeatureGroupPrototypeActual" association="A_3CfeatureGroupPrototypeActual3E_3CfeatureType3E">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_3CfeatureGroupPrototypeActual3E_3CfeatureType3E-featureGroupPrototypeActual-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_3CfeatureGroupPrototypeActual3E_3CfeatureType3E-featureGroupPrototypeActual-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_abstractFeature_featurePrototype" name="A_abstractFeature_featurePrototype" visibility="private" memberEnd="A_abstractFeature_featurePrototype-abstractFeature AbstractFeature-featurePrototype">
      <ownedEnd xmi:id="A_abstractFeature_featurePrototype-abstractFeature" name="abstractFeature" type="AbstractFeature" association="A_abstractFeature_featurePrototype">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_abstractFeature_featurePrototype-abstractFeature-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_abstractFeature_featurePrototype-abstractFeature-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="SubprogramCallSequence" name="SubprogramCallSequence">
      <generalization xmi:id="SubprogramCallSequence-_generalization.0" general="BehavioralFeature"/>
      <generalization xmi:id="SubprogramCallSequence-_generalization.1" general="ModalElement"/>
      <ownedAttribute xmi:id="SubprogramCallSequence-ownedCallSpecification" name="ownedCallSpecification" type="CallSpecification" isOrdered="true" aggregation="composite" association="A_subprogramCallSequence_ownedCallSpecification">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="SubprogramCallSequence-ownedCallSpecification-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="SubprogramCallSequence-ownedCallSpecification-_lowerValue"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="CallSpecification" name="CallSpecification" isAbstract="true">
      <generalization xmi:id="CallSpecification-_generalization.0" general="BehavioralFeature"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="CalledSubprogram" name="CalledSubprogram" isAbstract="true"/>
    <packagedElement xmi:type="uml:Association" xmi:id="A_subprogramCall_calledSubprogram" name="A_subprogramCall_calledSubprogram" visibility="private" memberEnd="A_subprogramCall_calledSubprogram-subprogramCall SubprogramCall-calledSubprogram">
      <ownedEnd xmi:id="A_subprogramCall_calledSubprogram-subprogramCall" name="subprogramCall" type="SubprogramCall" association="A_subprogramCall_calledSubprogram">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_subprogramCall_calledSubprogram-subprogramCall-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_subprogramCall_calledSubprogram-subprogramCall-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_behavioredImplementation_callSpecification" name="A_behavioredImplementation_callSpecification" visibility="private" memberEnd="A_behavioredImplementation_callSpecification-implementation BehavioredImplementation-callSpecification">
      <generalization xmi:id="A_behavioredImplementation_callSpecification-_generalization.0" general="A_member_namespace"/>
      <ownedEnd xmi:id="A_behavioredImplementation_callSpecification-implementation" name="implementation" type="BehavioredImplementation" association="A_behavioredImplementation_callSpecification">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_behavioredImplementation_callSpecification-implementation-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_behavioredImplementation_callSpecification-implementation-_lowerValue" value="1"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="ProcessorCall" name="ProcessorCall">
      <generalization xmi:id="ProcessorCall-_generalization.0" general="CallSpecification"/>
      <ownedAttribute xmi:id="ProcessorCall-subprogramAccessName" name="subprogramAccessName" type="String"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_behavioredImplementation_ownedSubprogramCallSequence" name="A_behavioredImplementation_ownedSubprogramCallSequence" visibility="private" memberEnd="A_behavioredImplementation_ownedSubprogramCallSequence-owner BehavioredImplementation-ownedSubprogramCallSequence">
      <generalization xmi:id="A_behavioredImplementation_ownedSubprogramCallSequence-_generalization.0" general="A_classifierFeature_featuringClassifier"/>
      <generalization xmi:id="A_behavioredImplementation_ownedSubprogramCallSequence-_generalization.1" general="A_ownedMember_namespace"/>
      <ownedEnd xmi:id="A_behavioredImplementation_ownedSubprogramCallSequence-owner" name="owner" type="BehavioredImplementation" association="A_behavioredImplementation_ownedSubprogramCallSequence">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_behavioredImplementation_ownedSubprogramCallSequence-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_behavioredImplementation_ownedSubprogramCallSequence-owner-_lowerValue" value="1"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="BehavioredImplementation" name="BehavioredImplementation" isAbstract="true">
      <generalization xmi:id="BehavioredImplementation-_generalization.0" general="ComponentImplementation"/>
      <ownedAttribute xmi:id="BehavioredImplementation-callSpecification" name="callSpecification" type="CallSpecification" isDerived="true" subsettedProperty="Namespace-member" association="A_behavioredImplementation_callSpecification">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="BehavioredImplementation-callSpecification-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="BehavioredImplementation-callSpecification-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="BehavioredImplementation-ownedSubprogramCallSequence" name="ownedSubprogramCallSequence" type="SubprogramCallSequence" aggregation="composite" subsettedProperty="Classifier-classifierFeature Namespace-ownedMember" association="A_behavioredImplementation_ownedSubprogramCallSequence">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="BehavioredImplementation-ownedSubprogramCallSequence-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="BehavioredImplementation-ownedSubprogramCallSequence-_lowerValue"/>
      </ownedAttribute>
      <ownedOperation xmi:id="BehavioredImplementation-callSpecifications" name="callSpecifications" isQuery="true">
        <ownedComment xmi:id="BehavioredImplementation-callSpecifications-_ownedComment.0" annotatedElement="BehavioredImplementation-callSpecifications">
          <body>Get all calls owned by owned call sequences.</body>
        </ownedComment>
        <ownedParameter xmi:id="BehavioredImplementation-callSpecifications-_ownedParameter.0" type="CallSpecification" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="BehavioredImplementation-callSpecifications-_ownedParameter.0-_upperValue" value="*"/>
          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="BehavioredImplementation-callSpecifications-_ownedParameter.0-_lowerValue"/>
        </ownedParameter>
      </ownedOperation>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_subprogramCallSequence_ownedCallSpecification" name="A_subprogramCallSequence_ownedCallSpecification" visibility="private" memberEnd="A_subprogramCallSequence_ownedCallSpecification-sequence SubprogramCallSequence-ownedCallSpecification">
      <ownedEnd xmi:id="A_subprogramCallSequence_ownedCallSpecification-sequence" name="sequence" type="SubprogramCallSequence" association="A_subprogramCallSequence_ownedCallSpecification">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_subprogramCallSequence_ownedCallSpecification-sequence-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_subprogramCallSequence_ownedCallSpecification-sequence-_lowerValue" value="1"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="SubprogramCall" name="SubprogramCall">
      <generalization xmi:id="SubprogramCall-_generalization.0" general="CallSpecification"/>
      <generalization xmi:id="SubprogramCall-_generalization.1" general="Context"/>
      <ownedAttribute xmi:id="SubprogramCall-calledSubprogram" name="calledSubprogram" type="CalledSubprogram" association="A_subprogramCall_calledSubprogram">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="SubprogramCall-calledSubprogram-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="SubprogramCall-calledSubprogram-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="SubprogramCall-context" name="context" type="CallContext" association="A_subprogramCall_context">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="SubprogramCall-context-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="SubprogramCall-context-_lowerValue"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="CallContext" name="CallContext" isAbstract="true"/>
    <packagedElement xmi:type="uml:Association" xmi:id="A_subprogramCall_context" name="A_subprogramCall_context" visibility="private" memberEnd="A_subprogramCall_context-subprogramCall SubprogramCall-context">
      <ownedEnd xmi:id="A_subprogramCall_context-subprogramCall" name="subprogramCall" type="SubprogramCall" association="A_subprogramCall_context">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_subprogramCall_context-subprogramCall-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_subprogramCall_context-subprogramCall-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="Prototype" name="Prototype" isAbstract="true">
      <ownedComment xmi:id="Prototype-_ownedComment.0">
        <body>A prototype of a classifier.</body>
      </ownedComment>
      <ownedRule xmi:id="Prototype-categoryConstraint" name="categoryConstraint">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="Prototype-categoryConstraint-_specification">
          <language>OCL</language>
          <body>self.constrainingCategory.oclIsUndefined() implies self.constrainingClassifier = self.constrainingCategory</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="Prototype-_generalization.0" general="StructuralFeature"/>
      <generalization xmi:id="Prototype-_generalization.1" general="CalledSubprogram"/>
      <ownedAttribute xmi:id="Prototype-refined" name="refined" type="Prototype" subsettedProperty="RefinableElement-refinedElement" association="A_prototype_refined">
        <ownedComment xmi:id="Prototype-refined-_ownedComment.0">
          <body>References a prototype that is refined by this prototype.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="Prototype-refined-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="Prototype-refined-_lowerValue"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="Abstract" name="Abstract" isAbstract="true">
      <generalization xmi:id="Abstract-_generalization.0" general="NamedElement"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="AbstractType" name="AbstractType">
      <generalization xmi:id="AbstractType-_generalization.0" general="AbstractClassifier"/>
      <generalization xmi:id="AbstractType-_generalization.1" general="ComponentType"/>
      <generalization xmi:id="AbstractType-_generalization.2" general="CallContext"/>
      <ownedAttribute xmi:id="AbstractType-ownedBusAccess" name="ownedBusAccess" type="BusAccess" aggregation="composite" subsettedProperty="ComponentType-ownedFeature" association="A_abstractType_ownedBusAccess">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="AbstractType-ownedBusAccess-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="AbstractType-ownedBusAccess-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="AbstractType-ownedDataAccess" name="ownedDataAccess" type="DataAccess" aggregation="composite" subsettedProperty="ComponentType-ownedFeature" association="A_abstractType_ownedDataAccess">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="AbstractType-ownedDataAccess-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="AbstractType-ownedDataAccess-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="AbstractType-ownedSubprogramAccess" name="ownedSubprogramAccess" type="SubprogramAccess" aggregation="composite" subsettedProperty="ComponentType-ownedFeature" association="A_abstractType_ownedSubprogramAccess">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="AbstractType-ownedSubprogramAccess-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="AbstractType-ownedSubprogramAccess-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="AbstractType-ownedDataPort" name="ownedDataPort" type="DataPort" aggregation="composite" subsettedProperty="ComponentType-ownedFeature" association="A_abstractType_ownedDataPort">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="AbstractType-ownedDataPort-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="AbstractType-ownedDataPort-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="AbstractType-ownedEventPort" name="ownedEventPort" type="EventPort" aggregation="composite" subsettedProperty="ComponentType-ownedFeature" association="A_abstractType_ownedEventPort">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="AbstractType-ownedEventPort-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="AbstractType-ownedEventPort-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="AbstractType-ownedEventDataPort" name="ownedEventDataPort" type="EventDataPort" aggregation="composite" subsettedProperty="ComponentType-ownedFeature" association="A_abstractType_ownedEventDataPort">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="AbstractType-ownedEventDataPort-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="AbstractType-ownedEventDataPort-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="AbstractType-ownedSubprogramGroupAccess" name="ownedSubprogramGroupAccess" type="SubprogramGroupAccess" aggregation="composite" subsettedProperty="ComponentType-ownedFeature" association="A_abstractType_ownedSubprogramGroupAccess">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="AbstractType-ownedSubprogramGroupAccess-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="AbstractType-ownedSubprogramGroupAccess-_lowerValue"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="AbstractImplementation" name="AbstractImplementation">
      <generalization xmi:id="AbstractImplementation-_generalization.0" general="AbstractClassifier"/>
      <generalization xmi:id="AbstractImplementation-_generalization.1" general="BehavioredImplementation"/>
      <ownedAttribute xmi:id="AbstractImplementation-type" name="type" type="AbstractType" isDerived="true" redefinedProperty="ComponentImplementation-type" association="A_abstractImplementation_abstractType">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="AbstractImplementation-type-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="AbstractImplementation-type-_lowerValue" value="1"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="AbstractImplementation-ownedBusSubcomponent" name="ownedBusSubcomponent" type="BusSubcomponent" aggregation="composite" subsettedProperty="ComponentImplementation-ownedSubcomponent" association="A_abstractImplementation_ownedBusSubcomponent">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="AbstractImplementation-ownedBusSubcomponent-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="AbstractImplementation-ownedBusSubcomponent-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="AbstractImplementation-ownedDataSubcomponent" name="ownedDataSubcomponent" type="DataSubcomponent" aggregation="composite" subsettedProperty="ComponentImplementation-ownedSubcomponent" association="A_abstractImplementation_ownedDataSubcomponent">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="AbstractImplementation-ownedDataSubcomponent-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="AbstractImplementation-ownedDataSubcomponent-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="AbstractImplementation-ownedDeviceSubcomponent" name="ownedDeviceSubcomponent" type="DeviceSubcomponent" aggregation="composite" subsettedProperty="ComponentImplementation-ownedSubcomponent" association="A_abstractImplementation_ownedDeviceSubcomponent">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="AbstractImplementation-ownedDeviceSubcomponent-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="AbstractImplementation-ownedDeviceSubcomponent-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="AbstractImplementation-ownedMemorySubcomponent" name="ownedMemorySubcomponent" type="MemorySubcomponent" aggregation="composite" subsettedProperty="ComponentImplementation-ownedSubcomponent" association="A_abstractImplementation_ownedMemorySubcomponent">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="AbstractImplementation-ownedMemorySubcomponent-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="AbstractImplementation-ownedMemorySubcomponent-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="AbstractImplementation-ownedProcessSubcomponent" name="ownedProcessSubcomponent" type="ProcessSubcomponent" aggregation="composite" subsettedProperty="ComponentImplementation-ownedSubcomponent" association="A_abstractImplementation_ownedProcessSubcomponent">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="AbstractImplementation-ownedProcessSubcomponent-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="AbstractImplementation-ownedProcessSubcomponent-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="AbstractImplementation-ownedProcessorSubcomponent" name="ownedProcessorSubcomponent" type="ProcessorSubcomponent" aggregation="composite" subsettedProperty="ComponentImplementation-ownedSubcomponent" association="A_abstractImplementation_ownedProcessorSubcomponent">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="AbstractImplementation-ownedProcessorSubcomponent-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="AbstractImplementation-ownedProcessorSubcomponent-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="AbstractImplementation-ownedSystemSubcomponent" name="ownedSystemSubcomponent" type="SystemSubcomponent" aggregation="composite" subsettedProperty="ComponentImplementation-ownedSubcomponent" association="A_abstractImplementation_ownedSystemSubcomponent">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="AbstractImplementation-ownedSystemSubcomponent-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="AbstractImplementation-ownedSystemSubcomponent-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="AbstractImplementation-ownedSubprogramSubcomponent" name="ownedSubprogramSubcomponent" type="SubprogramSubcomponent" aggregation="composite" subsettedProperty="ComponentImplementation-ownedSubcomponent" association="A_abstractImplementation_ownedSubprogramSubcomponent">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="AbstractImplementation-ownedSubprogramSubcomponent-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="AbstractImplementation-ownedSubprogramSubcomponent-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="AbstractImplementation-ownedSubprogramGroupSubcomponent" name="ownedSubprogramGroupSubcomponent" type="SubprogramGroupSubcomponent" aggregation="composite" subsettedProperty="ComponentImplementation-ownedSubcomponent" association="A_abstractImplementation_ownedSubprogramGroupSubcomponent">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="AbstractImplementation-ownedSubprogramGroupSubcomponent-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="AbstractImplementation-ownedSubprogramGroupSubcomponent-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="AbstractImplementation-ownedThreadSubcomponent" name="ownedThreadSubcomponent" type="ThreadSubcomponent" aggregation="composite" subsettedProperty="ComponentImplementation-ownedSubcomponent" association="A_abstractImplementation_ownedThreadSubcomponent">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="AbstractImplementation-ownedThreadSubcomponent-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="AbstractImplementation-ownedThreadSubcomponent-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="AbstractImplementation-ownedThreadGroupSubcomponent" name="ownedThreadGroupSubcomponent" type="ThreadGroupSubcomponent" aggregation="composite" subsettedProperty="ComponentImplementation-ownedSubcomponent" association="A_abstractImplementation_ownedThreadGroupSubcomponent">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="AbstractImplementation-ownedThreadGroupSubcomponent-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="AbstractImplementation-ownedThreadGroupSubcomponent-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="AbstractImplementation-ownedVirtualBusSubcomponent" name="ownedVirtualBusSubcomponent" type="VirtualBusSubcomponent" aggregation="composite" subsettedProperty="ComponentImplementation-ownedSubcomponent" association="A_abstractImplementation_ownedVirtualBusSubcomponent">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="AbstractImplementation-ownedVirtualBusSubcomponent-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="AbstractImplementation-ownedVirtualBusSubcomponent-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="AbstractImplementation-ownedVirtualProcessorSubcomponent" name="ownedVirtualProcessorSubcomponent" type="VirtualProcessorSubcomponent" aggregation="composite" subsettedProperty="ComponentImplementation-ownedSubcomponent" association="A_abstractImplementation_ownedVirtualProcessorSubcomponent">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="AbstractImplementation-ownedVirtualProcessorSubcomponent-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="AbstractImplementation-ownedVirtualProcessorSubcomponent-_lowerValue"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="AbstractClassifier" name="AbstractClassifier" isAbstract="true">
      <generalization xmi:id="AbstractClassifier-_generalization.0" general="AbstractSubcomponentType"/>
      <generalization xmi:id="AbstractClassifier-_generalization.1" general="ComponentClassifier"/>
      <generalization xmi:id="AbstractClassifier-_generalization.2" general="VirtualProcessorSubcomponentType"/>
      <generalization xmi:id="AbstractClassifier-_generalization.3" general="VitualBusSubcomponentType"/>
      <generalization xmi:id="AbstractClassifier-_generalization.4" general="ThreadGroupSubcomponentType"/>
      <generalization xmi:id="AbstractClassifier-_generalization.5" general="ThreadSubcomponentType"/>
      <generalization xmi:id="AbstractClassifier-_generalization.6" general="SystemSubcomponentType"/>
      <generalization xmi:id="AbstractClassifier-_generalization.7" general="SubprogramGroupSubcomponentType"/>
      <generalization xmi:id="AbstractClassifier-_generalization.8" general="SubprogramSubcomponentType"/>
      <generalization xmi:id="AbstractClassifier-_generalization.9" general="ProcessSubcomponentType"/>
      <generalization xmi:id="AbstractClassifier-_generalization.10" general="MemorySubcomponentType"/>
      <generalization xmi:id="AbstractClassifier-_generalization.11" general="DeviceSubcomponentType"/>
      <generalization xmi:id="AbstractClassifier-_generalization.12" general="BusSubcomponentType"/>
      <generalization xmi:id="AbstractClassifier-_generalization.13" general="DataSubcomponentType"/>
      <generalization xmi:id="AbstractClassifier-_generalization.14" general="ProcessorSubcomponentType"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_abstractImplementation_abstractType" name="A_abstractImplementation_abstractType" visibility="private" memberEnd="A_abstractImplementation_abstractType-implementation AbstractImplementation-type" isDerived="true">
      <generalization xmi:id="A_abstractImplementation_abstractType-_generalization.0" general="A_componentImplementation_ComponentType"/>
      <ownedEnd xmi:id="A_abstractImplementation_abstractType-implementation" name="implementation" type="AbstractImplementation" association="A_abstractImplementation_abstractType">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_abstractImplementation_abstractType-implementation-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_abstractImplementation_abstractType-implementation-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="AbstractSubcomponent" name="AbstractSubcomponent">
      <generalization xmi:id="AbstractSubcomponent-_generalization.0" general="Abstract"/>
      <generalization xmi:id="AbstractSubcomponent-_generalization.1" general="Subcomponent"/>
      <ownedAttribute xmi:id="AbstractSubcomponent-abstractSubcomponentType" name="abstractSubcomponentType" type="AbstractSubcomponentType" subsettedProperty="Subcomponent-subcomponentType" association="A_abstractSubcomponent_abstractSubcomponentType">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="AbstractSubcomponent-abstractSubcomponentType-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="AbstractSubcomponent-abstractSubcomponentType-_lowerValue"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_abstractImplementation_ownedBusSubcomponent" name="A_abstractImplementation_ownedBusSubcomponent" visibility="private" memberEnd="A_abstractImplementation_ownedBusSubcomponent-owner AbstractImplementation-ownedBusSubcomponent">
      <generalization xmi:id="A_abstractImplementation_ownedBusSubcomponent-_generalization.0" general="A_componentImplementation_ownedSubcomponent"/>
      <ownedEnd xmi:id="A_abstractImplementation_ownedBusSubcomponent-owner" name="owner" type="AbstractImplementation" association="A_abstractImplementation_ownedBusSubcomponent">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_abstractImplementation_ownedBusSubcomponent-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_abstractImplementation_ownedBusSubcomponent-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_abstractImplementation_ownedDataSubcomponent" name="A_abstractImplementation_ownedDataSubcomponent" visibility="private" memberEnd="A_abstractImplementation_ownedDataSubcomponent-owner AbstractImplementation-ownedDataSubcomponent">
      <generalization xmi:id="A_abstractImplementation_ownedDataSubcomponent-_generalization.0" general="A_componentImplementation_ownedSubcomponent"/>
      <ownedEnd xmi:id="A_abstractImplementation_ownedDataSubcomponent-owner" name="owner" type="AbstractImplementation" association="A_abstractImplementation_ownedDataSubcomponent">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_abstractImplementation_ownedDataSubcomponent-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_abstractImplementation_ownedDataSubcomponent-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_abstractImplementation_ownedDeviceSubcomponent" name="A_abstractImplementation_ownedDeviceSubcomponent" visibility="private" memberEnd="A_abstractImplementation_ownedDeviceSubcomponent-owner AbstractImplementation-ownedDeviceSubcomponent">
      <generalization xmi:id="A_abstractImplementation_ownedDeviceSubcomponent-_generalization.0" general="A_componentImplementation_ownedSubcomponent"/>
      <ownedEnd xmi:id="A_abstractImplementation_ownedDeviceSubcomponent-owner" name="owner" type="AbstractImplementation" association="A_abstractImplementation_ownedDeviceSubcomponent">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_abstractImplementation_ownedDeviceSubcomponent-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_abstractImplementation_ownedDeviceSubcomponent-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_abstractImplementation_ownedMemorySubcomponent" name="A_abstractImplementation_ownedMemorySubcomponent" visibility="private" memberEnd="A_abstractImplementation_ownedMemorySubcomponent-owner AbstractImplementation-ownedMemorySubcomponent">
      <generalization xmi:id="A_abstractImplementation_ownedMemorySubcomponent-_generalization.0" general="A_componentImplementation_ownedSubcomponent"/>
      <ownedEnd xmi:id="A_abstractImplementation_ownedMemorySubcomponent-owner" name="owner" type="AbstractImplementation" association="A_abstractImplementation_ownedMemorySubcomponent">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_abstractImplementation_ownedMemorySubcomponent-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_abstractImplementation_ownedMemorySubcomponent-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_abstractImplementation_ownedProcessSubcomponent" name="A_abstractImplementation_ownedProcessSubcomponent" visibility="private" memberEnd="A_abstractImplementation_ownedProcessSubcomponent-owner AbstractImplementation-ownedProcessSubcomponent">
      <generalization xmi:id="A_abstractImplementation_ownedProcessSubcomponent-_generalization.0" general="A_componentImplementation_ownedSubcomponent"/>
      <ownedEnd xmi:id="A_abstractImplementation_ownedProcessSubcomponent-owner" name="owner" type="AbstractImplementation" association="A_abstractImplementation_ownedProcessSubcomponent">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_abstractImplementation_ownedProcessSubcomponent-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_abstractImplementation_ownedProcessSubcomponent-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_abstractImplementation_ownedProcessorSubcomponent" name="A_abstractImplementation_ownedProcessorSubcomponent" visibility="private" memberEnd="A_abstractImplementation_ownedProcessorSubcomponent-owner AbstractImplementation-ownedProcessorSubcomponent">
      <generalization xmi:id="A_abstractImplementation_ownedProcessorSubcomponent-_generalization.0" general="A_componentImplementation_ownedSubcomponent"/>
      <ownedEnd xmi:id="A_abstractImplementation_ownedProcessorSubcomponent-owner" name="owner" type="AbstractImplementation" association="A_abstractImplementation_ownedProcessorSubcomponent">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_abstractImplementation_ownedProcessorSubcomponent-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_abstractImplementation_ownedProcessorSubcomponent-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_abstractImplementation_ownedSystemSubcomponent" name="A_abstractImplementation_ownedSystemSubcomponent" visibility="private" memberEnd="A_abstractImplementation_ownedSystemSubcomponent-owner AbstractImplementation-ownedSystemSubcomponent">
      <generalization xmi:id="A_abstractImplementation_ownedSystemSubcomponent-_generalization.0" general="A_componentImplementation_ownedSubcomponent"/>
      <ownedEnd xmi:id="A_abstractImplementation_ownedSystemSubcomponent-owner" name="owner" type="AbstractImplementation" association="A_abstractImplementation_ownedSystemSubcomponent">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_abstractImplementation_ownedSystemSubcomponent-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_abstractImplementation_ownedSystemSubcomponent-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_abstractImplementation_ownedSubprogramSubcomponent" name="A_abstractImplementation_ownedSubprogramSubcomponent" visibility="private" memberEnd="A_abstractImplementation_ownedSubprogramSubcomponent-owner AbstractImplementation-ownedSubprogramSubcomponent">
      <generalization xmi:id="A_abstractImplementation_ownedSubprogramSubcomponent-_generalization.0" general="A_componentImplementation_ownedSubcomponent"/>
      <ownedEnd xmi:id="A_abstractImplementation_ownedSubprogramSubcomponent-owner" name="owner" type="AbstractImplementation" association="A_abstractImplementation_ownedSubprogramSubcomponent">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_abstractImplementation_ownedSubprogramSubcomponent-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_abstractImplementation_ownedSubprogramSubcomponent-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_abstractImplementation_ownedSubprogramGroupSubcomponent" name="A_abstractImplementation_ownedSubprogramGroupSubcomponent" visibility="private" memberEnd="A_abstractImplementation_ownedSubprogramGroupSubcomponent-owner AbstractImplementation-ownedSubprogramGroupSubcomponent">
      <generalization xmi:id="A_abstractImplementation_ownedSubprogramGroupSubcomponent-_generalization.0" general="A_componentImplementation_ownedSubcomponent"/>
      <ownedEnd xmi:id="A_abstractImplementation_ownedSubprogramGroupSubcomponent-owner" name="owner" type="AbstractImplementation" association="A_abstractImplementation_ownedSubprogramGroupSubcomponent">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_abstractImplementation_ownedSubprogramGroupSubcomponent-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_abstractImplementation_ownedSubprogramGroupSubcomponent-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_abstractImplementation_ownedThreadSubcomponent" name="A_abstractImplementation_ownedThreadSubcomponent" visibility="private" memberEnd="A_abstractImplementation_ownedThreadSubcomponent-owner AbstractImplementation-ownedThreadSubcomponent">
      <generalization xmi:id="A_abstractImplementation_ownedThreadSubcomponent-_generalization.0" general="A_componentImplementation_ownedSubcomponent"/>
      <ownedEnd xmi:id="A_abstractImplementation_ownedThreadSubcomponent-owner" name="owner" type="AbstractImplementation" association="A_abstractImplementation_ownedThreadSubcomponent">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_abstractImplementation_ownedThreadSubcomponent-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_abstractImplementation_ownedThreadSubcomponent-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_abstractImplementation_ownedThreadGroupSubcomponent" name="A_abstractImplementation_ownedThreadGroupSubcomponent" visibility="private" memberEnd="A_abstractImplementation_ownedThreadGroupSubcomponent-owner AbstractImplementation-ownedThreadGroupSubcomponent">
      <generalization xmi:id="A_abstractImplementation_ownedThreadGroupSubcomponent-_generalization.0" general="A_componentImplementation_ownedSubcomponent"/>
      <ownedEnd xmi:id="A_abstractImplementation_ownedThreadGroupSubcomponent-owner" name="owner" type="AbstractImplementation" association="A_abstractImplementation_ownedThreadGroupSubcomponent">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_abstractImplementation_ownedThreadGroupSubcomponent-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_abstractImplementation_ownedThreadGroupSubcomponent-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_abstractImplementation_ownedVirtualBusSubcomponent" name="A_abstractImplementation_ownedVirtualBusSubcomponent" visibility="private" memberEnd="A_abstractImplementation_ownedVirtualBusSubcomponent-owner AbstractImplementation-ownedVirtualBusSubcomponent">
      <generalization xmi:id="A_abstractImplementation_ownedVirtualBusSubcomponent-_generalization.0" general="A_componentImplementation_ownedSubcomponent"/>
      <ownedEnd xmi:id="A_abstractImplementation_ownedVirtualBusSubcomponent-owner" name="owner" type="AbstractImplementation" association="A_abstractImplementation_ownedVirtualBusSubcomponent">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_abstractImplementation_ownedVirtualBusSubcomponent-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_abstractImplementation_ownedVirtualBusSubcomponent-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_abstractImplementation_ownedVirtualProcessorSubcomponent" name="A_abstractImplementation_ownedVirtualProcessorSubcomponent" visibility="private" memberEnd="A_abstractImplementation_ownedVirtualProcessorSubcomponent-owner AbstractImplementation-ownedVirtualProcessorSubcomponent">
      <generalization xmi:id="A_abstractImplementation_ownedVirtualProcessorSubcomponent-_generalization.0" general="A_componentImplementation_ownedSubcomponent"/>
      <ownedEnd xmi:id="A_abstractImplementation_ownedVirtualProcessorSubcomponent-owner" name="owner" type="AbstractImplementation" association="A_abstractImplementation_ownedVirtualProcessorSubcomponent">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_abstractImplementation_ownedVirtualProcessorSubcomponent-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_abstractImplementation_ownedVirtualProcessorSubcomponent-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_abstractType_ownedBusAccess" name="A_abstractType_ownedBusAccess" visibility="private" memberEnd="A_abstractType_ownedBusAccess-owner AbstractType-ownedBusAccess">
      <generalization xmi:id="A_abstractType_ownedBusAccess-_generalization.0" general="A_componentType_ownedFeature"/>
      <ownedEnd xmi:id="A_abstractType_ownedBusAccess-owner" name="owner" type="AbstractType" association="A_abstractType_ownedBusAccess">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_abstractType_ownedBusAccess-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_abstractType_ownedBusAccess-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_abstractType_ownedDataAccess" name="A_abstractType_ownedDataAccess" visibility="private" memberEnd="A_abstractType_ownedDataAccess-owner AbstractType-ownedDataAccess">
      <generalization xmi:id="A_abstractType_ownedDataAccess-_generalization.0" general="A_componentType_ownedFeature"/>
      <ownedEnd xmi:id="A_abstractType_ownedDataAccess-owner" name="owner" type="AbstractType" association="A_abstractType_ownedDataAccess">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_abstractType_ownedDataAccess-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_abstractType_ownedDataAccess-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_abstractType_ownedSubprogramAccess" name="A_abstractType_ownedSubprogramAccess" visibility="private" memberEnd="A_abstractType_ownedSubprogramAccess-owner AbstractType-ownedSubprogramAccess">
      <generalization xmi:id="A_abstractType_ownedSubprogramAccess-_generalization.0" general="A_componentType_ownedFeature"/>
      <ownedEnd xmi:id="A_abstractType_ownedSubprogramAccess-owner" name="owner" type="AbstractType" association="A_abstractType_ownedSubprogramAccess">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_abstractType_ownedSubprogramAccess-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_abstractType_ownedSubprogramAccess-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_abstractType_ownedDataPort" name="A_abstractType_ownedDataPort" visibility="private" memberEnd="A_abstractType_ownedDataPort-owner AbstractType-ownedDataPort">
      <generalization xmi:id="A_abstractType_ownedDataPort-_generalization.0" general="A_componentType_ownedFeature"/>
      <ownedEnd xmi:id="A_abstractType_ownedDataPort-owner" name="owner" type="AbstractType" association="A_abstractType_ownedDataPort">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_abstractType_ownedDataPort-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_abstractType_ownedDataPort-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_abstractType_ownedEventPort" name="A_abstractType_ownedEventPort" visibility="private" memberEnd="A_abstractType_ownedEventPort-owner AbstractType-ownedEventPort">
      <generalization xmi:id="A_abstractType_ownedEventPort-_generalization.0" general="A_componentType_ownedFeature"/>
      <ownedEnd xmi:id="A_abstractType_ownedEventPort-owner" name="owner" type="AbstractType" association="A_abstractType_ownedEventPort">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_abstractType_ownedEventPort-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_abstractType_ownedEventPort-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_abstractType_ownedEventDataPort" name="A_abstractType_ownedEventDataPort" visibility="private" memberEnd="A_abstractType_ownedEventDataPort-owner AbstractType-ownedEventDataPort">
      <generalization xmi:id="A_abstractType_ownedEventDataPort-_generalization.0" general="A_componentType_ownedFeature"/>
      <ownedEnd xmi:id="A_abstractType_ownedEventDataPort-owner" name="owner" type="AbstractType" association="A_abstractType_ownedEventDataPort">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_abstractType_ownedEventDataPort-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_abstractType_ownedEventDataPort-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_abstractType_ownedSubprogramGroupAccess" name="A_abstractType_ownedSubprogramGroupAccess" visibility="private" memberEnd="A_abstractType_ownedSubprogramGroupAccess-owner AbstractType-ownedSubprogramGroupAccess">
      <generalization xmi:id="A_abstractType_ownedSubprogramGroupAccess-_generalization.0" general="A_componentType_ownedFeature"/>
      <ownedEnd xmi:id="A_abstractType_ownedSubprogramGroupAccess-owner" name="owner" type="AbstractType" association="A_abstractType_ownedSubprogramGroupAccess">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_abstractType_ownedSubprogramGroupAccess-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_abstractType_ownedSubprogramGroupAccess-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_componentImplementation_ownedAbstractSubcomponent" name="A_componentImplementation_ownedAbstractSubcomponent" visibility="private" memberEnd="A_componentImplementation_ownedAbstractSubcomponent-owner ComponentImplementation-ownedAbstractSubcomponent">
      <generalization xmi:id="A_componentImplementation_ownedAbstractSubcomponent-_generalization.0" general="A_componentImplementation_ownedSubcomponent"/>
      <ownedEnd xmi:id="A_componentImplementation_ownedAbstractSubcomponent-owner" name="owner" type="ComponentImplementation" association="A_componentImplementation_ownedAbstractSubcomponent">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_componentImplementation_ownedAbstractSubcomponent-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_componentImplementation_ownedAbstractSubcomponent-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_abstractSubcomponent_abstractSubcomponentType" name="A_abstractSubcomponent_abstractSubcomponentType" visibility="private" memberEnd="A_abstractSubcomponent_abstractSubcomponentType-subcomponent AbstractSubcomponent-abstractSubcomponentType">
      <generalization xmi:id="A_abstractSubcomponent_abstractSubcomponentType-_generalization.0" general="A_subcomponent_subcomponentType"/>
      <ownedEnd xmi:id="A_abstractSubcomponent_abstractSubcomponentType-subcomponent" name="subcomponent" type="AbstractSubcomponent" association="A_abstractSubcomponent_abstractSubcomponentType">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_abstractSubcomponent_abstractSubcomponentType-subcomponent-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_abstractSubcomponent_abstractSubcomponentType-subcomponent-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="AbstractSubcomponentType" name="AbstractSubcomponentType" isAbstract="true">
      <generalization xmi:id="AbstractSubcomponentType-_generalization.0" general="SubcomponentType"/>
      <generalization xmi:id="AbstractSubcomponentType-_generalization.1" general="Abstract"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="AbstractPrototype" name="AbstractPrototype">
      <generalization xmi:id="AbstractPrototype-_generalization.0" general="BusSubcomponentType"/>
      <generalization xmi:id="AbstractPrototype-_generalization.1" general="SubprogramGroupSubcomponentType"/>
      <generalization xmi:id="AbstractPrototype-_generalization.2" general="VirtualProcessorSubcomponentType"/>
      <generalization xmi:id="AbstractPrototype-_generalization.3" general="VitualBusSubcomponentType"/>
      <generalization xmi:id="AbstractPrototype-_generalization.4" general="ThreadGroupSubcomponentType"/>
      <generalization xmi:id="AbstractPrototype-_generalization.5" general="ThreadSubcomponentType"/>
      <generalization xmi:id="AbstractPrototype-_generalization.6" general="SystemSubcomponentType"/>
      <generalization xmi:id="AbstractPrototype-_generalization.7" general="SubprogramSubcomponentType"/>
      <generalization xmi:id="AbstractPrototype-_generalization.8" general="ProcessorSubcomponentType"/>
      <generalization xmi:id="AbstractPrototype-_generalization.9" general="ProcessSubcomponentType"/>
      <generalization xmi:id="AbstractPrototype-_generalization.10" general="MemorySubcomponentType"/>
      <generalization xmi:id="AbstractPrototype-_generalization.11" general="DeviceSubcomponentType"/>
      <generalization xmi:id="AbstractPrototype-_generalization.12" general="DataSubcomponentType"/>
      <generalization xmi:id="AbstractPrototype-_generalization.13" general="ComponentPrototype"/>
      <generalization xmi:id="AbstractPrototype-_generalization.14" general="AbstractSubcomponentType"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="Bus" name="Bus" isAbstract="true">
      <generalization xmi:id="Bus-_generalization.0" general="NamedElement"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="BusClassifier" name="BusClassifier" isAbstract="true">
      <generalization xmi:id="BusClassifier-_generalization.0" general="BusSubcomponentType"/>
      <generalization xmi:id="BusClassifier-_generalization.1" general="ComponentClassifier"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="BusSubcomponent" name="BusSubcomponent">
      <generalization xmi:id="BusSubcomponent-_generalization.0" general="Bus"/>
      <generalization xmi:id="BusSubcomponent-_generalization.1" general="Subcomponent"/>
      <generalization xmi:id="BusSubcomponent-_generalization.2" general="AccessConnectionEnd"/>
      <ownedAttribute xmi:id="BusSubcomponent-busSubcomponentType" name="busSubcomponentType" type="BusSubcomponentType" subsettedProperty="Subcomponent-subcomponentType" association="A_busSubcomponent_busSubcomponentType">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="BusSubcomponent-busSubcomponentType-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="BusSubcomponent-busSubcomponentType-_lowerValue"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="BusType" name="BusType">
      <generalization xmi:id="BusType-_generalization.0" general="BusClassifier"/>
      <generalization xmi:id="BusType-_generalization.1" general="ComponentType"/>
      <ownedAttribute xmi:id="BusType-ownedBusAccess" name="ownedBusAccess" type="BusAccess" aggregation="composite" subsettedProperty="ComponentType-ownedFeature" association="A_busType_ownedBusAccess">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="BusType-ownedBusAccess-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="BusType-ownedBusAccess-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="BusType-ownedDataPort" name="ownedDataPort" type="DataPort" aggregation="composite" subsettedProperty="ComponentType-ownedFeature" association="A_busType_ownedDataPort">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="BusType-ownedDataPort-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="BusType-ownedDataPort-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="BusType-ownedEventDataPort" name="ownedEventDataPort" type="EventDataPort" aggregation="composite" subsettedProperty="ComponentType-ownedFeature" association="A_busType_ownedEventDataPort">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="BusType-ownedEventDataPort-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="BusType-ownedEventDataPort-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="BusType-ownedEventPort" name="ownedEventPort" type="EventPort" aggregation="composite" subsettedProperty="ComponentType-ownedFeature" association="A_busType_ownedEventPort">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="BusType-ownedEventPort-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="BusType-ownedEventPort-_lowerValue"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="BusImplementation" name="BusImplementation">
      <generalization xmi:id="BusImplementation-_generalization.0" general="BusClassifier"/>
      <generalization xmi:id="BusImplementation-_generalization.1" general="ComponentImplementation"/>
      <ownedAttribute xmi:id="BusImplementation-type" name="type" type="BusType" isDerived="true" redefinedProperty="ComponentImplementation-type" association="A_busImplementation_busType">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="BusImplementation-type-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="BusImplementation-type-_lowerValue" value="1"/>
        <defaultValue xmi:type="uml:LiteralString" xmi:id="BusImplementation-type-_defaultValue" value=""/>
      </ownedAttribute>
      <ownedAttribute xmi:id="BusImplementation-ownedVirtualBusSubcomponent" name="ownedVirtualBusSubcomponent" type="VirtualBusSubcomponent" aggregation="composite" subsettedProperty="ComponentImplementation-ownedSubcomponent" association="A_busImplementation_ownedVirtualBusSubcomponent">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="BusImplementation-ownedVirtualBusSubcomponent-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="BusImplementation-ownedVirtualBusSubcomponent-_lowerValue"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_busImplementation_busType" name="A_busImplementation_busType" visibility="private" memberEnd="A_busImplementation_busType-implementation BusImplementation-type" isDerived="true">
      <generalization xmi:id="A_busImplementation_busType-_generalization.0" general="A_componentImplementation_ComponentType"/>
      <ownedEnd xmi:id="A_busImplementation_busType-implementation" name="implementation" type="BusImplementation" association="A_busImplementation_busType">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_busImplementation_busType-implementation-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_busImplementation_busType-implementation-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_busSubcomponent_busSubcomponentType" name="A_busSubcomponent_busSubcomponentType" visibility="private" memberEnd="A_busSubcomponent_busSubcomponentType-subcomponent BusSubcomponent-busSubcomponentType">
      <generalization xmi:id="A_busSubcomponent_busSubcomponentType-_generalization.0" general="A_subcomponent_subcomponentType"/>
      <ownedEnd xmi:id="A_busSubcomponent_busSubcomponentType-subcomponent" name="subcomponent" type="BusSubcomponent" association="A_busSubcomponent_busSubcomponentType">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_busSubcomponent_busSubcomponentType-subcomponent-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_busSubcomponent_busSubcomponentType-subcomponent-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_busType_ownedBusAccess" name="A_busType_ownedBusAccess" visibility="private" memberEnd="A_busType_ownedBusAccess-owner BusType-ownedBusAccess">
      <generalization xmi:id="A_busType_ownedBusAccess-_generalization.0" general="A_componentType_ownedFeature"/>
      <ownedEnd xmi:id="A_busType_ownedBusAccess-owner" name="owner" type="BusType" association="A_busType_ownedBusAccess">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_busType_ownedBusAccess-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_busType_ownedBusAccess-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_busImplementation_ownedVirtualBusSubcomponent" name="A_busImplementation_ownedVirtualBusSubcomponent" visibility="private" memberEnd="A_busImplementation_ownedVirtualBusSubcomponent-owner BusImplementation-ownedVirtualBusSubcomponent">
      <generalization xmi:id="A_busImplementation_ownedVirtualBusSubcomponent-_generalization.0" general="A_componentImplementation_ownedSubcomponent"/>
      <ownedEnd xmi:id="A_busImplementation_ownedVirtualBusSubcomponent-owner" name="owner" type="BusImplementation" association="A_busImplementation_ownedVirtualBusSubcomponent">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_busImplementation_ownedVirtualBusSubcomponent-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_busImplementation_ownedVirtualBusSubcomponent-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="BusSubcomponentType" name="BusSubcomponentType" isAbstract="true">
      <generalization xmi:id="BusSubcomponentType-_generalization.0" general="Bus"/>
      <generalization xmi:id="BusSubcomponentType-_generalization.1" general="SubcomponentType"/>
      <generalization xmi:id="BusSubcomponentType-_generalization.2" general="FeatureClassifier"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="BusPrototype" name="BusPrototype">
      <generalization xmi:id="BusPrototype-_generalization.0" general="BusSubcomponentType"/>
      <generalization xmi:id="BusPrototype-_generalization.1" general="ComponentPrototype"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_busType_ownedDataPort" name="A_busType_ownedDataPort" visibility="private" memberEnd="A_busType_ownedDataPort-owner BusType-ownedDataPort">
      <generalization xmi:id="A_busType_ownedDataPort-_generalization.0" general="A_componentType_ownedFeature"/>
      <ownedEnd xmi:id="A_busType_ownedDataPort-owner" name="owner" type="BusType" association="A_busType_ownedDataPort">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_busType_ownedDataPort-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_busType_ownedDataPort-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_busType_ownedEventDataPort" name="A_busType_ownedEventDataPort" visibility="private" memberEnd="A_busType_ownedEventDataPort-owner BusType-ownedEventDataPort">
      <generalization xmi:id="A_busType_ownedEventDataPort-_generalization.0" general="A_componentType_ownedFeature"/>
      <ownedEnd xmi:id="A_busType_ownedEventDataPort-owner" name="owner" type="BusType" association="A_busType_ownedEventDataPort">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_busType_ownedEventDataPort-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_busType_ownedEventDataPort-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_busType_ownedEventPort" name="A_busType_ownedEventPort" visibility="private" memberEnd="A_busType_ownedEventPort-owner BusType-ownedEventPort">
      <generalization xmi:id="A_busType_ownedEventPort-_generalization.0" general="A_componentType_ownedFeature"/>
      <ownedEnd xmi:id="A_busType_ownedEventPort-owner" name="owner" type="BusType" association="A_busType_ownedEventPort">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_busType_ownedEventPort-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_busType_ownedEventPort-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="DataSubcomponent" name="DataSubcomponent">
      <generalization xmi:id="DataSubcomponent-_generalization.0" general="Data"/>
      <generalization xmi:id="DataSubcomponent-_generalization.1" general="Subcomponent"/>
      <generalization xmi:id="DataSubcomponent-_generalization.2" general="ParameterConnectionEnd"/>
      <generalization xmi:id="DataSubcomponent-_generalization.3" general="PortConnectionEnd"/>
      <generalization xmi:id="DataSubcomponent-_generalization.4" general="AccessConnectionEnd"/>
      <ownedAttribute xmi:id="DataSubcomponent-dataSubcomponentType" name="dataSubcomponentType" type="DataSubcomponentType" subsettedProperty="Subcomponent-subcomponentType" association="A_dataSubcomponent_dataSubcomponentType">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="DataSubcomponent-dataSubcomponentType-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="DataSubcomponent-dataSubcomponentType-_lowerValue"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="DataClassifier" name="DataClassifier" isAbstract="true">
      <generalization xmi:id="DataClassifier-_generalization.0" general="DataSubcomponentType"/>
      <generalization xmi:id="DataClassifier-_generalization.1" general="ComponentClassifier"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="Data" name="Data" isAbstract="true">
      <generalization xmi:id="Data-_generalization.0" general="NamedElement"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="DataType" name="DataType">
      <generalization xmi:id="DataType-_generalization.0" general="DataClassifier"/>
      <generalization xmi:id="DataType-_generalization.1" general="ComponentType"/>
      <generalization xmi:id="DataType-_generalization.2" general="CallContext"/>
      <ownedAttribute xmi:id="DataType-ownedSubprogramAccess" name="ownedSubprogramAccess" type="SubprogramAccess" aggregation="composite" subsettedProperty="ComponentType-ownedFeature" association="A_dataType_ownedSubprogramAccess">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="DataType-ownedSubprogramAccess-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="DataType-ownedSubprogramAccess-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="DataType-ownedDataAccess" name="ownedDataAccess" type="DataAccess" aggregation="composite" subsettedProperty="ComponentType-ownedFeature" association="A_dataType_ownedDataAccess">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="DataType-ownedDataAccess-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="DataType-ownedDataAccess-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="DataType-ownedSubprogramGroupAccess" name="ownedSubprogramGroupAccess" type="SubprogramGroupAccess" aggregation="composite" subsettedProperty="ComponentType-ownedFeature" association="A_dataType_ownedSubprogramGroupAccess">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="DataType-ownedSubprogramGroupAccess-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="DataType-ownedSubprogramGroupAccess-_lowerValue"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="DataImplementation" name="DataImplementation">
      <generalization xmi:id="DataImplementation-_generalization.0" general="DataClassifier"/>
      <generalization xmi:id="DataImplementation-_generalization.1" general="ComponentImplementation"/>
      <ownedAttribute xmi:id="DataImplementation-type" name="type" type="DataType" isDerived="true" redefinedProperty="ComponentImplementation-type" association="A_dataImplementation_dataType">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="DataImplementation-type-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="DataImplementation-type-_lowerValue" value="1"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="DataImplementation-ownedDataSubcomponent" name="ownedDataSubcomponent" type="DataSubcomponent" aggregation="composite" subsettedProperty="ComponentImplementation-ownedSubcomponent" association="A_dataImplementation_ownedDataSubcomponent">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="DataImplementation-ownedDataSubcomponent-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="DataImplementation-ownedDataSubcomponent-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="DataImplementation-ownedSubprogramSubcomponent" name="ownedSubprogramSubcomponent" type="SubprogramSubcomponent" aggregation="composite" subsettedProperty="ComponentImplementation-ownedSubcomponent" association="A_dataImplementation_ownedSubprogramSubcomponent">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="DataImplementation-ownedSubprogramSubcomponent-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="DataImplementation-ownedSubprogramSubcomponent-_lowerValue"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_dataSubcomponent_dataSubcomponentType" name="A_dataSubcomponent_dataSubcomponentType" visibility="private" memberEnd="A_dataSubcomponent_dataSubcomponentType-subcomponent DataSubcomponent-dataSubcomponentType">
      <generalization xmi:id="A_dataSubcomponent_dataSubcomponentType-_generalization.0" general="A_subcomponent_subcomponentType"/>
      <ownedEnd xmi:id="A_dataSubcomponent_dataSubcomponentType-subcomponent" name="subcomponent" type="DataSubcomponent" association="A_dataSubcomponent_dataSubcomponentType">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_dataSubcomponent_dataSubcomponentType-subcomponent-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_dataSubcomponent_dataSubcomponentType-subcomponent-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_dataImplementation_dataType" name="A_dataImplementation_dataType" visibility="private" memberEnd="A_dataImplementation_dataType-implementation DataImplementation-type" isDerived="true">
      <generalization xmi:id="A_dataImplementation_dataType-_generalization.0" general="A_componentImplementation_ComponentType"/>
      <ownedEnd xmi:id="A_dataImplementation_dataType-implementation" name="implementation" type="DataImplementation" association="A_dataImplementation_dataType">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_dataImplementation_dataType-implementation-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_dataImplementation_dataType-implementation-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_dataType_ownedDataAccess" name="A_dataType_ownedDataAccess" visibility="private" memberEnd="A_dataType_ownedDataAccess-owner DataType-ownedDataAccess">
      <generalization xmi:id="A_dataType_ownedDataAccess-_generalization.0" general="A_componentType_ownedFeature"/>
      <ownedEnd xmi:id="A_dataType_ownedDataAccess-owner" name="owner" type="DataType" association="A_dataType_ownedDataAccess">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_dataType_ownedDataAccess-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_dataType_ownedDataAccess-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_dataType_ownedSubprogramAccess" name="A_dataType_ownedSubprogramAccess" visibility="private" memberEnd="A_dataType_ownedSubprogramAccess-owner DataType-ownedSubprogramAccess">
      <generalization xmi:id="A_dataType_ownedSubprogramAccess-_generalization.0" general="A_componentType_ownedFeature"/>
      <ownedEnd xmi:id="A_dataType_ownedSubprogramAccess-owner" name="owner" type="DataType" association="A_dataType_ownedSubprogramAccess">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_dataType_ownedSubprogramAccess-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_dataType_ownedSubprogramAccess-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_dataType_ownedSubprogramGroupAccess" name="A_dataType_ownedSubprogramGroupAccess" visibility="private" memberEnd="A_dataType_ownedSubprogramGroupAccess-owner DataType-ownedSubprogramGroupAccess">
      <generalization xmi:id="A_dataType_ownedSubprogramGroupAccess-_generalization.0" general="A_componentType_ownedFeature"/>
      <ownedEnd xmi:id="A_dataType_ownedSubprogramGroupAccess-owner" name="owner" type="DataType" association="A_dataType_ownedSubprogramGroupAccess">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_dataType_ownedSubprogramGroupAccess-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_dataType_ownedSubprogramGroupAccess-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_dataImplementation_ownedDataSubcomponent" name="A_dataImplementation_ownedDataSubcomponent" visibility="private" memberEnd="A_dataImplementation_ownedDataSubcomponent-owner DataImplementation-ownedDataSubcomponent">
      <generalization xmi:id="A_dataImplementation_ownedDataSubcomponent-_generalization.0" general="A_componentImplementation_ownedSubcomponent"/>
      <ownedEnd xmi:id="A_dataImplementation_ownedDataSubcomponent-owner" name="owner" type="DataImplementation" association="A_dataImplementation_ownedDataSubcomponent">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_dataImplementation_ownedDataSubcomponent-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_dataImplementation_ownedDataSubcomponent-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_dataImplementation_ownedSubprogramSubcomponent" name="A_dataImplementation_ownedSubprogramSubcomponent" visibility="private" memberEnd="A_dataImplementation_ownedSubprogramSubcomponent-owner DataImplementation-ownedSubprogramSubcomponent">
      <generalization xmi:id="A_dataImplementation_ownedSubprogramSubcomponent-_generalization.0" general="A_componentImplementation_ownedSubcomponent"/>
      <ownedEnd xmi:id="A_dataImplementation_ownedSubprogramSubcomponent-owner" name="owner" type="DataImplementation" association="A_dataImplementation_ownedSubprogramSubcomponent">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_dataImplementation_ownedSubprogramSubcomponent-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_dataImplementation_ownedSubprogramSubcomponent-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="DataSubcomponentType" name="DataSubcomponentType" isAbstract="true">
      <generalization xmi:id="DataSubcomponentType-_generalization.0" general="Data"/>
      <generalization xmi:id="DataSubcomponentType-_generalization.1" general="SubcomponentType"/>
      <generalization xmi:id="DataSubcomponentType-_generalization.2" general="FeatureClassifier"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="DataPrototype" name="DataPrototype">
      <generalization xmi:id="DataPrototype-_generalization.0" general="DataSubcomponentType"/>
      <generalization xmi:id="DataPrototype-_generalization.1" general="ComponentPrototype"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="Device" name="Device" isAbstract="true">
      <generalization xmi:id="Device-_generalization.0" general="NamedElement"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="DeviceClassifier" name="DeviceClassifier" isAbstract="true">
      <generalization xmi:id="DeviceClassifier-_generalization.0" general="DeviceSubcomponentType"/>
      <generalization xmi:id="DeviceClassifier-_generalization.1" general="ComponentClassifier"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="DeviceSubcomponent" name="DeviceSubcomponent">
      <generalization xmi:id="DeviceSubcomponent-_generalization.0" general="Device"/>
      <generalization xmi:id="DeviceSubcomponent-_generalization.1" general="Subcomponent"/>
      <ownedAttribute xmi:id="DeviceSubcomponent-deviceSubcomponentType" name="deviceSubcomponentType" type="DeviceSubcomponentType" subsettedProperty="Subcomponent-subcomponentType" association="A_deviceSubcomponent_deviceSubcomponentType">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="DeviceSubcomponent-deviceSubcomponentType-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="DeviceSubcomponent-deviceSubcomponentType-_lowerValue"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="DeviceType" name="DeviceType">
      <generalization xmi:id="DeviceType-_generalization.0" general="DeviceClassifier"/>
      <generalization xmi:id="DeviceType-_generalization.1" general="ComponentType"/>
      <ownedAttribute xmi:id="DeviceType-ownedDataPort" name="ownedDataPort" type="DataPort" aggregation="composite" subsettedProperty="ComponentType-ownedFeature" association="A_deviceType_ownedDataPort">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="DeviceType-ownedDataPort-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="DeviceType-ownedDataPort-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="DeviceType-ownedEventDataPort" name="ownedEventDataPort" type="EventDataPort" aggregation="composite" subsettedProperty="ComponentType-ownedFeature" association="A_deviceType_ownedEventDataPort">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="DeviceType-ownedEventDataPort-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="DeviceType-ownedEventDataPort-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="DeviceType-ownedEventPort" name="ownedEventPort" type="EventPort" aggregation="composite" subsettedProperty="ComponentType-ownedFeature" association="A_deviceType_ownedEventPort">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="DeviceType-ownedEventPort-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="DeviceType-ownedEventPort-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="DeviceType-ownedBusAccess" name="ownedBusAccess" type="BusAccess" aggregation="composite" subsettedProperty="ComponentType-ownedFeature" association="A_deviceType_ownedBusAccess">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="DeviceType-ownedBusAccess-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="DeviceType-ownedBusAccess-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="DeviceType-ownedSubprogramAccess" name="ownedSubprogramAccess" type="SubprogramAccess" aggregation="composite" subsettedProperty="ComponentType-ownedFeature" association="A_deviceType_ownedSubprogramAccess">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="DeviceType-ownedSubprogramAccess-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="DeviceType-ownedSubprogramAccess-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="DeviceType-ownedSubprogramGroupAccess" name="ownedSubprogramGroupAccess" type="SubprogramGroupAccess" aggregation="composite" subsettedProperty="ComponentType-ownedFeature" association="A_deviceType_ownedSubprogramGroupAccess">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="DeviceType-ownedSubprogramGroupAccess-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="DeviceType-ownedSubprogramGroupAccess-_lowerValue"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="DeviceImplementation" name="DeviceImplementation">
      <generalization xmi:id="DeviceImplementation-_generalization.0" general="DeviceClassifier"/>
      <generalization xmi:id="DeviceImplementation-_generalization.1" general="ComponentImplementation"/>
      <ownedAttribute xmi:id="DeviceImplementation-type" name="type" type="DeviceType" isDerived="true" redefinedProperty="ComponentImplementation-type" association="A_deviceImplementation_deviceType">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="DeviceImplementation-type-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="DeviceImplementation-type-_lowerValue" value="1"/>
        <defaultValue xmi:type="uml:LiteralString" xmi:id="DeviceImplementation-type-_defaultValue" value=""/>
      </ownedAttribute>
      <ownedAttribute xmi:id="DeviceImplementation-ownedBusSubcomponent" name="ownedBusSubcomponent" type="BusSubcomponent" aggregation="composite" subsettedProperty="ComponentImplementation-ownedSubcomponent" association="A_deviceImplementation_ownedBusSubcomponent">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="DeviceImplementation-ownedBusSubcomponent-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="DeviceImplementation-ownedBusSubcomponent-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="DeviceImplementation-ownedDataSubcomponent" name="ownedDataSubcomponent" type="DataSubcomponent" aggregation="composite" subsettedProperty="ComponentImplementation-ownedSubcomponent" association="A_deviceImplementation_ownedDataSubcomponent">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="DeviceImplementation-ownedDataSubcomponent-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="DeviceImplementation-ownedDataSubcomponent-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="DeviceImplementation-ownedVirtualBusSubcomponent" name="ownedVirtualBusSubcomponent" type="VirtualBusSubcomponent" aggregation="composite" subsettedProperty="ComponentImplementation-ownedSubcomponent" association="A_3CdeviceImplementation3E_3CvirtualBusSubcomponent3E">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="DeviceImplementation-ownedVirtualBusSubcomponent-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="DeviceImplementation-ownedVirtualBusSubcomponent-_lowerValue"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_deviceImplementation_deviceType" name="A_deviceImplementation_deviceType" visibility="private" memberEnd="A_deviceImplementation_deviceType-implementation DeviceImplementation-type" isDerived="true">
      <generalization xmi:id="A_deviceImplementation_deviceType-_generalization.0" general="A_componentImplementation_ComponentType"/>
      <ownedEnd xmi:id="A_deviceImplementation_deviceType-implementation" name="implementation" type="DeviceImplementation" association="A_deviceImplementation_deviceType">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_deviceImplementation_deviceType-implementation-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_deviceImplementation_deviceType-implementation-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_deviceSubcomponent_deviceSubcomponentType" name="A_deviceSubcomponent_deviceSubcomponentType" visibility="private" memberEnd="A_deviceSubcomponent_deviceSubcomponentType-subcomponent DeviceSubcomponent-deviceSubcomponentType">
      <generalization xmi:id="A_deviceSubcomponent_deviceSubcomponentType-_generalization.0" general="A_subcomponent_subcomponentType"/>
      <ownedEnd xmi:id="A_deviceSubcomponent_deviceSubcomponentType-subcomponent" name="subcomponent" type="DeviceSubcomponent" association="A_deviceSubcomponent_deviceSubcomponentType">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_deviceSubcomponent_deviceSubcomponentType-subcomponent-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_deviceSubcomponent_deviceSubcomponentType-subcomponent-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_deviceType_ownedDataPort" name="A_deviceType_ownedDataPort" visibility="private" memberEnd="A_deviceType_ownedDataPort-owner DeviceType-ownedDataPort">
      <generalization xmi:id="A_deviceType_ownedDataPort-_generalization.0" general="A_componentType_ownedFeature"/>
      <ownedEnd xmi:id="A_deviceType_ownedDataPort-owner" name="owner" type="DeviceType" association="A_deviceType_ownedDataPort">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_deviceType_ownedDataPort-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_deviceType_ownedDataPort-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_deviceType_ownedEventDataPort" name="A_deviceType_ownedEventDataPort" visibility="private" memberEnd="A_deviceType_ownedEventDataPort-owner DeviceType-ownedEventDataPort">
      <generalization xmi:id="A_deviceType_ownedEventDataPort-_generalization.0" general="A_componentType_ownedFeature"/>
      <ownedEnd xmi:id="A_deviceType_ownedEventDataPort-owner" name="owner" type="DeviceType" association="A_deviceType_ownedEventDataPort">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_deviceType_ownedEventDataPort-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_deviceType_ownedEventDataPort-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_deviceType_ownedEventPort" name="A_deviceType_ownedEventPort" visibility="private" memberEnd="A_deviceType_ownedEventPort-owner DeviceType-ownedEventPort">
      <generalization xmi:id="A_deviceType_ownedEventPort-_generalization.0" general="A_componentType_ownedFeature"/>
      <ownedEnd xmi:id="A_deviceType_ownedEventPort-owner" name="owner" type="DeviceType" association="A_deviceType_ownedEventPort">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_deviceType_ownedEventPort-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_deviceType_ownedEventPort-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_deviceType_ownedBusAccess" name="A_deviceType_ownedBusAccess" visibility="private" memberEnd="A_deviceType_ownedBusAccess-owner DeviceType-ownedBusAccess">
      <generalization xmi:id="A_deviceType_ownedBusAccess-_generalization.0" general="A_componentType_ownedFeature"/>
      <ownedEnd xmi:id="A_deviceType_ownedBusAccess-owner" name="owner" type="DeviceType" association="A_deviceType_ownedBusAccess">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_deviceType_ownedBusAccess-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_deviceType_ownedBusAccess-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_deviceType_ownedSubprogramAccess" name="A_deviceType_ownedSubprogramAccess" visibility="private" memberEnd="A_deviceType_ownedSubprogramAccess-owner DeviceType-ownedSubprogramAccess">
      <generalization xmi:id="A_deviceType_ownedSubprogramAccess-_generalization.0" general="A_componentType_ownedFeature"/>
      <ownedEnd xmi:id="A_deviceType_ownedSubprogramAccess-owner" name="owner" type="DeviceType" association="A_deviceType_ownedSubprogramAccess">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_deviceType_ownedSubprogramAccess-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_deviceType_ownedSubprogramAccess-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_deviceType_ownedSubprogramGroupAccess" name="A_deviceType_ownedSubprogramGroupAccess" visibility="private" memberEnd="A_deviceType_ownedSubprogramGroupAccess-owner DeviceType-ownedSubprogramGroupAccess">
      <generalization xmi:id="A_deviceType_ownedSubprogramGroupAccess-_generalization.0" general="A_componentType_ownedFeature"/>
      <ownedEnd xmi:id="A_deviceType_ownedSubprogramGroupAccess-owner" name="owner" type="DeviceType" association="A_deviceType_ownedSubprogramGroupAccess">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_deviceType_ownedSubprogramGroupAccess-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_deviceType_ownedSubprogramGroupAccess-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_deviceImplementation_ownedBusSubcomponent" name="A_deviceImplementation_ownedBusSubcomponent" visibility="private" memberEnd="A_deviceImplementation_ownedBusSubcomponent-owner DeviceImplementation-ownedBusSubcomponent">
      <generalization xmi:id="A_deviceImplementation_ownedBusSubcomponent-_generalization.0" general="A_componentImplementation_ownedSubcomponent"/>
      <ownedEnd xmi:id="A_deviceImplementation_ownedBusSubcomponent-owner" name="owner" type="DeviceImplementation" association="A_deviceImplementation_ownedBusSubcomponent">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_deviceImplementation_ownedBusSubcomponent-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_deviceImplementation_ownedBusSubcomponent-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_deviceImplementation_ownedDataSubcomponent" name="A_deviceImplementation_ownedDataSubcomponent" visibility="private" memberEnd="A_deviceImplementation_ownedDataSubcomponent-owner DeviceImplementation-ownedDataSubcomponent">
      <generalization xmi:id="A_deviceImplementation_ownedDataSubcomponent-_generalization.0" general="A_componentImplementation_ownedSubcomponent"/>
      <ownedEnd xmi:id="A_deviceImplementation_ownedDataSubcomponent-owner" name="owner" type="DeviceImplementation" association="A_deviceImplementation_ownedDataSubcomponent">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_deviceImplementation_ownedDataSubcomponent-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_deviceImplementation_ownedDataSubcomponent-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_3CdeviceImplementation3E_3CvirtualBusSubcomponent3E" name="A_&lt;deviceImplementation>_&lt;virtualBusSubcomponent>" visibility="private" memberEnd="A_3CdeviceImplementation3E_3CvirtualBusSubcomponent3E-owner DeviceImplementation-ownedVirtualBusSubcomponent">
      <generalization xmi:id="A_3CdeviceImplementation3E_3CvirtualBusSubcomponent3E-_generalization.0" general="A_componentImplementation_ownedSubcomponent"/>
      <ownedEnd xmi:id="A_3CdeviceImplementation3E_3CvirtualBusSubcomponent3E-owner" name="owner" type="DeviceImplementation" association="A_3CdeviceImplementation3E_3CvirtualBusSubcomponent3E">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_3CdeviceImplementation3E_3CvirtualBusSubcomponent3E-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_3CdeviceImplementation3E_3CvirtualBusSubcomponent3E-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="DeviceSubcomponentType" name="DeviceSubcomponentType" isAbstract="true">
      <generalization xmi:id="DeviceSubcomponentType-_generalization.0" general="Device"/>
      <generalization xmi:id="DeviceSubcomponentType-_generalization.1" general="SubcomponentType"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="DevicePrototype" name="DevicePrototype">
      <generalization xmi:id="DevicePrototype-_generalization.0" general="DeviceSubcomponentType"/>
      <generalization xmi:id="DevicePrototype-_generalization.1" general="ComponentPrototype"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="Memory" name="Memory" isAbstract="true">
      <generalization xmi:id="Memory-_generalization.0" general="NamedElement"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="MemoryClassifier" name="MemoryClassifier" isAbstract="true">
      <generalization xmi:id="MemoryClassifier-_generalization.0" general="MemorySubcomponentType"/>
      <generalization xmi:id="MemoryClassifier-_generalization.1" general="ComponentClassifier"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="MemoryType" name="MemoryType">
      <generalization xmi:id="MemoryType-_generalization.0" general="MemoryClassifier"/>
      <generalization xmi:id="MemoryType-_generalization.1" general="ComponentType"/>
      <ownedAttribute xmi:id="MemoryType-ownedBusAccess" name="ownedBusAccess" type="BusAccess" aggregation="composite" subsettedProperty="ComponentType-ownedFeature" association="A_memoryType_ownedBusAccess">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="MemoryType-ownedBusAccess-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="MemoryType-ownedBusAccess-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="MemoryType-ownedDataPort" name="ownedDataPort" type="DataPort" aggregation="composite" subsettedProperty="ComponentType-ownedFeature" association="A_memoryType_ownedDataPort">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="MemoryType-ownedDataPort-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="MemoryType-ownedDataPort-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="MemoryType-ownedEventDataPort" name="ownedEventDataPort" type="EventDataPort" aggregation="composite" subsettedProperty="ComponentType-ownedFeature" association="A_memoryType_ownedEventDataPort">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="MemoryType-ownedEventDataPort-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="MemoryType-ownedEventDataPort-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="MemoryType-ownedEventPort" name="ownedEventPort" type="EventPort" aggregation="composite" subsettedProperty="ComponentType-ownedFeature" association="A_memoryType_ownedEventPort">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="MemoryType-ownedEventPort-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="MemoryType-ownedEventPort-_lowerValue"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="MemorySubcomponent" name="MemorySubcomponent">
      <generalization xmi:id="MemorySubcomponent-_generalization.0" general="Memory"/>
      <generalization xmi:id="MemorySubcomponent-_generalization.1" general="Subcomponent"/>
      <ownedAttribute xmi:id="MemorySubcomponent-memorySubcomponentType" name="memorySubcomponentType" type="MemorySubcomponentType" subsettedProperty="Subcomponent-subcomponentType" association="A_memorySubcomponent_memorySubcomponentType">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="MemorySubcomponent-memorySubcomponentType-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="MemorySubcomponent-memorySubcomponentType-_lowerValue"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="MemoryImplementation" name="MemoryImplementation">
      <generalization xmi:id="MemoryImplementation-_generalization.0" general="MemoryClassifier"/>
      <generalization xmi:id="MemoryImplementation-_generalization.1" general="ComponentImplementation"/>
      <ownedAttribute xmi:id="MemoryImplementation-type" name="type" type="MemoryType" isDerived="true" redefinedProperty="ComponentImplementation-type" association="A_memoryImplementation_memoryType">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="MemoryImplementation-type-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="MemoryImplementation-type-_lowerValue" value="1"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="MemoryImplementation-ownedBusSubcomponent" name="ownedBusSubcomponent" type="BusSubcomponent" aggregation="composite" subsettedProperty="ComponentImplementation-ownedSubcomponent" association="A_memoryImplementation_ownedBusSubcomponent">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="MemoryImplementation-ownedBusSubcomponent-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="MemoryImplementation-ownedBusSubcomponent-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="MemoryImplementation-ownedMemorySubcomponent" name="ownedMemorySubcomponent" type="MemorySubcomponent" aggregation="composite" subsettedProperty="ComponentImplementation-ownedSubcomponent" association="A_memoryImplementation_ownedMemorySubcomponent">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="MemoryImplementation-ownedMemorySubcomponent-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="MemoryImplementation-ownedMemorySubcomponent-_lowerValue"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_memoryImplementation_memoryType" name="A_memoryImplementation_memoryType" visibility="private" memberEnd="A_memoryImplementation_memoryType-implementation MemoryImplementation-type" isDerived="true">
      <generalization xmi:id="A_memoryImplementation_memoryType-_generalization.0" general="A_componentImplementation_ComponentType"/>
      <ownedEnd xmi:id="A_memoryImplementation_memoryType-implementation" name="implementation" type="MemoryImplementation" association="A_memoryImplementation_memoryType">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_memoryImplementation_memoryType-implementation-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_memoryImplementation_memoryType-implementation-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_memorySubcomponent_memorySubcomponentType" name="A_memorySubcomponent_memorySubcomponentType" visibility="private" memberEnd="A_memorySubcomponent_memorySubcomponentType-subcomponent MemorySubcomponent-memorySubcomponentType">
      <generalization xmi:id="A_memorySubcomponent_memorySubcomponentType-_generalization.0" general="A_subcomponent_subcomponentType"/>
      <ownedEnd xmi:id="A_memorySubcomponent_memorySubcomponentType-subcomponent" name="subcomponent" type="MemorySubcomponent" association="A_memorySubcomponent_memorySubcomponentType">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_memorySubcomponent_memorySubcomponentType-subcomponent-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_memorySubcomponent_memorySubcomponentType-subcomponent-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_memoryImplementation_ownedBusSubcomponent" name="A_memoryImplementation_ownedBusSubcomponent" visibility="private" memberEnd="A_memoryImplementation_ownedBusSubcomponent-owner MemoryImplementation-ownedBusSubcomponent">
      <generalization xmi:id="A_memoryImplementation_ownedBusSubcomponent-_generalization.0" general="A_componentImplementation_ownedSubcomponent"/>
      <ownedEnd xmi:id="A_memoryImplementation_ownedBusSubcomponent-owner" name="owner" type="MemoryImplementation" association="A_memoryImplementation_ownedBusSubcomponent">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_memoryImplementation_ownedBusSubcomponent-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_memoryImplementation_ownedBusSubcomponent-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_memoryImplementation_ownedMemorySubcomponent" name="A_memoryImplementation_ownedMemorySubcomponent" visibility="private" memberEnd="A_memoryImplementation_ownedMemorySubcomponent-owner MemoryImplementation-ownedMemorySubcomponent">
      <generalization xmi:id="A_memoryImplementation_ownedMemorySubcomponent-_generalization.0" general="A_componentImplementation_ownedSubcomponent"/>
      <ownedEnd xmi:id="A_memoryImplementation_ownedMemorySubcomponent-owner" name="owner" type="MemoryImplementation" association="A_memoryImplementation_ownedMemorySubcomponent">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_memoryImplementation_ownedMemorySubcomponent-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_memoryImplementation_ownedMemorySubcomponent-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_memoryType_ownedBusAccess" name="A_memoryType_ownedBusAccess" visibility="private" memberEnd="A_memoryType_ownedBusAccess-owner MemoryType-ownedBusAccess">
      <generalization xmi:id="A_memoryType_ownedBusAccess-_generalization.0" general="A_componentType_ownedFeature"/>
      <ownedEnd xmi:id="A_memoryType_ownedBusAccess-owner" name="owner" type="MemoryType" association="A_memoryType_ownedBusAccess">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_memoryType_ownedBusAccess-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_memoryType_ownedBusAccess-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="MemoryPrototype" name="MemoryPrototype">
      <generalization xmi:id="MemoryPrototype-_generalization.0" general="MemorySubcomponentType"/>
      <generalization xmi:id="MemoryPrototype-_generalization.1" general="ComponentPrototype"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="MemorySubcomponentType" name="MemorySubcomponentType" isAbstract="true">
      <generalization xmi:id="MemorySubcomponentType-_generalization.0" general="Memory"/>
      <generalization xmi:id="MemorySubcomponentType-_generalization.1" general="SubcomponentType"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_memoryType_ownedDataPort" name="A_memoryType_ownedDataPort" visibility="private" memberEnd="A_memoryType_ownedDataPort-owner MemoryType-ownedDataPort">
      <generalization xmi:id="A_memoryType_ownedDataPort-_generalization.0" general="A_componentType_ownedFeature"/>
      <ownedEnd xmi:id="A_memoryType_ownedDataPort-owner" name="owner" type="MemoryType" association="A_memoryType_ownedDataPort">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_memoryType_ownedDataPort-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_memoryType_ownedDataPort-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_memoryType_ownedEventDataPort" name="A_memoryType_ownedEventDataPort" visibility="private" memberEnd="A_memoryType_ownedEventDataPort-owner MemoryType-ownedEventDataPort">
      <generalization xmi:id="A_memoryType_ownedEventDataPort-_generalization.0" general="A_componentType_ownedFeature"/>
      <ownedEnd xmi:id="A_memoryType_ownedEventDataPort-owner" name="owner" type="MemoryType" association="A_memoryType_ownedEventDataPort">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_memoryType_ownedEventDataPort-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_memoryType_ownedEventDataPort-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_memoryType_ownedEventPort" name="A_memoryType_ownedEventPort" visibility="private" memberEnd="A_memoryType_ownedEventPort-owner MemoryType-ownedEventPort">
      <generalization xmi:id="A_memoryType_ownedEventPort-_generalization.0" general="A_componentType_ownedFeature"/>
      <ownedEnd xmi:id="A_memoryType_ownedEventPort-owner" name="owner" type="MemoryType" association="A_memoryType_ownedEventPort">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_memoryType_ownedEventPort-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_memoryType_ownedEventPort-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="Subprogram" name="Subprogram" isAbstract="true">
      <generalization xmi:id="Subprogram-_generalization.0" general="CalledSubprogram"/>
      <generalization xmi:id="Subprogram-_generalization.1" general="NamedElement"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="SubprogramClassifier" name="SubprogramClassifier" isAbstract="true">
      <generalization xmi:id="SubprogramClassifier-_generalization.0" general="SubprogramSubcomponentType"/>
      <generalization xmi:id="SubprogramClassifier-_generalization.1" general="ComponentClassifier"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="SubprogramSubcomponent" name="SubprogramSubcomponent">
      <generalization xmi:id="SubprogramSubcomponent-_generalization.0" general="Subprogram"/>
      <generalization xmi:id="SubprogramSubcomponent-_generalization.1" general="Subcomponent"/>
      <generalization xmi:id="SubprogramSubcomponent-_generalization.2" general="AccessConnectionEnd"/>
      <ownedAttribute xmi:id="SubprogramSubcomponent-subprogramSubcomponentType" name="subprogramSubcomponentType" type="SubprogramSubcomponentType" subsettedProperty="Subcomponent-subcomponentType" association="A_subprogramSubcomponent_subprogramSubcomponentType">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="SubprogramSubcomponent-subprogramSubcomponentType-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="SubprogramSubcomponent-subprogramSubcomponentType-_lowerValue"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="SubprogramType" name="SubprogramType">
      <generalization xmi:id="SubprogramType-_generalization.0" general="CallContext"/>
      <generalization xmi:id="SubprogramType-_generalization.1" general="SubprogramClassifier"/>
      <generalization xmi:id="SubprogramType-_generalization.2" general="ComponentType"/>
      <ownedAttribute xmi:id="SubprogramType-ownedEventDataPort" name="ownedEventDataPort" type="EventDataPort" aggregation="composite" subsettedProperty="ComponentType-ownedFeature" association="A_subprogramType_ownedEventDataPort">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="SubprogramType-ownedEventDataPort-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="SubprogramType-ownedEventDataPort-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="SubprogramType-ownedEventPort" name="ownedEventPort" type="EventPort" aggregation="composite" subsettedProperty="ComponentType-ownedFeature" association="A_subprogramType_ownedEventPort">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="SubprogramType-ownedEventPort-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="SubprogramType-ownedEventPort-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="SubprogramType-ownedParameter" name="ownedParameter" type="Parameter" aggregation="composite" subsettedProperty="ComponentType-ownedFeature" association="A_subprogramType_ownedParameter">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="SubprogramType-ownedParameter-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="SubprogramType-ownedParameter-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="SubprogramType-ownedDataAccess" name="ownedDataAccess" type="DataAccess" aggregation="composite" subsettedProperty="ComponentType-ownedFeature" association="A_subprogramType_ownedDataAccess">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="SubprogramType-ownedDataAccess-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="SubprogramType-ownedDataAccess-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="SubprogramType-ownedSubprogramAccess" name="ownedSubprogramAccess" type="SubprogramAccess" aggregation="composite" subsettedProperty="ComponentType-ownedFeature" association="A_subprogramType_ownedSubprogramAccess">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="SubprogramType-ownedSubprogramAccess-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="SubprogramType-ownedSubprogramAccess-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="SubprogramType-ownedSubprogramGroupAccess" name="ownedSubprogramGroupAccess" type="SubprogramGroupAccess" aggregation="composite" subsettedProperty="ComponentType-ownedFeature" association="A_subprogramType_ownedSubprogramGroupAccess">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="SubprogramType-ownedSubprogramGroupAccess-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="SubprogramType-ownedSubprogramGroupAccess-_lowerValue"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="SubprogramImplementation" name="SubprogramImplementation">
      <generalization xmi:id="SubprogramImplementation-_generalization.0" general="SubprogramClassifier"/>
      <generalization xmi:id="SubprogramImplementation-_generalization.1" general="BehavioredImplementation"/>
      <ownedAttribute xmi:id="SubprogramImplementation-type" name="type" type="SubprogramType" isDerived="true" redefinedProperty="ComponentImplementation-type" association="A_subprogramImplementation_subprogramType">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="SubprogramImplementation-type-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="SubprogramImplementation-type-_lowerValue" value="1"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="SubprogramImplementation-ownedDataSubcomponent" name="ownedDataSubcomponent" type="DataSubcomponent" aggregation="composite" subsettedProperty="ComponentImplementation-ownedSubcomponent" association="A_subprogramImplementation_ownedDataSubcomponent">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="SubprogramImplementation-ownedDataSubcomponent-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="SubprogramImplementation-ownedDataSubcomponent-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="SubprogramImplementation-ownedSubprogramSubcomponent" name="ownedSubprogramSubcomponent" type="SubprogramSubcomponent" aggregation="composite" subsettedProperty="ComponentImplementation-ownedSubcomponent" association="A_subprogramImplementation_owbedSubprogramSubcomponent">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="SubprogramImplementation-ownedSubprogramSubcomponent-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="SubprogramImplementation-ownedSubprogramSubcomponent-_lowerValue"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_subprogramSubcomponent_subprogramSubcomponentType" name="A_subprogramSubcomponent_subprogramSubcomponentType" visibility="private" memberEnd="A_subprogramSubcomponent_subprogramSubcomponentType-subcomponent SubprogramSubcomponent-subprogramSubcomponentType">
      <generalization xmi:id="A_subprogramSubcomponent_subprogramSubcomponentType-_generalization.0" general="A_subcomponent_subcomponentType"/>
      <ownedEnd xmi:id="A_subprogramSubcomponent_subprogramSubcomponentType-subcomponent" name="subcomponent" type="SubprogramSubcomponent" association="A_subprogramSubcomponent_subprogramSubcomponentType">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_subprogramSubcomponent_subprogramSubcomponentType-subcomponent-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_subprogramSubcomponent_subprogramSubcomponentType-subcomponent-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_subprogramImplementation_subprogramType" name="A_subprogramImplementation_subprogramType" visibility="private" memberEnd="A_subprogramImplementation_subprogramType-implementation SubprogramImplementation-type" isDerived="true">
      <generalization xmi:id="A_subprogramImplementation_subprogramType-_generalization.0" general="A_componentImplementation_ComponentType"/>
      <ownedEnd xmi:id="A_subprogramImplementation_subprogramType-implementation" name="implementation" type="SubprogramImplementation" association="A_subprogramImplementation_subprogramType">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_subprogramImplementation_subprogramType-implementation-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_subprogramImplementation_subprogramType-implementation-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_subprogramImplementation_ownedDataSubcomponent" name="A_subprogramImplementation_ownedDataSubcomponent" visibility="private" memberEnd="A_subprogramImplementation_ownedDataSubcomponent-owner SubprogramImplementation-ownedDataSubcomponent">
      <generalization xmi:id="A_subprogramImplementation_ownedDataSubcomponent-_generalization.0" general="A_componentImplementation_ownedSubcomponent"/>
      <ownedEnd xmi:id="A_subprogramImplementation_ownedDataSubcomponent-owner" name="owner" type="SubprogramImplementation" association="A_subprogramImplementation_ownedDataSubcomponent">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_subprogramImplementation_ownedDataSubcomponent-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_subprogramImplementation_ownedDataSubcomponent-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_subprogramType_ownedEventDataPort" name="A_subprogramType_ownedEventDataPort" visibility="private" memberEnd="A_subprogramType_ownedEventDataPort-owner SubprogramType-ownedEventDataPort">
      <generalization xmi:id="A_subprogramType_ownedEventDataPort-_generalization.0" general="A_componentType_ownedFeature"/>
      <ownedEnd xmi:id="A_subprogramType_ownedEventDataPort-owner" name="owner" type="SubprogramType" association="A_subprogramType_ownedEventDataPort">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_subprogramType_ownedEventDataPort-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_subprogramType_ownedEventDataPort-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_subprogramType_ownedEventPort" name="A_subprogramType_ownedEventPort" visibility="private" memberEnd="A_subprogramType_ownedEventPort-owner SubprogramType-ownedEventPort">
      <generalization xmi:id="A_subprogramType_ownedEventPort-_generalization.0" general="A_componentType_ownedFeature"/>
      <ownedEnd xmi:id="A_subprogramType_ownedEventPort-owner" name="owner" type="SubprogramType" association="A_subprogramType_ownedEventPort">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_subprogramType_ownedEventPort-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_subprogramType_ownedEventPort-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_subprogramType_ownedParameter" name="A_subprogramType_ownedParameter" visibility="private" memberEnd="A_subprogramType_ownedParameter-owner SubprogramType-ownedParameter">
      <generalization xmi:id="A_subprogramType_ownedParameter-_generalization.0" general="A_componentType_ownedFeature"/>
      <ownedEnd xmi:id="A_subprogramType_ownedParameter-owner" name="owner" type="SubprogramType" association="A_subprogramType_ownedParameter">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_subprogramType_ownedParameter-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_subprogramType_ownedParameter-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_subprogramType_ownedDataAccess" name="A_subprogramType_ownedDataAccess" visibility="private" memberEnd="A_subprogramType_ownedDataAccess-owner SubprogramType-ownedDataAccess">
      <generalization xmi:id="A_subprogramType_ownedDataAccess-_generalization.0" general="A_componentType_ownedFeature"/>
      <ownedEnd xmi:id="A_subprogramType_ownedDataAccess-owner" name="owner" type="SubprogramType" association="A_subprogramType_ownedDataAccess">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_subprogramType_ownedDataAccess-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_subprogramType_ownedDataAccess-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_subprogramType_ownedSubprogramAccess" name="A_subprogramType_ownedSubprogramAccess" visibility="private" memberEnd="A_subprogramType_ownedSubprogramAccess-owner SubprogramType-ownedSubprogramAccess">
      <generalization xmi:id="A_subprogramType_ownedSubprogramAccess-_generalization.0" general="A_componentType_ownedFeature"/>
      <ownedEnd xmi:id="A_subprogramType_ownedSubprogramAccess-owner" name="owner" type="SubprogramType" association="A_subprogramType_ownedSubprogramAccess">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_subprogramType_ownedSubprogramAccess-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_subprogramType_ownedSubprogramAccess-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_subprogramType_ownedSubprogramGroupAccess" name="A_subprogramType_ownedSubprogramGroupAccess" visibility="private" memberEnd="A_subprogramType_ownedSubprogramGroupAccess-owner SubprogramType-ownedSubprogramGroupAccess">
      <generalization xmi:id="A_subprogramType_ownedSubprogramGroupAccess-_generalization.0" general="A_componentType_ownedFeature"/>
      <ownedEnd xmi:id="A_subprogramType_ownedSubprogramGroupAccess-owner" name="owner" type="SubprogramType" association="A_subprogramType_ownedSubprogramGroupAccess">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_subprogramType_ownedSubprogramGroupAccess-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_subprogramType_ownedSubprogramGroupAccess-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="SubprogramSubcomponentType" name="SubprogramSubcomponentType" isAbstract="true">
      <generalization xmi:id="SubprogramSubcomponentType-_generalization.0" general="Subprogram"/>
      <generalization xmi:id="SubprogramSubcomponentType-_generalization.1" general="SubcomponentType"/>
      <generalization xmi:id="SubprogramSubcomponentType-_generalization.2" general="FeatureClassifier"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="SubprogramPrototype" name="SubprogramPrototype">
      <generalization xmi:id="SubprogramPrototype-_generalization.0" general="SubprogramSubcomponentType"/>
      <generalization xmi:id="SubprogramPrototype-_generalization.1" general="ComponentPrototype"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_subprogramImplementation_owbedSubprogramSubcomponent" name="A_subprogramImplementation_owbedSubprogramSubcomponent" visibility="private" memberEnd="A_subprogramImplementation_owbedSubprogramSubcomponent-owner SubprogramImplementation-ownedSubprogramSubcomponent">
      <generalization xmi:id="A_subprogramImplementation_owbedSubprogramSubcomponent-_generalization.0" general="A_componentImplementation_ownedSubcomponent"/>
      <ownedEnd xmi:id="A_subprogramImplementation_owbedSubprogramSubcomponent-owner" name="owner" type="SubprogramImplementation" association="A_subprogramImplementation_owbedSubprogramSubcomponent">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_subprogramImplementation_owbedSubprogramSubcomponent-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_subprogramImplementation_owbedSubprogramSubcomponent-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="SubprogramGroup" name="SubprogramGroup" isAbstract="true">
      <generalization xmi:id="SubprogramGroup-_generalization.0" general="NamedElement"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="SubprogramGroupClassifier" name="SubprogramGroupClassifier" isAbstract="true">
      <generalization xmi:id="SubprogramGroupClassifier-_generalization.0" general="SubprogramGroupSubcomponentType"/>
      <generalization xmi:id="SubprogramGroupClassifier-_generalization.1" general="ComponentClassifier"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="SubprogramGroupType" name="SubprogramGroupType">
      <generalization xmi:id="SubprogramGroupType-_generalization.0" general="SubprogramGroupClassifier"/>
      <generalization xmi:id="SubprogramGroupType-_generalization.1" general="ComponentType"/>
      <generalization xmi:id="SubprogramGroupType-_generalization.2" general="CallContext"/>
      <ownedAttribute xmi:id="SubprogramGroupType-ownedSubprogramAccess" name="ownedSubprogramAccess" type="SubprogramAccess" aggregation="composite" subsettedProperty="ComponentType-ownedFeature" association="A_subprogramGroupType_ownedSubprogramAccess">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="SubprogramGroupType-ownedSubprogramAccess-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="SubprogramGroupType-ownedSubprogramAccess-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="SubprogramGroupType-ownedSubprogramGroupAccess" name="ownedSubprogramGroupAccess" type="SubprogramGroupAccess" aggregation="composite" subsettedProperty="ComponentType-ownedFeature" association="A_subprogramGroupType_ownedSubprogramGroupAccess">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="SubprogramGroupType-ownedSubprogramGroupAccess-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="SubprogramGroupType-ownedSubprogramGroupAccess-_lowerValue"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="SubprogramGroupSubcomponent" name="SubprogramGroupSubcomponent">
      <generalization xmi:id="SubprogramGroupSubcomponent-_generalization.0" general="SubprogramGroup"/>
      <generalization xmi:id="SubprogramGroupSubcomponent-_generalization.1" general="Subcomponent"/>
      <generalization xmi:id="SubprogramGroupSubcomponent-_generalization.2" general="CallContext"/>
      <generalization xmi:id="SubprogramGroupSubcomponent-_generalization.3" general="AccessConnectionEnd"/>
      <ownedAttribute xmi:id="SubprogramGroupSubcomponent-subprogramGroupSubcomponentType" name="subprogramGroupSubcomponentType" type="SubprogramGroupSubcomponentType" subsettedProperty="Subcomponent-subcomponentType" association="A_subprogramGroupSubcomponent_subprogramSubcomponentType">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="SubprogramGroupSubcomponent-subprogramGroupSubcomponentType-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="SubprogramGroupSubcomponent-subprogramGroupSubcomponentType-_lowerValue"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="SubprogramGroupImplementation" name="SubprogramGroupImplementation">
      <generalization xmi:id="SubprogramGroupImplementation-_generalization.0" general="SubprogramGroupClassifier"/>
      <generalization xmi:id="SubprogramGroupImplementation-_generalization.1" general="ComponentImplementation"/>
      <ownedAttribute xmi:id="SubprogramGroupImplementation-type" name="type" type="SubprogramGroupType" isDerived="true" redefinedProperty="ComponentImplementation-type" association="A_subprogramGroupImplementation_subprogramGroupType">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="SubprogramGroupImplementation-type-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="SubprogramGroupImplementation-type-_lowerValue" value="1"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="SubprogramGroupImplementation-ownedSubprogramSubcomponent" name="ownedSubprogramSubcomponent" type="SubprogramSubcomponent" aggregation="composite" subsettedProperty="ComponentImplementation-ownedSubcomponent" association="A_subprogramGroupImplementation_ownedSubprogramSubcomponent">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="SubprogramGroupImplementation-ownedSubprogramSubcomponent-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="SubprogramGroupImplementation-ownedSubprogramSubcomponent-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="SubprogramGroupImplementation-ownedSubprogramGroupSubcomponent" name="ownedSubprogramGroupSubcomponent" type="SubprogramGroupSubcomponent" aggregation="composite" subsettedProperty="ComponentImplementation-ownedSubcomponent" association="A_subprogramGroupImplementation_ownedSubprogramGroupSubcomponent">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="SubprogramGroupImplementation-ownedSubprogramGroupSubcomponent-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="SubprogramGroupImplementation-ownedSubprogramGroupSubcomponent-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="SubprogramGroupImplementation-ownedDataSubcomponent" name="ownedDataSubcomponent" type="DataSubcomponent" aggregation="composite" subsettedProperty="ComponentImplementation-ownedSubcomponent" association="A_subprogramGroupImplementation_ownedDataSubcomponent">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="SubprogramGroupImplementation-ownedDataSubcomponent-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="SubprogramGroupImplementation-ownedDataSubcomponent-_lowerValue"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_subprogramGroupImplementation_subprogramGroupType" name="A_subprogramGroupImplementation_subprogramGroupType" visibility="private" memberEnd="A_subprogramGroupImplementation_subprogramGroupType-implementation SubprogramGroupImplementation-type" isDerived="true">
      <generalization xmi:id="A_subprogramGroupImplementation_subprogramGroupType-_generalization.0" general="A_componentImplementation_ComponentType"/>
      <ownedEnd xmi:id="A_subprogramGroupImplementation_subprogramGroupType-implementation" name="implementation" type="SubprogramGroupImplementation" association="A_subprogramGroupImplementation_subprogramGroupType">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_subprogramGroupImplementation_subprogramGroupType-implementation-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_subprogramGroupImplementation_subprogramGroupType-implementation-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_subprogramGroupSubcomponent_subprogramSubcomponentType" name="A_subprogramGroupSubcomponent_subprogramSubcomponentType" visibility="private" memberEnd="A_subprogramGroupSubcomponent_subprogramSubcomponentType-subcomponent SubprogramGroupSubcomponent-subprogramGroupSubcomponentType">
      <generalization xmi:id="A_subprogramGroupSubcomponent_subprogramSubcomponentType-_generalization.0" general="A_subcomponent_subcomponentType"/>
      <ownedEnd xmi:id="A_subprogramGroupSubcomponent_subprogramSubcomponentType-subcomponent" name="subcomponent" type="SubprogramGroupSubcomponent" association="A_subprogramGroupSubcomponent_subprogramSubcomponentType">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_subprogramGroupSubcomponent_subprogramSubcomponentType-subcomponent-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_subprogramGroupSubcomponent_subprogramSubcomponentType-subcomponent-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_subprogramGroupImplementation_ownedSubprogramSubcomponent" name="A_subprogramGroupImplementation_ownedSubprogramSubcomponent" visibility="private" memberEnd="A_subprogramGroupImplementation_ownedSubprogramSubcomponent-owner SubprogramGroupImplementation-ownedSubprogramSubcomponent">
      <generalization xmi:id="A_subprogramGroupImplementation_ownedSubprogramSubcomponent-_generalization.0" general="A_componentImplementation_ownedSubcomponent"/>
      <ownedEnd xmi:id="A_subprogramGroupImplementation_ownedSubprogramSubcomponent-owner" name="owner" type="SubprogramGroupImplementation" association="A_subprogramGroupImplementation_ownedSubprogramSubcomponent">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_subprogramGroupImplementation_ownedSubprogramSubcomponent-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_subprogramGroupImplementation_ownedSubprogramSubcomponent-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_subprogramGroupType_ownedSubprogramAccess" name="A_subprogramGroupType_ownedSubprogramAccess" visibility="private" memberEnd="A_subprogramGroupType_ownedSubprogramAccess-owner SubprogramGroupType-ownedSubprogramAccess">
      <generalization xmi:id="A_subprogramGroupType_ownedSubprogramAccess-_generalization.0" general="A_componentType_ownedFeature"/>
      <ownedEnd xmi:id="A_subprogramGroupType_ownedSubprogramAccess-owner" name="owner" type="SubprogramGroupType" association="A_subprogramGroupType_ownedSubprogramAccess">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_subprogramGroupType_ownedSubprogramAccess-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_subprogramGroupType_ownedSubprogramAccess-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_subprogramGroupType_ownedSubprogramGroupAccess" name="A_subprogramGroupType_ownedSubprogramGroupAccess" visibility="private" memberEnd="A_subprogramGroupType_ownedSubprogramGroupAccess-owner SubprogramGroupType-ownedSubprogramGroupAccess">
      <generalization xmi:id="A_subprogramGroupType_ownedSubprogramGroupAccess-_generalization.0" general="A_componentType_ownedFeature"/>
      <ownedEnd xmi:id="A_subprogramGroupType_ownedSubprogramGroupAccess-owner" name="owner" type="SubprogramGroupType" association="A_subprogramGroupType_ownedSubprogramGroupAccess">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_subprogramGroupType_ownedSubprogramGroupAccess-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_subprogramGroupType_ownedSubprogramGroupAccess-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_subprogramGroupImplementation_ownedSubprogramGroupSubcomponent" name="A_subprogramGroupImplementation_ownedSubprogramGroupSubcomponent" visibility="private" memberEnd="A_subprogramGroupImplementation_ownedSubprogramGroupSubcomponent-owner SubprogramGroupImplementation-ownedSubprogramGroupSubcomponent">
      <generalization xmi:id="A_subprogramGroupImplementation_ownedSubprogramGroupSubcomponent-_generalization.0" general="A_componentImplementation_ownedSubcomponent"/>
      <ownedEnd xmi:id="A_subprogramGroupImplementation_ownedSubprogramGroupSubcomponent-owner" name="owner" type="SubprogramGroupImplementation" association="A_subprogramGroupImplementation_ownedSubprogramGroupSubcomponent">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_subprogramGroupImplementation_ownedSubprogramGroupSubcomponent-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_subprogramGroupImplementation_ownedSubprogramGroupSubcomponent-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="SubprogramGroupSubcomponentType" name="SubprogramGroupSubcomponentType" isAbstract="true">
      <generalization xmi:id="SubprogramGroupSubcomponentType-_generalization.0" general="SubprogramGroup"/>
      <generalization xmi:id="SubprogramGroupSubcomponentType-_generalization.1" general="SubcomponentType"/>
      <generalization xmi:id="SubprogramGroupSubcomponentType-_generalization.2" general="FeatureClassifier"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="SubprogramGroupPrototype" name="SubprogramGroupPrototype">
      <generalization xmi:id="SubprogramGroupPrototype-_generalization.0" general="SubprogramGroupSubcomponentType"/>
      <generalization xmi:id="SubprogramGroupPrototype-_generalization.1" general="ComponentPrototype"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_subprogramGroupImplementation_ownedDataSubcomponent" name="A_subprogramGroupImplementation_ownedDataSubcomponent" visibility="private" memberEnd="A_subprogramGroupImplementation_ownedDataSubcomponent-owner SubprogramGroupImplementation-ownedDataSubcomponent">
      <generalization xmi:id="A_subprogramGroupImplementation_ownedDataSubcomponent-_generalization.0" general="A_componentImplementation_ownedSubcomponent"/>
      <ownedEnd xmi:id="A_subprogramGroupImplementation_ownedDataSubcomponent-owner" name="owner" type="SubprogramGroupImplementation" association="A_subprogramGroupImplementation_ownedDataSubcomponent">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_subprogramGroupImplementation_ownedDataSubcomponent-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_subprogramGroupImplementation_ownedDataSubcomponent-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="System" name="System" isAbstract="true">
      <generalization xmi:id="System-_generalization.0" general="NamedElement"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="SystemClassifier" name="SystemClassifier" isAbstract="true">
      <generalization xmi:id="SystemClassifier-_generalization.0" general="SystemSubcomponentType"/>
      <generalization xmi:id="SystemClassifier-_generalization.1" general="ComponentClassifier"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="SystemType" name="SystemType">
      <generalization xmi:id="SystemType-_generalization.0" general="SystemClassifier"/>
      <generalization xmi:id="SystemType-_generalization.1" general="ComponentType"/>
      <ownedAttribute xmi:id="SystemType-ownedBusAccess" name="ownedBusAccess" type="BusAccess" aggregation="composite" subsettedProperty="ComponentType-ownedFeature" association="A_systemType_ownedBusAccess">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="SystemType-ownedBusAccess-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="SystemType-ownedBusAccess-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="SystemType-ownedDataAccess" name="ownedDataAccess" type="DataAccess" aggregation="composite" subsettedProperty="ComponentType-ownedFeature" association="A_systemType_ownedDataAccess">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="SystemType-ownedDataAccess-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="SystemType-ownedDataAccess-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="SystemType-ownedDataPort" name="ownedDataPort" type="DataPort" aggregation="composite" subsettedProperty="ComponentType-ownedFeature" association="A_systemType_ownedDataPort">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="SystemType-ownedDataPort-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="SystemType-ownedDataPort-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="SystemType-ownedSubprogramGroupAccess" name="ownedSubprogramGroupAccess" type="SubprogramGroupAccess" aggregation="composite" subsettedProperty="ComponentType-ownedFeature" association="A_systemType_ownedSubprogramGroupAccess">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="SystemType-ownedSubprogramGroupAccess-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="SystemType-ownedSubprogramGroupAccess-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="SystemType-ownedSubprogramAccess" name="ownedSubprogramAccess" type="SubprogramAccess" aggregation="composite" subsettedProperty="ComponentType-ownedFeature" association="A_systemType_ownedSubprogramAccess">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="SystemType-ownedSubprogramAccess-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="SystemType-ownedSubprogramAccess-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="SystemType-ownedEventPort" name="ownedEventPort" type="EventPort" aggregation="composite" subsettedProperty="ComponentType-ownedFeature" association="A_systemType_ownedEventPort">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="SystemType-ownedEventPort-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="SystemType-ownedEventPort-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="SystemType-ownedEventDataPort" name="ownedEventDataPort" type="EventDataPort" aggregation="composite" subsettedProperty="ComponentType-ownedFeature" association="A_systemType_ownedEventDataPort">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="SystemType-ownedEventDataPort-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="SystemType-ownedEventDataPort-_lowerValue"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="SystemSubcomponent" name="SystemSubcomponent">
      <generalization xmi:id="SystemSubcomponent-_generalization.0" general="System"/>
      <generalization xmi:id="SystemSubcomponent-_generalization.1" general="Subcomponent"/>
      <ownedAttribute xmi:id="SystemSubcomponent-systemSubcomponentType" name="systemSubcomponentType" type="SystemSubcomponentType" subsettedProperty="Subcomponent-subcomponentType" association="A_systemSubcomponent_systemSubcomponentType">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="SystemSubcomponent-systemSubcomponentType-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="SystemSubcomponent-systemSubcomponentType-_lowerValue"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="SystemImplementation" name="SystemImplementation">
      <generalization xmi:id="SystemImplementation-_generalization.0" general="SystemClassifier"/>
      <generalization xmi:id="SystemImplementation-_generalization.1" general="ComponentImplementation"/>
      <ownedAttribute xmi:id="SystemImplementation-type" name="type" type="SystemType" isDerived="true" redefinedProperty="ComponentImplementation-type" association="A_systemImplementation_systemType">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="SystemImplementation-type-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="SystemImplementation-type-_lowerValue" value="1"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="SystemImplementation-ownedBusSubcomponent" name="ownedBusSubcomponent" type="BusSubcomponent" aggregation="composite" subsettedProperty="ComponentImplementation-ownedSubcomponent" association="A_systemImplementation_ownedBusSubcomponent">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="SystemImplementation-ownedBusSubcomponent-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="SystemImplementation-ownedBusSubcomponent-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="SystemImplementation-ownedDataSubcomponent" name="ownedDataSubcomponent" type="DataSubcomponent" aggregation="composite" subsettedProperty="ComponentImplementation-ownedSubcomponent" association="A_systemImplementation_ownedDataSubcomponent">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="SystemImplementation-ownedDataSubcomponent-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="SystemImplementation-ownedDataSubcomponent-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="SystemImplementation-ownedDeviceSubcomponent" name="ownedDeviceSubcomponent" type="DeviceSubcomponent" aggregation="composite" subsettedProperty="ComponentImplementation-ownedSubcomponent" association="A_systemImplementation_ownedDeviceSubcomponent">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="SystemImplementation-ownedDeviceSubcomponent-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="SystemImplementation-ownedDeviceSubcomponent-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="SystemImplementation-ownedMemorySubcomponent" name="ownedMemorySubcomponent" type="MemorySubcomponent" aggregation="composite" subsettedProperty="ComponentImplementation-ownedSubcomponent" association="A_systemImplementation_ownedMemorySubcomponent">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="SystemImplementation-ownedMemorySubcomponent-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="SystemImplementation-ownedMemorySubcomponent-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="SystemImplementation-ownedProcessSubcomponent" name="ownedProcessSubcomponent" type="ProcessSubcomponent" aggregation="composite" subsettedProperty="ComponentImplementation-ownedSubcomponent" association="A_systemImplementation_ownedProcessSubcomponent">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="SystemImplementation-ownedProcessSubcomponent-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="SystemImplementation-ownedProcessSubcomponent-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="SystemImplementation-ownedProcessorSubcomponent" name="ownedProcessorSubcomponent" type="ProcessorSubcomponent" aggregation="composite" subsettedProperty="ComponentImplementation-ownedSubcomponent" association="A_systemImplementation_ownedProcessorSubcomponent">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="SystemImplementation-ownedProcessorSubcomponent-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="SystemImplementation-ownedProcessorSubcomponent-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="SystemImplementation-ownedSubprogramSubcomponent" name="ownedSubprogramSubcomponent" type="SubprogramSubcomponent" aggregation="composite" subsettedProperty="ComponentImplementation-ownedSubcomponent" association="A_systemImplementation_ownedSubprogramSubcomponent">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="SystemImplementation-ownedSubprogramSubcomponent-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="SystemImplementation-ownedSubprogramSubcomponent-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="SystemImplementation-ownedSubprogramGroupSubcomponent" name="ownedSubprogramGroupSubcomponent" type="SubprogramGroupSubcomponent" aggregation="composite" subsettedProperty="ComponentImplementation-ownedSubcomponent" association="A_systemImplementation_ownedSubprogramGroupSubcomponent">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="SystemImplementation-ownedSubprogramGroupSubcomponent-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="SystemImplementation-ownedSubprogramGroupSubcomponent-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="SystemImplementation-ownedSystemSubcomponent" name="ownedSystemSubcomponent" type="SystemSubcomponent" aggregation="composite" subsettedProperty="ComponentImplementation-ownedSubcomponent" association="A_systemImplementation_ownedSystemSubcomponent">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="SystemImplementation-ownedSystemSubcomponent-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="SystemImplementation-ownedSystemSubcomponent-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="SystemImplementation-ownedVirtualBusSubcomponent" name="ownedVirtualBusSubcomponent" type="VirtualBusSubcomponent" aggregation="composite" subsettedProperty="ComponentImplementation-ownedSubcomponent" association="A_systemImplementation_ownedVirtualBusSubcomponent">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="SystemImplementation-ownedVirtualBusSubcomponent-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="SystemImplementation-ownedVirtualBusSubcomponent-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="SystemImplementation-ownedVirtualProcessorSubcomponent" name="ownedVirtualProcessorSubcomponent" type="VirtualProcessorSubcomponent" aggregation="composite" subsettedProperty="ComponentImplementation-ownedSubcomponent" association="A_systemImplementation_ownedVirtualProcessorSubcomponent">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="SystemImplementation-ownedVirtualProcessorSubcomponent-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="SystemImplementation-ownedVirtualProcessorSubcomponent-_lowerValue"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_systemSubcomponent_systemSubcomponentType" name="A_systemSubcomponent_systemSubcomponentType" visibility="private" memberEnd="A_systemSubcomponent_systemSubcomponentType-subcomponent SystemSubcomponent-systemSubcomponentType">
      <generalization xmi:id="A_systemSubcomponent_systemSubcomponentType-_generalization.0" general="A_subcomponent_subcomponentType"/>
      <ownedEnd xmi:id="A_systemSubcomponent_systemSubcomponentType-subcomponent" name="subcomponent" type="SystemSubcomponent" association="A_systemSubcomponent_systemSubcomponentType">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_systemSubcomponent_systemSubcomponentType-subcomponent-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_systemSubcomponent_systemSubcomponentType-subcomponent-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_systemImplementation_systemType" name="A_systemImplementation_systemType" visibility="private" memberEnd="A_systemImplementation_systemType-implementation SystemImplementation-type" isDerived="true">
      <generalization xmi:id="A_systemImplementation_systemType-_generalization.0" general="A_componentImplementation_ComponentType"/>
      <ownedEnd xmi:id="A_systemImplementation_systemType-implementation" name="implementation" type="SystemImplementation" association="A_systemImplementation_systemType">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_systemImplementation_systemType-implementation-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_systemImplementation_systemType-implementation-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_systemImplementation_ownedBusSubcomponent" name="A_systemImplementation_ownedBusSubcomponent" visibility="private" memberEnd="A_systemImplementation_ownedBusSubcomponent-owner SystemImplementation-ownedBusSubcomponent">
      <generalization xmi:id="A_systemImplementation_ownedBusSubcomponent-_generalization.0" general="A_componentImplementation_ownedSubcomponent"/>
      <ownedEnd xmi:id="A_systemImplementation_ownedBusSubcomponent-owner" name="owner" type="SystemImplementation" association="A_systemImplementation_ownedBusSubcomponent">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_systemImplementation_ownedBusSubcomponent-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_systemImplementation_ownedBusSubcomponent-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_systemImplementation_ownedDataSubcomponent" name="A_systemImplementation_ownedDataSubcomponent" visibility="private" memberEnd="A_systemImplementation_ownedDataSubcomponent-owner SystemImplementation-ownedDataSubcomponent">
      <generalization xmi:id="A_systemImplementation_ownedDataSubcomponent-_generalization.0" general="A_componentImplementation_ownedSubcomponent"/>
      <ownedEnd xmi:id="A_systemImplementation_ownedDataSubcomponent-owner" name="owner" type="SystemImplementation" association="A_systemImplementation_ownedDataSubcomponent">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_systemImplementation_ownedDataSubcomponent-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_systemImplementation_ownedDataSubcomponent-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_systemImplementation_ownedDeviceSubcomponent" name="A_systemImplementation_ownedDeviceSubcomponent" visibility="private" memberEnd="A_systemImplementation_ownedDeviceSubcomponent-owner SystemImplementation-ownedDeviceSubcomponent">
      <generalization xmi:id="A_systemImplementation_ownedDeviceSubcomponent-_generalization.0" general="A_componentImplementation_ownedSubcomponent"/>
      <ownedEnd xmi:id="A_systemImplementation_ownedDeviceSubcomponent-owner" name="owner" type="SystemImplementation" association="A_systemImplementation_ownedDeviceSubcomponent">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_systemImplementation_ownedDeviceSubcomponent-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_systemImplementation_ownedDeviceSubcomponent-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_systemImplementation_ownedMemorySubcomponent" name="A_systemImplementation_ownedMemorySubcomponent" visibility="private" memberEnd="A_systemImplementation_ownedMemorySubcomponent-owner SystemImplementation-ownedMemorySubcomponent">
      <generalization xmi:id="A_systemImplementation_ownedMemorySubcomponent-_generalization.0" general="A_componentImplementation_ownedSubcomponent"/>
      <ownedEnd xmi:id="A_systemImplementation_ownedMemorySubcomponent-owner" name="owner" type="SystemImplementation" association="A_systemImplementation_ownedMemorySubcomponent">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_systemImplementation_ownedMemorySubcomponent-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_systemImplementation_ownedMemorySubcomponent-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_systemImplementation_ownedProcessSubcomponent" name="A_systemImplementation_ownedProcessSubcomponent" visibility="private" memberEnd="A_systemImplementation_ownedProcessSubcomponent-owner SystemImplementation-ownedProcessSubcomponent">
      <generalization xmi:id="A_systemImplementation_ownedProcessSubcomponent-_generalization.0" general="A_componentImplementation_ownedSubcomponent"/>
      <ownedEnd xmi:id="A_systemImplementation_ownedProcessSubcomponent-owner" name="owner" type="SystemImplementation" association="A_systemImplementation_ownedProcessSubcomponent">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_systemImplementation_ownedProcessSubcomponent-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_systemImplementation_ownedProcessSubcomponent-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_systemImplementation_ownedProcessorSubcomponent" name="A_systemImplementation_ownedProcessorSubcomponent" visibility="private" memberEnd="A_systemImplementation_ownedProcessorSubcomponent-owner SystemImplementation-ownedProcessorSubcomponent">
      <generalization xmi:id="A_systemImplementation_ownedProcessorSubcomponent-_generalization.0" general="A_componentImplementation_ownedSubcomponent"/>
      <ownedEnd xmi:id="A_systemImplementation_ownedProcessorSubcomponent-owner" name="owner" type="SystemImplementation" association="A_systemImplementation_ownedProcessorSubcomponent">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_systemImplementation_ownedProcessorSubcomponent-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_systemImplementation_ownedProcessorSubcomponent-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_systemImplementation_ownedSubprogramSubcomponent" name="A_systemImplementation_ownedSubprogramSubcomponent" visibility="private" memberEnd="A_systemImplementation_ownedSubprogramSubcomponent-owner SystemImplementation-ownedSubprogramSubcomponent">
      <generalization xmi:id="A_systemImplementation_ownedSubprogramSubcomponent-_generalization.0" general="A_componentImplementation_ownedSubcomponent"/>
      <ownedEnd xmi:id="A_systemImplementation_ownedSubprogramSubcomponent-owner" name="owner" type="SystemImplementation" association="A_systemImplementation_ownedSubprogramSubcomponent">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_systemImplementation_ownedSubprogramSubcomponent-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_systemImplementation_ownedSubprogramSubcomponent-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_systemImplementation_ownedSubprogramGroupSubcomponent" name="A_systemImplementation_ownedSubprogramGroupSubcomponent" visibility="private" memberEnd="A_systemImplementation_ownedSubprogramGroupSubcomponent-owner SystemImplementation-ownedSubprogramGroupSubcomponent">
      <generalization xmi:id="A_systemImplementation_ownedSubprogramGroupSubcomponent-_generalization.0" general="A_componentImplementation_ownedSubcomponent"/>
      <ownedEnd xmi:id="A_systemImplementation_ownedSubprogramGroupSubcomponent-owner" name="owner" type="SystemImplementation" association="A_systemImplementation_ownedSubprogramGroupSubcomponent">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_systemImplementation_ownedSubprogramGroupSubcomponent-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_systemImplementation_ownedSubprogramGroupSubcomponent-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_systemImplementation_ownedSystemSubcomponent" name="A_systemImplementation_ownedSystemSubcomponent" visibility="private" memberEnd="A_systemImplementation_ownedSystemSubcomponent-owner SystemImplementation-ownedSystemSubcomponent">
      <generalization xmi:id="A_systemImplementation_ownedSystemSubcomponent-_generalization.0" general="A_componentImplementation_ownedSubcomponent"/>
      <ownedEnd xmi:id="A_systemImplementation_ownedSystemSubcomponent-owner" name="owner" type="SystemImplementation" association="A_systemImplementation_ownedSystemSubcomponent">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_systemImplementation_ownedSystemSubcomponent-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_systemImplementation_ownedSystemSubcomponent-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_systemImplementation_ownedVirtualBusSubcomponent" name="A_systemImplementation_ownedVirtualBusSubcomponent" visibility="private" memberEnd="A_systemImplementation_ownedVirtualBusSubcomponent-owner SystemImplementation-ownedVirtualBusSubcomponent">
      <generalization xmi:id="A_systemImplementation_ownedVirtualBusSubcomponent-_generalization.0" general="A_componentImplementation_ownedSubcomponent"/>
      <ownedEnd xmi:id="A_systemImplementation_ownedVirtualBusSubcomponent-owner" name="owner" type="SystemImplementation" association="A_systemImplementation_ownedVirtualBusSubcomponent">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_systemImplementation_ownedVirtualBusSubcomponent-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_systemImplementation_ownedVirtualBusSubcomponent-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_systemImplementation_ownedVirtualProcessorSubcomponent" name="A_systemImplementation_ownedVirtualProcessorSubcomponent" visibility="private" memberEnd="A_systemImplementation_ownedVirtualProcessorSubcomponent-owner SystemImplementation-ownedVirtualProcessorSubcomponent">
      <generalization xmi:id="A_systemImplementation_ownedVirtualProcessorSubcomponent-_generalization.0" general="A_componentImplementation_ownedSubcomponent"/>
      <ownedEnd xmi:id="A_systemImplementation_ownedVirtualProcessorSubcomponent-owner" name="owner" type="SystemImplementation" association="A_systemImplementation_ownedVirtualProcessorSubcomponent">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_systemImplementation_ownedVirtualProcessorSubcomponent-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_systemImplementation_ownedVirtualProcessorSubcomponent-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_systemType_ownedBusAccess" name="A_systemType_ownedBusAccess" visibility="private" memberEnd="A_systemType_ownedBusAccess-owner SystemType-ownedBusAccess">
      <generalization xmi:id="A_systemType_ownedBusAccess-_generalization.0" general="A_componentType_ownedFeature"/>
      <ownedEnd xmi:id="A_systemType_ownedBusAccess-owner" name="owner" type="SystemType" association="A_systemType_ownedBusAccess">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_systemType_ownedBusAccess-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_systemType_ownedBusAccess-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_systemType_ownedDataAccess" name="A_systemType_ownedDataAccess" visibility="private" memberEnd="A_systemType_ownedDataAccess-owner SystemType-ownedDataAccess">
      <generalization xmi:id="A_systemType_ownedDataAccess-_generalization.0" general="A_componentType_ownedFeature"/>
      <ownedEnd xmi:id="A_systemType_ownedDataAccess-owner" name="owner" type="SystemType" association="A_systemType_ownedDataAccess">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_systemType_ownedDataAccess-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_systemType_ownedDataAccess-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_systemType_ownedDataPort" name="A_systemType_ownedDataPort" visibility="private" memberEnd="A_systemType_ownedDataPort-owner SystemType-ownedDataPort">
      <generalization xmi:id="A_systemType_ownedDataPort-_generalization.0" general="A_componentType_ownedFeature"/>
      <ownedEnd xmi:id="A_systemType_ownedDataPort-owner" name="owner" type="SystemType" association="A_systemType_ownedDataPort">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_systemType_ownedDataPort-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_systemType_ownedDataPort-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_systemType_ownedSubprogramGroupAccess" name="A_systemType_ownedSubprogramGroupAccess" visibility="private" memberEnd="A_systemType_ownedSubprogramGroupAccess-owner SystemType-ownedSubprogramGroupAccess">
      <generalization xmi:id="A_systemType_ownedSubprogramGroupAccess-_generalization.0" general="A_componentType_ownedFeature"/>
      <ownedEnd xmi:id="A_systemType_ownedSubprogramGroupAccess-owner" name="owner" type="SystemType" association="A_systemType_ownedSubprogramGroupAccess">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_systemType_ownedSubprogramGroupAccess-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_systemType_ownedSubprogramGroupAccess-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_systemType_ownedSubprogramAccess" name="A_systemType_ownedSubprogramAccess" visibility="private" memberEnd="A_systemType_ownedSubprogramAccess-owner SystemType-ownedSubprogramAccess">
      <generalization xmi:id="A_systemType_ownedSubprogramAccess-_generalization.0" general="A_componentType_ownedFeature"/>
      <ownedEnd xmi:id="A_systemType_ownedSubprogramAccess-owner" name="owner" type="SystemType" association="A_systemType_ownedSubprogramAccess">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_systemType_ownedSubprogramAccess-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_systemType_ownedSubprogramAccess-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_systemType_ownedEventPort" name="A_systemType_ownedEventPort" visibility="private" memberEnd="A_systemType_ownedEventPort-owner SystemType-ownedEventPort">
      <generalization xmi:id="A_systemType_ownedEventPort-_generalization.0" general="A_componentType_ownedFeature"/>
      <ownedEnd xmi:id="A_systemType_ownedEventPort-owner" name="owner" type="SystemType" association="A_systemType_ownedEventPort">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_systemType_ownedEventPort-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_systemType_ownedEventPort-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_systemType_ownedEventDataPort" name="A_systemType_ownedEventDataPort" visibility="private" memberEnd="A_systemType_ownedEventDataPort-owner SystemType-ownedEventDataPort">
      <generalization xmi:id="A_systemType_ownedEventDataPort-_generalization.0" general="A_componentType_ownedFeature"/>
      <ownedEnd xmi:id="A_systemType_ownedEventDataPort-owner" name="owner" type="SystemType" association="A_systemType_ownedEventDataPort">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_systemType_ownedEventDataPort-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_systemType_ownedEventDataPort-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="SystemSubcomponentType" name="SystemSubcomponentType" isAbstract="true">
      <generalization xmi:id="SystemSubcomponentType-_generalization.0" general="System"/>
      <generalization xmi:id="SystemSubcomponentType-_generalization.1" general="SubcomponentType"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="SystemPrototype" name="SystemPrototype">
      <generalization xmi:id="SystemPrototype-_generalization.0" general="SystemSubcomponentType"/>
      <generalization xmi:id="SystemPrototype-_generalization.1" general="ComponentPrototype"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="Processor" name="Processor" isAbstract="true">
      <generalization xmi:id="Processor-_generalization.0" general="NamedElement"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="ProcessorClassifier" name="ProcessorClassifier" isAbstract="true">
      <generalization xmi:id="ProcessorClassifier-_generalization.0" general="ProcessorSubcomponentType"/>
      <generalization xmi:id="ProcessorClassifier-_generalization.1" general="ComponentClassifier"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="ProcessorType" name="ProcessorType">
      <generalization xmi:id="ProcessorType-_generalization.0" general="ProcessorClassifier"/>
      <generalization xmi:id="ProcessorType-_generalization.1" general="ComponentType"/>
      <ownedAttribute xmi:id="ProcessorType-ownedDataPort" name="ownedDataPort" type="DataPort" aggregation="composite" subsettedProperty="ComponentType-ownedFeature" association="A_processorType_ownedDataPort">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="ProcessorType-ownedDataPort-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="ProcessorType-ownedDataPort-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="ProcessorType-ownedEventDataPort" name="ownedEventDataPort" type="EventDataPort" aggregation="composite" subsettedProperty="ComponentType-ownedFeature" association="A_processorType_ownedEventDataPort">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="ProcessorType-ownedEventDataPort-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="ProcessorType-ownedEventDataPort-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="ProcessorType-ownedEventPort" name="ownedEventPort" type="EventPort" aggregation="composite" subsettedProperty="ComponentType-ownedFeature" association="A_processorType_ownedEventPort">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="ProcessorType-ownedEventPort-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="ProcessorType-ownedEventPort-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="ProcessorType-ownedBusAccess" name="ownedBusAccess" type="BusAccess" aggregation="composite" subsettedProperty="ComponentType-ownedFeature" association="A_processorType_ownedBusAccess">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="ProcessorType-ownedBusAccess-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="ProcessorType-ownedBusAccess-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="ProcessorType-ownedSubprogramAccess" name="ownedSubprogramAccess" type="SubprogramAccess" aggregation="composite" subsettedProperty="ComponentType-ownedFeature" association="A_processorType_ownedSubprogramAccess">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="ProcessorType-ownedSubprogramAccess-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="ProcessorType-ownedSubprogramAccess-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="ProcessorType-ownedSubprogramGroupAccess" name="ownedSubprogramGroupAccess" type="SubprogramGroupAccess" aggregation="composite" subsettedProperty="ComponentType-ownedFeature" association="A_processorType_ownedSubprogramGroupAccess">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="ProcessorType-ownedSubprogramGroupAccess-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="ProcessorType-ownedSubprogramGroupAccess-_lowerValue"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="ProcessorSubcomponent" name="ProcessorSubcomponent">
      <generalization xmi:id="ProcessorSubcomponent-_generalization.0" general="Processor"/>
      <generalization xmi:id="ProcessorSubcomponent-_generalization.1" general="Subcomponent"/>
      <ownedAttribute xmi:id="ProcessorSubcomponent-processorSubcomponentType" name="processorSubcomponentType" type="ProcessorSubcomponentType" subsettedProperty="Subcomponent-subcomponentType" association="A_processorSubcomponent_processorSubcomponentType">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="ProcessorSubcomponent-processorSubcomponentType-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="ProcessorSubcomponent-processorSubcomponentType-_lowerValue"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="ProcessorImplementation" name="ProcessorImplementation">
      <generalization xmi:id="ProcessorImplementation-_generalization.0" general="ProcessorClassifier"/>
      <generalization xmi:id="ProcessorImplementation-_generalization.1" general="ComponentImplementation"/>
      <ownedAttribute xmi:id="ProcessorImplementation-type" name="type" type="ProcessorType" isDerived="true" redefinedProperty="ComponentImplementation-type" association="A_processorImplementation_processorType">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="ProcessorImplementation-type-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="ProcessorImplementation-type-_lowerValue" value="1"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="ProcessorImplementation-ownedBusSubcomponent" name="ownedBusSubcomponent" type="BusSubcomponent" aggregation="composite" subsettedProperty="ComponentImplementation-ownedSubcomponent" association="A_processorImplementation_ownedBusSubcomponent">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="ProcessorImplementation-ownedBusSubcomponent-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="ProcessorImplementation-ownedBusSubcomponent-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="ProcessorImplementation-ownedMemorySubcomponent" name="ownedMemorySubcomponent" type="MemorySubcomponent" aggregation="composite" subsettedProperty="ComponentImplementation-ownedSubcomponent" association="A_processorImplementation_ownedMemorySubcomponent">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="ProcessorImplementation-ownedMemorySubcomponent-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="ProcessorImplementation-ownedMemorySubcomponent-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="ProcessorImplementation-ownedVirtualBusSubcomponent" name="ownedVirtualBusSubcomponent" type="VirtualBusSubcomponent" aggregation="composite" subsettedProperty="ComponentImplementation-ownedSubcomponent" association="A_processorImplementation_ownedVirtualBusSubcomponent">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="ProcessorImplementation-ownedVirtualBusSubcomponent-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="ProcessorImplementation-ownedVirtualBusSubcomponent-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="ProcessorImplementation-ownedVirtualProcessorSubcomponent" name="ownedVirtualProcessorSubcomponent" type="VirtualProcessorSubcomponent" aggregation="composite" subsettedProperty="ComponentImplementation-ownedSubcomponent" association="A_processorImplementation_ownedVirtualProcessorSubcomponent">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="ProcessorImplementation-ownedVirtualProcessorSubcomponent-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="ProcessorImplementation-ownedVirtualProcessorSubcomponent-_lowerValue"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_processorSubcomponent_processorSubcomponentType" name="A_processorSubcomponent_processorSubcomponentType" visibility="private" memberEnd="A_processorSubcomponent_processorSubcomponentType-subcomponent ProcessorSubcomponent-processorSubcomponentType">
      <generalization xmi:id="A_processorSubcomponent_processorSubcomponentType-_generalization.0" general="A_subcomponent_subcomponentType"/>
      <ownedEnd xmi:id="A_processorSubcomponent_processorSubcomponentType-subcomponent" name="subcomponent" type="ProcessorSubcomponent" association="A_processorSubcomponent_processorSubcomponentType">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_processorSubcomponent_processorSubcomponentType-subcomponent-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_processorSubcomponent_processorSubcomponentType-subcomponent-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_processorImplementation_processorType" name="A_processorImplementation_processorType" visibility="private" memberEnd="A_processorImplementation_processorType-implementation ProcessorImplementation-type" isDerived="true">
      <generalization xmi:id="A_processorImplementation_processorType-_generalization.0" general="A_componentImplementation_ComponentType"/>
      <ownedEnd xmi:id="A_processorImplementation_processorType-implementation" name="implementation" type="ProcessorImplementation" association="A_processorImplementation_processorType">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_processorImplementation_processorType-implementation-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_processorImplementation_processorType-implementation-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_processorImplementation_ownedBusSubcomponent" name="A_processorImplementation_ownedBusSubcomponent" visibility="private" memberEnd="A_processorImplementation_ownedBusSubcomponent-owner ProcessorImplementation-ownedBusSubcomponent">
      <generalization xmi:id="A_processorImplementation_ownedBusSubcomponent-_generalization.0" general="A_componentImplementation_ownedSubcomponent"/>
      <ownedEnd xmi:id="A_processorImplementation_ownedBusSubcomponent-owner" name="owner" type="ProcessorImplementation" association="A_processorImplementation_ownedBusSubcomponent">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_processorImplementation_ownedBusSubcomponent-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_processorImplementation_ownedBusSubcomponent-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_processorImplementation_ownedMemorySubcomponent" name="A_processorImplementation_ownedMemorySubcomponent" visibility="private" memberEnd="A_processorImplementation_ownedMemorySubcomponent-owner ProcessorImplementation-ownedMemorySubcomponent">
      <generalization xmi:id="A_processorImplementation_ownedMemorySubcomponent-_generalization.0" general="A_componentImplementation_ownedSubcomponent"/>
      <ownedEnd xmi:id="A_processorImplementation_ownedMemorySubcomponent-owner" name="owner" type="ProcessorImplementation" association="A_processorImplementation_ownedMemorySubcomponent">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_processorImplementation_ownedMemorySubcomponent-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_processorImplementation_ownedMemorySubcomponent-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_processorImplementation_ownedVirtualBusSubcomponent" name="A_processorImplementation_ownedVirtualBusSubcomponent" visibility="private" memberEnd="A_processorImplementation_ownedVirtualBusSubcomponent-owner ProcessorImplementation-ownedVirtualBusSubcomponent">
      <generalization xmi:id="A_processorImplementation_ownedVirtualBusSubcomponent-_generalization.0" general="A_componentImplementation_ownedSubcomponent"/>
      <ownedEnd xmi:id="A_processorImplementation_ownedVirtualBusSubcomponent-owner" name="owner" type="ProcessorImplementation" association="A_processorImplementation_ownedVirtualBusSubcomponent">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_processorImplementation_ownedVirtualBusSubcomponent-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_processorImplementation_ownedVirtualBusSubcomponent-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_processorImplementation_ownedVirtualProcessorSubcomponent" name="A_processorImplementation_ownedVirtualProcessorSubcomponent" visibility="private" memberEnd="A_processorImplementation_ownedVirtualProcessorSubcomponent-owner ProcessorImplementation-ownedVirtualProcessorSubcomponent">
      <generalization xmi:id="A_processorImplementation_ownedVirtualProcessorSubcomponent-_generalization.0" general="A_componentImplementation_ownedSubcomponent"/>
      <ownedEnd xmi:id="A_processorImplementation_ownedVirtualProcessorSubcomponent-owner" name="owner" type="ProcessorImplementation" association="A_processorImplementation_ownedVirtualProcessorSubcomponent">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_processorImplementation_ownedVirtualProcessorSubcomponent-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_processorImplementation_ownedVirtualProcessorSubcomponent-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_processorType_ownedDataPort" name="A_processorType_ownedDataPort" visibility="private" memberEnd="A_processorType_ownedDataPort-owner ProcessorType-ownedDataPort">
      <generalization xmi:id="A_processorType_ownedDataPort-_generalization.0" general="A_componentType_ownedFeature"/>
      <ownedEnd xmi:id="A_processorType_ownedDataPort-owner" name="owner" type="ProcessorType" association="A_processorType_ownedDataPort">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_processorType_ownedDataPort-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_processorType_ownedDataPort-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_processorType_ownedEventDataPort" name="A_processorType_ownedEventDataPort" visibility="private" memberEnd="A_processorType_ownedEventDataPort-owner ProcessorType-ownedEventDataPort">
      <generalization xmi:id="A_processorType_ownedEventDataPort-_generalization.0" general="A_componentType_ownedFeature"/>
      <ownedEnd xmi:id="A_processorType_ownedEventDataPort-owner" name="owner" type="ProcessorType" association="A_processorType_ownedEventDataPort">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_processorType_ownedEventDataPort-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_processorType_ownedEventDataPort-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_processorType_ownedEventPort" name="A_processorType_ownedEventPort" visibility="private" memberEnd="A_processorType_ownedEventPort-owner ProcessorType-ownedEventPort">
      <generalization xmi:id="A_processorType_ownedEventPort-_generalization.0" general="A_componentType_ownedFeature"/>
      <ownedEnd xmi:id="A_processorType_ownedEventPort-owner" name="owner" type="ProcessorType" association="A_processorType_ownedEventPort">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_processorType_ownedEventPort-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_processorType_ownedEventPort-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_processorType_ownedBusAccess" name="A_processorType_ownedBusAccess" visibility="private" memberEnd="A_processorType_ownedBusAccess-owner ProcessorType-ownedBusAccess">
      <generalization xmi:id="A_processorType_ownedBusAccess-_generalization.0" general="A_componentType_ownedFeature"/>
      <ownedEnd xmi:id="A_processorType_ownedBusAccess-owner" name="owner" type="ProcessorType" association="A_processorType_ownedBusAccess">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_processorType_ownedBusAccess-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_processorType_ownedBusAccess-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_processorType_ownedSubprogramAccess" name="A_processorType_ownedSubprogramAccess" visibility="private" memberEnd="A_processorType_ownedSubprogramAccess-owner ProcessorType-ownedSubprogramAccess">
      <generalization xmi:id="A_processorType_ownedSubprogramAccess-_generalization.0" general="A_componentType_ownedFeature"/>
      <ownedEnd xmi:id="A_processorType_ownedSubprogramAccess-owner" name="owner" type="ProcessorType" association="A_processorType_ownedSubprogramAccess">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_processorType_ownedSubprogramAccess-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_processorType_ownedSubprogramAccess-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_processorType_ownedSubprogramGroupAccess" name="A_processorType_ownedSubprogramGroupAccess" visibility="private" memberEnd="A_processorType_ownedSubprogramGroupAccess-owner ProcessorType-ownedSubprogramGroupAccess">
      <generalization xmi:id="A_processorType_ownedSubprogramGroupAccess-_generalization.0" general="A_componentType_ownedFeature"/>
      <ownedEnd xmi:id="A_processorType_ownedSubprogramGroupAccess-owner" name="owner" type="ProcessorType" association="A_processorType_ownedSubprogramGroupAccess">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_processorType_ownedSubprogramGroupAccess-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_processorType_ownedSubprogramGroupAccess-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="ProcessorSubcomponentType" name="ProcessorSubcomponentType" isAbstract="true">
      <generalization xmi:id="ProcessorSubcomponentType-_generalization.0" general="Processor"/>
      <generalization xmi:id="ProcessorSubcomponentType-_generalization.1" general="SubcomponentType"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="ProcessorPrototype" name="ProcessorPrototype">
      <generalization xmi:id="ProcessorPrototype-_generalization.0" general="ProcessorSubcomponentType"/>
      <generalization xmi:id="ProcessorPrototype-_generalization.1" general="ComponentPrototype"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="Process" name="Process" isAbstract="true">
      <generalization xmi:id="Process-_generalization.0" general="NamedElement"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="ProcessClassifier" name="ProcessClassifier" isAbstract="true">
      <generalization xmi:id="ProcessClassifier-_generalization.0" general="ProcessSubcomponentType"/>
      <generalization xmi:id="ProcessClassifier-_generalization.1" general="ComponentClassifier"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="ProcessType" name="ProcessType">
      <generalization xmi:id="ProcessType-_generalization.0" general="ProcessClassifier"/>
      <generalization xmi:id="ProcessType-_generalization.1" general="ComponentType"/>
      <ownedAttribute xmi:id="ProcessType-ownedDataPort" name="ownedDataPort" type="DataPort" aggregation="composite" subsettedProperty="ComponentType-ownedFeature" association="A_processType_ownedDataPort">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="ProcessType-ownedDataPort-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="ProcessType-ownedDataPort-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="ProcessType-ownedEventDataPort" name="ownedEventDataPort" type="EventDataPort" aggregation="composite" subsettedProperty="ComponentType-ownedFeature" association="A_processType_ownedEventDataPort">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="ProcessType-ownedEventDataPort-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="ProcessType-ownedEventDataPort-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="ProcessType-ownedEventPort" name="ownedEventPort" type="EventPort" aggregation="composite" subsettedProperty="ComponentType-ownedFeature" association="A_processType_ownedEventPort">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="ProcessType-ownedEventPort-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="ProcessType-ownedEventPort-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="ProcessType-ownedDataAccess" name="ownedDataAccess" type="DataAccess" aggregation="composite" subsettedProperty="ComponentType-ownedFeature" association="A_processType_ownedDataAccess">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="ProcessType-ownedDataAccess-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="ProcessType-ownedDataAccess-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="ProcessType-ownedSubprogramAccess" name="ownedSubprogramAccess" type="SubprogramAccess" aggregation="composite" subsettedProperty="ComponentType-ownedFeature" association="A_processType_ownedSubprogramAccess">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="ProcessType-ownedSubprogramAccess-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="ProcessType-ownedSubprogramAccess-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="ProcessType-ownedSubprogramGroupAccess" name="ownedSubprogramGroupAccess" type="SubprogramGroupAccess" aggregation="composite" subsettedProperty="ComponentType-ownedFeature" association="A_processType_ownedSubprogramGroupAccess">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="ProcessType-ownedSubprogramGroupAccess-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="ProcessType-ownedSubprogramGroupAccess-_lowerValue"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="ProcessSubcomponent" name="ProcessSubcomponent">
      <generalization xmi:id="ProcessSubcomponent-_generalization.0" general="Process"/>
      <generalization xmi:id="ProcessSubcomponent-_generalization.1" general="Subcomponent"/>
      <ownedAttribute xmi:id="ProcessSubcomponent-processSubcomponentType" name="processSubcomponentType" type="ProcessSubcomponentType" subsettedProperty="Subcomponent-subcomponentType" association="A_processSubcomponent_processSubcomponentType">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="ProcessSubcomponent-processSubcomponentType-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="ProcessSubcomponent-processSubcomponentType-_lowerValue"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="ProcessImplementation" name="ProcessImplementation">
      <generalization xmi:id="ProcessImplementation-_generalization.0" general="ProcessClassifier"/>
      <generalization xmi:id="ProcessImplementation-_generalization.1" general="ComponentImplementation"/>
      <ownedAttribute xmi:id="ProcessImplementation-type" name="type" type="ProcessType" isDerived="true" redefinedProperty="ComponentImplementation-type" association="A_processImplementation_processType">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="ProcessImplementation-type-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="ProcessImplementation-type-_lowerValue" value="1"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="ProcessImplementation-ownedDataSubcomponent" name="ownedDataSubcomponent" type="DataSubcomponent" aggregation="composite" subsettedProperty="ComponentImplementation-ownedSubcomponent" association="A_processImplementation_ownedDataSubcomponent">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="ProcessImplementation-ownedDataSubcomponent-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="ProcessImplementation-ownedDataSubcomponent-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="ProcessImplementation-ownedSubprogramSubcomponent" name="ownedSubprogramSubcomponent" type="SubprogramSubcomponent" aggregation="composite" subsettedProperty="ComponentImplementation-ownedSubcomponent" association="A_processImplementation_ownedSubprogramSubcomponent">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="ProcessImplementation-ownedSubprogramSubcomponent-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="ProcessImplementation-ownedSubprogramSubcomponent-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="ProcessImplementation-ownedSubprogramGroupSubcomponent" name="ownedSubprogramGroupSubcomponent" type="SubprogramGroupSubcomponent" aggregation="composite" subsettedProperty="ComponentImplementation-ownedSubcomponent" association="A_processImplementation_ownedSubprogramGroupSubcomponent">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="ProcessImplementation-ownedSubprogramGroupSubcomponent-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="ProcessImplementation-ownedSubprogramGroupSubcomponent-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="ProcessImplementation-ownedThreadSubcomponent" name="ownedThreadSubcomponent" type="ThreadSubcomponent" aggregation="composite" subsettedProperty="ComponentImplementation-ownedSubcomponent" association="A_processImplementation_ownedThreadSubcomponent">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="ProcessImplementation-ownedThreadSubcomponent-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="ProcessImplementation-ownedThreadSubcomponent-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="ProcessImplementation-ownedThreadGroupSubcomponent" name="ownedThreadGroupSubcomponent" type="ThreadGroupSubcomponent" aggregation="composite" subsettedProperty="ComponentImplementation-ownedSubcomponent" association="A_processImplementation_ownedThreadGroupSubcomponent">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="ProcessImplementation-ownedThreadGroupSubcomponent-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="ProcessImplementation-ownedThreadGroupSubcomponent-_lowerValue"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_processSubcomponent_processSubcomponentType" name="A_processSubcomponent_processSubcomponentType" visibility="private" memberEnd="A_processSubcomponent_processSubcomponentType-subcomponent ProcessSubcomponent-processSubcomponentType">
      <generalization xmi:id="A_processSubcomponent_processSubcomponentType-_generalization.0" general="A_subcomponent_subcomponentType"/>
      <ownedEnd xmi:id="A_processSubcomponent_processSubcomponentType-subcomponent" name="subcomponent" type="ProcessSubcomponent" association="A_processSubcomponent_processSubcomponentType">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_processSubcomponent_processSubcomponentType-subcomponent-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_processSubcomponent_processSubcomponentType-subcomponent-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_processImplementation_processType" name="A_processImplementation_processType" visibility="private" memberEnd="A_processImplementation_processType-implementation ProcessImplementation-type" isDerived="true">
      <generalization xmi:id="A_processImplementation_processType-_generalization.0" general="A_componentImplementation_ComponentType"/>
      <ownedEnd xmi:id="A_processImplementation_processType-implementation" name="implementation" type="ProcessImplementation" association="A_processImplementation_processType">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_processImplementation_processType-implementation-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_processImplementation_processType-implementation-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_processImplementation_ownedDataSubcomponent" name="A_processImplementation_ownedDataSubcomponent" visibility="private" memberEnd="A_processImplementation_ownedDataSubcomponent-owner ProcessImplementation-ownedDataSubcomponent">
      <generalization xmi:id="A_processImplementation_ownedDataSubcomponent-_generalization.0" general="A_componentImplementation_ownedSubcomponent"/>
      <ownedEnd xmi:id="A_processImplementation_ownedDataSubcomponent-owner" name="owner" type="ProcessImplementation" association="A_processImplementation_ownedDataSubcomponent">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_processImplementation_ownedDataSubcomponent-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_processImplementation_ownedDataSubcomponent-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_processImplementation_ownedSubprogramSubcomponent" name="A_processImplementation_ownedSubprogramSubcomponent" visibility="private" memberEnd="A_processImplementation_ownedSubprogramSubcomponent-owner ProcessImplementation-ownedSubprogramSubcomponent">
      <generalization xmi:id="A_processImplementation_ownedSubprogramSubcomponent-_generalization.0" general="A_componentImplementation_ownedSubcomponent"/>
      <ownedEnd xmi:id="A_processImplementation_ownedSubprogramSubcomponent-owner" name="owner" type="ProcessImplementation" association="A_processImplementation_ownedSubprogramSubcomponent">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_processImplementation_ownedSubprogramSubcomponent-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_processImplementation_ownedSubprogramSubcomponent-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_processImplementation_ownedSubprogramGroupSubcomponent" name="A_processImplementation_ownedSubprogramGroupSubcomponent" visibility="private" memberEnd="A_processImplementation_ownedSubprogramGroupSubcomponent-owner ProcessImplementation-ownedSubprogramGroupSubcomponent">
      <generalization xmi:id="A_processImplementation_ownedSubprogramGroupSubcomponent-_generalization.0" general="A_componentImplementation_ownedSubcomponent"/>
      <ownedEnd xmi:id="A_processImplementation_ownedSubprogramGroupSubcomponent-owner" name="owner" type="ProcessImplementation" association="A_processImplementation_ownedSubprogramGroupSubcomponent">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_processImplementation_ownedSubprogramGroupSubcomponent-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_processImplementation_ownedSubprogramGroupSubcomponent-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_processImplementation_ownedThreadSubcomponent" name="A_processImplementation_ownedThreadSubcomponent" visibility="private" memberEnd="A_processImplementation_ownedThreadSubcomponent-owner ProcessImplementation-ownedThreadSubcomponent">
      <generalization xmi:id="A_processImplementation_ownedThreadSubcomponent-_generalization.0" general="A_componentImplementation_ownedSubcomponent"/>
      <ownedEnd xmi:id="A_processImplementation_ownedThreadSubcomponent-owner" name="owner" type="ProcessImplementation" association="A_processImplementation_ownedThreadSubcomponent">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_processImplementation_ownedThreadSubcomponent-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_processImplementation_ownedThreadSubcomponent-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_processImplementation_ownedThreadGroupSubcomponent" name="A_processImplementation_ownedThreadGroupSubcomponent" visibility="private" memberEnd="A_processImplementation_ownedThreadGroupSubcomponent-owner ProcessImplementation-ownedThreadGroupSubcomponent">
      <generalization xmi:id="A_processImplementation_ownedThreadGroupSubcomponent-_generalization.0" general="A_componentImplementation_ownedSubcomponent"/>
      <ownedEnd xmi:id="A_processImplementation_ownedThreadGroupSubcomponent-owner" name="owner" type="ProcessImplementation" association="A_processImplementation_ownedThreadGroupSubcomponent">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_processImplementation_ownedThreadGroupSubcomponent-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_processImplementation_ownedThreadGroupSubcomponent-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_processType_ownedDataPort" name="A_processType_ownedDataPort" visibility="private" memberEnd="A_processType_ownedDataPort-owner ProcessType-ownedDataPort">
      <generalization xmi:id="A_processType_ownedDataPort-_generalization.0" general="A_componentType_ownedFeature"/>
      <ownedEnd xmi:id="A_processType_ownedDataPort-owner" name="owner" type="ProcessType" association="A_processType_ownedDataPort">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_processType_ownedDataPort-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_processType_ownedDataPort-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_processType_ownedEventDataPort" name="A_processType_ownedEventDataPort" visibility="private" memberEnd="A_processType_ownedEventDataPort-owner ProcessType-ownedEventDataPort">
      <generalization xmi:id="A_processType_ownedEventDataPort-_generalization.0" general="A_componentType_ownedFeature"/>
      <ownedEnd xmi:id="A_processType_ownedEventDataPort-owner" name="owner" type="ProcessType" association="A_processType_ownedEventDataPort">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_processType_ownedEventDataPort-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_processType_ownedEventDataPort-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_processType_ownedEventPort" name="A_processType_ownedEventPort" visibility="private" memberEnd="A_processType_ownedEventPort-owner ProcessType-ownedEventPort">
      <generalization xmi:id="A_processType_ownedEventPort-_generalization.0" general="A_componentType_ownedFeature"/>
      <ownedEnd xmi:id="A_processType_ownedEventPort-owner" name="owner" type="ProcessType" association="A_processType_ownedEventPort">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_processType_ownedEventPort-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_processType_ownedEventPort-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_processType_ownedDataAccess" name="A_processType_ownedDataAccess" visibility="private" memberEnd="A_processType_ownedDataAccess-owner ProcessType-ownedDataAccess">
      <generalization xmi:id="A_processType_ownedDataAccess-_generalization.0" general="A_componentType_ownedFeature"/>
      <ownedEnd xmi:id="A_processType_ownedDataAccess-owner" name="owner" type="ProcessType" association="A_processType_ownedDataAccess">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_processType_ownedDataAccess-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_processType_ownedDataAccess-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_processType_ownedSubprogramAccess" name="A_processType_ownedSubprogramAccess" visibility="private" memberEnd="A_processType_ownedSubprogramAccess-owner ProcessType-ownedSubprogramAccess">
      <generalization xmi:id="A_processType_ownedSubprogramAccess-_generalization.0" general="A_componentType_ownedFeature"/>
      <ownedEnd xmi:id="A_processType_ownedSubprogramAccess-owner" name="owner" type="ProcessType" association="A_processType_ownedSubprogramAccess">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_processType_ownedSubprogramAccess-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_processType_ownedSubprogramAccess-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_processType_ownedSubprogramGroupAccess" name="A_processType_ownedSubprogramGroupAccess" visibility="private" memberEnd="A_processType_ownedSubprogramGroupAccess-owner ProcessType-ownedSubprogramGroupAccess">
      <generalization xmi:id="A_processType_ownedSubprogramGroupAccess-_generalization.0" general="A_componentType_ownedFeature"/>
      <ownedEnd xmi:id="A_processType_ownedSubprogramGroupAccess-owner" name="owner" type="ProcessType" association="A_processType_ownedSubprogramGroupAccess">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_processType_ownedSubprogramGroupAccess-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_processType_ownedSubprogramGroupAccess-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="ProcessSubcomponentType" name="ProcessSubcomponentType" isAbstract="true">
      <generalization xmi:id="ProcessSubcomponentType-_generalization.0" general="Process"/>
      <generalization xmi:id="ProcessSubcomponentType-_generalization.1" general="SubcomponentType"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="ProcessPrototype" name="ProcessPrototype">
      <generalization xmi:id="ProcessPrototype-_generalization.0" general="ProcessSubcomponentType"/>
      <generalization xmi:id="ProcessPrototype-_generalization.1" general="ComponentPrototype"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="Thread" name="Thread" isAbstract="true">
      <generalization xmi:id="Thread-_generalization.0" general="NamedElement"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="ThreadClassifier" name="ThreadClassifier" isAbstract="true">
      <generalization xmi:id="ThreadClassifier-_generalization.0" general="ThreadSubcomponentType"/>
      <generalization xmi:id="ThreadClassifier-_generalization.1" general="ComponentClassifier"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="ThreadType" name="ThreadType">
      <generalization xmi:id="ThreadType-_generalization.0" general="ThreadClassifier"/>
      <generalization xmi:id="ThreadType-_generalization.1" general="ComponentType"/>
      <ownedAttribute xmi:id="ThreadType-ownedDataPort" name="ownedDataPort" type="DataPort" aggregation="composite" subsettedProperty="ComponentType-ownedFeature" association="A_threadType_ownedDataPort">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="ThreadType-ownedDataPort-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="ThreadType-ownedDataPort-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="ThreadType-ownedEventDataPort" name="ownedEventDataPort" type="EventDataPort" aggregation="composite" subsettedProperty="ComponentType-ownedFeature" association="A_threadType_ownedEventDataPort">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="ThreadType-ownedEventDataPort-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="ThreadType-ownedEventDataPort-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="ThreadType-ownedEventPort" name="ownedEventPort" type="EventPort" aggregation="composite" subsettedProperty="ComponentType-ownedFeature" association="A_threadType_ownedEventPort">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="ThreadType-ownedEventPort-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="ThreadType-ownedEventPort-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="ThreadType-ownedDataAccess" name="ownedDataAccess" type="DataAccess" aggregation="composite" subsettedProperty="ComponentType-ownedFeature" association="A_threadType_ownedDataAccess">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="ThreadType-ownedDataAccess-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="ThreadType-ownedDataAccess-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="ThreadType-ownedSubprogramAccess" name="ownedSubprogramAccess" type="SubprogramAccess" aggregation="composite" subsettedProperty="ComponentType-ownedFeature" association="A_threadType_ownedSubprogramAccess">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="ThreadType-ownedSubprogramAccess-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="ThreadType-ownedSubprogramAccess-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="ThreadType-ownedSubprogramGroupAccess" name="ownedSubprogramGroupAccess" type="SubprogramGroupAccess" aggregation="composite" subsettedProperty="ComponentType-ownedFeature" association="A_threadType_ownedSubprogramGroupAccess">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="ThreadType-ownedSubprogramGroupAccess-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="ThreadType-ownedSubprogramGroupAccess-_lowerValue"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="ThreadSubcomponent" name="ThreadSubcomponent">
      <generalization xmi:id="ThreadSubcomponent-_generalization.0" general="Thread"/>
      <generalization xmi:id="ThreadSubcomponent-_generalization.1" general="Subcomponent"/>
      <ownedAttribute xmi:id="ThreadSubcomponent-threadSubcomponentType" name="threadSubcomponentType" type="ThreadSubcomponentType" subsettedProperty="Subcomponent-subcomponentType" association="A_threadSubcomponent_threadSubcomponentType">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="ThreadSubcomponent-threadSubcomponentType-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="ThreadSubcomponent-threadSubcomponentType-_lowerValue"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="ThreadImplementation" name="ThreadImplementation">
      <generalization xmi:id="ThreadImplementation-_generalization.0" general="ThreadClassifier"/>
      <generalization xmi:id="ThreadImplementation-_generalization.1" general="BehavioredImplementation"/>
      <ownedAttribute xmi:id="ThreadImplementation-type" name="type" type="ThreadType" isDerived="true" redefinedProperty="ComponentImplementation-type" association="A_threadImplementation_threadType">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="ThreadImplementation-type-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="ThreadImplementation-type-_lowerValue" value="1"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="ThreadImplementation-ownedSubprogramGroupSubcomponent" name="ownedSubprogramGroupSubcomponent" type="SubprogramGroupSubcomponent" aggregation="composite" subsettedProperty="ComponentImplementation-ownedSubcomponent" association="A_threadImplementation_ownedSubprogramGroupSubcomponent">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="ThreadImplementation-ownedSubprogramGroupSubcomponent-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="ThreadImplementation-ownedSubprogramGroupSubcomponent-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="ThreadImplementation-ownedSubprogramSubcomponent" name="ownedSubprogramSubcomponent" type="SubprogramSubcomponent" aggregation="composite" subsettedProperty="ComponentImplementation-ownedSubcomponent" association="A_threadImplementation_ownedSubprogramSubcomponent">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="ThreadImplementation-ownedSubprogramSubcomponent-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="ThreadImplementation-ownedSubprogramSubcomponent-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="ThreadImplementation-ownedDataSubcomponent" name="ownedDataSubcomponent" type="DataSubcomponent" aggregation="composite" subsettedProperty="ComponentImplementation-ownedSubcomponent" association="A_threadImplementation_ownedDataSubcomponent">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="ThreadImplementation-ownedDataSubcomponent-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="ThreadImplementation-ownedDataSubcomponent-_lowerValue"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_threadImplementation_threadType" name="A_threadImplementation_threadType" visibility="private" memberEnd="A_threadImplementation_threadType-implementation ThreadImplementation-type" isDerived="true">
      <generalization xmi:id="A_threadImplementation_threadType-_generalization.0" general="A_componentImplementation_ComponentType"/>
      <ownedEnd xmi:id="A_threadImplementation_threadType-implementation" name="implementation" type="ThreadImplementation" association="A_threadImplementation_threadType">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_threadImplementation_threadType-implementation-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_threadImplementation_threadType-implementation-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_threadSubcomponent_threadSubcomponentType" name="A_threadSubcomponent_threadSubcomponentType" visibility="private" memberEnd="A_threadSubcomponent_threadSubcomponentType-subcomponent ThreadSubcomponent-threadSubcomponentType">
      <generalization xmi:id="A_threadSubcomponent_threadSubcomponentType-_generalization.0" general="A_subcomponent_subcomponentType"/>
      <ownedEnd xmi:id="A_threadSubcomponent_threadSubcomponentType-subcomponent" name="subcomponent" type="ThreadSubcomponent" association="A_threadSubcomponent_threadSubcomponentType">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_threadSubcomponent_threadSubcomponentType-subcomponent-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_threadSubcomponent_threadSubcomponentType-subcomponent-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_threadImplementation_ownedSubprogramGroupSubcomponent" name="A_threadImplementation_ownedSubprogramGroupSubcomponent" visibility="private" memberEnd="A_threadImplementation_ownedSubprogramGroupSubcomponent-owner ThreadImplementation-ownedSubprogramGroupSubcomponent">
      <generalization xmi:id="A_threadImplementation_ownedSubprogramGroupSubcomponent-_generalization.0" general="A_componentImplementation_ownedSubcomponent"/>
      <ownedEnd xmi:id="A_threadImplementation_ownedSubprogramGroupSubcomponent-owner" name="owner" type="ThreadImplementation" association="A_threadImplementation_ownedSubprogramGroupSubcomponent">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_threadImplementation_ownedSubprogramGroupSubcomponent-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_threadImplementation_ownedSubprogramGroupSubcomponent-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_threadImplementation_ownedSubprogramSubcomponent" name="A_threadImplementation_ownedSubprogramSubcomponent" visibility="private" memberEnd="A_threadImplementation_ownedSubprogramSubcomponent-owner ThreadImplementation-ownedSubprogramSubcomponent">
      <generalization xmi:id="A_threadImplementation_ownedSubprogramSubcomponent-_generalization.0" general="A_componentImplementation_ownedSubcomponent"/>
      <ownedEnd xmi:id="A_threadImplementation_ownedSubprogramSubcomponent-owner" name="owner" type="ThreadImplementation" association="A_threadImplementation_ownedSubprogramSubcomponent">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_threadImplementation_ownedSubprogramSubcomponent-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_threadImplementation_ownedSubprogramSubcomponent-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_threadImplementation_ownedDataSubcomponent" name="A_threadImplementation_ownedDataSubcomponent" visibility="private" memberEnd="A_threadImplementation_ownedDataSubcomponent-owner ThreadImplementation-ownedDataSubcomponent">
      <generalization xmi:id="A_threadImplementation_ownedDataSubcomponent-_generalization.0" general="A_componentImplementation_ownedSubcomponent"/>
      <ownedEnd xmi:id="A_threadImplementation_ownedDataSubcomponent-owner" name="owner" type="ThreadImplementation" association="A_threadImplementation_ownedDataSubcomponent">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_threadImplementation_ownedDataSubcomponent-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_threadImplementation_ownedDataSubcomponent-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_threadType_ownedDataPort" name="A_threadType_ownedDataPort" visibility="private" memberEnd="A_threadType_ownedDataPort-owner ThreadType-ownedDataPort">
      <generalization xmi:id="A_threadType_ownedDataPort-_generalization.0" general="A_componentType_ownedFeature"/>
      <ownedEnd xmi:id="A_threadType_ownedDataPort-owner" name="owner" type="ThreadType" association="A_threadType_ownedDataPort">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_threadType_ownedDataPort-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_threadType_ownedDataPort-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_threadType_ownedEventDataPort" name="A_threadType_ownedEventDataPort" visibility="private" memberEnd="A_threadType_ownedEventDataPort-owner ThreadType-ownedEventDataPort">
      <generalization xmi:id="A_threadType_ownedEventDataPort-_generalization.0" general="A_componentType_ownedFeature"/>
      <ownedEnd xmi:id="A_threadType_ownedEventDataPort-owner" name="owner" type="ThreadType" association="A_threadType_ownedEventDataPort">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_threadType_ownedEventDataPort-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_threadType_ownedEventDataPort-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_threadType_ownedEventPort" name="A_threadType_ownedEventPort" visibility="private" memberEnd="A_threadType_ownedEventPort-owner ThreadType-ownedEventPort">
      <generalization xmi:id="A_threadType_ownedEventPort-_generalization.0" general="A_componentType_ownedFeature"/>
      <ownedEnd xmi:id="A_threadType_ownedEventPort-owner" name="owner" type="ThreadType" association="A_threadType_ownedEventPort">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_threadType_ownedEventPort-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_threadType_ownedEventPort-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_threadType_ownedDataAccess" name="A_threadType_ownedDataAccess" visibility="private" memberEnd="A_threadType_ownedDataAccess-owner ThreadType-ownedDataAccess">
      <generalization xmi:id="A_threadType_ownedDataAccess-_generalization.0" general="A_componentType_ownedFeature"/>
      <ownedEnd xmi:id="A_threadType_ownedDataAccess-owner" name="owner" type="ThreadType" association="A_threadType_ownedDataAccess">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_threadType_ownedDataAccess-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_threadType_ownedDataAccess-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_threadType_ownedSubprogramAccess" name="A_threadType_ownedSubprogramAccess" visibility="private" memberEnd="A_threadType_ownedSubprogramAccess-owner ThreadType-ownedSubprogramAccess">
      <generalization xmi:id="A_threadType_ownedSubprogramAccess-_generalization.0" general="A_componentType_ownedFeature"/>
      <ownedEnd xmi:id="A_threadType_ownedSubprogramAccess-owner" name="owner" type="ThreadType" association="A_threadType_ownedSubprogramAccess">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_threadType_ownedSubprogramAccess-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_threadType_ownedSubprogramAccess-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_threadType_ownedSubprogramGroupAccess" name="A_threadType_ownedSubprogramGroupAccess" visibility="private" memberEnd="A_threadType_ownedSubprogramGroupAccess-owner ThreadType-ownedSubprogramGroupAccess">
      <generalization xmi:id="A_threadType_ownedSubprogramGroupAccess-_generalization.0" general="A_componentType_ownedFeature"/>
      <ownedEnd xmi:id="A_threadType_ownedSubprogramGroupAccess-owner" name="owner" type="ThreadType" association="A_threadType_ownedSubprogramGroupAccess">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_threadType_ownedSubprogramGroupAccess-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_threadType_ownedSubprogramGroupAccess-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="ThreadSubcomponentType" name="ThreadSubcomponentType" isAbstract="true">
      <generalization xmi:id="ThreadSubcomponentType-_generalization.0" general="Thread"/>
      <generalization xmi:id="ThreadSubcomponentType-_generalization.1" general="SubcomponentType"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="ThreadPrototype" name="ThreadPrototype">
      <generalization xmi:id="ThreadPrototype-_generalization.0" general="ThreadSubcomponentType"/>
      <generalization xmi:id="ThreadPrototype-_generalization.1" general="ComponentPrototype"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="ThreadGroup" name="ThreadGroup" isAbstract="true">
      <generalization xmi:id="ThreadGroup-_generalization.0" general="NamedElement"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="ThreadGroupClassifier" name="ThreadGroupClassifier" isAbstract="true">
      <generalization xmi:id="ThreadGroupClassifier-_generalization.0" general="ThreadGroupSubcomponentType"/>
      <generalization xmi:id="ThreadGroupClassifier-_generalization.1" general="ComponentClassifier"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="ThreadGroupType" name="ThreadGroupType">
      <generalization xmi:id="ThreadGroupType-_generalization.0" general="ThreadGroupClassifier"/>
      <generalization xmi:id="ThreadGroupType-_generalization.1" general="ComponentType"/>
      <ownedAttribute xmi:id="ThreadGroupType-ownedDataPort" name="ownedDataPort" type="DataPort" aggregation="composite" subsettedProperty="ComponentType-ownedFeature" association="A_threadGroupType_ownedDataPort">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="ThreadGroupType-ownedDataPort-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="ThreadGroupType-ownedDataPort-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="ThreadGroupType-ownedEventDataPort" name="ownedEventDataPort" type="EventDataPort" aggregation="composite" subsettedProperty="ComponentType-ownedFeature" association="A_threadGroupType_ownedEventDataPort">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="ThreadGroupType-ownedEventDataPort-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="ThreadGroupType-ownedEventDataPort-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="ThreadGroupType-ownedEventPort" name="ownedEventPort" type="EventPort" aggregation="composite" subsettedProperty="ComponentType-ownedFeature" association="A_threadGroupType_ownedEventPort">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="ThreadGroupType-ownedEventPort-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="ThreadGroupType-ownedEventPort-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="ThreadGroupType-ownedDataAccess" name="ownedDataAccess" type="DataAccess" aggregation="composite" subsettedProperty="ComponentType-ownedFeature" association="A_threadGroupType_ownedDataAccess">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="ThreadGroupType-ownedDataAccess-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="ThreadGroupType-ownedDataAccess-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="ThreadGroupType-ownedSubprogramAccess" name="ownedSubprogramAccess" type="SubprogramAccess" aggregation="composite" subsettedProperty="ComponentType-ownedFeature" association="A_threadGroupType_ownedSubprogramAccess">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="ThreadGroupType-ownedSubprogramAccess-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="ThreadGroupType-ownedSubprogramAccess-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="ThreadGroupType-ownedSubprogramGroupAccess" name="ownedSubprogramGroupAccess" type="SubprogramGroupAccess" aggregation="composite" subsettedProperty="ComponentType-ownedFeature" association="A_threadGroupType_ownedSubprogramGroupAccess">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="ThreadGroupType-ownedSubprogramGroupAccess-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="ThreadGroupType-ownedSubprogramGroupAccess-_lowerValue"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="ThreadGroupSubcomponent" name="ThreadGroupSubcomponent">
      <generalization xmi:id="ThreadGroupSubcomponent-_generalization.0" general="ThreadGroup"/>
      <generalization xmi:id="ThreadGroupSubcomponent-_generalization.1" general="Subcomponent"/>
      <ownedAttribute xmi:id="ThreadGroupSubcomponent-threadGroupSubcomponentType" name="threadGroupSubcomponentType" type="ThreadGroupSubcomponentType" subsettedProperty="Subcomponent-subcomponentType" association="A_threadGroupSubcomponent_threadGroupSubcomponentType">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="ThreadGroupSubcomponent-threadGroupSubcomponentType-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="ThreadGroupSubcomponent-threadGroupSubcomponentType-_lowerValue"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="ThreadGroupImplementation" name="ThreadGroupImplementation">
      <generalization xmi:id="ThreadGroupImplementation-_generalization.0" general="ThreadGroupClassifier"/>
      <generalization xmi:id="ThreadGroupImplementation-_generalization.1" general="ComponentImplementation"/>
      <ownedAttribute xmi:id="ThreadGroupImplementation-type" name="type" type="ThreadGroupType" isDerived="true" redefinedProperty="ComponentImplementation-type" association="A_threadGroupImplementation_threadGroupType">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="ThreadGroupImplementation-type-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="ThreadGroupImplementation-type-_lowerValue" value="1"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="ThreadGroupImplementation-ownedDataSubcomponent" name="ownedDataSubcomponent" type="DataSubcomponent" aggregation="composite" subsettedProperty="ComponentImplementation-ownedSubcomponent" association="A_threadGroupImplementation_ownedDataSubcomponent">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="ThreadGroupImplementation-ownedDataSubcomponent-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="ThreadGroupImplementation-ownedDataSubcomponent-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="ThreadGroupImplementation-ownedThreadSubcomponent" name="ownedThreadSubcomponent" type="ThreadSubcomponent" aggregation="composite" subsettedProperty="ComponentImplementation-ownedSubcomponent" association="A_threadGroupImplementation_ownedThreadSubcomponent">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="ThreadGroupImplementation-ownedThreadSubcomponent-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="ThreadGroupImplementation-ownedThreadSubcomponent-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="ThreadGroupImplementation-ownedThreadGroupSubcomponent" name="ownedThreadGroupSubcomponent" type="ThreadGroupSubcomponent" aggregation="composite" subsettedProperty="ComponentImplementation-ownedSubcomponent" association="A_threadGroupImplementation_ownedThreadGroupSubcomponent">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="ThreadGroupImplementation-ownedThreadGroupSubcomponent-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="ThreadGroupImplementation-ownedThreadGroupSubcomponent-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="ThreadGroupImplementation-ownedSubprogramSubcomponent" name="ownedSubprogramSubcomponent" type="SubprogramSubcomponent" aggregation="composite" subsettedProperty="ComponentImplementation-ownedSubcomponent" association="A_threadGroupImplementation_ownedSubprogramSubcomponent">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="ThreadGroupImplementation-ownedSubprogramSubcomponent-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="ThreadGroupImplementation-ownedSubprogramSubcomponent-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="ThreadGroupImplementation-ownedSubprogramGroupSubcomponent" name="ownedSubprogramGroupSubcomponent" type="SubprogramGroupSubcomponent" aggregation="composite" subsettedProperty="ComponentImplementation-ownedSubcomponent" association="A_threadGroupImplementation_ownedSubprogramGroupSubcomponent">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="ThreadGroupImplementation-ownedSubprogramGroupSubcomponent-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="ThreadGroupImplementation-ownedSubprogramGroupSubcomponent-_lowerValue"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_threadGroupSubcomponent_threadGroupSubcomponentType" name="A_threadGroupSubcomponent_threadGroupSubcomponentType" visibility="private" memberEnd="A_threadGroupSubcomponent_threadGroupSubcomponentType-subcomponent ThreadGroupSubcomponent-threadGroupSubcomponentType">
      <generalization xmi:id="A_threadGroupSubcomponent_threadGroupSubcomponentType-_generalization.0" general="A_subcomponent_subcomponentType"/>
      <ownedEnd xmi:id="A_threadGroupSubcomponent_threadGroupSubcomponentType-subcomponent" name="subcomponent" type="ThreadGroupSubcomponent" association="A_threadGroupSubcomponent_threadGroupSubcomponentType">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_threadGroupSubcomponent_threadGroupSubcomponentType-subcomponent-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_threadGroupSubcomponent_threadGroupSubcomponentType-subcomponent-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_threadGroupImplementation_threadGroupType" name="A_threadGroupImplementation_threadGroupType" visibility="private" memberEnd="A_threadGroupImplementation_threadGroupType-implementation ThreadGroupImplementation-type" isDerived="true">
      <generalization xmi:id="A_threadGroupImplementation_threadGroupType-_generalization.0" general="A_componentImplementation_ComponentType"/>
      <ownedEnd xmi:id="A_threadGroupImplementation_threadGroupType-implementation" name="implementation" type="ThreadGroupImplementation" association="A_threadGroupImplementation_threadGroupType">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_threadGroupImplementation_threadGroupType-implementation-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_threadGroupImplementation_threadGroupType-implementation-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_threadGroupImplementation_ownedDataSubcomponent" name="A_threadGroupImplementation_ownedDataSubcomponent" visibility="private" memberEnd="A_threadGroupImplementation_ownedDataSubcomponent-owner ThreadGroupImplementation-ownedDataSubcomponent">
      <generalization xmi:id="A_threadGroupImplementation_ownedDataSubcomponent-_generalization.0" general="A_componentImplementation_ownedSubcomponent"/>
      <ownedEnd xmi:id="A_threadGroupImplementation_ownedDataSubcomponent-owner" name="owner" type="ThreadGroupImplementation" association="A_threadGroupImplementation_ownedDataSubcomponent">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_threadGroupImplementation_ownedDataSubcomponent-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_threadGroupImplementation_ownedDataSubcomponent-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_threadGroupImplementation_ownedThreadSubcomponent" name="A_threadGroupImplementation_ownedThreadSubcomponent" visibility="private" memberEnd="A_threadGroupImplementation_ownedThreadSubcomponent-owner ThreadGroupImplementation-ownedThreadSubcomponent">
      <generalization xmi:id="A_threadGroupImplementation_ownedThreadSubcomponent-_generalization.0" general="A_componentImplementation_ownedSubcomponent"/>
      <ownedEnd xmi:id="A_threadGroupImplementation_ownedThreadSubcomponent-owner" name="owner" type="ThreadGroupImplementation" association="A_threadGroupImplementation_ownedThreadSubcomponent">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_threadGroupImplementation_ownedThreadSubcomponent-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_threadGroupImplementation_ownedThreadSubcomponent-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_threadGroupImplementation_ownedThreadGroupSubcomponent" name="A_threadGroupImplementation_ownedThreadGroupSubcomponent" visibility="private" memberEnd="A_threadGroupImplementation_ownedThreadGroupSubcomponent-owner ThreadGroupImplementation-ownedThreadGroupSubcomponent">
      <generalization xmi:id="A_threadGroupImplementation_ownedThreadGroupSubcomponent-_generalization.0" general="A_componentImplementation_ownedSubcomponent"/>
      <ownedEnd xmi:id="A_threadGroupImplementation_ownedThreadGroupSubcomponent-owner" name="owner" type="ThreadGroupImplementation" association="A_threadGroupImplementation_ownedThreadGroupSubcomponent">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_threadGroupImplementation_ownedThreadGroupSubcomponent-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_threadGroupImplementation_ownedThreadGroupSubcomponent-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_threadGroupImplementation_ownedSubprogramSubcomponent" name="A_threadGroupImplementation_ownedSubprogramSubcomponent" visibility="private" memberEnd="A_threadGroupImplementation_ownedSubprogramSubcomponent-owner ThreadGroupImplementation-ownedSubprogramSubcomponent">
      <generalization xmi:id="A_threadGroupImplementation_ownedSubprogramSubcomponent-_generalization.0" general="A_componentImplementation_ownedSubcomponent"/>
      <ownedEnd xmi:id="A_threadGroupImplementation_ownedSubprogramSubcomponent-owner" name="owner" type="ThreadGroupImplementation" association="A_threadGroupImplementation_ownedSubprogramSubcomponent">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_threadGroupImplementation_ownedSubprogramSubcomponent-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_threadGroupImplementation_ownedSubprogramSubcomponent-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_threadGroupImplementation_ownedSubprogramGroupSubcomponent" name="A_threadGroupImplementation_ownedSubprogramGroupSubcomponent" visibility="private" memberEnd="A_threadGroupImplementation_ownedSubprogramGroupSubcomponent-owner ThreadGroupImplementation-ownedSubprogramGroupSubcomponent">
      <generalization xmi:id="A_threadGroupImplementation_ownedSubprogramGroupSubcomponent-_generalization.0" general="A_componentImplementation_ownedSubcomponent"/>
      <ownedEnd xmi:id="A_threadGroupImplementation_ownedSubprogramGroupSubcomponent-owner" name="owner" type="ThreadGroupImplementation" association="A_threadGroupImplementation_ownedSubprogramGroupSubcomponent">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_threadGroupImplementation_ownedSubprogramGroupSubcomponent-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_threadGroupImplementation_ownedSubprogramGroupSubcomponent-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_threadGroupType_ownedDataPort" name="A_threadGroupType_ownedDataPort" visibility="private" memberEnd="A_threadGroupType_ownedDataPort-owner ThreadGroupType-ownedDataPort">
      <generalization xmi:id="A_threadGroupType_ownedDataPort-_generalization.0" general="A_componentType_ownedFeature"/>
      <ownedEnd xmi:id="A_threadGroupType_ownedDataPort-owner" name="owner" type="ThreadGroupType" association="A_threadGroupType_ownedDataPort">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_threadGroupType_ownedDataPort-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_threadGroupType_ownedDataPort-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_threadGroupType_ownedEventDataPort" name="A_threadGroupType_ownedEventDataPort" visibility="private" memberEnd="A_threadGroupType_ownedEventDataPort-owner ThreadGroupType-ownedEventDataPort">
      <generalization xmi:id="A_threadGroupType_ownedEventDataPort-_generalization.0" general="A_componentType_ownedFeature"/>
      <ownedEnd xmi:id="A_threadGroupType_ownedEventDataPort-owner" name="owner" type="ThreadGroupType" association="A_threadGroupType_ownedEventDataPort">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_threadGroupType_ownedEventDataPort-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_threadGroupType_ownedEventDataPort-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_threadGroupType_ownedEventPort" name="A_threadGroupType_ownedEventPort" visibility="private" memberEnd="A_threadGroupType_ownedEventPort-owner ThreadGroupType-ownedEventPort">
      <generalization xmi:id="A_threadGroupType_ownedEventPort-_generalization.0" general="A_componentType_ownedFeature"/>
      <ownedEnd xmi:id="A_threadGroupType_ownedEventPort-owner" name="owner" type="ThreadGroupType" association="A_threadGroupType_ownedEventPort">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_threadGroupType_ownedEventPort-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_threadGroupType_ownedEventPort-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_threadGroupType_ownedDataAccess" name="A_threadGroupType_ownedDataAccess" visibility="private" memberEnd="A_threadGroupType_ownedDataAccess-owner ThreadGroupType-ownedDataAccess">
      <generalization xmi:id="A_threadGroupType_ownedDataAccess-_generalization.0" general="A_componentType_ownedFeature"/>
      <ownedEnd xmi:id="A_threadGroupType_ownedDataAccess-owner" name="owner" type="ThreadGroupType" association="A_threadGroupType_ownedDataAccess">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_threadGroupType_ownedDataAccess-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_threadGroupType_ownedDataAccess-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_threadGroupType_ownedSubprogramAccess" name="A_threadGroupType_ownedSubprogramAccess" visibility="private" memberEnd="A_threadGroupType_ownedSubprogramAccess-owner ThreadGroupType-ownedSubprogramAccess">
      <generalization xmi:id="A_threadGroupType_ownedSubprogramAccess-_generalization.0" general="A_componentType_ownedFeature"/>
      <ownedEnd xmi:id="A_threadGroupType_ownedSubprogramAccess-owner" name="owner" type="ThreadGroupType" association="A_threadGroupType_ownedSubprogramAccess">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_threadGroupType_ownedSubprogramAccess-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_threadGroupType_ownedSubprogramAccess-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_threadGroupType_ownedSubprogramGroupAccess" name="A_threadGroupType_ownedSubprogramGroupAccess" visibility="private" memberEnd="A_threadGroupType_ownedSubprogramGroupAccess-owner ThreadGroupType-ownedSubprogramGroupAccess">
      <generalization xmi:id="A_threadGroupType_ownedSubprogramGroupAccess-_generalization.0" general="A_componentType_ownedFeature"/>
      <ownedEnd xmi:id="A_threadGroupType_ownedSubprogramGroupAccess-owner" name="owner" type="ThreadGroupType" association="A_threadGroupType_ownedSubprogramGroupAccess">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_threadGroupType_ownedSubprogramGroupAccess-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_threadGroupType_ownedSubprogramGroupAccess-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="ThreadGroupSubcomponentType" name="ThreadGroupSubcomponentType" isAbstract="true">
      <generalization xmi:id="ThreadGroupSubcomponentType-_generalization.0" general="ThreadGroup"/>
      <generalization xmi:id="ThreadGroupSubcomponentType-_generalization.1" general="SubcomponentType"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="ThreadGroupPrototype" name="ThreadGroupPrototype">
      <generalization xmi:id="ThreadGroupPrototype-_generalization.0" general="ThreadGroupSubcomponentType"/>
      <generalization xmi:id="ThreadGroupPrototype-_generalization.1" general="ComponentPrototype"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="VirtualBus" name="VirtualBus" isAbstract="true">
      <generalization xmi:id="VirtualBus-_generalization.0" general="NamedElement"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="VirtualBusClassifier" name="VirtualBusClassifier" isAbstract="true">
      <generalization xmi:id="VirtualBusClassifier-_generalization.0" general="VitualBusSubcomponentType"/>
      <generalization xmi:id="VirtualBusClassifier-_generalization.1" general="ComponentClassifier"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="VirtualBusType" name="VirtualBusType">
      <generalization xmi:id="VirtualBusType-_generalization.0" general="VirtualBusClassifier"/>
      <generalization xmi:id="VirtualBusType-_generalization.1" general="ComponentType"/>
      <ownedAttribute xmi:id="VirtualBusType-ownedDataPort" name="ownedDataPort" type="DataPort" aggregation="composite" subsettedProperty="ComponentType-ownedFeature" association="A_virtualBusType_ownedDataPort">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="VirtualBusType-ownedDataPort-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="VirtualBusType-ownedDataPort-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="VirtualBusType-ownedEventDataPort" name="ownedEventDataPort" type="EventDataPort" aggregation="composite" subsettedProperty="ComponentType-ownedFeature" association="A_virtualBusType_ownedEventDataPort">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="VirtualBusType-ownedEventDataPort-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="VirtualBusType-ownedEventDataPort-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="VirtualBusType-ownedEventPort" name="ownedEventPort" type="EventPort" aggregation="composite" subsettedProperty="ComponentType-ownedFeature" association="A_virtualBusType_ownedEventPort">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="VirtualBusType-ownedEventPort-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="VirtualBusType-ownedEventPort-_lowerValue"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="VirtualBusSubcomponent" name="VirtualBusSubcomponent">
      <generalization xmi:id="VirtualBusSubcomponent-_generalization.0" general="VirtualBus"/>
      <generalization xmi:id="VirtualBusSubcomponent-_generalization.1" general="Subcomponent"/>
      <ownedAttribute xmi:id="VirtualBusSubcomponent-virtualBusSubcomponentType" name="virtualBusSubcomponentType" type="VitualBusSubcomponentType" subsettedProperty="Subcomponent-subcomponentType" association="A_virtualBusSubcomponent_virtualBusSubcomponentType">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="VirtualBusSubcomponent-virtualBusSubcomponentType-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="VirtualBusSubcomponent-virtualBusSubcomponentType-_lowerValue"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="VirtualBusImplementation" name="VirtualBusImplementation">
      <generalization xmi:id="VirtualBusImplementation-_generalization.0" general="VirtualBusClassifier"/>
      <generalization xmi:id="VirtualBusImplementation-_generalization.1" general="ComponentImplementation"/>
      <ownedAttribute xmi:id="VirtualBusImplementation-type" name="type" type="VirtualBusType" isDerived="true" redefinedProperty="ComponentImplementation-type" association="A_virtualBusImplementation_virtualBusType">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="VirtualBusImplementation-type-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="VirtualBusImplementation-type-_lowerValue" value="1"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="VirtualBusImplementation-ownedVirtualBusSubcomponent" name="ownedVirtualBusSubcomponent" type="VirtualBusSubcomponent" aggregation="composite" subsettedProperty="ComponentImplementation-ownedSubcomponent" association="A_virtualBusImplementation_ownedVirtualBusSubcomponent">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="VirtualBusImplementation-ownedVirtualBusSubcomponent-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="VirtualBusImplementation-ownedVirtualBusSubcomponent-_lowerValue"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_virtualBusImplementation_virtualBusType" name="A_virtualBusImplementation_virtualBusType" visibility="private" memberEnd="A_virtualBusImplementation_virtualBusType-implementation VirtualBusImplementation-type" isDerived="true">
      <generalization xmi:id="A_virtualBusImplementation_virtualBusType-_generalization.0" general="A_componentImplementation_ComponentType"/>
      <ownedEnd xmi:id="A_virtualBusImplementation_virtualBusType-implementation" name="implementation" type="VirtualBusImplementation" association="A_virtualBusImplementation_virtualBusType">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_virtualBusImplementation_virtualBusType-implementation-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_virtualBusImplementation_virtualBusType-implementation-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_virtualBusSubcomponent_virtualBusSubcomponentType" name="A_virtualBusSubcomponent_virtualBusSubcomponentType" visibility="private" memberEnd="A_virtualBusSubcomponent_virtualBusSubcomponentType-subcomponent VirtualBusSubcomponent-virtualBusSubcomponentType">
      <generalization xmi:id="A_virtualBusSubcomponent_virtualBusSubcomponentType-_generalization.0" general="A_subcomponent_subcomponentType"/>
      <ownedEnd xmi:id="A_virtualBusSubcomponent_virtualBusSubcomponentType-subcomponent" name="subcomponent" type="VirtualBusSubcomponent" association="A_virtualBusSubcomponent_virtualBusSubcomponentType">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_virtualBusSubcomponent_virtualBusSubcomponentType-subcomponent-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_virtualBusSubcomponent_virtualBusSubcomponentType-subcomponent-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_virtualBusImplementation_ownedVirtualBusSubcomponent" name="A_virtualBusImplementation_ownedVirtualBusSubcomponent" visibility="private" memberEnd="A_virtualBusImplementation_ownedVirtualBusSubcomponent-owner VirtualBusImplementation-ownedVirtualBusSubcomponent">
      <generalization xmi:id="A_virtualBusImplementation_ownedVirtualBusSubcomponent-_generalization.0" general="A_componentImplementation_ownedSubcomponent"/>
      <ownedEnd xmi:id="A_virtualBusImplementation_ownedVirtualBusSubcomponent-owner" name="owner" type="VirtualBusImplementation" association="A_virtualBusImplementation_ownedVirtualBusSubcomponent">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_virtualBusImplementation_ownedVirtualBusSubcomponent-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_virtualBusImplementation_ownedVirtualBusSubcomponent-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="VirtualBusPrototype" name="VirtualBusPrototype">
      <generalization xmi:id="VirtualBusPrototype-_generalization.0" general="VitualBusSubcomponentType"/>
      <generalization xmi:id="VirtualBusPrototype-_generalization.1" general="ComponentPrototype"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="VitualBusSubcomponentType" name="VitualBusSubcomponentType" isAbstract="true">
      <generalization xmi:id="VitualBusSubcomponentType-_generalization.0" general="VirtualBus"/>
      <generalization xmi:id="VitualBusSubcomponentType-_generalization.1" general="SubcomponentType"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_virtualBusType_ownedDataPort" name="A_virtualBusType_ownedDataPort" visibility="private" memberEnd="A_virtualBusType_ownedDataPort-owner VirtualBusType-ownedDataPort">
      <generalization xmi:id="A_virtualBusType_ownedDataPort-_generalization.0" general="A_componentType_ownedFeature"/>
      <ownedEnd xmi:id="A_virtualBusType_ownedDataPort-owner" name="owner" type="VirtualBusType" association="A_virtualBusType_ownedDataPort">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_virtualBusType_ownedDataPort-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_virtualBusType_ownedDataPort-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_virtualBusType_ownedEventDataPort" name="A_virtualBusType_ownedEventDataPort" visibility="private" memberEnd="A_virtualBusType_ownedEventDataPort-owner VirtualBusType-ownedEventDataPort">
      <generalization xmi:id="A_virtualBusType_ownedEventDataPort-_generalization.0" general="A_componentType_ownedFeature"/>
      <ownedEnd xmi:id="A_virtualBusType_ownedEventDataPort-owner" name="owner" type="VirtualBusType" association="A_virtualBusType_ownedEventDataPort">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_virtualBusType_ownedEventDataPort-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_virtualBusType_ownedEventDataPort-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_virtualBusType_ownedEventPort" name="A_virtualBusType_ownedEventPort" visibility="private" memberEnd="A_virtualBusType_ownedEventPort-owner VirtualBusType-ownedEventPort">
      <generalization xmi:id="A_virtualBusType_ownedEventPort-_generalization.0" general="A_componentType_ownedFeature"/>
      <ownedEnd xmi:id="A_virtualBusType_ownedEventPort-owner" name="owner" type="VirtualBusType" association="A_virtualBusType_ownedEventPort">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_virtualBusType_ownedEventPort-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_virtualBusType_ownedEventPort-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="VirtualProcessor" name="VirtualProcessor" isAbstract="true">
      <generalization xmi:id="VirtualProcessor-_generalization.0" general="NamedElement"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="VirtualProcessorClassifier" name="VirtualProcessorClassifier" isAbstract="true">
      <generalization xmi:id="VirtualProcessorClassifier-_generalization.0" general="VirtualProcessorSubcomponentType"/>
      <generalization xmi:id="VirtualProcessorClassifier-_generalization.1" general="ComponentClassifier"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="VirtualProcessorSubcomponent" name="VirtualProcessorSubcomponent">
      <generalization xmi:id="VirtualProcessorSubcomponent-_generalization.0" general="VirtualProcessor"/>
      <generalization xmi:id="VirtualProcessorSubcomponent-_generalization.1" general="Subcomponent"/>
      <ownedAttribute xmi:id="VirtualProcessorSubcomponent-virtualProcessorSubcomponentType" name="virtualProcessorSubcomponentType" type="VirtualProcessorSubcomponentType" subsettedProperty="Subcomponent-subcomponentType" association="A_virtualProcessorSubcomponent_virtualProcessorClassifier">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="VirtualProcessorSubcomponent-virtualProcessorSubcomponentType-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="VirtualProcessorSubcomponent-virtualProcessorSubcomponentType-_lowerValue"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="VirtualProcessorType" name="VirtualProcessorType">
      <generalization xmi:id="VirtualProcessorType-_generalization.0" general="VirtualProcessorClassifier"/>
      <generalization xmi:id="VirtualProcessorType-_generalization.1" general="ComponentType"/>
      <ownedAttribute xmi:id="VirtualProcessorType-ownedDataPort" name="ownedDataPort" type="DataPort" aggregation="composite" subsettedProperty="ComponentType-ownedFeature" association="A_virtualProcessorType_ownedDataPort">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="VirtualProcessorType-ownedDataPort-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="VirtualProcessorType-ownedDataPort-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="VirtualProcessorType-ownedEventDataPort" name="ownedEventDataPort" type="EventDataPort" aggregation="composite" subsettedProperty="ComponentType-ownedFeature" association="A_virtualProcessorType_ownedEventDataPort">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="VirtualProcessorType-ownedEventDataPort-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="VirtualProcessorType-ownedEventDataPort-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="VirtualProcessorType-ownedEventPort" name="ownedEventPort" type="EventPort" aggregation="composite" subsettedProperty="ComponentType-ownedFeature" association="A_virtualProcessorType_ownedEventPort">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="VirtualProcessorType-ownedEventPort-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="VirtualProcessorType-ownedEventPort-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="VirtualProcessorType-ownedSubprogramAccess" name="ownedSubprogramAccess" type="SubprogramAccess" aggregation="composite" subsettedProperty="ComponentType-ownedFeature" association="A_virtualProcessorType_ownedSubprogramAccess">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="VirtualProcessorType-ownedSubprogramAccess-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="VirtualProcessorType-ownedSubprogramAccess-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="VirtualProcessorType-ownedSubprogramGroupAccess" name="ownedSubprogramGroupAccess" type="SubprogramGroupAccess" aggregation="composite" subsettedProperty="ComponentType-ownedFeature" association="A_virtualProcessorType_ownedSubprogramGroupAccess">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="VirtualProcessorType-ownedSubprogramGroupAccess-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="VirtualProcessorType-ownedSubprogramGroupAccess-_lowerValue"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="VirtualProcessorImplementation" name="VirtualProcessorImplementation">
      <generalization xmi:id="VirtualProcessorImplementation-_generalization.0" general="VirtualProcessorClassifier"/>
      <generalization xmi:id="VirtualProcessorImplementation-_generalization.1" general="ComponentImplementation"/>
      <ownedAttribute xmi:id="VirtualProcessorImplementation-type" name="type" type="VirtualProcessorType" isDerived="true" redefinedProperty="ComponentImplementation-type" association="A_virtualProcessorImplementation_virtualProcessorType">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="VirtualProcessorImplementation-type-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="VirtualProcessorImplementation-type-_lowerValue" value="1"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="VirtualProcessorImplementation-ownedVirtualBusSubcomponent" name="ownedVirtualBusSubcomponent" type="VirtualBusSubcomponent" aggregation="composite" subsettedProperty="ComponentImplementation-ownedSubcomponent" association="A_virtualProcessorImplementation_ownedVirtualBusSubcomponent">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="VirtualProcessorImplementation-ownedVirtualBusSubcomponent-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="VirtualProcessorImplementation-ownedVirtualBusSubcomponent-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="VirtualProcessorImplementation-ownedVirtualProcessorSubcomponent" name="ownedVirtualProcessorSubcomponent" type="VirtualProcessorSubcomponent" aggregation="composite" subsettedProperty="ComponentImplementation-ownedSubcomponent" association="A_virtualProcessorImplementation_ownedVirtualProcessorSubcomponent">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="VirtualProcessorImplementation-ownedVirtualProcessorSubcomponent-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="VirtualProcessorImplementation-ownedVirtualProcessorSubcomponent-_lowerValue"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_virtualProcessorImplementation_virtualProcessorType" name="A_virtualProcessorImplementation_virtualProcessorType" visibility="private" memberEnd="A_virtualProcessorImplementation_virtualProcessorType-implementation VirtualProcessorImplementation-type" isDerived="true">
      <generalization xmi:id="A_virtualProcessorImplementation_virtualProcessorType-_generalization.0" general="A_componentImplementation_ComponentType"/>
      <ownedEnd xmi:id="A_virtualProcessorImplementation_virtualProcessorType-implementation" name="implementation" type="VirtualProcessorImplementation" association="A_virtualProcessorImplementation_virtualProcessorType">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_virtualProcessorImplementation_virtualProcessorType-implementation-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_virtualProcessorImplementation_virtualProcessorType-implementation-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_virtualProcessorSubcomponent_virtualProcessorClassifier" name="A_virtualProcessorSubcomponent_virtualProcessorClassifier" visibility="private" memberEnd="A_virtualProcessorSubcomponent_virtualProcessorClassifier-subcomponent VirtualProcessorSubcomponent-virtualProcessorSubcomponentType">
      <generalization xmi:id="A_virtualProcessorSubcomponent_virtualProcessorClassifier-_generalization.0" general="A_subcomponent_subcomponentType"/>
      <ownedEnd xmi:id="A_virtualProcessorSubcomponent_virtualProcessorClassifier-subcomponent" name="subcomponent" type="VirtualProcessorSubcomponent" association="A_virtualProcessorSubcomponent_virtualProcessorClassifier">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_virtualProcessorSubcomponent_virtualProcessorClassifier-subcomponent-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_virtualProcessorSubcomponent_virtualProcessorClassifier-subcomponent-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_virtualProcessorType_ownedDataPort" name="A_virtualProcessorType_ownedDataPort" visibility="private" memberEnd="A_virtualProcessorType_ownedDataPort-owner VirtualProcessorType-ownedDataPort">
      <generalization xmi:id="A_virtualProcessorType_ownedDataPort-_generalization.0" general="A_componentType_ownedFeature"/>
      <ownedEnd xmi:id="A_virtualProcessorType_ownedDataPort-owner" name="owner" type="VirtualProcessorType" association="A_virtualProcessorType_ownedDataPort">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_virtualProcessorType_ownedDataPort-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_virtualProcessorType_ownedDataPort-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_virtualProcessorType_ownedEventDataPort" name="A_virtualProcessorType_ownedEventDataPort" visibility="private" memberEnd="A_virtualProcessorType_ownedEventDataPort-owner VirtualProcessorType-ownedEventDataPort">
      <generalization xmi:id="A_virtualProcessorType_ownedEventDataPort-_generalization.0" general="A_componentType_ownedFeature"/>
      <ownedEnd xmi:id="A_virtualProcessorType_ownedEventDataPort-owner" name="owner" type="VirtualProcessorType" association="A_virtualProcessorType_ownedEventDataPort">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_virtualProcessorType_ownedEventDataPort-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_virtualProcessorType_ownedEventDataPort-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_virtualProcessorType_ownedEventPort" name="A_virtualProcessorType_ownedEventPort" visibility="private" memberEnd="A_virtualProcessorType_ownedEventPort-owner VirtualProcessorType-ownedEventPort">
      <generalization xmi:id="A_virtualProcessorType_ownedEventPort-_generalization.0" general="A_componentType_ownedFeature"/>
      <ownedEnd xmi:id="A_virtualProcessorType_ownedEventPort-owner" name="owner" type="VirtualProcessorType" association="A_virtualProcessorType_ownedEventPort">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_virtualProcessorType_ownedEventPort-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_virtualProcessorType_ownedEventPort-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_virtualProcessorType_ownedSubprogramAccess" name="A_virtualProcessorType_ownedSubprogramAccess" visibility="private" memberEnd="A_virtualProcessorType_ownedSubprogramAccess-owner VirtualProcessorType-ownedSubprogramAccess">
      <generalization xmi:id="A_virtualProcessorType_ownedSubprogramAccess-_generalization.0" general="A_componentType_ownedFeature"/>
      <ownedEnd xmi:id="A_virtualProcessorType_ownedSubprogramAccess-owner" name="owner" type="VirtualProcessorType" association="A_virtualProcessorType_ownedSubprogramAccess">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_virtualProcessorType_ownedSubprogramAccess-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_virtualProcessorType_ownedSubprogramAccess-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_virtualProcessorType_ownedSubprogramGroupAccess" name="A_virtualProcessorType_ownedSubprogramGroupAccess" visibility="private" memberEnd="A_virtualProcessorType_ownedSubprogramGroupAccess-owner VirtualProcessorType-ownedSubprogramGroupAccess">
      <generalization xmi:id="A_virtualProcessorType_ownedSubprogramGroupAccess-_generalization.0" general="A_componentType_ownedFeature"/>
      <ownedEnd xmi:id="A_virtualProcessorType_ownedSubprogramGroupAccess-owner" name="owner" type="VirtualProcessorType" association="A_virtualProcessorType_ownedSubprogramGroupAccess">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_virtualProcessorType_ownedSubprogramGroupAccess-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_virtualProcessorType_ownedSubprogramGroupAccess-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_virtualProcessorImplementation_ownedVirtualBusSubcomponent" name="A_virtualProcessorImplementation_ownedVirtualBusSubcomponent" visibility="private" memberEnd="A_virtualProcessorImplementation_ownedVirtualBusSubcomponent-owner VirtualProcessorImplementation-ownedVirtualBusSubcomponent">
      <generalization xmi:id="A_virtualProcessorImplementation_ownedVirtualBusSubcomponent-_generalization.0" general="A_componentImplementation_ownedSubcomponent"/>
      <ownedEnd xmi:id="A_virtualProcessorImplementation_ownedVirtualBusSubcomponent-owner" name="owner" type="VirtualProcessorImplementation" association="A_virtualProcessorImplementation_ownedVirtualBusSubcomponent">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_virtualProcessorImplementation_ownedVirtualBusSubcomponent-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_virtualProcessorImplementation_ownedVirtualBusSubcomponent-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_virtualProcessorImplementation_ownedVirtualProcessorSubcomponent" name="A_virtualProcessorImplementation_ownedVirtualProcessorSubcomponent" visibility="private" memberEnd="A_virtualProcessorImplementation_ownedVirtualProcessorSubcomponent-owner VirtualProcessorImplementation-ownedVirtualProcessorSubcomponent">
      <generalization xmi:id="A_virtualProcessorImplementation_ownedVirtualProcessorSubcomponent-_generalization.0" general="A_componentImplementation_ownedSubcomponent"/>
      <ownedEnd xmi:id="A_virtualProcessorImplementation_ownedVirtualProcessorSubcomponent-owner" name="owner" type="VirtualProcessorImplementation" association="A_virtualProcessorImplementation_ownedVirtualProcessorSubcomponent">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_virtualProcessorImplementation_ownedVirtualProcessorSubcomponent-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_virtualProcessorImplementation_ownedVirtualProcessorSubcomponent-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="VirtualProcessorSubcomponentType" name="VirtualProcessorSubcomponentType" isAbstract="true">
      <generalization xmi:id="VirtualProcessorSubcomponentType-_generalization.0" general="VirtualProcessor"/>
      <generalization xmi:id="VirtualProcessorSubcomponentType-_generalization.1" general="SubcomponentType"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="VirtualProcessorPrototype" name="VirtualProcessorPrototype">
      <generalization xmi:id="VirtualProcessorPrototype-_generalization.0" general="VirtualProcessorSubcomponentType"/>
      <generalization xmi:id="VirtualProcessorPrototype-_generalization.1" general="ComponentPrototype"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="AccessConnection" name="AccessConnection">
      <ownedComment xmi:id="AccessConnection-_ownedComment.0">
        <body>An access connection.</body>
      </ownedComment>
      <generalization xmi:id="AccessConnection-_generalization.0" general="Connection"/>
      <ownedAttribute xmi:id="AccessConnection-accessCategory" name="accessCategory" type="AccessCategory">
        <ownedComment xmi:id="AccessConnection-accessCategory-_ownedComment.0">
          <body>The category of access (bus, data, subprogram, subprogram group).</body>
        </ownedComment>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="ParameterConnection" name="ParameterConnection">
      <ownedComment xmi:id="ParameterConnection-_ownedComment.0">
        <body>A parameter connection.</body>
      </ownedComment>
      <generalization xmi:id="ParameterConnection-_generalization.0" general="Connection"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="PortConnection" name="PortConnection">
      <ownedComment xmi:id="PortConnection-_ownedComment.0">
        <body>A port connection.</body>
      </ownedComment>
      <generalization xmi:id="PortConnection-_generalization.0" general="Connection"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="AccessConnectionEnd" name="AccessConnectionEnd" isAbstract="true">
      <ownedComment xmi:id="AccessConnectionEnd-_ownedComment.0">
        <body>The superclass of all elements that may be an end of an access connection.</body>
      </ownedComment>
      <generalization xmi:id="AccessConnectionEnd-_generalization.0" general="ConnectionEnd"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="ParameterConnectionEnd" name="ParameterConnectionEnd" isAbstract="true">
      <ownedComment xmi:id="ParameterConnectionEnd-_ownedComment.0">
        <body>The superclass of all elements that may be an end of a parameter connection.</body>
      </ownedComment>
      <generalization xmi:id="ParameterConnectionEnd-_generalization.0" general="ConnectionEnd"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="PortConnectionEnd" name="PortConnectionEnd" isAbstract="true">
      <ownedComment xmi:id="PortConnectionEnd-_ownedComment.0">
        <body>The superclass of all elements that may be an end of a port connection.</body>
      </ownedComment>
      <generalization xmi:id="PortConnectionEnd-_generalization.0" general="ConnectionEnd"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="FeatureGroupConnection" name="FeatureGroupConnection">
      <ownedComment xmi:id="FeatureGroupConnection-_ownedComment.0">
        <body>A feature group connection.</body>
      </ownedComment>
      <generalization xmi:id="FeatureGroupConnection-_generalization.0" general="Connection"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="FeatureGroupConnectionEnd" name="FeatureGroupConnectionEnd" isAbstract="true">
      <ownedComment xmi:id="FeatureGroupConnectionEnd-_ownedComment.0">
        <body>The superclass of all elements that may be an end of a feature group connection.</body>
      </ownedComment>
      <generalization xmi:id="FeatureGroupConnectionEnd-_generalization.0" general="ConnectionEnd"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="FeatureConnection" name="FeatureConnection">
      <ownedComment xmi:id="FeatureConnection-_ownedComment.0">
        <body>A feature connection.</body>
      </ownedComment>
      <generalization xmi:id="FeatureConnection-_generalization.0" general="Connection"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="FeatureConnectionEnd" name="FeatureConnectionEnd" isAbstract="true">
      <ownedComment xmi:id="FeatureConnectionEnd-_ownedComment.0">
        <body>The superclass of all elements that may be an end of a feature connection.</body>
      </ownedComment>
      <generalization xmi:id="FeatureConnectionEnd-_generalization.0" general="ConnectionEnd"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_componentImplementation_ownedAccessConnection" name="A_componentImplementation_ownedAccessConnection" visibility="private" memberEnd="A_componentImplementation_ownedAccessConnection-owner ComponentImplementation-ownedAccessConnection">
      <generalization xmi:id="A_componentImplementation_ownedAccessConnection-_generalization.0" general="A_componentImplementation_ownedConnection"/>
      <ownedEnd xmi:id="A_componentImplementation_ownedAccessConnection-owner" name="owner" type="ComponentImplementation" association="A_componentImplementation_ownedAccessConnection">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_componentImplementation_ownedAccessConnection-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_componentImplementation_ownedAccessConnection-owner-_lowerValue" value="1"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_componentImplementation_ownedParameterConnection3E" name="A_componentImplementation_ownedParameterConnection>" visibility="private" memberEnd="A_componentImplementation_ownedParameterConnection3E-owner ComponentImplementation-ownedParameterConnection">
      <generalization xmi:id="A_componentImplementation_ownedParameterConnection3E-_generalization.0" general="A_componentImplementation_ownedConnection"/>
      <ownedEnd xmi:id="A_componentImplementation_ownedParameterConnection3E-owner" name="owner" type="ComponentImplementation" association="A_componentImplementation_ownedParameterConnection3E">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_componentImplementation_ownedParameterConnection3E-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_componentImplementation_ownedParameterConnection3E-owner-_lowerValue" value="1"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_componentImplementation_ownedPortConnection" name="A_componentImplementation_ownedPortConnection" visibility="private" memberEnd="A_componentImplementation_ownedPortConnection-owner ComponentImplementation-ownedPortConnection">
      <generalization xmi:id="A_componentImplementation_ownedPortConnection-_generalization.0" general="A_componentImplementation_ownedConnection"/>
      <ownedEnd xmi:id="A_componentImplementation_ownedPortConnection-owner" name="owner" type="ComponentImplementation" association="A_componentImplementation_ownedPortConnection">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_componentImplementation_ownedPortConnection-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_componentImplementation_ownedPortConnection-owner-_lowerValue" value="1"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_componentImplementation_ownedFeatureConnection" name="A_componentImplementation_ownedFeatureConnection" visibility="private" memberEnd="A_componentImplementation_ownedFeatureConnection-owner ComponentImplementation-ownedFeatureConnection">
      <generalization xmi:id="A_componentImplementation_ownedFeatureConnection-_generalization.0" general="A_componentImplementation_ownedConnection"/>
      <ownedEnd xmi:id="A_componentImplementation_ownedFeatureConnection-owner" name="owner" type="ComponentImplementation" association="A_componentImplementation_ownedFeatureConnection">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_componentImplementation_ownedFeatureConnection-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_componentImplementation_ownedFeatureConnection-owner-_lowerValue" value="1"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_componentImplementation_ownedFeatureGroupConnection" name="A_componentImplementation_ownedFeatureGroupConnection" visibility="private" memberEnd="A_componentImplementation_ownedFeatureGroupConnection-owner ComponentImplementation-ownedFeatureGroupConnection">
      <generalization xmi:id="A_componentImplementation_ownedFeatureGroupConnection-_generalization.0" general="A_componentImplementation_ownedConnection"/>
      <ownedEnd xmi:id="A_componentImplementation_ownedFeatureGroupConnection-owner" name="owner" type="ComponentImplementation" association="A_componentImplementation_ownedFeatureGroupConnection">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_componentImplementation_ownedFeatureGroupConnection-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_componentImplementation_ownedFeatureGroupConnection-owner-_lowerValue" value="1"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="Feature" name="Feature" isAbstract="true">
      <ownedComment xmi:id="Feature-_ownedComment.0">
        <body>The superclass of all AADL features.</body>
      </ownedComment>
      <generalization xmi:id="Feature-_generalization.0" general="StructuralFeature"/>
      <generalization xmi:id="Feature-_generalization.1" general="ArrayableElement"/>
      <generalization xmi:id="Feature-_generalization.2" general="FeatureConnectionEnd"/>
      <ownedAttribute xmi:id="Feature-prototype" name="prototype" type="ComponentPrototype" isReadOnly="true" isDerived="true" subsettedProperty="Feature-featureClassifier" association="A_feature_prototype">
        <ownedComment xmi:id="Feature-prototype-_ownedComment.0">
          <body>References a feature prototype. This is used if the feature specification comes from a feature prototype.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="Feature-prototype-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="Feature-prototype-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Feature-featureClassifier" name="featureClassifier" type="FeatureClassifier" isReadOnly="true" isDerived="true" isDerivedUnion="true" association="A_feature_featureClassifier">
        <ownedComment xmi:id="Feature-featureClassifier-_ownedComment.0">
          <body>A classifier referenced by the feature. The meaning of this classifier depends on the feature category.&#xD;
For parameter and port features, the classifier specifies the type of data that passes through the port.&#xD;
For access features, the classifier specifies the type of the shared component.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="Feature-featureClassifier-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="Feature-featureClassifier-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Feature-refined" name="refined" type="Feature" subsettedProperty="RefinableElement-refinedElement" association="A_feature_refined">
        <ownedComment xmi:id="Feature-refined-_ownedComment.0">
          <body>References a feature that is refined by this feature.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="Feature-refined-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="Feature-refined-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Feature-classifier" name="classifier" type="Classifier" isReadOnly="true" isDerived="true" subsettedProperty="Feature-featureClassifier" association="A_feature_componentClassifier">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="Feature-classifier-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="Feature-classifier-_lowerValue"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="FeatureGroup" name="FeatureGroup">
      <ownedComment xmi:id="FeatureGroup-_ownedComment.0">
        <body>A collection of simple features and nested feature groups.</body>
      </ownedComment>
      <generalization xmi:id="FeatureGroup-_generalization.0" general="Context"/>
      <generalization xmi:id="FeatureGroup-_generalization.1" general="CallContext"/>
      <generalization xmi:id="FeatureGroup-_generalization.2" general="DirectedFeature"/>
      <generalization xmi:id="FeatureGroup-_generalization.3" general="FeatureGroupConnectionEnd"/>
      <ownedAttribute xmi:id="FeatureGroup-inverse" name="inverse" type="Boolean">
        <ownedComment xmi:id="FeatureGroup-inverse-_ownedComment.0">
          <body>Specifies if this feature group is an inverse of its type.</body>
        </ownedComment>
      </ownedAttribute>
      <ownedAttribute xmi:id="FeatureGroup-featureType" name="featureType" type="FeatureType" association="A_featureGroup_type">
        <ownedComment xmi:id="FeatureGroup-featureType-_ownedComment.0">
          <body>References the type of this feature group.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="FeatureGroup-featureType-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="FeatureGroup-featureType-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="FeatureGroup-featureGroupType" name="featureGroupType" type="FeatureGroupType" isReadOnly="true" isDerived="true" subsettedProperty="FeatureGroup-featureType" association="A_featureGroup_featureGroupType">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="FeatureGroup-featureGroupType-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="FeatureGroup-featureGroupType-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="FeatureGroup-featureGroupPrototype" name="featureGroupPrototype" type="FeatureGroupPrototype" isReadOnly="true" isDerived="true" subsettedProperty="FeatureGroup-featureType" association="A_featureGroup_featureGroupPrototype">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="FeatureGroup-featureGroupPrototype-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="FeatureGroup-featureGroupPrototype-_lowerValue"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="DataAccess" name="DataAccess">
      <generalization xmi:id="DataAccess-_generalization.0" general="Access"/>
      <generalization xmi:id="DataAccess-_generalization.1" general="ParameterConnectionEnd"/>
      <generalization xmi:id="DataAccess-_generalization.2" general="PortConnectionEnd"/>
      <generalization xmi:id="DataAccess-_generalization.3" general="FlowElement"/>
      <generalization xmi:id="DataAccess-_generalization.4" general="Data"/>
      <ownedAttribute xmi:id="DataAccess-dataFeatureClassifier" name="dataFeatureClassifier" type="DataSubcomponentType" subsettedProperty="Feature-featureClassifier" association="A_dataAccess_dataFeatureClassifier">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="DataAccess-dataFeatureClassifier-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="DataAccess-dataFeatureClassifier-_lowerValue"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="BusAccess" name="BusAccess">
      <generalization xmi:id="BusAccess-_generalization.0" general="Access"/>
      <generalization xmi:id="BusAccess-_generalization.1" general="Bus"/>
      <ownedAttribute xmi:id="BusAccess-busFeatureClassifier" name="busFeatureClassifier" type="BusSubcomponentType" subsettedProperty="Feature-featureClassifier" association="A_busAccess_busFeatureClassifier">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="BusAccess-busFeatureClassifier-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="BusAccess-busFeatureClassifier-_lowerValue"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="SubprogramAccess" name="SubprogramAccess">
      <generalization xmi:id="SubprogramAccess-_generalization.0" general="Access"/>
      <generalization xmi:id="SubprogramAccess-_generalization.1" general="Subprogram"/>
      <ownedAttribute xmi:id="SubprogramAccess-subprogramFeatureClassifier" name="subprogramFeatureClassifier" type="SubprogramSubcomponentType" subsettedProperty="Feature-featureClassifier" association="A_subprogramAccess_subprogramFeatureClassifier">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="SubprogramAccess-subprogramFeatureClassifier-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="SubprogramAccess-subprogramFeatureClassifier-_lowerValue"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="DataPort" name="DataPort">
      <generalization xmi:id="DataPort-_generalization.0" general="Port"/>
      <generalization xmi:id="DataPort-_generalization.1" general="ParameterConnectionEnd"/>
      <generalization xmi:id="DataPort-_generalization.2" general="Context"/>
      <generalization xmi:id="DataPort-_generalization.3" general="Data"/>
      <ownedAttribute xmi:id="DataPort-dataFeatureClassifier" name="dataFeatureClassifier" type="DataSubcomponentType" subsettedProperty="Feature-featureClassifier" association="A_dataPort_dataFeatureClassifier">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="DataPort-dataFeatureClassifier-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="DataPort-dataFeatureClassifier-_lowerValue"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="EventPort" name="EventPort">
      <generalization xmi:id="EventPort-_generalization.0" general="Port"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="EventDataPort" name="EventDataPort">
      <generalization xmi:id="EventDataPort-_generalization.0" general="Port"/>
      <generalization xmi:id="EventDataPort-_generalization.1" general="ParameterConnectionEnd"/>
      <generalization xmi:id="EventDataPort-_generalization.2" general="Context"/>
      <generalization xmi:id="EventDataPort-_generalization.3" general="Data"/>
      <ownedAttribute xmi:id="EventDataPort-dataFeatureClassifier" name="dataFeatureClassifier" type="DataSubcomponentType" subsettedProperty="Feature-featureClassifier" association="A_eventDataPort_dataFeatureClassifier">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="EventDataPort-dataFeatureClassifier-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="EventDataPort-dataFeatureClassifier-_lowerValue"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_dataPort_dataFeatureClassifier" name="A_dataPort_dataFeatureClassifier" visibility="private" memberEnd="A_dataPort_dataFeatureClassifier-dataPort DataPort-dataFeatureClassifier">
      <generalization xmi:id="A_dataPort_dataFeatureClassifier-_generalization.0" general="A_feature_featureClassifier"/>
      <ownedEnd xmi:id="A_dataPort_dataFeatureClassifier-dataPort" name="dataPort" type="DataPort" association="A_dataPort_dataFeatureClassifier">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_dataPort_dataFeatureClassifier-dataPort-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_dataPort_dataFeatureClassifier-dataPort-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_eventDataPort_dataFeatureClassifier" name="A_eventDataPort_dataFeatureClassifier" visibility="private" memberEnd="A_eventDataPort_dataFeatureClassifier-eventDataPort EventDataPort-dataFeatureClassifier">
      <generalization xmi:id="A_eventDataPort_dataFeatureClassifier-_generalization.0" general="A_feature_featureClassifier"/>
      <ownedEnd xmi:id="A_eventDataPort_dataFeatureClassifier-eventDataPort" name="eventDataPort" type="EventDataPort" association="A_eventDataPort_dataFeatureClassifier">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_eventDataPort_dataFeatureClassifier-eventDataPort-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_eventDataPort_dataFeatureClassifier-eventDataPort-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="Parameter" name="Parameter">
      <ownedComment xmi:id="Parameter-_ownedComment.0">
        <body>An AADL parameter feature.</body>
      </ownedComment>
      <generalization xmi:id="Parameter-_generalization.0" general="DirectedFeature"/>
      <generalization xmi:id="Parameter-_generalization.1" general="Context"/>
      <generalization xmi:id="Parameter-_generalization.2" general="ParameterConnectionEnd"/>
      <ownedAttribute xmi:id="Parameter-dataFeatureClassifier" name="dataFeatureClassifier" type="DataSubcomponentType" subsettedProperty="Feature-featureClassifier" association="A_parameter_dataFeatureClassifier">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="Parameter-dataFeatureClassifier-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="Parameter-dataFeatureClassifier-_lowerValue"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="SubprogramGroupAccess" name="SubprogramGroupAccess">
      <generalization xmi:id="SubprogramGroupAccess-_generalization.0" general="Access"/>
      <generalization xmi:id="SubprogramGroupAccess-_generalization.1" general="CallContext"/>
      <generalization xmi:id="SubprogramGroupAccess-_generalization.2" general="SubprogramGroup"/>
      <ownedAttribute xmi:id="SubprogramGroupAccess-subprogramGroupFeatureClassifier" name="subprogramGroupFeatureClassifier" type="SubprogramGroupSubcomponentType" subsettedProperty="Feature-featureClassifier" association="A_subprogramGroupAccess_subprogramGroupFeatureClassifier">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="SubprogramGroupAccess-subprogramGroupFeatureClassifier-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="SubprogramGroupAccess-subprogramGroupFeatureClassifier-_lowerValue"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_dataAccess_dataFeatureClassifier" name="A_dataAccess_dataFeatureClassifier" visibility="private" memberEnd="A_dataAccess_dataFeatureClassifier-dataAccess DataAccess-dataFeatureClassifier">
      <generalization xmi:id="A_dataAccess_dataFeatureClassifier-_generalization.0" general="A_feature_featureClassifier"/>
      <ownedEnd xmi:id="A_dataAccess_dataFeatureClassifier-dataAccess" name="dataAccess" type="DataAccess" association="A_dataAccess_dataFeatureClassifier">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_dataAccess_dataFeatureClassifier-dataAccess-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_dataAccess_dataFeatureClassifier-dataAccess-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_parameter_dataFeatureClassifier" name="A_parameter_dataFeatureClassifier" visibility="private" memberEnd="A_parameter_dataFeatureClassifier-parameter Parameter-dataFeatureClassifier">
      <generalization xmi:id="A_parameter_dataFeatureClassifier-_generalization.0" general="A_feature_featureClassifier"/>
      <ownedEnd xmi:id="A_parameter_dataFeatureClassifier-parameter" name="parameter" type="Parameter" association="A_parameter_dataFeatureClassifier">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_parameter_dataFeatureClassifier-parameter-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_parameter_dataFeatureClassifier-parameter-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_busAccess_busFeatureClassifier" name="A_busAccess_busFeatureClassifier" visibility="private" memberEnd="A_busAccess_busFeatureClassifier-busAccess BusAccess-busFeatureClassifier">
      <generalization xmi:id="A_busAccess_busFeatureClassifier-_generalization.0" general="A_feature_featureClassifier"/>
      <ownedEnd xmi:id="A_busAccess_busFeatureClassifier-busAccess" name="busAccess" type="BusAccess" association="A_busAccess_busFeatureClassifier">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_busAccess_busFeatureClassifier-busAccess-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_busAccess_busFeatureClassifier-busAccess-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_subprogramAccess_subprogramFeatureClassifier" name="A_subprogramAccess_subprogramFeatureClassifier" visibility="private" memberEnd="A_subprogramAccess_subprogramFeatureClassifier-subprogramAccess SubprogramAccess-subprogramFeatureClassifier">
      <generalization xmi:id="A_subprogramAccess_subprogramFeatureClassifier-_generalization.0" general="A_feature_featureClassifier"/>
      <ownedEnd xmi:id="A_subprogramAccess_subprogramFeatureClassifier-subprogramAccess" name="subprogramAccess" type="SubprogramAccess" association="A_subprogramAccess_subprogramFeatureClassifier">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_subprogramAccess_subprogramFeatureClassifier-subprogramAccess-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_subprogramAccess_subprogramFeatureClassifier-subprogramAccess-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_subprogramGroupAccess_subprogramGroupFeatureClassifier" name="A_subprogramGroupAccess_subprogramGroupFeatureClassifier" visibility="private" memberEnd="A_subprogramGroupAccess_subprogramGroupFeatureClassifier-subprogramGroupAccess SubprogramGroupAccess-subprogramGroupFeatureClassifier">
      <generalization xmi:id="A_subprogramGroupAccess_subprogramGroupFeatureClassifier-_generalization.0" general="A_feature_featureClassifier"/>
      <ownedEnd xmi:id="A_subprogramGroupAccess_subprogramGroupFeatureClassifier-subprogramGroupAccess" name="subprogramGroupAccess" type="SubprogramGroupAccess" association="A_subprogramGroupAccess_subprogramGroupFeatureClassifier">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_subprogramGroupAccess_subprogramGroupFeatureClassifier-subprogramGroupAccess-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_subprogramGroupAccess_subprogramGroupFeatureClassifier-subprogramGroupAccess-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_featureGroupType_ownedBusAccess" name="A_featureGroupType_ownedBusAccess" visibility="private" memberEnd="A_featureGroupType_ownedBusAccess-owner FeatureGroupType-ownedBusAccess">
      <generalization xmi:id="A_featureGroupType_ownedBusAccess-_generalization.0" general="A_featureGroupType_ownedFeature"/>
      <ownedEnd xmi:id="A_featureGroupType_ownedBusAccess-owner" name="owner" type="FeatureGroupType" association="A_featureGroupType_ownedBusAccess">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_featureGroupType_ownedBusAccess-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_featureGroupType_ownedBusAccess-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_featureGroupType_ownedDataAccess" name="A_featureGroupType_ownedDataAccess" visibility="private" memberEnd="A_featureGroupType_ownedDataAccess-owner">
      <ownedEnd xmi:id="A_featureGroupType_ownedDataAccess-owner" name="owner" type="FeatureGroupType" association="A_featureGroupType_ownedDataAccess">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_featureGroupType_ownedDataAccess-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_featureGroupType_ownedDataAccess-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_featureGroupType_ownedDataPort" name="A_featureGroupType_ownedDataPort" visibility="private" memberEnd="A_featureGroupType_ownedDataPort-owner FeatureGroupType-ownedDataPort">
      <generalization xmi:id="A_featureGroupType_ownedDataPort-_generalization.0" general="A_featureGroupType_ownedFeature"/>
      <ownedEnd xmi:id="A_featureGroupType_ownedDataPort-owner" name="owner" type="FeatureGroupType" association="A_featureGroupType_ownedDataPort">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_featureGroupType_ownedDataPort-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_featureGroupType_ownedDataPort-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_featureGroupType_ownedEventDataPort" name="A_featureGroupType_ownedEventDataPort" visibility="private" memberEnd="A_featureGroupType_ownedEventDataPort-owner FeatureGroupType-ownedEventDataPort">
      <generalization xmi:id="A_featureGroupType_ownedEventDataPort-_generalization.0" general="A_featureGroupType_ownedFeature"/>
      <ownedEnd xmi:id="A_featureGroupType_ownedEventDataPort-owner" name="owner" type="FeatureGroupType" association="A_featureGroupType_ownedEventDataPort">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_featureGroupType_ownedEventDataPort-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_featureGroupType_ownedEventDataPort-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_featureGroupType_ownedEventPort" name="A_featureGroupType_ownedEventPort" visibility="private" memberEnd="A_featureGroupType_ownedEventPort-owner FeatureGroupType-ownedEventPort">
      <generalization xmi:id="A_featureGroupType_ownedEventPort-_generalization.0" general="A_featureGroupType_ownedFeature"/>
      <ownedEnd xmi:id="A_featureGroupType_ownedEventPort-owner" name="owner" type="FeatureGroupType" association="A_featureGroupType_ownedEventPort">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_featureGroupType_ownedEventPort-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_featureGroupType_ownedEventPort-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_featureGroupType_ownedFeatureGroup" name="A_featureGroupType_ownedFeatureGroup" visibility="private" memberEnd="A_featureGroupType_ownedFeatureGroup-owner FeatureGroupType-ownedFeatureGroup">
      <generalization xmi:id="A_featureGroupType_ownedFeatureGroup-_generalization.0" general="A_featureGroupType_ownedFeature"/>
      <ownedEnd xmi:id="A_featureGroupType_ownedFeatureGroup-owner" name="owner" type="FeatureGroupType" association="A_featureGroupType_ownedFeatureGroup">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_featureGroupType_ownedFeatureGroup-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_featureGroupType_ownedFeatureGroup-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_featureGroupType_ownedParameter" name="A_featureGroupType_ownedParameter" visibility="private" memberEnd="A_featureGroupType_ownedParameter-owner FeatureGroupType-ownedParameter">
      <generalization xmi:id="A_featureGroupType_ownedParameter-_generalization.0" general="A_featureGroupType_ownedFeature"/>
      <ownedEnd xmi:id="A_featureGroupType_ownedParameter-owner" name="owner" type="FeatureGroupType" association="A_featureGroupType_ownedParameter">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_featureGroupType_ownedParameter-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_featureGroupType_ownedParameter-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_featureGroupType_ownedSubprogramAccess" name="A_featureGroupType_ownedSubprogramAccess" visibility="private" memberEnd="A_featureGroupType_ownedSubprogramAccess-owner FeatureGroupType-ownedSubprogramAccess">
      <generalization xmi:id="A_featureGroupType_ownedSubprogramAccess-_generalization.0" general="A_featureGroupType_ownedFeature"/>
      <ownedEnd xmi:id="A_featureGroupType_ownedSubprogramAccess-owner" name="owner" type="FeatureGroupType" association="A_featureGroupType_ownedSubprogramAccess">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_featureGroupType_ownedSubprogramAccess-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_featureGroupType_ownedSubprogramAccess-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_featureGroupType_ownedSubprogramGroupAccess" name="A_featureGroupType_ownedSubprogramGroupAccess" visibility="private" memberEnd="A_featureGroupType_ownedSubprogramGroupAccess-owner FeatureGroupType-ownedSubprogramGroupAccess">
      <generalization xmi:id="A_featureGroupType_ownedSubprogramGroupAccess-_generalization.0" general="A_featureGroupType_ownedFeature"/>
      <ownedEnd xmi:id="A_featureGroupType_ownedSubprogramGroupAccess-owner" name="owner" type="FeatureGroupType" association="A_featureGroupType_ownedSubprogramGroupAccess">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_featureGroupType_ownedSubprogramGroupAccess-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_featureGroupType_ownedSubprogramGroupAccess-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="FeatureGroupType" name="FeatureGroupType">
      <eAnnotations xmi:id="FeatureGroupType-_http2F2Fwww.topcased.org2Fdocumentation" source="http://www.topcased.org/documentation">
        <details xmi:id="FeatureGroupType-_http2F2Fwww.topcased.org2Fdocumentation-_details.0" key="documentation" value="To be merged with AADLConstructs::Features::FeatureGroupType"/>
      </eAnnotations>
      <ownedComment xmi:id="FeatureGroupType-_ownedComment.0">
        <body>===TBD===</body>
      </ownedComment>
      <generalization xmi:id="FeatureGroupType-_generalization.0" general="Classifier"/>
      <generalization xmi:id="FeatureGroupType-_generalization.1" general="FeatureType"/>
      <ownedAttribute xmi:id="FeatureGroupType-ownedFeature" name="ownedFeature" type="Feature" isOrdered="true" isReadOnly="true" isDerived="true" isDerivedUnion="true" aggregation="composite" subsettedProperty="Classifier-classifierFeature Namespace-ownedMember" association="A_featureGroupType_ownedFeature">
        <ownedComment xmi:id="FeatureGroupType-ownedFeature-_ownedComment.0">
          <body>===TBD===</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="FeatureGroupType-ownedFeature-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="FeatureGroupType-ownedFeature-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="FeatureGroupType-extended" name="extended" type="FeatureGroupType" isDerived="true" subsettedProperty="Classifier-general" association="A_extending_extended">
        <ownedComment xmi:id="FeatureGroupType-extended-_ownedComment.0">
          <body>===TBD===</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="FeatureGroupType-extended-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="FeatureGroupType-extended-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="FeatureGroupType-inverse" name="inverse" type="FeatureGroupType" association="A_featureGroupType_inverse">
        <ownedComment xmi:id="FeatureGroupType-inverse-_ownedComment.0">
          <body>===TBD===</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="FeatureGroupType-inverse-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="FeatureGroupType-inverse-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="FeatureGroupType-ownedExtension" name="ownedExtension" type="GroupExtension" aggregation="composite" subsettedProperty="Classifier-generalization" association="A_featureGroupType_ownedExtension">
        <ownedComment xmi:id="FeatureGroupType-ownedExtension-_ownedComment.0">
          <body>===TBD===</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="FeatureGroupType-ownedExtension-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="FeatureGroupType-ownedExtension-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="FeatureGroupType-ownedBusAccess" name="ownedBusAccess" type="BusAccess" aggregation="composite" subsettedProperty="FeatureGroupType-ownedFeature" association="A_featureGroupType_ownedBusAccess">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="FeatureGroupType-ownedBusAccess-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="FeatureGroupType-ownedBusAccess-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="FeatureGroupType-ownedDataAccess" name="ownedDataAccess" type="DataAccess" aggregation="composite" subsettedProperty="FeatureGroupType-ownedFeature">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="FeatureGroupType-ownedDataAccess-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="FeatureGroupType-ownedDataAccess-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="FeatureGroupType-ownedDataPort" name="ownedDataPort" type="DataPort" aggregation="composite" subsettedProperty="FeatureGroupType-ownedFeature" association="A_featureGroupType_ownedDataPort">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="FeatureGroupType-ownedDataPort-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="FeatureGroupType-ownedDataPort-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="FeatureGroupType-ownedEventDataPort" name="ownedEventDataPort" type="EventDataPort" aggregation="composite" subsettedProperty="FeatureGroupType-ownedFeature" association="A_featureGroupType_ownedEventDataPort">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="FeatureGroupType-ownedEventDataPort-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="FeatureGroupType-ownedEventDataPort-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="FeatureGroupType-ownedEventPort" name="ownedEventPort" type="EventPort" aggregation="composite" subsettedProperty="FeatureGroupType-ownedFeature" association="A_featureGroupType_ownedEventPort">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="FeatureGroupType-ownedEventPort-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="FeatureGroupType-ownedEventPort-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="FeatureGroupType-ownedFeatureGroup" name="ownedFeatureGroup" type="FeatureGroup" aggregation="composite" subsettedProperty="FeatureGroupType-ownedFeature" association="A_featureGroupType_ownedFeatureGroup">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="FeatureGroupType-ownedFeatureGroup-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="FeatureGroupType-ownedFeatureGroup-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="FeatureGroupType-ownedParameter" name="ownedParameter" type="Parameter" aggregation="composite" subsettedProperty="FeatureGroupType-ownedFeature" association="A_featureGroupType_ownedParameter">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="FeatureGroupType-ownedParameter-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="FeatureGroupType-ownedParameter-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="FeatureGroupType-ownedSubprogramAccess" name="ownedSubprogramAccess" type="SubprogramAccess" aggregation="composite" subsettedProperty="FeatureGroupType-ownedFeature" association="A_featureGroupType_ownedSubprogramAccess">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="FeatureGroupType-ownedSubprogramAccess-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="FeatureGroupType-ownedSubprogramAccess-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="FeatureGroupType-ownedSubprogramGroupAccess" name="ownedSubprogramGroupAccess" type="SubprogramGroupAccess" aggregation="composite" subsettedProperty="FeatureGroupType-ownedFeature" association="A_featureGroupType_ownedSubprogramGroupAccess">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="FeatureGroupType-ownedSubprogramGroupAccess-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="FeatureGroupType-ownedSubprogramGroupAccess-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="FeatureGroupType-ownedAbstractFeature" name="ownedAbstractFeature" type="AbstractFeature" aggregation="composite" subsettedProperty="FeatureGroupType-ownedFeature" association="A_featureGroupType_ownedAbstractFeature">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="FeatureGroupType-ownedAbstractFeature-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="FeatureGroupType-ownedAbstractFeature-_lowerValue"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_featureGroupType_ownedAbstractFeature" name="A_featureGroupType_ownedAbstractFeature" visibility="private" memberEnd="A_featureGroupType_ownedAbstractFeature-owner FeatureGroupType-ownedAbstractFeature">
      <generalization xmi:id="A_featureGroupType_ownedAbstractFeature-_generalization.0" general="A_featureGroupType_ownedFeature"/>
      <ownedEnd xmi:id="A_featureGroupType_ownedAbstractFeature-owner" name="owner" type="FeatureGroupType" association="A_featureGroupType_ownedAbstractFeature">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_featureGroupType_ownedAbstractFeature-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_featureGroupType_ownedAbstractFeature-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="ComponentType" name="ComponentType" isAbstract="true">
      <ownedComment xmi:id="ComponentType-_ownedComment.0">
        <body>A component classifier that represents the externally visible interface of an AADL component. This is the b superclass of the component types for all categories.</body>
      </ownedComment>
      <ownedComment xmi:id="ComponentType-_ownedComment.1">
        <body>To be merged with AADLConstructs::Components::ComponentType</body>
      </ownedComment>
      <generalization xmi:id="ComponentType-_generalization.0" general="ComponentClassifier"/>
      <ownedAttribute xmi:id="ComponentType-ownedFeature" name="ownedFeature" type="Feature" isReadOnly="true" isDerived="true" isDerivedUnion="true" aggregation="composite" subsettedProperty="Classifier-classifierFeature Namespace-ownedMember" association="A_componentType_ownedFeature">
        <ownedComment xmi:id="ComponentType-ownedFeature-_ownedComment.0">
          <body>The features owned by this component type.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="ComponentType-ownedFeature-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="ComponentType-ownedFeature-_lowerValue"/>
        <defaultValue xmi:type="uml:LiteralString" xmi:id="ComponentType-ownedFeature-_defaultValue" value=""/>
      </ownedAttribute>
      <ownedAttribute xmi:id="ComponentType-extended" name="extended" type="ComponentType" isDerived="true" subsettedProperty="Classifier-general" association="A_componentType_extended">
        <ownedComment xmi:id="ComponentType-extended-_ownedComment.0">
          <body>References an extended component type.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="ComponentType-extended-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="ComponentType-extended-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="ComponentType-ownedFlowSpecification" name="ownedFlowSpecification" type="FlowSpecification" isOrdered="true" aggregation="composite" subsettedProperty="Classifier-classifierFeature Namespace-ownedMember" association="A_componentType_ownedFlowSpecification">
        <ownedComment xmi:id="ComponentType-ownedFlowSpecification-_ownedComment.0">
          <body>The flow specifications owned by this component type.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="ComponentType-ownedFlowSpecification-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="ComponentType-ownedFlowSpecification-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="ComponentType-ownedExtension" name="ownedExtension" type="TypeExtension" aggregation="composite" subsettedProperty="Classifier-generalization" association="A_componentType_ownedExtension">
        <ownedComment xmi:id="ComponentType-ownedExtension-_ownedComment.0">
          <body>An extension relationship owned by this component type.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="ComponentType-ownedExtension-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="ComponentType-ownedExtension-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="ComponentType-ownedFeatureGroup" name="ownedFeatureGroup" type="FeatureGroup" aggregation="composite" subsettedProperty="ComponentType-ownedFeature" association="A_componentType_ownedFeatureGroup">
        <ownedComment xmi:id="ComponentType-ownedFeatureGroup-_ownedComment.0">
          <body>The feature groups owned by this component type.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="ComponentType-ownedFeatureGroup-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="ComponentType-ownedFeatureGroup-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="ComponentType-ownedAbstractFeature" name="ownedAbstractFeature" type="AbstractFeature" aggregation="composite" subsettedProperty="ComponentType-ownedFeature" association="A_componentType_ownedAbstractFeature">
        <ownedComment xmi:id="ComponentType-ownedAbstractFeature-_ownedComment.0">
          <body>The abstract features owned by this component type.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="ComponentType-ownedAbstractFeature-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="ComponentType-ownedAbstractFeature-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="ComponentType-noFeatures" name="noFeatures" type="Boolean"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="ComponentImplementation" name="ComponentImplementation" isAbstract="true">
      <ownedComment xmi:id="ComponentImplementation-_ownedComment.0">
        <body>A component classifier that represents the internal structure of an AADl component. This is the superclass for component implementations of all categories.</body>
      </ownedComment>
      <ownedComment xmi:id="ComponentImplementation-_ownedComment.1">
        <body>To be merged with AADLConstructs::Components::ComponentImplementation</body>
      </ownedComment>
      <generalization xmi:id="ComponentImplementation-_generalization.0" general="ComponentClassifier"/>
      <ownedAttribute xmi:id="ComponentImplementation-type" name="type" type="ComponentType" isUnique="false" isDerived="true" subsettedProperty="Classifier-general" association="A_componentImplementation_ComponentType">
        <ownedComment xmi:id="ComponentImplementation-type-_ownedComment.0">
          <body>References the component type of the implementation.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="ComponentImplementation-type-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="ComponentImplementation-type-_lowerValue" value="1"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="ComponentImplementation-ownedSubcomponent" name="ownedSubcomponent" type="Subcomponent" isReadOnly="true" isDerived="true" isDerivedUnion="true" aggregation="composite" subsettedProperty="Classifier-classifierFeature Namespace-ownedMember" association="A_componentImplementation_ownedSubcomponent">
        <ownedComment xmi:id="ComponentImplementation-ownedSubcomponent-_ownedComment.0">
          <body>The subcomponents owned by this component implementation.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="ComponentImplementation-ownedSubcomponent-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="ComponentImplementation-ownedSubcomponent-_lowerValue"/>
        <defaultValue xmi:type="uml:LiteralString" xmi:id="ComponentImplementation-ownedSubcomponent-_defaultValue" value=""/>
      </ownedAttribute>
      <ownedAttribute xmi:id="ComponentImplementation-extended" name="extended" type="ComponentImplementation" isDerived="true" subsettedProperty="Classifier-general" association="A_componentImplementation_extended">
        <ownedComment xmi:id="ComponentImplementation-extended-_ownedComment.0">
          <body>References a component implementation that is extended by this implementation.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="ComponentImplementation-extended-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="ComponentImplementation-extended-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="ComponentImplementation-ownedFlowImplementation" name="ownedFlowImplementation" type="FlowImplementation" isOrdered="true" aggregation="composite" subsettedProperty="Classifier-classifierFeature" association="A_componentImplementation_ownedFlowImplementation">
        <ownedComment xmi:id="ComponentImplementation-ownedFlowImplementation-_ownedComment.0">
          <body>The flow implementations owned by this component implementation.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="ComponentImplementation-ownedFlowImplementation-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="ComponentImplementation-ownedFlowImplementation-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="ComponentImplementation-ownedConnection" name="ownedConnection" type="Connection" isReadOnly="true" isDerived="true" isDerivedUnion="true" aggregation="composite" subsettedProperty="Classifier-classifierFeature Namespace-ownedMember" association="A_componentImplementation_ownedConnection">
        <ownedComment xmi:id="ComponentImplementation-ownedConnection-_ownedComment.0">
          <body>The connections owned by this component.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="ComponentImplementation-ownedConnection-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="ComponentImplementation-ownedConnection-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="ComponentImplementation-ownedExtension" name="ownedExtension" type="ImplementationExtension" aggregation="composite" subsettedProperty="Classifier-generalization" association="A_componentImplementation_ownedExtension">
        <ownedComment xmi:id="ComponentImplementation-ownedExtension-_ownedComment.0">
          <body>An extension owned by this component implementation.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="ComponentImplementation-ownedExtension-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="ComponentImplementation-ownedExtension-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="ComponentImplementation-ownedRealization" name="ownedRealization" type="Realization" aggregation="composite" subsettedProperty="Classifier-generalization" association="A_componentImplementation_ownedRealization">
        <ownedComment xmi:id="ComponentImplementation-ownedRealization-_ownedComment.0">
          <body>The realization owned by this component implementation.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="ComponentImplementation-ownedRealization-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="ComponentImplementation-ownedRealization-_lowerValue" value="1"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="ComponentImplementation-ownedEndToEndFlow" name="ownedEndToEndFlow" type="EndToEndFlow" aggregation="composite" subsettedProperty="Classifier-classifierFeature Namespace-ownedMember" association="A_componentImplementation_ownedEndToEndFlow">
        <ownedComment xmi:id="ComponentImplementation-ownedEndToEndFlow-_ownedComment.0">
          <body> owned by this component implementation.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="ComponentImplementation-ownedEndToEndFlow-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="ComponentImplementation-ownedEndToEndFlow-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="ComponentImplementation-ownedAbstractSubcomponent" name="ownedAbstractSubcomponent" type="AbstractSubcomponent" aggregation="composite" subsettedProperty="ComponentImplementation-ownedSubcomponent" association="A_componentImplementation_ownedAbstractSubcomponent">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="ComponentImplementation-ownedAbstractSubcomponent-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="ComponentImplementation-ownedAbstractSubcomponent-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="ComponentImplementation-ownedAccessConnection" name="ownedAccessConnection" type="AccessConnection" aggregation="composite" subsettedProperty="ComponentImplementation-ownedConnection" association="A_componentImplementation_ownedAccessConnection">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="ComponentImplementation-ownedAccessConnection-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="ComponentImplementation-ownedAccessConnection-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="ComponentImplementation-ownedParameterConnection" name="ownedParameterConnection" type="ParameterConnection" aggregation="composite" subsettedProperty="ComponentImplementation-ownedConnection" association="A_componentImplementation_ownedParameterConnection3E">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="ComponentImplementation-ownedParameterConnection-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="ComponentImplementation-ownedParameterConnection-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="ComponentImplementation-ownedPortConnection" name="ownedPortConnection" type="PortConnection" aggregation="composite" subsettedProperty="ComponentImplementation-ownedConnection" association="A_componentImplementation_ownedPortConnection">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="ComponentImplementation-ownedPortConnection-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="ComponentImplementation-ownedPortConnection-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="ComponentImplementation-ownedFeatureConnection" name="ownedFeatureConnection" type="FeatureConnection" aggregation="composite" subsettedProperty="ComponentImplementation-ownedConnection" association="A_componentImplementation_ownedFeatureConnection">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="ComponentImplementation-ownedFeatureConnection-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="ComponentImplementation-ownedFeatureConnection-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="ComponentImplementation-ownedFeatureGroupConnection" name="ownedFeatureGroupConnection" type="FeatureGroupConnection" aggregation="composite" subsettedProperty="ComponentImplementation-ownedConnection" association="A_componentImplementation_ownedFeatureGroupConnection">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="ComponentImplementation-ownedFeatureGroupConnection-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="ComponentImplementation-ownedFeatureGroupConnection-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="ComponentImplementation-noSubcomponents" name="noSubcomponents" type="Boolean"/>
      <ownedAttribute xmi:id="ComponentImplementation-noConnections" name="noConnections" type="Boolean"/>
      <ownedAttribute xmi:id="ComponentImplementation-noCalls" name="noCalls" type="Boolean"/>
      <ownedOperation xmi:id="ComponentImplementation-getAllSubcomponents" name="getAllSubcomponents">
        <ownedParameter xmi:id="ComponentImplementation-getAllSubcomponents-return" name="return" type="Subcomponent" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="ComponentImplementation-getAllSubcomponents-return-_upperValue" value="*"/>
          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="ComponentImplementation-getAllSubcomponents-return-_lowerValue"/>
        </ownedParameter>
      </ownedOperation>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="ComponentClassifier" name="ComponentClassifier" isAbstract="true">
      <ownedComment xmi:id="ComponentClassifier-_ownedComment.0">
        <body>A classifier that models an AADL component.</body>
      </ownedComment>
      <generalization xmi:id="ComponentClassifier-_generalization.0" general="Classifier"/>
      <generalization xmi:id="ComponentClassifier-_generalization.1" general="SubcomponentType"/>
      <generalization xmi:id="ComponentClassifier-_generalization.2" general="FeatureClassifier"/>
      <ownedAttribute xmi:id="ComponentClassifier-ownedMode" name="ownedMode" type="Mode" aggregation="composite" subsettedProperty="Classifier-classifierFeature Namespace-ownedMember" association="A_componentClassifier_ownedMode">
        <ownedComment xmi:id="ComponentClassifier-ownedMode-_ownedComment.0">
          <body>Modes owned by the classifier.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="ComponentClassifier-ownedMode-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="ComponentClassifier-ownedMode-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="ComponentClassifier-ownedModeTransition" name="ownedModeTransition" type="ModeTransition" aggregation="composite" subsettedProperty="Classifier-classifierFeature Namespace-ownedMember" association="A_componentClassifier_ownedModeTransition">
        <ownedComment xmi:id="ComponentClassifier-ownedModeTransition-_ownedComment.0">
          <body>Mode transitions owned by the classifier.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="ComponentClassifier-ownedModeTransition-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="ComponentClassifier-ownedModeTransition-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="ComponentClassifier-derivedModes" name="derivedModes" type="Boolean"/>
      <ownedAttribute xmi:id="ComponentClassifier-noFlows" name="noFlows" type="Boolean"/>
      <ownedAttribute xmi:id="ComponentClassifier-noModes" name="noModes" type="Boolean"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="PropertyAssociation" name="PropertyAssociation">
      <ownedComment xmi:id="PropertyAssociation-_ownedComment.0">
        <body>A property association.</body>
      </ownedComment>
      <generalization xmi:id="PropertyAssociation-_generalization.0" general="Element"/>
      <ownedAttribute xmi:id="PropertyAssociation-property" name="property" type="Property" association="A_propertyAssociation_property">
        <ownedComment xmi:id="PropertyAssociation-property-_ownedComment.0">
          <body>Specifies the property that is given a value in this association.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="PropertyAssociation-property-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="PropertyAssociation-property-_lowerValue" value="1"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="PropertyAssociation-appliesTo" name="appliesTo" type="ContainedNamedElement" aggregation="composite" association="A_propertyAssociation_appliesTo">
        <ownedComment xmi:id="PropertyAssociation-appliesTo-_ownedComment.0">
          <body>For a contained property association, the list of named elements to which this property is applied.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="PropertyAssociation-appliesTo-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="PropertyAssociation-appliesTo-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="PropertyAssociation-inBinding" name="inBinding" type="Classifier" association="A_propertyAssociation_inBinding">
        <ownedComment xmi:id="PropertyAssociation-inBinding-_ownedComment.0">
          <body>Specifies the bindings in which the property association applies.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="PropertyAssociation-inBinding-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="PropertyAssociation-inBinding-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="PropertyAssociation-append" name="append" type="Boolean">
        <ownedComment xmi:id="PropertyAssociation-append-_ownedComment.0">
          <body>Specifies if the value is to be appended to the current property value.</body>
        </ownedComment>
      </ownedAttribute>
      <ownedAttribute xmi:id="PropertyAssociation-constant" name="constant" type="Boolean">
        <ownedComment xmi:id="PropertyAssociation-constant-_ownedComment.0">
          <body>Specifies if the value can be overridden.</body>
        </ownedComment>
      </ownedAttribute>
      <ownedAttribute xmi:id="PropertyAssociation-ownedValue" name="ownedValue" type="ModalPropertyValue" aggregation="composite" association="A_propertyAssociation_ownedValue">
        <ownedComment xmi:id="PropertyAssociation-ownedValue-_ownedComment.0">
          <body>Specifies the value that is assigned to the property. If more than one modal property value are given, each of them applies in different modes.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="PropertyAssociation-ownedValue-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="PropertyAssociation-ownedValue-_lowerValue" value="1"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_propertyAssociation_property" name="A_propertyAssociation_property" visibility="private" memberEnd="A_propertyAssociation_property-propertyAssociation PropertyAssociation-property">
      <ownedEnd xmi:id="A_propertyAssociation_property-propertyAssociation" name="propertyAssociation" type="PropertyAssociation" association="A_propertyAssociation_property">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_propertyAssociation_property-propertyAssociation-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_propertyAssociation_property-propertyAssociation-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_basicPropertyAssociation_ownedValue" name="A_basicPropertyAssociation_ownedValue" visibility="private" memberEnd="A_basicPropertyAssociation_ownedValue-owner BasicPropertyAssociation-ownedValue">
      <ownedEnd xmi:id="A_basicPropertyAssociation_ownedValue-owner" name="owner" type="BasicPropertyAssociation" association="A_basicPropertyAssociation_ownedValue">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_basicPropertyAssociation_ownedValue-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_basicPropertyAssociation_ownedValue-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_propertyAssociation_appliesTo" name="A_propertyAssociation_appliesTo" visibility="private" memberEnd="A_propertyAssociation_appliesTo-propertyAssociation PropertyAssociation-appliesTo">
      <ownedEnd xmi:id="A_propertyAssociation_appliesTo-propertyAssociation" name="propertyAssociation" type="PropertyAssociation" association="A_propertyAssociation_appliesTo">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_propertyAssociation_appliesTo-propertyAssociation-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_propertyAssociation_appliesTo-propertyAssociation-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_propertyAssociation_inBinding" name="A_propertyAssociation_inBinding" visibility="private" memberEnd="A_propertyAssociation_inBinding-propertyAssociation PropertyAssociation-inBinding">
      <ownedEnd xmi:id="A_propertyAssociation_inBinding-propertyAssociation" name="propertyAssociation" type="PropertyAssociation" association="A_propertyAssociation_inBinding">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_propertyAssociation_inBinding-propertyAssociation-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_propertyAssociation_inBinding-propertyAssociation-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_namedElement_ownedPropertyAssociation" name="A_namedElement_ownedPropertyAssociation" visibility="private" memberEnd="A_namedElement_ownedPropertyAssociation-owner NamedElement-ownedPropertyAssociation">
      <ownedEnd xmi:id="A_namedElement_ownedPropertyAssociation-owner" name="owner" type="NamedElement" association="A_namedElement_ownedPropertyAssociation">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_namedElement_ownedPropertyAssociation-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_namedElement_ownedPropertyAssociation-owner-_lowerValue" value="1"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="NamedElement" name="NamedElement" isAbstract="true">
      <ownedComment xmi:id="NamedElement-_ownedComment.0" annotatedElement="NamedElement">
        <body>A named element is an element in a model that may have a name.</body>
      </ownedComment>
      <ownedComment xmi:id="NamedElement-_ownedComment.1">
        <body>Named elements can own property associations.</body>
      </ownedComment>
      <ownedRule xmi:id="NamedElement-has_no_qualified_name" name="has_no_qualified_name" constrainedElement="NamedElement">
        <ownedComment xmi:id="NamedElement-has_no_qualified_name-_ownedComment.0" annotatedElement="NamedElement-has_no_qualified_name">
          <body>If there is no name, or one of the containing namespaces has no name, there is no qualified name.</body>
        </ownedComment>
        <specification xmi:type="uml:OpaqueExpression" xmi:id="NamedElement-has_no_qualified_name-_specification">
          <language>OCL</language>
          <body>(self.name->isEmpty() or self.allNamespaces()->select(ns | ns.name->isEmpty())->notEmpty()) implies self.qualifiedName->isEmpty()</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="NamedElement-has_qualified_name" name="has_qualified_name" constrainedElement="NamedElement">
        <ownedComment xmi:id="NamedElement-has_qualified_name-_ownedComment.0" annotatedElement="NamedElement-has_qualified_name">
          <body>When there is a name, and all of the containing namespaces have a name, the qualified name is constructed from the names of the containing namespaces.</body>
        </ownedComment>
        <specification xmi:type="uml:OpaqueExpression" xmi:id="NamedElement-has_qualified_name-_specification">
          <language>OCL</language>
          <body>(self.name->notEmpty() and self.allNamespaces()->select(ns | ns.name->isEmpty())->isEmpty()) &#xD;
implies &#xD;
self.qualifiedName = self.allNamespaces()->iterate(ns: Namespace; result: String = self.name | ns.name.concat(self.separator()).concat(result))</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="NamedElement-_generalization.0" general="Element"/>
      <ownedAttribute xmi:id="NamedElement-name" name="name" type="String">
        <eAnnotations xmi:id="NamedElement-name-_http2F2Fwww.topcased.org2Fdocumentation" source="http://www.topcased.org/documentation">
          <details xmi:id="NamedElement-name-_http2F2Fwww.topcased.org2Fdocumentation-_details.0" key="documentation" value="The name of the NamedElement."/>
        </eAnnotations>
        <ownedComment xmi:id="NamedElement-name-_ownedComment.0" annotatedElement="NamedElement-name">
          <body>The name of the NamedElement.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="NamedElement-name-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="NamedElement-name-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="NamedElement-qualifiedName" name="qualifiedName" type="String" isReadOnly="true" isDerived="true">
        <eAnnotations xmi:id="NamedElement-qualifiedName-_http2F2Fwww.topcased.org2Fdocumentation" source="http://www.topcased.org/documentation">
          <details xmi:id="NamedElement-qualifiedName-_http2F2Fwww.topcased.org2Fdocumentation-_details.0" key="documentation" value="A name which allows the NamedElement to be identified within a hierarchy of nested Namespaces. It is constructed from the names of the containing namespaces starting at the root of the hierarchy and ending with the name of the NamedElement itself."/>
        </eAnnotations>
        <ownedComment xmi:id="NamedElement-qualifiedName-_ownedComment.0" annotatedElement="NamedElement-qualifiedName">
          <body>A name which allows the NamedElement to be identified within a hierarchy of nested Namespaces. It is constructed from the names of the containing namespaces starting at the root of the hierarchy and ending with the name of the NamedElement itself.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="NamedElement-qualifiedName-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="NamedElement-qualifiedName-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="NamedElement-ownedPropertyAssociation" name="ownedPropertyAssociation" type="PropertyAssociation" aggregation="composite" association="A_namedElement_ownedPropertyAssociation">
        <ownedComment xmi:id="NamedElement-ownedPropertyAssociation-_ownedComment.0">
          <body>Specifies the property associations of this named element.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="NamedElement-ownedPropertyAssociation-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="NamedElement-ownedPropertyAssociation-_lowerValue"/>
      </ownedAttribute>
      <ownedOperation xmi:id="NamedElement-getNamespace" name="getNamespace">
        <ownedParameter xmi:id="NamedElement-getNamespace-_ownedParameter.0" type="Namespace" direction="return"/>
      </ownedOperation>
      <ownedOperation xmi:id="NamedElement-allNamespaces" name="allNamespaces" isQuery="true" bodyCondition="NamedElement-allNamespaces-spec">
        <ownedComment xmi:id="NamedElement-allNamespaces-_ownedComment.0" annotatedElement="NamedElement-allNamespaces">
          <body>The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.</body>
        </ownedComment>
        <ownedRule xmi:id="NamedElement-allNamespaces-spec" name="spec" constrainedElement="NamedElement-allNamespaces">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="NamedElement-allNamespaces-spec-_specification">
            <language>OCL</language>
            <body>if self.namespace->isEmpty() then &#xD;
  Sequence{}&#xD;
else&#xD;
  self.namespace.allNamespaces()->prepend(self.namespace)&#xD;
endif</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="NamedElement-allNamespaces-_ownedParameter.0" type="Namespace" isOrdered="true" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="NamedElement-allNamespaces-_ownedParameter.0-_upperValue" value="*"/>
          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="NamedElement-allNamespaces-_ownedParameter.0-_lowerValue"/>
        </ownedParameter>
      </ownedOperation>
      <ownedOperation xmi:id="NamedElement-isDistinguishableFrom" name="isDistinguishableFrom" isQuery="true" bodyCondition="NamedElement-isDistinguishableFrom-spec">
        <ownedComment xmi:id="NamedElement-isDistinguishableFrom-_ownedComment.0" annotatedElement="NamedElement-isDistinguishableFrom">
          <body>The query isDistinguishableFrom() determines whether two NamedElements may logically co-exist within a Namespace. By default, two named elements are distinguishable if (a) they have unrelated types or (b) they have related types but different names.</body>
        </ownedComment>
        <ownedRule xmi:id="NamedElement-isDistinguishableFrom-spec" name="spec" constrainedElement="NamedElement-isDistinguishableFrom">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="NamedElement-isDistinguishableFrom-spec-_specification">
            <language>OCL</language>
            <body>if self.oclIsKindOf(n.oclType) or n.oclIsKindOf(self.oclType) then&#xD;
  ns.getNamesOfMember(self)->intersection(ns.getNamesOfMember(n))->isEmpty()&#xD;
else&#xD;
  true&#xD;
endif</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="NamedElement-isDistinguishableFrom-_ownedParameter.0" type="Boolean" direction="return"/>
        <ownedParameter xmi:id="NamedElement-isDistinguishableFrom-n" name="n" type="NamedElement"/>
        <ownedParameter xmi:id="NamedElement-isDistinguishableFrom-ns" name="ns" type="Namespace"/>
      </ownedOperation>
      <ownedOperation xmi:id="NamedElement-separator" name="separator" isQuery="true" bodyCondition="NamedElement-separator-spec">
        <ownedComment xmi:id="NamedElement-separator-_ownedComment.0" annotatedElement="NamedElement-separator">
          <body>The query separator() gives the string that is used to separate names when constructing a qualified name.</body>
        </ownedComment>
        <ownedRule xmi:id="NamedElement-separator-spec" name="spec" constrainedElement="NamedElement-separator">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="NamedElement-separator-spec-_specification">
            <language>OCL</language>
            <body>'.'</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="NamedElement-separator-_ownedParameter.0" type="String" direction="return"/>
      </ownedOperation>
      <ownedOperation xmi:id="NamedElement-qualifiedName.1" name="qualifiedName" isQuery="true" bodyCondition="NamedElement-qualifiedName.1-spec">
        <ownedComment xmi:id="NamedElement-qualifiedName.1-_ownedComment.0" annotatedElement="NamedElement-qualifiedName.1">
          <body>When there is a name, and all of the containing namespaces have a name, the qualified name is constructed from the names of the containing namespaces.</body>
        </ownedComment>
        <ownedRule xmi:id="NamedElement-qualifiedName.1-spec" name="spec" constrainedElement="NamedElement-qualifiedName.1 NamedElement-qualifiedName">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="NamedElement-qualifiedName.1-spec-_specification">
            <language>OCL</language>
            <body>if self.name->notEmpty() and self.allNamespaces()->select(ns | ns.name->isEmpty())->isEmpty() then&#xD;
  self.allNamespaces()->iterate(ns: Namespace; result: String = self.name | ns.name.concat(self.separator()).concat(result))&#xD;
else &#xD;
  '' &#xD;
endif</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="NamedElement-qualifiedName.1-_ownedParameter.0" type="String" direction="return"/>
      </ownedOperation>
      <ownedOperation xmi:id="NamedElement-getPropertyValues" name="getPropertyValues">
        <ownedParameter xmi:id="NamedElement-getPropertyValues-return" name="return" type="PropertyExpression" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="NamedElement-getPropertyValues-return-_upperValue" value="*"/>
          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="NamedElement-getPropertyValues-return-_lowerValue"/>
        </ownedParameter>
        <ownedParameter xmi:id="NamedElement-getPropertyValues-propertySetName" name="propertySetName" type="String" effect="read"/>
        <ownedParameter xmi:id="NamedElement-getPropertyValues-propertyName" name="propertyName" type="String" effect="read"/>
      </ownedOperation>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="BasicPropertyAssociation" name="BasicPropertyAssociation">
      <ownedComment xmi:id="BasicPropertyAssociation-_ownedComment.0">
        <body>A property association for basic properties.</body>
      </ownedComment>
      <generalization xmi:id="BasicPropertyAssociation-_generalization.0" general="Element"/>
      <ownedAttribute xmi:id="BasicPropertyAssociation-property" name="property" type="BasicProperty" association="A_basicPropertyAssociation_property">
        <ownedComment xmi:id="BasicPropertyAssociation-property-_ownedComment.0">
          <body>Specifies the basic property that is given a value in this association.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="BasicPropertyAssociation-property-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="BasicPropertyAssociation-property-_lowerValue" value="1"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="BasicPropertyAssociation-ownedValue" name="ownedValue" type="PropertyExpression" aggregation="composite" association="A_basicPropertyAssociation_ownedValue">
        <ownedComment xmi:id="BasicPropertyAssociation-ownedValue-_ownedComment.0">
          <body>Specifies the value that is assigned to the property.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="BasicPropertyAssociation-ownedValue-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="BasicPropertyAssociation-ownedValue-_lowerValue" value="1"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_basicPropertyAssociation_property" name="A_basicPropertyAssociation_property" visibility="private" memberEnd="A_basicPropertyAssociation_property-propertyAssociation BasicPropertyAssociation-property">
      <ownedEnd xmi:id="A_basicPropertyAssociation_property-propertyAssociation" name="propertyAssociation" type="BasicPropertyAssociation" association="A_basicPropertyAssociation_property">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_basicPropertyAssociation_property-propertyAssociation-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_basicPropertyAssociation_property-propertyAssociation-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="ArrayRange" name="ArrayRange">
      <ownedComment xmi:id="ArrayRange-_ownedComment.0">
        <body>A range of array elements, including the elements at the lower and upper bound. To specify a single array element lower and upper bound must be equal.</body>
      </ownedComment>
      <generalization xmi:id="ArrayRange-_generalization.0" general="Element"/>
      <ownedAttribute xmi:id="ArrayRange-lowerBound" name="lowerBound" type="Integer">
        <ownedComment xmi:id="ArrayRange-lowerBound-_ownedComment.0">
          <body>Specifies the lowest index included in the range.</body>
        </ownedComment>
      </ownedAttribute>
      <ownedAttribute xmi:id="ArrayRange-upperBound" name="upperBound" type="Integer">
        <ownedComment xmi:id="ArrayRange-upperBound-_ownedComment.0">
          <body>Specifies the hightest index included in the range.</body>
        </ownedComment>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="ContainedNamedElement" name="ContainedNamedElement">
      <ownedComment xmi:id="ContainedNamedElement-_ownedComment.0">
        <body>===TBD===</body>
      </ownedComment>
      <generalization xmi:id="ContainedNamedElement-_generalization.0" general="Element"/>
      <ownedAttribute xmi:id="ContainedNamedElement-containmentPathElement" name="containmentPathElement" type="ContainmentPathElement" isOrdered="true" aggregation="composite" association="A_containedNamedElement_containmentPathElement">
        <ownedComment xmi:id="ContainedNamedElement-containmentPathElement-_ownedComment.0">
          <body>===TBD===</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="ContainedNamedElement-containmentPathElement-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="ContainedNamedElement-containmentPathElement-_lowerValue" value="1"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_containmentPathElement_arrayRange" name="A_containmentPathElement_arrayRange" visibility="private" memberEnd="A_containmentPathElement_arrayRange-containmentPathElement ContainmentPathElement-arrayRange">
      <ownedEnd xmi:id="A_containmentPathElement_arrayRange-containmentPathElement" name="containmentPathElement" type="ContainmentPathElement" association="A_containmentPathElement_arrayRange">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_containmentPathElement_arrayRange-containmentPathElement-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_containmentPathElement_arrayRange-containmentPathElement-_lowerValue" value="1"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_containmentPathElement_namedElement" name="A_containmentPathElement_namedElement" visibility="private" memberEnd="A_containmentPathElement_namedElement-containmentPathElement ContainmentPathElement-namedElement">
      <ownedEnd xmi:id="A_containmentPathElement_namedElement-containmentPathElement" name="containmentPathElement" type="ContainmentPathElement" association="A_containmentPathElement_namedElement">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_containmentPathElement_namedElement-containmentPathElement-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_containmentPathElement_namedElement-containmentPathElement-_lowerValue" value="1"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="ContainmentPathElement" name="ContainmentPathElement">
      <ownedComment xmi:id="ContainmentPathElement-_ownedComment.0">
        <body>===TBD===</body>
      </ownedComment>
      <generalization xmi:id="ContainmentPathElement-_generalization.0" general="Element"/>
      <ownedAttribute xmi:id="ContainmentPathElement-arrayRange" name="arrayRange" type="ArrayRange" isOrdered="true" aggregation="composite" association="A_containmentPathElement_arrayRange">
        <ownedComment xmi:id="ContainmentPathElement-arrayRange-_ownedComment.0">
          <body>===TBD===</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="ContainmentPathElement-arrayRange-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="ContainmentPathElement-arrayRange-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="ContainmentPathElement-namedElement" name="namedElement" type="NamedElement" association="A_containmentPathElement_namedElement">
        <ownedComment xmi:id="ContainmentPathElement-namedElement-_ownedComment.0">
          <body>===TBD===</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="ContainmentPathElement-namedElement-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="ContainmentPathElement-namedElement-_lowerValue" value="1"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_containedNamedElement_containmentPathElement" name="A_containedNamedElement_containmentPathElement" visibility="private" memberEnd="A_containedNamedElement_containmentPathElement-containedNamedElement ContainedNamedElement-containmentPathElement">
      <ownedEnd xmi:id="A_containedNamedElement_containmentPathElement-containedNamedElement" name="containedNamedElement" type="ContainedNamedElement" association="A_containedNamedElement_containmentPathElement">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_containedNamedElement_containmentPathElement-containedNamedElement-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_containedNamedElement_containmentPathElement-containedNamedElement-_lowerValue" value="1"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="Classifier" name="Classifier" isAbstract="true">
      <ownedComment xmi:id="Classifier-_ownedComment.0" annotatedElement="Classifier">
        <body>A classifier is a classification of instances - it describes a set of instances that have features in common.</body>
      </ownedComment>
      <ownedComment xmi:id="Classifier-_ownedComment.1" annotatedElement="Classifier">
        <body>A classifier can specify a generalization hierarchy by referencing its general classifiers.</body>
      </ownedComment>
      <ownedComment xmi:id="Classifier-_ownedComment.2">
        <body>Classifiers are extended with the ability to own annex subclauses.</body>
      </ownedComment>
      <ownedComment xmi:id="Classifier-_ownedComment.3">
        <body>Classifier is extended with the ability to own prototypes and prototype bindings.</body>
      </ownedComment>
      <ownedComment xmi:id="Classifier-_ownedComment.4">
        <body>Classifier is extended with the ability to specify that it cannot contain property associations.</body>
      </ownedComment>
      <ownedRule xmi:id="Classifier-no_cycles_in_generalization" name="no_cycles_in_generalization" constrainedElement="Classifier">
        <ownedComment xmi:id="Classifier-no_cycles_in_generalization-_ownedComment.0" annotatedElement="Classifier-no_cycles_in_generalization">
          <body>Generalization hierarchies must be directed and acyclical. A classifier can not be both a transitively general and transitively specific classifier of the same classifier.</body>
        </ownedComment>
        <specification xmi:type="uml:OpaqueExpression" xmi:id="Classifier-no_cycles_in_generalization-_specification">
          <language>OCL</language>
          <body>not self.allParents()->includes(self)</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="Classifier-specialize_type" name="specialize_type" constrainedElement="Classifier">
        <ownedComment xmi:id="Classifier-specialize_type-_ownedComment.0" annotatedElement="Classifier-specialize_type">
          <body>A classifier may only specialize classifiers of a valid type.</body>
        </ownedComment>
        <specification xmi:type="uml:OpaqueExpression" xmi:id="Classifier-specialize_type-_specification">
          <language>OCL</language>
          <body>self.parents()->forAll(c | self.maySpecializeType(c))</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="Classifier-_generalization.0" general="Type"/>
      <generalization xmi:id="Classifier-_generalization.1" general="Namespace"/>
      <ownedAttribute xmi:id="Classifier-classifierFeature" name="classifierFeature" type="ClassifierFeature" isReadOnly="true" isDerived="true" isDerivedUnion="true" subsettedProperty="Namespace-member" association="A_classifierFeature_featuringClassifier">
        <ownedComment xmi:id="Classifier-classifierFeature-_ownedComment.0" annotatedElement="Classifier-classifierFeature">
          <eAnnotations xmi:id="Classifier-classifierFeature-_ownedComment.0-_http2F2Fwww.topcased.org2Fdocumentation" source="http://www.topcased.org/documentation">
            <details xmi:id="Classifier-classifierFeature-_ownedComment.0-_http2F2Fwww.topcased.org2Fdocumentation-_details.0" key="documentation" value="Specifies each feature defined in the classifier."/>
          </eAnnotations>
          <body>Specifies each feature defined in the classifier.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="Classifier-classifierFeature-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="Classifier-classifierFeature-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Classifier-inheritedMember" name="inheritedMember" type="NamedElement" isReadOnly="true" isDerived="true" subsettedProperty="Namespace-member" association="A_classifier_inheritedMember">
        <ownedComment xmi:id="Classifier-inheritedMember-_ownedComment.0" annotatedElement="Classifier-inheritedMember">
          <eAnnotations xmi:id="Classifier-inheritedMember-_ownedComment.0-_http2F2Fwww.topcased.org2Fdocumentation" source="http://www.topcased.org/documentation">
            <details xmi:id="Classifier-inheritedMember-_ownedComment.0-_http2F2Fwww.topcased.org2Fdocumentation-_details.0" key="documentation" value="Specifies all elements inherited by this classifier from the general classifiers."/>
          </eAnnotations>
          <body>Specifies all elements inherited by this classifier from the general classifiers.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="Classifier-inheritedMember-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="Classifier-inheritedMember-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Classifier-generalization" name="generalization" type="Generalization" isReadOnly="true" isDerived="true" isDerivedUnion="true" subsettedProperty="Element-ownedElement" association="A_generalization_specific">
        <ownedComment xmi:id="Classifier-generalization-_ownedComment.0" annotatedElement="Classifier-generalization">
          <eAnnotations xmi:id="Classifier-generalization-_ownedComment.0-_http2F2Fwww.topcased.org2Fdocumentation" source="http://www.topcased.org/documentation">
            <details xmi:id="Classifier-generalization-_ownedComment.0-_http2F2Fwww.topcased.org2Fdocumentation-_details.0" key="documentation" value="Specifies the Generalization relationships for this Classifier. These Generalizations navigate to more general classifiers in the generalization hierarchy."/>
          </eAnnotations>
          <body>Specifies the Generalization relationships for this Classifier. These Generalizations navigate to more general classifiers in the generalization hierarchy.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="Classifier-generalization-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="Classifier-generalization-_lowerValue"/>
        <defaultValue xmi:type="uml:LiteralString" xmi:id="Classifier-generalization-_defaultValue" value=""/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Classifier-general" name="general" type="Classifier" isReadOnly="true" isDerived="true" isDerivedUnion="true" association="A_general_classifier">
        <ownedComment xmi:id="Classifier-general-_ownedComment.0" annotatedElement="Classifier-general">
          <eAnnotations xmi:id="Classifier-general-_ownedComment.0-_http2F2Fwww.topcased.org2Fdocumentation" source="http://www.topcased.org/documentation">
            <details xmi:id="Classifier-general-_ownedComment.0-_http2F2Fwww.topcased.org2Fdocumentation-_details.0" key="documentation" value="Specifies the more general classifiers in the generalization hierarchy for this Classifier."/>
          </eAnnotations>
          <body>Specifies the more general classifiers in the generalization hierarchy for this Classifier.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="Classifier-general-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="Classifier-general-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Classifier-ownedAnnexSubclause" name="ownedAnnexSubclause" type="AnnexSubclause" aggregation="composite" subsettedProperty="Namespace-ownedMember" association="A_classifier_ownedAnnexSubclause">
        <ownedComment xmi:id="Classifier-ownedAnnexSubclause-_ownedComment.0">
          <body>Specifies a list of annex subclauses for this classifier.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="Classifier-ownedAnnexSubclause-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="Classifier-ownedAnnexSubclause-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Classifier-ownedPrototype" name="ownedPrototype" type="Prototype" aggregation="composite" subsettedProperty="Namespace-ownedMember" association="A_classifier_ownedPrototype">
        <ownedComment xmi:id="Classifier-ownedPrototype-_ownedComment.0">
          <body>A list of prototypes owned by this classifier.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="Classifier-ownedPrototype-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="Classifier-ownedPrototype-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Classifier-ownedPrototypeBinding" name="ownedPrototypeBinding" type="PrototypeBinding" aggregation="composite" association="A_classifier_ownedPrototypeBinding">
        <ownedComment xmi:id="Classifier-ownedPrototypeBinding-_ownedComment.0">
          <body>A list of prototype bindings owned by this classifier. These bindings prototypes of an extended classifier.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="Classifier-ownedPrototypeBinding-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="Classifier-ownedPrototypeBinding-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Classifier-noPrototypes" name="noPrototypes" type="Boolean"/>
      <ownedAttribute xmi:id="Classifier-noAnnexes" name="noAnnexes" type="Boolean"/>
      <ownedAttribute xmi:id="Classifier-noProperties" name="noProperties" type="Boolean">
        <ownedComment xmi:id="Classifier-noProperties-_ownedComment.0">
          <body>Specifies if this classifier contains no property associations.</body>
        </ownedComment>
      </ownedAttribute>
      <ownedOperation xmi:id="Classifier-allFeatures" name="allFeatures" isQuery="true" bodyCondition="Classifier-allFeatures-spec">
        <ownedComment xmi:id="Classifier-allFeatures-_ownedComment.0" annotatedElement="Classifier-allFeatures">
          <body>The query allFeatures() gives all of the features in the namespace of the classifier. In general, through mechanisms such as inheritance, this will be a larger set than feature.</body>
        </ownedComment>
        <ownedRule xmi:id="Classifier-allFeatures-spec" name="spec" constrainedElement="Classifier-allFeatures">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="Classifier-allFeatures-spec-_specification">
            <language>OCL</language>
            <body>result = member->select(oclIsKindOf(Feature))</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="Classifier-allFeatures-_ownedParameter.0" type="ClassifierFeature" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="Classifier-allFeatures-_ownedParameter.0-_upperValue" value="*"/>
          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="Classifier-allFeatures-_ownedParameter.0-_lowerValue"/>
        </ownedParameter>
      </ownedOperation>
      <ownedOperation xmi:id="Classifier-inheritedMember.1" name="inheritedMember" isQuery="true" bodyCondition="Classifier-inheritedMember.1-spec">
        <ownedComment xmi:id="Classifier-inheritedMember.1-_ownedComment.0" annotatedElement="Classifier-inheritedMember.1">
          <body>The inheritedMember association is derived by inheriting the inheritable members of the parents.</body>
        </ownedComment>
        <ownedRule xmi:id="Classifier-inheritedMember.1-spec" name="spec" constrainedElement="Classifier-inheritedMember.1 Classifier-inheritedMember">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="Classifier-inheritedMember.1-spec-_specification">
            <language>OCL</language>
            <body>result = self.inherit(self.parents()->collect(p | p.inheritableMembers(self))</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="Classifier-inheritedMember.1-_ownedParameter.0" type="NamedElement" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="Classifier-inheritedMember.1-_ownedParameter.0-_upperValue" value="*"/>
          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="Classifier-inheritedMember.1-_ownedParameter.0-_lowerValue"/>
        </ownedParameter>
      </ownedOperation>
      <ownedOperation xmi:id="Classifier-parents" name="parents" isQuery="true" bodyCondition="Classifier-parents-spec">
        <ownedComment xmi:id="Classifier-parents-_ownedComment.0" annotatedElement="Classifier-parents">
          <body>The query parents() gives all of the immediate ancestors of a generalized Classifier.</body>
        </ownedComment>
        <ownedRule xmi:id="Classifier-parents-spec" name="spec" constrainedElement="Classifier-parents">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="Classifier-parents-spec-_specification">
            <language>OCL</language>
            <body>result = general</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="Classifier-parents-_ownedParameter.0" type="Classifier" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="Classifier-parents-_ownedParameter.0-_upperValue" value="*"/>
          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="Classifier-parents-_ownedParameter.0-_lowerValue"/>
        </ownedParameter>
      </ownedOperation>
      <ownedOperation xmi:id="Classifier-allParents" name="allParents" isQuery="true" bodyCondition="Classifier-allParents-spec">
        <ownedComment xmi:id="Classifier-allParents-_ownedComment.0" annotatedElement="Classifier-allParents">
          <body>The query allParents() gives all of the direct and indirect ancestors of a generalized Classifier.</body>
        </ownedComment>
        <ownedRule xmi:id="Classifier-allParents-spec" name="spec" constrainedElement="Classifier-allParents">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="Classifier-allParents-spec-_specification">
            <language>OCL</language>
            <body>result = self.parents()->union(self.parents()->collect(p | p.allParents())</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="Classifier-allParents-_ownedParameter.0" type="Classifier" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="Classifier-allParents-_ownedParameter.0-_upperValue" value="*"/>
          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="Classifier-allParents-_ownedParameter.0-_lowerValue"/>
        </ownedParameter>
      </ownedOperation>
      <ownedOperation xmi:id="Classifier-inheritableMembers" name="inheritableMembers" isQuery="true" precondition="Classifier-inheritableMembers-_ownedRule.0" bodyCondition="Classifier-inheritableMembers-spec">
        <ownedComment xmi:id="Classifier-inheritableMembers-_ownedComment.0" annotatedElement="Classifier-inheritableMembers">
          <body>The query inheritableMembers() gives all of the members of a classifier that may be inherited in one of its descendants, subject to whatever visibility restrictions apply.</body>
        </ownedComment>
        <ownedRule xmi:id="Classifier-inheritableMembers-_ownedRule.0" constrainedElement="Classifier-inheritableMembers">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="Classifier-inheritableMembers-_ownedRule.0-_specification">
            <language>OCL</language>
            <body>c.allParents()->includes(self)</body>
          </specification>
        </ownedRule>
        <ownedRule xmi:id="Classifier-inheritableMembers-spec" name="spec" constrainedElement="Classifier-inheritableMembers">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="Classifier-inheritableMembers-spec-_specification">
            <language>OCL</language>
            <body>result = member->select(m | c.hasVisibilityOf(m))</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="Classifier-inheritableMembers-_ownedParameter.0" type="NamedElement" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="Classifier-inheritableMembers-_ownedParameter.0-_upperValue" value="*"/>
          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="Classifier-inheritableMembers-_ownedParameter.0-_lowerValue"/>
        </ownedParameter>
        <ownedParameter xmi:id="Classifier-inheritableMembers-c" name="c" type="Classifier"/>
      </ownedOperation>
      <ownedOperation xmi:id="Classifier-hasVisibilityOf" name="hasVisibilityOf" isQuery="true" precondition="Classifier-hasVisibilityOf-_ownedRule.0" bodyCondition="Classifier-hasVisibilityOf-spec">
        <ownedComment xmi:id="Classifier-hasVisibilityOf-_ownedComment.0" annotatedElement="Classifier-hasVisibilityOf">
          <body>The query hasVisibilityOf() determines whether a named element is visible in the classifier. By default all are visible. It is only called when the argument is something owned by a parent.</body>
        </ownedComment>
        <ownedRule xmi:id="Classifier-hasVisibilityOf-_ownedRule.0" constrainedElement="Classifier-hasVisibilityOf">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="Classifier-hasVisibilityOf-_ownedRule.0-_specification">
            <language>OCL</language>
            <body>self.allParents()->collect(c | c.member)->includes(n)</body>
          </specification>
        </ownedRule>
        <ownedRule xmi:id="Classifier-hasVisibilityOf-spec" name="spec" constrainedElement="Classifier-hasVisibilityOf">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="Classifier-hasVisibilityOf-spec-_specification">
            <language>OCL</language>
            <body>result = if (self.inheritedMember->includes (n)) then (n.visibility &lt;> #private) else true</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="Classifier-hasVisibilityOf-_ownedParameter.0" type="Boolean" direction="return"/>
        <ownedParameter xmi:id="Classifier-hasVisibilityOf-n" name="n" type="NamedElement"/>
      </ownedOperation>
      <ownedOperation xmi:id="Classifier-inherit" name="inherit" isQuery="true" bodyCondition="Classifier-inherit-spec">
        <ownedComment xmi:id="Classifier-inherit-_ownedComment.0" annotatedElement="Classifier-inherit">
          <body>The query inherit() defines how to inherit a set of elements. Here the operation is defined to inherit them all. It is intended to be redefined in circumstances where inheritance is affected by redefinition.</body>
        </ownedComment>
        <ownedRule xmi:id="Classifier-inherit-spec" name="spec" constrainedElement="Classifier-inherit">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="Classifier-inherit-spec-_specification">
            <language>OCL</language>
            <body>result = inhs</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="Classifier-inherit-_ownedParameter.0" type="NamedElement" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="Classifier-inherit-_ownedParameter.0-_upperValue" value="*"/>
          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="Classifier-inherit-_ownedParameter.0-_lowerValue"/>
        </ownedParameter>
        <ownedParameter xmi:id="Classifier-inherit-inhs" name="inhs" type="NamedElement">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="Classifier-inherit-inhs-_upperValue" value="*"/>
          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="Classifier-inherit-inhs-_lowerValue"/>
        </ownedParameter>
      </ownedOperation>
      <ownedOperation xmi:id="Classifier-maySpecializeType" name="maySpecializeType" isQuery="true" bodyCondition="Classifier-maySpecializeType-spec">
        <ownedComment xmi:id="Classifier-maySpecializeType-_ownedComment.0" annotatedElement="Classifier-maySpecializeType">
          <body>The query maySpecializeType() determines whether this classifier may have a generalization relationship to classifiers of the specified type. By default a classifier may specialize classifiers of the same or a more general type. It is intended to be redefined by classifiers that have different specialization constraints.</body>
        </ownedComment>
        <ownedRule xmi:id="Classifier-maySpecializeType-spec" name="spec" constrainedElement="Classifier-maySpecializeType">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="Classifier-maySpecializeType-spec-_specification">
            <language>OCL</language>
            <body>result = self.oclIsKindOf(c.oclType)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="Classifier-maySpecializeType-_ownedParameter.0" type="Boolean" direction="return"/>
        <ownedParameter xmi:id="Classifier-maySpecializeType-c" name="c" type="Classifier"/>
      </ownedOperation>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="PackageSection" name="PackageSection" isAbstract="true">
      <ownedComment xmi:id="PackageSection-_ownedComment.0">
        <body>A package section.</body>
      </ownedComment>
      <ownedComment xmi:id="PackageSection-_ownedComment.1">
        <body>To be merged with AADLConstructs::Packaging::PackageSection</body>
      </ownedComment>
      <ownedComment xmi:id="PackageSection-_ownedComment.2">
        <body>Package is extended with the ability to specify that it cannot contain property associations.</body>
      </ownedComment>
      <generalization xmi:id="PackageSection-_generalization.0" general="Namespace"/>
      <ownedAttribute xmi:id="PackageSection-ownedPackageRename" name="ownedPackageRename" type="PackageRename" aggregation="composite" subsettedProperty="Namespace-ownedMember" association="A_packageSection_packageRename">
        <ownedComment xmi:id="PackageSection-ownedPackageRename-_ownedComment.0">
          <body>Specifies the package renames owned by this section.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="PackageSection-ownedPackageRename-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="PackageSection-ownedPackageRename-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="PackageSection-ownedComponentTypeRename" name="ownedComponentTypeRename" type="ComponentTypeRename" aggregation="composite" subsettedProperty="Namespace-ownedMember" association="A_packageSection_componentTypeRename">
        <ownedComment xmi:id="PackageSection-ownedComponentTypeRename-_ownedComment.0">
          <body>Specifies the component type renames owned by this section.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="PackageSection-ownedComponentTypeRename-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="PackageSection-ownedComponentTypeRename-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="PackageSection-ownedClassifier" name="ownedClassifier" type="Classifier" aggregation="composite" subsettedProperty="Namespace-ownedMember" association="A_packageSection_ownedClassifier">
        <ownedComment xmi:id="PackageSection-ownedClassifier-_ownedComment.0">
          <body>The classifiers owned by this section.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="PackageSection-ownedClassifier-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="PackageSection-ownedClassifier-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="PackageSection-ownedFeatureGroupTypeRename" name="ownedFeatureGroupTypeRename" type="FeatureGroupTypeRename" aggregation="composite" subsettedProperty="Namespace-ownedMember" association="A_packageSection_ownedFeatureGroupRename">
        <ownedComment xmi:id="PackageSection-ownedFeatureGroupTypeRename-_ownedComment.0">
          <body>Specifies the feature group renames owned by this section.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="PackageSection-ownedFeatureGroupTypeRename-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="PackageSection-ownedFeatureGroupTypeRename-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="PackageSection-ownedAnnexLibrary" name="ownedAnnexLibrary" type="AnnexLibrary" aggregation="composite" subsettedProperty="Namespace-ownedMember" association="A_packageSection_ownedAnnexLibrary">
        <ownedComment xmi:id="PackageSection-ownedAnnexLibrary-_ownedComment.0">
          <body>Specifies the annex libraries owned by this section.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="PackageSection-ownedAnnexLibrary-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="PackageSection-ownedAnnexLibrary-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="PackageSection-name" name="name" type="String" isDerived="true" redefinedProperty="NamedElement-name">
        <ownedComment xmi:id="PackageSection-name-_ownedComment.0">
          <body>The name of a package section is the name of its containing package.</body>
        </ownedComment>
      </ownedAttribute>
      <ownedAttribute xmi:id="PackageSection-importedUnit" name="importedUnit" type="ModelUnit" association="A_packageSection_importedUnit">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="PackageSection-importedUnit-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="PackageSection-importedUnit-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="PackageSection-noAnnexes" name="noAnnexes" type="Boolean"/>
      <ownedAttribute xmi:id="PackageSection-noProperties" name="noProperties" type="Boolean">
        <ownedComment xmi:id="PackageSection-noProperties-_ownedComment.0">
          <body>Specifies if this package section contains no property associations.</body>
        </ownedComment>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="ModalPropertyValue" name="ModalPropertyValue">
      <ownedComment xmi:id="ModalPropertyValue-_ownedComment.0">
        <body>A modal property value specifies a property value together with modes in which it applies. If no mode is specified the value is not mode dependent.</body>
      </ownedComment>
      <generalization xmi:id="ModalPropertyValue-_generalization.0" general="ModalElement"/>
      <ownedAttribute xmi:id="ModalPropertyValue-ownedValue" name="ownedValue" type="PropertyExpression" aggregation="composite" association="A_modalPropertyValue_ownedValue">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="ModalPropertyValue-ownedValue-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="ModalPropertyValue-ownedValue-_lowerValue" value="1"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_propertyAssociation_ownedValue" name="A_propertyAssociation_ownedValue" visibility="private" memberEnd="A_propertyAssociation_ownedValue-owner PropertyAssociation-ownedValue">
      <ownedEnd xmi:id="A_propertyAssociation_ownedValue-owner" name="owner" type="PropertyAssociation" association="A_propertyAssociation_ownedValue">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_propertyAssociation_ownedValue-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_propertyAssociation_ownedValue-owner-_lowerValue" value="1"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="ModalElement" name="ModalElement">
      <ownedComment xmi:id="ModalElement-_ownedComment.0">
        <body>An element that depends on the mode of the component that owns it.</body>
      </ownedComment>
      <ownedComment xmi:id="ModalElement-_ownedComment.1">
        <body>An element that can depend on modes.</body>
      </ownedComment>
      <generalization xmi:id="ModalElement-_generalization.0" general="NamedElement"/>
      <ownedAttribute xmi:id="ModalElement-inMode" name="inMode" type="Mode" association="A_modalElement_inMode">
        <ownedComment xmi:id="ModalElement-inMode-_ownedComment.0"/>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="ModalElement-inMode-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="ModalElement-inMode-_lowerValue"/>
      </ownedAttribute>
      <ownedOperation xmi:id="ModalElement-getAllInModes" name="getAllInModes">
        <ownedParameter xmi:id="ModalElement-getAllInModes-_ownedParameter.0" name="" type="Mode" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="ModalElement-getAllInModes-_ownedParameter.0-_upperValue" value="*"/>
          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="ModalElement-getAllInModes-_ownedParameter.0-_lowerValue"/>
        </ownedParameter>
      </ownedOperation>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_modalPropertyValue_ownedValue" name="A_modalPropertyValue_ownedValue" visibility="private" memberEnd="A_modalPropertyValue_ownedValue-owner ModalPropertyValue-ownedValue">
      <ownedEnd xmi:id="A_modalPropertyValue_ownedValue-owner" name="owner" type="ModalPropertyValue" association="A_modalPropertyValue_ownedValue">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_modalPropertyValue_ownedValue-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_modalPropertyValue_ownedValue-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="PropertyConstant" name="PropertyConstant">
      <ownedComment xmi:id="PropertyConstant-_ownedComment.0">
        <body>A property constant.</body>
      </ownedComment>
      <generalization xmi:id="PropertyConstant-_generalization.0" general="TypedElement"/>
      <generalization xmi:id="PropertyConstant-_generalization.1" general="AbstractNamedValue"/>
      <generalization xmi:id="PropertyConstant-_generalization.2" general="ArraySizeProperty"/>
      <ownedAttribute xmi:id="PropertyConstant-propertyType" name="propertyType" type="PropertyType" redefinedProperty="TypedElement-type" association="A_propertyConstant_propertyType">
        <ownedComment xmi:id="PropertyConstant-propertyType-_ownedComment.0">
          <body>References the type of this constant.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="PropertyConstant-propertyType-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="PropertyConstant-propertyType-_lowerValue" value="1"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="PropertyConstant-ownedPropertyType" name="ownedPropertyType" type="PropertyType" aggregation="composite" subsettedProperty="PropertyConstant-propertyType" association="A_propertyConstant_ownedPropertyType">
        <ownedComment xmi:id="PropertyConstant-ownedPropertyType-_ownedComment.0">
          <body>Specifies an anonymous type for this constant.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="PropertyConstant-ownedPropertyType-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="PropertyConstant-ownedPropertyType-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="PropertyConstant-constantValue" name="constantValue" type="PropertyExpression" aggregation="composite" association="A_propertyConstant_constantValue">
        <ownedComment xmi:id="PropertyConstant-constantValue-_ownedComment.0">
          <body>Specifies this constant's value.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="PropertyConstant-constantValue-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="PropertyConstant-constantValue-_lowerValue"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_propertyConstant_propertyType" name="A_propertyConstant_propertyType" visibility="private" memberEnd="A_propertyConstant_propertyType-propertyConstant PropertyConstant-propertyType">
      <generalization xmi:id="A_propertyConstant_propertyType-_generalization.0" general="A_type_typedElement"/>
      <ownedEnd xmi:id="A_propertyConstant_propertyType-propertyConstant" name="propertyConstant" type="PropertyConstant" association="A_propertyConstant_propertyType">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_propertyConstant_propertyType-propertyConstant-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_propertyConstant_propertyType-propertyConstant-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_propertyConstant_ownedPropertyType" name="A_propertyConstant_ownedPropertyType" visibility="private" memberEnd="A_propertyConstant_ownedPropertyType-owner PropertyConstant-ownedPropertyType">
      <generalization xmi:id="A_propertyConstant_ownedPropertyType-_generalization.0" general="A_propertyConstant_propertyType"/>
      <ownedEnd xmi:id="A_propertyConstant_ownedPropertyType-owner" name="owner" type="PropertyConstant" association="A_propertyConstant_ownedPropertyType">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_propertyConstant_ownedPropertyType-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_propertyConstant_ownedPropertyType-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_propertyConstant_constantValue" name="A_propertyConstant_constantValue" visibility="private" memberEnd="A_propertyConstant_constantValue-owner PropertyConstant-constantValue">
      <ownedEnd xmi:id="A_propertyConstant_constantValue-owner" name="owner" type="PropertyConstant" association="A_propertyConstant_constantValue">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_propertyConstant_constantValue-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_propertyConstant_constantValue-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="Property" name="Property">
      <ownedComment xmi:id="Property-_ownedComment.0">
        <body>A property is a basic property with a specification to which elements it can be applied.</body>
      </ownedComment>
      <generalization xmi:id="Property-_generalization.0" general="BasicProperty"/>
      <generalization xmi:id="Property-_generalization.1" general="AbstractNamedValue"/>
      <generalization xmi:id="Property-_generalization.2" general="ArraySizeProperty"/>
      <ownedAttribute xmi:id="Property-inherit" name="inherit" type="Boolean">
        <ownedComment xmi:id="Property-inherit-_ownedComment.0">
          <body>Specifies if the property value propagates down the containment hierarchy.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="Property-inherit-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="Property-inherit-_lowerValue" value="1"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Property-defaultValue" name="defaultValue" type="PropertyExpression" aggregation="composite" association="A_property_defaultValue">
        <ownedComment xmi:id="Property-defaultValue-_ownedComment.0">
          <body>The default value of this property.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="Property-defaultValue-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="Property-defaultValue-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Property-appliesToMetaclass" name="appliesToMetaclass" type="MetaclassReference" isDerived="true" association="A_property_appliesToMetaclass">
        <ownedComment xmi:id="Property-appliesToMetaclass-_ownedComment.0">
          <body>A list of metaclasses to which this property may be applied.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="Property-appliesToMetaclass-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="Property-appliesToMetaclass-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Property-appliesToClassifier" name="appliesToClassifier" type="Classifier" isDerived="true" association="A_property_appliesToClassifier">
        <ownedComment xmi:id="Property-appliesToClassifier-_ownedComment.0">
          <body>A list of classifiers to which this property may be applied.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="Property-appliesToClassifier-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="Property-appliesToClassifier-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Property-appliesTo" name="appliesTo" type="PropertyOwner" aggregation="composite" association="A_property_appliesTo">
        <ownedComment xmi:id="Property-appliesTo-_ownedComment.0">
          <body>Specifies to which named elements this property can be applied.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="Property-appliesTo-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="Property-appliesTo-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Property-emptyListDefault" name="emptyListDefault" type="Boolean"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="PropertyOwner" name="PropertyOwner" isAbstract="true">
      <ownedComment xmi:id="PropertyOwner-_ownedComment.0">
        <body>A specification of a named element to which a property can be applied.</body>
      </ownedComment>
      <generalization xmi:id="PropertyOwner-_generalization.0" general="Element"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_property_appliesTo" name="A_property_appliesTo" visibility="private" memberEnd="A_property_appliesTo-owner Property-appliesTo">
      <ownedEnd xmi:id="A_property_appliesTo-owner" name="owner" type="Property" association="A_property_appliesTo">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_property_appliesTo-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_property_appliesTo-owner-_lowerValue" value="1"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_basicProperty_propertyType" name="A_basicProperty_propertyType" visibility="private" memberEnd="A_basicProperty_propertyType-propertyDefinition BasicProperty-propertyType">
      <generalization xmi:id="A_basicProperty_propertyType-_generalization.0" general="A_type_typedElement"/>
      <ownedEnd xmi:id="A_basicProperty_propertyType-propertyDefinition" name="propertyDefinition" type="BasicProperty" association="A_basicProperty_propertyType">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_basicProperty_propertyType-propertyDefinition-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_basicProperty_propertyType-propertyDefinition-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_basicProperty_ownedPropertyType" name="A_basicProperty_ownedPropertyType" visibility="private" memberEnd="A_basicProperty_ownedPropertyType-owner BasicProperty-ownedPropertyType">
      <generalization xmi:id="A_basicProperty_ownedPropertyType-_generalization.0" general="A_basicProperty_propertyType"/>
      <ownedEnd xmi:id="A_basicProperty_ownedPropertyType-owner" name="owner" type="BasicProperty" association="A_basicProperty_ownedPropertyType">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_basicProperty_ownedPropertyType-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_basicProperty_ownedPropertyType-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_property_defaultValue" name="A_property_defaultValue" visibility="private" memberEnd="A_property_defaultValue-owner Property-defaultValue">
      <ownedEnd xmi:id="A_property_defaultValue-owner" name="owner" type="Property" association="A_property_defaultValue">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_property_defaultValue-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_property_defaultValue-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="BasicProperty" name="BasicProperty">
      <ownedComment xmi:id="BasicProperty-_ownedComment.0">
        <body>A basic property has a name and a type.</body>
      </ownedComment>
      <generalization xmi:id="BasicProperty-_generalization.0" general="TypedElement"/>
      <ownedAttribute xmi:id="BasicProperty-propertyType" name="propertyType" type="PropertyType" redefinedProperty="TypedElement-type" association="A_basicProperty_propertyType">
        <ownedComment xmi:id="BasicProperty-propertyType-_ownedComment.0">
          <body>References the type of this property.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="BasicProperty-propertyType-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="BasicProperty-propertyType-_lowerValue" value="1"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="BasicProperty-ownedPropertyType" name="ownedPropertyType" type="PropertyType" aggregation="composite" subsettedProperty="BasicProperty-propertyType" association="A_basicProperty_ownedPropertyType">
        <ownedComment xmi:id="BasicProperty-ownedPropertyType-_ownedComment.0">
          <body>Specifies an anonymous type for this property.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="BasicProperty-ownedPropertyType-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="BasicProperty-ownedPropertyType-_lowerValue"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_property_appliesToMetaclass" name="A_property_appliesToMetaclass" visibility="private" memberEnd="A_property_appliesToMetaclass-property Property-appliesToMetaclass">
      <ownedEnd xmi:id="A_property_appliesToMetaclass-property" name="property" type="Property" association="A_property_appliesToMetaclass">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_property_appliesToMetaclass-property-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_property_appliesToMetaclass-property-_lowerValue" value="1"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_property_appliesToClassifier" name="A_property_appliesToClassifier" visibility="private" memberEnd="A_property_appliesToClassifier-property Property-appliesToClassifier">
      <ownedEnd xmi:id="A_property_appliesToClassifier-property" name="property" type="Property" association="A_property_appliesToClassifier">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_property_appliesToClassifier-property-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_property_appliesToClassifier-property-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="PropertyExpression" name="PropertyExpression" isAbstract="true">
      <generalization xmi:id="PropertyExpression-_generalization.0" general="Element"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="StringLiteral" name="StringLiteral">
      <ownedComment xmi:id="StringLiteral-_ownedComment.0">
        <body>A string value.</body>
      </ownedComment>
      <generalization xmi:id="StringLiteral-_generalization.0" general="PropertyValue"/>
      <ownedAttribute xmi:id="StringLiteral-value" name="value" type="String">
        <ownedComment xmi:id="StringLiteral-value-_ownedComment.0">
          <body>The string.</body>
        </ownedComment>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="NumberValue" name="NumberValue" isAbstract="true">
      <ownedComment xmi:id="NumberValue-_ownedComment.0">
        <body>A number value.</body>
      </ownedComment>
      <generalization xmi:id="NumberValue-_generalization.0" general="PropertyValue"/>
      <ownedAttribute xmi:id="NumberValue-unit" name="unit" type="UnitLiteral" association="A_numberValue_unit">
        <ownedComment xmi:id="NumberValue-unit-_ownedComment.0">
          <body>Specifies a unit for this value.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="NumberValue-unit-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="NumberValue-unit-_lowerValue"/>
      </ownedAttribute>
      <ownedOperation xmi:id="NumberValue-getScaledValue" name="getScaledValue">
        <ownedParameter xmi:id="NumberValue-getScaledValue-return" name="return" type="Real" direction="return"/>
        <ownedParameter xmi:id="NumberValue-getScaledValue-target" name="target" type="UnitLiteral" effect="read"/>
      </ownedOperation>
      <ownedOperation xmi:id="NumberValue-getScaledValue.1" name="getScaledValue">
        <ownedParameter xmi:id="NumberValue-getScaledValue.1-return" name="return" type="Real" direction="return"/>
      </ownedOperation>
      <ownedOperation xmi:id="NumberValue-getScaledValue.2" name="getScaledValue">
        <ownedParameter xmi:id="NumberValue-getScaledValue.2-return" name="return" type="Real" direction="return"/>
        <ownedParameter xmi:id="NumberValue-getScaledValue.2-target" name="target" type="String" effect="read"/>
      </ownedOperation>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="ClassifierValue" name="ClassifierValue">
      <ownedComment xmi:id="ClassifierValue-_ownedComment.0">
        <body>A classifier value.</body>
      </ownedComment>
      <generalization xmi:id="ClassifierValue-_generalization.0" general="PropertyValue"/>
      <generalization xmi:id="ClassifierValue-_generalization.1" general="PropertyOwner"/>
      <ownedAttribute xmi:id="ClassifierValue-classifier" name="classifier" type="Classifier" association="A_classifierValue_classifier">
        <ownedComment xmi:id="ClassifierValue-classifier-_ownedComment.0">
          <body>References the classifier that is the value.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="ClassifierValue-classifier-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="ClassifierValue-classifier-_lowerValue" value="1"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="ReferenceValue" name="ReferenceValue">
      <ownedComment xmi:id="ReferenceValue-_ownedComment.0">
        <body>A reference value.</body>
      </ownedComment>
      <generalization xmi:id="ReferenceValue-_generalization.0" general="PropertyValue"/>
      <generalization xmi:id="ReferenceValue-_generalization.1" general="ContainedNamedElement"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_classifierValue_classifier" name="A_classifierValue_classifier" visibility="private" memberEnd="A_classifierValue_classifier-classifierValue ClassifierValue-classifier">
      <ownedEnd xmi:id="A_classifierValue_classifier-classifierValue" name="classifierValue" type="ClassifierValue" association="A_classifierValue_classifier">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_classifierValue_classifier-classifierValue-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_classifierValue_classifier-classifierValue-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="BooleanLiteral" name="BooleanLiteral">
      <ownedComment xmi:id="BooleanLiteral-_ownedComment.0">
        <body>A boolean literal value.</body>
      </ownedComment>
      <generalization xmi:id="BooleanLiteral-_generalization.0" general="PropertyValue"/>
      <ownedAttribute xmi:id="BooleanLiteral-value" name="value" type="Boolean">
        <ownedComment xmi:id="BooleanLiteral-value-_ownedComment.0">
          <body>The value true or false.</body>
        </ownedComment>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="RangeValue" name="RangeValue">
      <ownedComment xmi:id="RangeValue-_ownedComment.0">
        <body>A range value.</body>
      </ownedComment>
      <generalization xmi:id="RangeValue-_generalization.0" general="PropertyValue"/>
      <ownedAttribute xmi:id="RangeValue-minimum" name="minimum" type="PropertyExpression" aggregation="composite" association="A_rangeValue_minimum">
        <ownedComment xmi:id="RangeValue-minimum-_ownedComment.0">
          <body>Specifies the lower bound of the range.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="RangeValue-minimum-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="RangeValue-minimum-_lowerValue" value="1"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="RangeValue-maximum" name="maximum" type="PropertyExpression" aggregation="composite" association="A_rangeValue_maximum">
        <ownedComment xmi:id="RangeValue-maximum-_ownedComment.0">
          <body>Specifies the upper bound of this range.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="RangeValue-maximum-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="RangeValue-maximum-_lowerValue" value="1"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="RangeValue-delta" name="delta" type="PropertyExpression" aggregation="composite" association="A_rangeValue_delta">
        <ownedComment xmi:id="RangeValue-delta-_ownedComment.0">
          <body>Specifies a delta for this range.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="RangeValue-delta-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="RangeValue-delta-_lowerValue"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="IntegerLiteral" name="IntegerLiteral">
      <ownedComment xmi:id="IntegerLiteral-_ownedComment.0">
        <body>An integer literal value.</body>
      </ownedComment>
      <generalization xmi:id="IntegerLiteral-_generalization.0" general="NumberValue"/>
      <ownedAttribute xmi:id="IntegerLiteral-base" name="base" type="Integer">
        <ownedComment xmi:id="IntegerLiteral-base-_ownedComment.0">
          <body>Specifies the base of this integer value.</body>
        </ownedComment>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="IntegerLiteral-base-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="IntegerLiteral-value" name="value" type="Integer">
        <ownedComment xmi:id="IntegerLiteral-value-_ownedComment.0">
          <body>The integer number.</body>
        </ownedComment>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="RealLiteral" name="RealLiteral">
      <ownedComment xmi:id="RealLiteral-_ownedComment.0">
        <body>A real literal value.</body>
      </ownedComment>
      <generalization xmi:id="RealLiteral-_generalization.0" general="NumberValue"/>
      <ownedAttribute xmi:id="RealLiteral-value" name="value" type="Real">
        <ownedComment xmi:id="RealLiteral-value-_ownedComment.0">
          <body>The real number.</body>
        </ownedComment>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_numberValue_unit" name="A_numberValue_unit" visibility="private" memberEnd="A_numberValue_unit-numberValue NumberValue-unit">
      <ownedEnd xmi:id="A_numberValue_unit-numberValue" name="numberValue" type="NumberValue" association="A_numberValue_unit">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_numberValue_unit-numberValue-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_numberValue_unit-numberValue-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_rangeValue_minimum" name="A_rangeValue_minimum" visibility="private" memberEnd="A_rangeValue_minimum-owner RangeValue-minimum">
      <ownedEnd xmi:id="A_rangeValue_minimum-owner" name="owner" type="RangeValue" association="A_rangeValue_minimum">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_rangeValue_minimum-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_rangeValue_minimum-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_rangeValue_maximum" name="A_rangeValue_maximum" visibility="private" memberEnd="A_rangeValue_maximum-owner RangeValue-maximum">
      <ownedEnd xmi:id="A_rangeValue_maximum-owner" name="owner" type="RangeValue" association="A_rangeValue_maximum">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_rangeValue_maximum-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_rangeValue_maximum-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_rangeValue_delta" name="A_rangeValue_delta" visibility="private" memberEnd="A_rangeValue_delta-owner RangeValue-delta">
      <ownedEnd xmi:id="A_rangeValue_delta-owner" name="owner" type="RangeValue" association="A_rangeValue_delta">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_rangeValue_delta-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_rangeValue_delta-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="PropertyValue" name="PropertyValue" isAbstract="true">
      <ownedComment xmi:id="PropertyValue-_ownedComment.0">
        <body>The superclass of all property values.</body>
      </ownedComment>
      <generalization xmi:id="PropertyValue-_generalization.0" general="PropertyExpression"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="Operation" name="Operation">
      <ownedComment xmi:id="Operation-_ownedComment.0">
        <body>An operation in a property expression.</body>
      </ownedComment>
      <generalization xmi:id="Operation-_generalization.0" general="PropertyExpression"/>
      <ownedAttribute xmi:id="Operation-op" name="op" type="OperationKind">
        <ownedComment xmi:id="Operation-op-_ownedComment.0">
          <body>Specifies the operation to execute.</body>
        </ownedComment>
      </ownedAttribute>
      <ownedAttribute xmi:id="Operation-ownedPropertyExpression" name="ownedPropertyExpression" type="PropertyExpression" aggregation="composite" association="A_propertyOperation_operand">
        <ownedComment xmi:id="Operation-ownedPropertyExpression-_ownedComment.0">
          <body>Specifies the operands for the operation.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="Operation-ownedPropertyExpression-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="Operation-ownedPropertyExpression-_lowerValue" value="1"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Enumeration" xmi:id="OperationKind" name="OperationKind">
      <ownedComment xmi:id="OperationKind-_ownedComment.0">
        <body>The operations allowed in property expressions.</body>
      </ownedComment>
      <ownedLiteral xmi:id="OperationKind-and" name="and">
        <ownedComment xmi:id="OperationKind-and-_ownedComment.0">
          <body>Logical and in boolean expressions.</body>
        </ownedComment>
      </ownedLiteral>
      <ownedLiteral xmi:id="OperationKind-or" name="or">
        <ownedComment xmi:id="OperationKind-or-_ownedComment.0">
          <body>Logical or in boolean expressions.</body>
        </ownedComment>
      </ownedLiteral>
      <ownedLiteral xmi:id="OperationKind-not" name="not">
        <ownedComment xmi:id="OperationKind-not-_ownedComment.0">
          <body>Logical not in boolean expressions.</body>
        </ownedComment>
      </ownedLiteral>
      <ownedLiteral xmi:id="OperationKind-plus" name="plus">
        <ownedComment xmi:id="OperationKind-plus-_ownedComment.0">
          <body>Unary plus for numeric expressions.</body>
        </ownedComment>
      </ownedLiteral>
      <ownedLiteral xmi:id="OperationKind-minus" name="minus">
        <ownedComment xmi:id="OperationKind-minus-_ownedComment.0">
          <body>Unary minus for numeric expressions.</body>
        </ownedComment>
      </ownedLiteral>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_propertyOperation_operand" name="A_propertyOperation_operand" visibility="private" memberEnd="A_propertyOperation_operand-owner Operation-ownedPropertyExpression">
      <ownedEnd xmi:id="A_propertyOperation_operand-owner" name="owner" type="Operation" association="A_propertyOperation_operand">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_propertyOperation_operand-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_propertyOperation_operand-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="RecordValue" name="RecordValue">
      <ownedComment xmi:id="RecordValue-_ownedComment.0">
        <body>A value for a record property.</body>
      </ownedComment>
      <generalization xmi:id="RecordValue-_generalization.0" general="PropertyValue"/>
      <ownedAttribute xmi:id="RecordValue-ownedFieldValue" name="ownedFieldValue" type="BasicPropertyAssociation" aggregation="composite" association="A_recordValue_ownedFieldValue">
        <ownedComment xmi:id="RecordValue-ownedFieldValue-_ownedComment.0">
          <body>The list of values the record fields.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="RecordValue-ownedFieldValue-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="RecordValue-ownedFieldValue-_lowerValue"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_recordValue_ownedFieldValue" name="A_recordValue_ownedFieldValue" visibility="private" memberEnd="A_recordValue_ownedFieldValue-recordValue RecordValue-ownedFieldValue">
      <ownedEnd xmi:id="A_recordValue_ownedFieldValue-recordValue" name="recordValue" type="RecordValue" association="A_recordValue_ownedFieldValue">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_recordValue_ownedFieldValue-recordValue-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_recordValue_ownedFieldValue-recordValue-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="ComputedValue" name="ComputedValue">
      <ownedComment xmi:id="ComputedValue-_ownedComment.0">
        <body>A value that is computed by a function outside of AADL.</body>
      </ownedComment>
      <generalization xmi:id="ComputedValue-_generalization.0" general="PropertyValue"/>
      <ownedAttribute xmi:id="ComputedValue-function" name="function" type="String">
        <ownedComment xmi:id="ComputedValue-function-_ownedComment.0">
          <body>The name of the function that computes the property value.</body>
        </ownedComment>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="ListValue" name="ListValue">
      <generalization xmi:id="ListValue-_generalization.0" general="PropertyExpression"/>
      <ownedAttribute xmi:id="ListValue-ownedListElement" name="ownedListElement" type="PropertyExpression" isOrdered="true" aggregation="composite" association="A_listValue_element">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="ListValue-ownedListElement-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="ListValue-ownedListElement-_lowerValue"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_listValue_element" name="A_listValue_element" visibility="private" memberEnd="A_listValue_element-owner ListValue-ownedListElement">
      <ownedEnd xmi:id="A_listValue_element-owner" name="owner" type="ListValue" association="A_listValue_element">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_listValue_element-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_listValue_element-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="AbstractNamedValue" name="AbstractNamedValue" isAbstract="true"/>
    <packagedElement xmi:type="uml:Class" xmi:id="NamedValue" name="NamedValue">
      <generalization xmi:id="NamedValue-_generalization.0" general="PropertyValue"/>
      <ownedAttribute xmi:id="NamedValue-namedValue" name="namedValue" type="AbstractNamedValue" association="A_namedValue_namedValue">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="NamedValue-namedValue-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="NamedValue-namedValue-_lowerValue" value="1"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_namedValue_namedValue" name="A_namedValue_namedValue" visibility="private" memberEnd="A_namedValue_namedValue-value NamedValue-namedValue">
      <ownedEnd xmi:id="A_namedValue_namedValue-value" name="value" type="NamedValue" association="A_namedValue_namedValue">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_namedValue_namedValue-value-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_namedValue_namedValue-value-_lowerValue" value="1"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="PropertySet" name="PropertySet">
      <ownedComment xmi:id="PropertySet-_ownedComment.0">
        <body>A property Set.</body>
      </ownedComment>
      <generalization xmi:id="PropertySet-_generalization.0" general="ModelUnit"/>
      <generalization xmi:id="PropertySet-_generalization.1" general="Namespace"/>
      <ownedAttribute xmi:id="PropertySet-ownedPropertyType" name="ownedPropertyType" type="PropertyType" aggregation="composite" subsettedProperty="Namespace-ownedMember" association="A_propertySet_ownedPropertyType">
        <ownedComment xmi:id="PropertySet-ownedPropertyType-_ownedComment.0">
          <body>Specifies the property types owned by this property set.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="PropertySet-ownedPropertyType-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="PropertySet-ownedPropertyType-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="PropertySet-ownedProperty" name="ownedProperty" type="Property" aggregation="composite" subsettedProperty="Namespace-ownedMember" association="A_propertySet_ownedProperty">
        <ownedComment xmi:id="PropertySet-ownedProperty-_ownedComment.0">
          <body>Specifies the properties owned by this property set.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="PropertySet-ownedProperty-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="PropertySet-ownedProperty-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="PropertySet-ownedPropertyConstant" name="ownedPropertyConstant" type="PropertyConstant" aggregation="composite" subsettedProperty="Namespace-ownedMember" association="A_propertySet_ownedPropertyConstant">
        <ownedComment xmi:id="PropertySet-ownedPropertyConstant-_ownedComment.0">
          <body>Specifies the property constants owned by this property set.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="PropertySet-ownedPropertyConstant-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="PropertySet-ownedPropertyConstant-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="PropertySet-importedUnit" name="importedUnit" type="ModelUnit" association="A_propertySet_importedUnit">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="PropertySet-importedUnit-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="PropertySet-importedUnit-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="PropertySet-ownedAnnexSubclause" name="ownedAnnexSubclause" type="AnnexSubclause" aggregation="composite" association="A_propertySet_ownedAnnexSubclause">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="PropertySet-ownedAnnexSubclause-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="PropertySet-ownedAnnexSubclause-_lowerValue"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_globalNamespace_propertySet" name="A_globalNamespace_propertySet" visibility="private" memberEnd="A_globalNamespace_propertySet-globalNamespace GlobalNamespace-propertySet">
      <generalization xmi:id="A_globalNamespace_propertySet-_generalization.0" general="A_member_namespace"/>
      <ownedEnd xmi:id="A_globalNamespace_propertySet-globalNamespace" name="globalNamespace" type="GlobalNamespace" association="A_globalNamespace_propertySet">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_globalNamespace_propertySet-globalNamespace-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_globalNamespace_propertySet-globalNamespace-_lowerValue" value="1"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_propertySet_ownedPropertyType" name="A_propertySet_ownedPropertyType" visibility="private" memberEnd="A_propertySet_ownedPropertyType-owner PropertySet-ownedPropertyType">
      <generalization xmi:id="A_propertySet_ownedPropertyType-_generalization.0" general="A_ownedMember_namespace"/>
      <ownedEnd xmi:id="A_propertySet_ownedPropertyType-owner" name="owner" type="PropertySet" association="A_propertySet_ownedPropertyType">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_propertySet_ownedPropertyType-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_propertySet_ownedPropertyType-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_propertySet_ownedProperty" name="A_propertySet_ownedProperty" visibility="private" memberEnd="A_propertySet_ownedProperty-owner PropertySet-ownedProperty">
      <generalization xmi:id="A_propertySet_ownedProperty-_generalization.0" general="A_ownedMember_namespace"/>
      <ownedEnd xmi:id="A_propertySet_ownedProperty-owner" name="owner" type="PropertySet" association="A_propertySet_ownedProperty">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_propertySet_ownedProperty-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_propertySet_ownedProperty-owner-_lowerValue" value="1"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_propertySet_ownedPropertyConstant" name="A_propertySet_ownedPropertyConstant" visibility="private" memberEnd="A_propertySet_ownedPropertyConstant-owner PropertySet-ownedPropertyConstant">
      <generalization xmi:id="A_propertySet_ownedPropertyConstant-_generalization.0" general="A_ownedMember_namespace"/>
      <ownedEnd xmi:id="A_propertySet_ownedPropertyConstant-owner" name="owner" type="PropertySet" association="A_propertySet_ownedPropertyConstant">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_propertySet_ownedPropertyConstant-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_propertySet_ownedPropertyConstant-owner-_lowerValue" value="1"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="GlobalNamespace" name="GlobalNamespace">
      <ownedComment xmi:id="GlobalNamespace-_ownedComment.0">
        <body>The global namespace of a model.</body>
      </ownedComment>
      <ownedComment xmi:id="GlobalNamespace-_ownedComment.1">
        <body>The global namespace may contain property sets.</body>
      </ownedComment>
      <generalization xmi:id="GlobalNamespace-_generalization.0" general="Namespace"/>
      <ownedAttribute xmi:id="GlobalNamespace-package" name="package" type="PublicPackageSection" subsettedProperty="Namespace-member" association="A_globalNamespace_package">
        <ownedComment xmi:id="GlobalNamespace-package-_ownedComment.0">
          <body>A list of all public package sections in this global namespace.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="GlobalNamespace-package-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="GlobalNamespace-package-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="GlobalNamespace-propertySet" name="propertySet" type="PropertySet" subsettedProperty="Namespace-member" association="A_globalNamespace_propertySet">
        <ownedComment xmi:id="GlobalNamespace-propertySet-_ownedComment.0">
          <body>References the property sets contained that belong in this global namespace.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="GlobalNamespace-propertySet-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="GlobalNamespace-propertySet-_lowerValue"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="ModelUnit" name="ModelUnit" isAbstract="true">
      <generalization xmi:id="ModelUnit-_generalization.0" general="NamedElement"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="Namespace" name="Namespace" isAbstract="true">
      <ownedComment xmi:id="Namespace-_ownedComment.0" annotatedElement="Namespace">
        <body>A namespace is an element in a model that contains a set of named elements that can be identified by name.</body>
      </ownedComment>
      <ownedRule xmi:id="Namespace-members_distinguishable" name="members_distinguishable" constrainedElement="Namespace">
        <ownedComment xmi:id="Namespace-members_distinguishable-_ownedComment.0" annotatedElement="Namespace-members_distinguishable">
          <body>All the members of a Namespace are distinguishable within it.</body>
        </ownedComment>
        <specification xmi:type="uml:OpaqueExpression" xmi:id="Namespace-members_distinguishable-_specification">
          <language>OCL</language>
          <body>membersAreDistinguishable()</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="Namespace-_generalization.0" general="NamedElement"/>
      <ownedAttribute xmi:id="Namespace-ownedMember" name="ownedMember" type="NamedElement" isReadOnly="true" isDerived="true" isDerivedUnion="true" aggregation="composite" subsettedProperty="Element-ownedElement Namespace-member" association="A_ownedMember_namespace">
        <eAnnotations xmi:id="Namespace-ownedMember-_http2F2Fwww.topcased.org2Fdocumentation" source="http://www.topcased.org/documentation">
          <details xmi:id="Namespace-ownedMember-_http2F2Fwww.topcased.org2Fdocumentation-_details.0" key="documentation" value="A collection of NamedElements owned by the Namespace."/>
        </eAnnotations>
        <ownedComment xmi:id="Namespace-ownedMember-_ownedComment.0" annotatedElement="Namespace-ownedMember">
          <body>A collection of NamedElements owned by the Namespace.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="Namespace-ownedMember-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="Namespace-ownedMember-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Namespace-member" name="member" type="NamedElement" isReadOnly="true" isDerived="true" isDerivedUnion="true" association="A_member_namespace">
        <eAnnotations xmi:id="Namespace-member-_http2F2Fwww.topcased.org2Fdocumentation" source="http://www.topcased.org/documentation">
          <details xmi:id="Namespace-member-_http2F2Fwww.topcased.org2Fdocumentation-_details.0" key="documentation" value="A collection of NamedElements identifiable within the Namespace, either by being owned or by being introduced by importing or inheritance."/>
        </eAnnotations>
        <ownedComment xmi:id="Namespace-member-_ownedComment.0" annotatedElement="Namespace-member">
          <body>A collection of NamedElements identifiable within the Namespace, either by being owned or by being introduced by importing or inheritance.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="Namespace-member-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="Namespace-member-_lowerValue"/>
      </ownedAttribute>
      <ownedOperation xmi:id="Namespace-getNamesOfMember" name="getNamesOfMember" isQuery="true" bodyCondition="Namespace-getNamesOfMember-spec">
        <ownedComment xmi:id="Namespace-getNamesOfMember-_ownedComment.0" annotatedElement="Namespace-getNamesOfMember">
          <body>The query getNamesOfMember() gives a set of all of the names that a member would have in a Namespace. In general a member can have multiple names in a Namespace if it is imported more than once with different aliases. Those semantics are specified by overriding the getNamesOfMember operation. The specification here simply returns a set containing a single name, or the empty set if no name.</body>
        </ownedComment>
        <ownedRule xmi:id="Namespace-getNamesOfMember-spec" name="spec" constrainedElement="Namespace-getNamesOfMember">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="Namespace-getNamesOfMember-spec-_specification">
            <language>OCL</language>
            <body>if member->includes(element) then&#xD;
  Set{}->including(element.name)&#xD;
else&#xD;
  Set{}&#xD;
endif</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="Namespace-getNamesOfMember-_ownedParameter.0" type="String" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="Namespace-getNamesOfMember-_ownedParameter.0-_upperValue" value="*"/>
          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="Namespace-getNamesOfMember-_ownedParameter.0-_lowerValue"/>
        </ownedParameter>
        <ownedParameter xmi:id="Namespace-getNamesOfMember-element" name="element" type="NamedElement"/>
      </ownedOperation>
      <ownedOperation xmi:id="Namespace-membersAreDistinguishable" name="membersAreDistinguishable" isQuery="true" bodyCondition="Namespace-membersAreDistinguishable-spec">
        <ownedComment xmi:id="Namespace-membersAreDistinguishable-_ownedComment.0" annotatedElement="Namespace-membersAreDistinguishable">
          <body>The Boolean query membersAreDistinguishable() determines whether all of the namespaces members are distinguishable within it.</body>
        </ownedComment>
        <ownedRule xmi:id="Namespace-membersAreDistinguishable-spec" name="spec" constrainedElement="Namespace-membersAreDistinguishable">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="Namespace-membersAreDistinguishable-spec-_specification">
            <language>OCL</language>
            <body>self.member->forAll( memb | self.member->excluding(memb)->forAll(other | memb.isDistinguishableFrom(other, self)))</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="Namespace-membersAreDistinguishable-_ownedParameter.0" type="Boolean" direction="return"/>
      </ownedOperation>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_propertySet_importedUnit" name="A_propertySet_importedUnit" visibility="private" memberEnd="A_propertySet_importedUnit-propertySet PropertySet-importedUnit">
      <ownedEnd xmi:id="A_propertySet_importedUnit-propertySet" name="propertySet" type="PropertySet" association="A_propertySet_importedUnit">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_propertySet_importedUnit-propertySet-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_propertySet_importedUnit-propertySet-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_propertySet_ownedAnnexSubclause" name="A_propertySet_ownedAnnexSubclause" visibility="private" memberEnd="A_propertySet_ownedAnnexSubclause-owner PropertySet-ownedAnnexSubclause">
      <ownedEnd xmi:id="A_propertySet_ownedAnnexSubclause-owner" name="owner" type="PropertySet" association="A_propertySet_ownedAnnexSubclause">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_propertySet_ownedAnnexSubclause-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_propertySet_ownedAnnexSubclause-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="NonListType" name="NonListType" isAbstract="true">
      <ownedComment xmi:id="NonListType-_ownedComment.0">
        <body>Superclass of all property types.</body>
      </ownedComment>
      <generalization xmi:id="NonListType-_generalization.0" general="PropertyType"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="AadlBoolean" name="AadlBoolean">
      <ownedComment xmi:id="AadlBoolean-_ownedComment.0">
        <body>The predefined property type AADLBoolean.</body>
      </ownedComment>
      <generalization xmi:id="AadlBoolean-_generalization.0" general="NonListType"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="AadlString" name="AadlString">
      <ownedComment xmi:id="AadlString-_ownedComment.0">
        <body>The predefined property type AADLString.</body>
      </ownedComment>
      <generalization xmi:id="AadlString-_generalization.0" general="NonListType"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="AadlInteger" name="AadlInteger">
      <ownedComment xmi:id="AadlInteger-_ownedComment.0">
        <body>The predefined property type AADLInteger.</body>
      </ownedComment>
      <generalization xmi:id="AadlInteger-_generalization.0" general="NumberType"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="AadlReal" name="AadlReal">
      <ownedComment xmi:id="AadlReal-_ownedComment.0">
        <body>The predefined property type AADLReal.</body>
      </ownedComment>
      <generalization xmi:id="AadlReal-_generalization.0" general="NumberType"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="EnumerationType" name="EnumerationType">
      <ownedComment xmi:id="EnumerationType-_ownedComment.0">
        <body>An enumeration type.</body>
      </ownedComment>
      <generalization xmi:id="EnumerationType-_generalization.0" general="NonListType"/>
      <generalization xmi:id="EnumerationType-_generalization.1" general="Namespace"/>
      <ownedAttribute xmi:id="EnumerationType-ownedLiteral" name="ownedLiteral" type="EnumerationLiteral" aggregation="composite" subsettedProperty="Namespace-ownedMember" association="A_enumeration_ownedLiteral">
        <ownedComment xmi:id="EnumerationType-ownedLiteral-_ownedComment.0">
          <body>The list of enumeration literals in this type.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="EnumerationType-ownedLiteral-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="EnumerationType-ownedLiteral-_lowerValue" value="1"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="EnumerationLiteral" name="EnumerationLiteral">
      <ownedComment xmi:id="EnumerationLiteral-_ownedComment.0">
        <body>An enumeration literal.</body>
      </ownedComment>
      <generalization xmi:id="EnumerationLiteral-_generalization.0" general="NamedElement"/>
      <generalization xmi:id="EnumerationLiteral-_generalization.1" general="AbstractNamedValue"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_enumeration_ownedLiteral" name="A_enumeration_ownedLiteral" visibility="private" memberEnd="A_enumeration_ownedLiteral-owner EnumerationType-ownedLiteral">
      <generalization xmi:id="A_enumeration_ownedLiteral-_generalization.0" general="A_ownedMember_namespace"/>
      <ownedEnd xmi:id="A_enumeration_ownedLiteral-owner" name="owner" type="EnumerationType" association="A_enumeration_ownedLiteral">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_enumeration_ownedLiteral-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_enumeration_ownedLiteral-owner-_lowerValue" value="1"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="ClassifierType" name="ClassifierType">
      <ownedComment xmi:id="ClassifierType-_ownedComment.0">
        <body>A classifier type.</body>
      </ownedComment>
      <generalization xmi:id="ClassifierType-_generalization.0" general="NonListType"/>
      <ownedAttribute xmi:id="ClassifierType-classifierReference" name="classifierReference" type="MetaclassReference" aggregation="composite" association="A_classifierType_classifierReference">
        <ownedComment xmi:id="ClassifierType-classifierReference-_ownedComment.0">
          <body>A list of metaclasses that constrains which classifier values are valid for this type.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="ClassifierType-classifierReference-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="ClassifierType-classifierReference-_lowerValue" value="1"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_classifierType_classifierReference" name="A_classifierType_classifierReference" visibility="private" memberEnd="A_classifierType_classifierReference-owner ClassifierType-classifierReference">
      <ownedEnd xmi:id="A_classifierType_classifierReference-owner" name="owner" type="ClassifierType" association="A_classifierType_classifierReference">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_classifierType_classifierReference-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_classifierType_classifierReference-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="MetaclassReference" name="MetaclassReference">
      <ownedComment xmi:id="MetaclassReference-_ownedComment.0">
        <body>The identification of a metaclass.</body>
      </ownedComment>
      <generalization xmi:id="MetaclassReference-_generalization.0" general="PropertyOwner"/>
      <ownedAttribute xmi:id="MetaclassReference-annexName" name="annexName" type="String">
        <ownedComment xmi:id="MetaclassReference-annexName-_ownedComment.0">
          <body>The name of the annex that defines the metaclass.</body>
        </ownedComment>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="MetaclassReference-annexName-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="MetaclassReference-metaclassName" name="metaclassName" type="String" isUnique="false">
        <ownedComment xmi:id="MetaclassReference-metaclassName-_ownedComment.0">
          <body>The name of the metaclass.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="MetaclassReference-metaclassName-_upperValue" value="*"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="NumberType" name="NumberType" isAbstract="true">
      <ownedComment xmi:id="NumberType-_ownedComment.0">
        <body>A number type.</body>
      </ownedComment>
      <generalization xmi:id="NumberType-_generalization.0" general="NonListType"/>
      <ownedAttribute xmi:id="NumberType-ownedUnitsType" name="ownedUnitsType" type="UnitsType" aggregation="composite" subsettedProperty="NumberType-unitsType" association="A_numberType_ownedUnitsType">
        <ownedComment xmi:id="NumberType-ownedUnitsType-_ownedComment.0">
          <body>Specifies an anonymous units type for this number type.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="NumberType-ownedUnitsType-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="NumberType-ownedUnitsType-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="NumberType-unitsType" name="unitsType" type="UnitsType" association="A_numberType_unitsType">
        <ownedComment xmi:id="NumberType-unitsType-_ownedComment.0">
          <body>References a units type for this number type.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="NumberType-unitsType-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="NumberType-unitsType-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="NumberType-range" name="range" type="NumericRange" aggregation="composite" association="A_numberType_range">
        <ownedComment xmi:id="NumberType-range-_ownedComment.0">
          <body>Specifies a value range for this number type.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="NumberType-range-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="NumberType-range-_lowerValue"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_numberType_ownedUnitsType" name="A_numberType_ownedUnitsType" visibility="private" memberEnd="A_numberType_ownedUnitsType-owner NumberType-ownedUnitsType">
      <generalization xmi:id="A_numberType_ownedUnitsType-_generalization.0" general="A_numberType_unitsType"/>
      <ownedEnd xmi:id="A_numberType_ownedUnitsType-owner" name="owner" type="NumberType" association="A_numberType_ownedUnitsType">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_numberType_ownedUnitsType-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_numberType_ownedUnitsType-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_numberType_unitsType" name="A_numberType_unitsType" visibility="private" memberEnd="A_numberType_unitsType-numberType NumberType-unitsType">
      <ownedEnd xmi:id="A_numberType_unitsType-numberType" name="numberType" type="NumberType" association="A_numberType_unitsType">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_numberType_unitsType-numberType-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_numberType_unitsType-numberType-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_numberType_range" name="A_numberType_range" visibility="private" memberEnd="A_numberType_range-owner NumberType-range">
      <ownedEnd xmi:id="A_numberType_range-owner" name="owner" type="NumberType" association="A_numberType_range">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_numberType_range-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_numberType_range-owner-_lowerValue" value="1"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="NumericRange" name="NumericRange">
      <ownedComment xmi:id="NumericRange-_ownedComment.0">
        <body>A range of allowed values for a number type.</body>
      </ownedComment>
      <generalization xmi:id="NumericRange-_generalization.0" general="Element"/>
      <ownedAttribute xmi:id="NumericRange-upperBound" name="upperBound" type="PropertyExpression" aggregation="composite" association="A_range_upperBound">
        <ownedComment xmi:id="NumericRange-upperBound-_ownedComment.0">
          <body>The upper bound of this numeric range.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="NumericRange-upperBound-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="NumericRange-upperBound-_lowerValue" value="1"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="NumericRange-lowerBound" name="lowerBound" type="PropertyExpression" aggregation="composite" association="A_range_lowerBound">
        <ownedComment xmi:id="NumericRange-lowerBound-_ownedComment.0">
          <body>The lower bound of this numeric range.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="NumericRange-lowerBound-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="NumericRange-lowerBound-_lowerValue" value="1"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_range_upperBound" name="A_range_upperBound" visibility="private" memberEnd="A_range_upperBound-owner NumericRange-upperBound">
      <ownedEnd xmi:id="A_range_upperBound-owner" name="owner" type="NumericRange" association="A_range_upperBound">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_range_upperBound-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_range_upperBound-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_range_lowerBound" name="A_range_lowerBound" visibility="private" memberEnd="A_range_lowerBound-owner NumericRange-lowerBound">
      <ownedEnd xmi:id="A_range_lowerBound-owner" name="owner" type="NumericRange" association="A_range_lowerBound">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_range_lowerBound-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_range_lowerBound-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="RangeType" name="RangeType">
      <ownedComment xmi:id="RangeType-_ownedComment.0">
        <body>A range type.</body>
      </ownedComment>
      <generalization xmi:id="RangeType-_generalization.0" general="NonListType"/>
      <ownedAttribute xmi:id="RangeType-ownedNumberType" name="ownedNumberType" type="NumberType" aggregation="composite" subsettedProperty="RangeType-numberType" association="A_rangeType_ownedNumberType">
        <ownedComment xmi:id="RangeType-ownedNumberType-_ownedComment.0">
          <body>Specifies an anonymous number type for this range type.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="RangeType-ownedNumberType-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="RangeType-ownedNumberType-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="RangeType-numberType" name="numberType" type="NumberType" association="A_rangeType_numberType">
        <ownedComment xmi:id="RangeType-numberType-_ownedComment.0">
          <body>References the number type of this range type.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="RangeType-numberType-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="RangeType-numberType-_lowerValue" value="1"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_rangeType_ownedNumberType" name="A_rangeType_ownedNumberType" visibility="private" memberEnd="A_rangeType_ownedNumberType-owner RangeType-ownedNumberType">
      <generalization xmi:id="A_rangeType_ownedNumberType-_generalization.0" general="A_rangeType_numberType"/>
      <ownedEnd xmi:id="A_rangeType_ownedNumberType-owner" name="owner" type="RangeType" association="A_rangeType_ownedNumberType">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_rangeType_ownedNumberType-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_rangeType_ownedNumberType-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_rangeType_numberType" name="A_rangeType_numberType" visibility="private" memberEnd="A_rangeType_numberType-rangeType RangeType-numberType">
      <ownedEnd xmi:id="A_rangeType_numberType-rangeType" name="rangeType" type="RangeType" association="A_rangeType_numberType">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_rangeType_numberType-rangeType-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_rangeType_numberType-rangeType-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="RecordType" name="RecordType">
      <ownedComment xmi:id="RecordType-_ownedComment.0">
        <body>A racord type.</body>
      </ownedComment>
      <generalization xmi:id="RecordType-_generalization.0" general="NonListType"/>
      <generalization xmi:id="RecordType-_generalization.1" general="Namespace"/>
      <ownedAttribute xmi:id="RecordType-ownedField" name="ownedField" type="BasicProperty" aggregation="composite" subsettedProperty="Namespace-ownedMember" association="A_recordType_ownedField">
        <ownedComment xmi:id="RecordType-ownedField-_ownedComment.0">
          <body>The list of fields in this record type.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="RecordType-ownedField-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="RecordType-ownedField-_lowerValue"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="RecordField" name="RecordField">
      <ownedComment xmi:id="RecordField-_ownedComment.0">
        <body>===TBD: Is this still needed???===</body>
      </ownedComment>
      <generalization xmi:id="RecordField-_generalization.0" general="BasicProperty"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_recordType_ownedField" name="A_recordType_ownedField" visibility="private" memberEnd="A_recordType_ownedField-owner RecordType-ownedField">
      <generalization xmi:id="A_recordType_ownedField-_generalization.0" general="A_ownedMember_namespace"/>
      <ownedEnd xmi:id="A_recordType_ownedField-owner" name="owner" type="RecordType" association="A_recordType_ownedField">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_recordType_ownedField-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_recordType_ownedField-owner-_lowerValue" value="1"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="ReferenceType" name="ReferenceType">
      <ownedComment xmi:id="ReferenceType-_ownedComment.0">
        <body>A reference type.</body>
      </ownedComment>
      <generalization xmi:id="ReferenceType-_generalization.0" general="NonListType"/>
      <ownedAttribute xmi:id="ReferenceType-namedElementReference" name="namedElementReference" type="MetaclassReference" aggregation="composite" association="A_referenceType_namedElementReference">
        <ownedComment xmi:id="ReferenceType-namedElementReference-_ownedComment.0">
          <body>A list of metaclasses that constrains which named element values are valid for this type.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="ReferenceType-namedElementReference-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="ReferenceType-namedElementReference-_lowerValue" value="1"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_referenceType_namedElementReference" name="A_referenceType_namedElementReference" visibility="private" memberEnd="A_referenceType_namedElementReference-owner ReferenceType-namedElementReference">
      <ownedEnd xmi:id="A_referenceType_namedElementReference-owner" name="owner" type="ReferenceType" association="A_referenceType_namedElementReference">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_referenceType_namedElementReference-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_referenceType_namedElementReference-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="UnitsType" name="UnitsType">
      <ownedComment xmi:id="UnitsType-_ownedComment.0">
        <body>A units type.</body>
      </ownedComment>
      <generalization xmi:id="UnitsType-_generalization.0" general="EnumerationType"/>
      <ownedAttribute xmi:id="UnitsType-ownedLiteral" name="ownedLiteral" type="UnitLiteral" isOrdered="true" aggregation="composite" redefinedProperty="EnumerationType-ownedLiteral" subsettedProperty="Namespace-ownedMember" association="A_unitsType_ownedUnitLiteral">
        <ownedComment xmi:id="UnitsType-ownedLiteral-_ownedComment.0">
          <body>The unit literals in this type.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="UnitsType-ownedLiteral-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="UnitsType-ownedLiteral-_lowerValue" value="1"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_derivedUnit_baseUnit" name="A_derivedUnit_baseUnit" visibility="private" memberEnd="A_derivedUnit_baseUnit-derivedUnit UnitLiteral-baseUnit">
      <ownedEnd xmi:id="A_derivedUnit_baseUnit-derivedUnit" name="derivedUnit" type="UnitLiteral" association="A_derivedUnit_baseUnit">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_derivedUnit_baseUnit-derivedUnit-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_derivedUnit_baseUnit-derivedUnit-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="UnitLiteral" name="UnitLiteral">
      <ownedComment xmi:id="UnitLiteral-_ownedComment.0">
        <body>A unit literal.</body>
      </ownedComment>
      <generalization xmi:id="UnitLiteral-_generalization.0" general="EnumerationLiteral"/>
      <ownedAttribute xmi:id="UnitLiteral-baseUnit" name="baseUnit" type="UnitLiteral" association="A_derivedUnit_baseUnit">
        <ownedComment xmi:id="UnitLiteral-baseUnit-_ownedComment.0">
          <body>References a units literal defined earlier in the same units type.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="UnitLiteral-baseUnit-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="UnitLiteral-baseUnit-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="UnitLiteral-factor" name="factor" type="NumberValue" aggregation="composite" association="A_unitLiteral_factor">
        <ownedComment xmi:id="UnitLiteral-factor-_ownedComment.0">
          <body>The conversion factor between this unit and its base unit.</body>
        </ownedComment>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="UnitLiteral-factor-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="UnitLiteral-factor-_lowerValue"/>
      </ownedAttribute>
      <ownedOperation xmi:id="UnitLiteral-getAbsoluteFactor" name="getAbsoluteFactor">
        <ownedParameter xmi:id="UnitLiteral-getAbsoluteFactor-return" name="return" type="Real" direction="return"/>
        <ownedParameter xmi:id="UnitLiteral-getAbsoluteFactor-target" name="target" type="UnitLiteral" effect="read"/>
      </ownedOperation>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_unitsType_ownedUnitLiteral" name="A_unitsType_ownedUnitLiteral" visibility="private" memberEnd="A_unitsType_ownedUnitLiteral-owner UnitsType-ownedLiteral">
      <generalization xmi:id="A_unitsType_ownedUnitLiteral-_generalization.0" general="A_enumeration_ownedLiteral"/>
      <ownedEnd xmi:id="A_unitsType_ownedUnitLiteral-owner" name="owner" type="UnitsType" association="A_unitsType_ownedUnitLiteral">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_unitsType_ownedUnitLiteral-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_unitsType_ownedUnitLiteral-owner-_lowerValue" value="1"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_unitLiteral_factor" name="A_unitLiteral_factor" visibility="private" memberEnd="A_unitLiteral_factor-owner UnitLiteral-factor">
      <ownedEnd xmi:id="A_unitLiteral_factor-owner" name="owner" type="UnitLiteral" association="A_unitLiteral_factor">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_unitLiteral_factor-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_unitLiteral_factor-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="ListType" name="ListType">
      <generalization xmi:id="ListType-_generalization.0" general="PropertyType"/>
      <ownedAttribute xmi:id="ListType-ownedElementType" name="ownedElementType" type="PropertyType" aggregation="composite" subsettedProperty="ListType-elementType" association="A_listType_ownedElementType">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="ListType-ownedElementType-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="ListType-ownedElementType-_lowerValue"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="ListType-elementType" name="elementType" type="PropertyType" association="A_listType_elementType">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="ListType-elementType-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="ListType-elementType-_lowerValue" value="1"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="PropertyType" name="PropertyType" isAbstract="true">
      <generalization xmi:id="PropertyType-_generalization.0" general="Type"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_listType_ownedElementType" name="A_listType_ownedElementType" visibility="private" memberEnd="A_listType_ownedElementType-owner ListType-ownedElementType">
      <generalization xmi:id="A_listType_ownedElementType-_generalization.0" general="A_listType_elementType"/>
      <ownedEnd xmi:id="A_listType_ownedElementType-owner" name="owner" type="ListType" association="A_listType_ownedElementType">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_listType_ownedElementType-owner-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_listType_ownedElementType-owner-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="A_listType_elementType" name="A_listType_elementType" visibility="private" memberEnd="A_listType_elementType-listType ListType-elementType">
      <ownedEnd xmi:id="A_listType_elementType-listType" name="listType" type="ListType" association="A_listType_elementType">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_listType_elementType-listType-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_listType_elementType-listType-_lowerValue" value="1"/>
      </ownedEnd>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="ProcessorPort" name="ProcessorPort">
      <generalization xmi:id="ProcessorPort-_generalization.0" general="ModeTransitionTrigger"/>
      <generalization xmi:id="ProcessorPort-_generalization.1" general="NamedElement"/>
      <generalization xmi:id="ProcessorPort-_generalization.2" general="AbstractConnectionEnd"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="InternalEvent" name="InternalEvent">
      <generalization xmi:id="InternalEvent-_generalization.0" general="ModeTransitionTrigger"/>
      <generalization xmi:id="InternalEvent-_generalization.1" general="NamedElement"/>
      <generalization xmi:id="InternalEvent-_generalization.2" general="AbstractConnectionEnd"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="ProcessorSubprogram" name="ProcessorSubprogram">
      <generalization xmi:id="ProcessorSubprogram-_generalization.0" general="NamedElement"/>
      <generalization xmi:id="ProcessorSubprogram-_generalization.1" general="AbstractConnectionEnd"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="ArraySize" name="ArraySize">
      <ownedComment xmi:id="ArraySize-_ownedComment.0">
        <body>Specifies the size of an array dimension.</body>
      </ownedComment>
      <ownedComment xmi:id="ArraySize-_ownedComment.1">
        <body>A specification of a one-dimensional array's size.</body>
      </ownedComment>
      <generalization xmi:id="ArraySize-_generalization.0" general="Element"/>
      <ownedAttribute xmi:id="ArraySize-size" name="size" type="Integer"/>
      <ownedAttribute xmi:id="ArraySize-sizeProperty" name="sizeProperty" type="ArraySizeProperty" association="A_arraySize_sizeProperty">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="ArraySize-sizeProperty-_upperValue" value="1"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="ArraySize-sizeProperty-_lowerValue"/>
      </ownedAttribute>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="ArraySizeProperty" name="ArraySizeProperty" isAbstract="true"/>
    <packagedElement xmi:type="uml:Association" xmi:id="A_arraySize_sizeProperty" name="A_arraySize_sizeProperty" visibility="private" memberEnd="A_arraySize_sizeProperty-arraySize ArraySize-sizeProperty">
      <ownedEnd xmi:id="A_arraySize_sizeProperty-arraySize" name="arraySize" type="ArraySize" association="A_arraySize_sizeProperty">
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="A_arraySize_sizeProperty-arraySize-_upperValue" value="*"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_arraySize_sizeProperty-arraySize-_lowerValue"/>
      </ownedEnd>
    </packagedElement>
    <profileApplication xmi:id="_profileApplication.0">
      <eAnnotations xmi:id="_profileApplication.0-_http2F2Fwww.eclipse.org2Fuml22F2.0.02FUML" source="http://www.eclipse.org/uml2/2.0.0/UML">
        <references xmi:type="ecore:EPackage" href="pathmap://UML_PROFILES/Ecore.profile.uml#_B7dOIMEREduRdatXodjBjA"/>
      </eAnnotations>
      <appliedProfile href="pathmap://UML_PROFILES/Ecore.profile.uml#_0"/>
    </profileApplication>
    <profileApplication xmi:id="_profileApplication.1">
      <eAnnotations xmi:id="_profileApplication.1-_http2F2Fwww.eclipse.org2Fuml22F2.0.02FUML" source="http://www.eclipse.org/uml2/2.0.0/UML">
        <references xmi:type="ecore:EPackage" href="pathmap://UML_PROFILES/Standard.profile.uml#_yzU58YinEdqtvbnfB2L_5w"/>
      </eAnnotations>
      <appliedProfile href="pathmap://UML_PROFILES/Standard.profile.uml#_0"/>
    </profileApplication>
  </uml:Model>
  <Ecore:EDataType xmi:id="_kML1MJ60Edy3O8JSiftxsg" instanceClassName="boolean" base_PrimitiveType="Boolean"/>
  <Ecore:EDataType xmi:id="_lk57oJ60Edy3O8JSiftxsg" instanceClassName="long" base_PrimitiveType="Integer"/>
  <Ecore:EDataType xmi:id="_W2_wICNjEd2QgNjfZP9I5g" instanceClassName="double" base_PrimitiveType="Real"/>
  <Ecore:EDataType xmi:id="_ny3oAJ60Edy3O8JSiftxsg" instanceClassName="java.lang.String" base_PrimitiveType="String"/>
  <Ecore:EPackage xmi:id="_BVoJQE28Ed2wX9l8Zwaacg" base_Package="_0" packageName="aadl2" nsPrefix="aadl2" nsURI="http://aadl.info/AADL/2.0" basePackage="org.osate" prefix="Aadl2"/>
  <Ecore:EReference xmi:id="_BDZNYFl7Ed2rAYnnAX19tA" isTransient="true" isVolatile="true" base_Property="GlobalNamespace-package"/>
  <Ecore:EReference xmi:id="_hQEeUFl9Ed2rAYnnAX19tA" isTransient="true" isVolatile="true" base_Property="GlobalNamespace-propertySet"/>
  <Ecore:EReference xmi:id="_wVAMkFm-Ed2QnLBH48kgww" isTransient="true" isVolatile="true" base_Property="Element-ownedElement"/>
  <Ecore:EAttribute xmi:id="_wVAMklm-Ed2QnLBH48kgww" isTransient="true" isVolatile="true" base_Property="NamedElement-qualifiedName"/>
  <Ecore:EReference xmi:id="_wVAMlFm-Ed2QnLBH48kgww" isTransient="true" isVolatile="true" base_Property="Namespace-ownedMember"/>
  <Ecore:EReference xmi:id="_wVAMlVm-Ed2QnLBH48kgww" isTransient="true" isVolatile="true" base_Property="Namespace-member"/>
  <Ecore:EReference xmi:id="_wVJ9kFm-Ed2QnLBH48kgww" isTransient="true" isVolatile="true" base_Property="Classifier-classifierFeature"/>
  <Ecore:EReference xmi:id="_wVJ9kVm-Ed2QnLBH48kgww" isTransient="true" isVolatile="true" base_Property="Classifier-inheritedMember"/>
  <Ecore:EReference xmi:id="_wVJ9klm-Ed2QnLBH48kgww" isTransient="true" isVolatile="true" base_Property="Classifier-generalization"/>
  <Ecore:EReference xmi:id="_wVJ9k1m-Ed2QnLBH48kgww" isTransient="true" isVolatile="true" base_Property="Classifier-general"/>
  <Ecore:EReference xmi:id="_wVJ9lFm-Ed2QnLBH48kgww" isTransient="true" isVolatile="true" base_Property="ClassifierFeature-featuringClassifier" isResolveProxies="false"/>
  <Ecore:EReference xmi:id="_wVJ9l1m-Ed2QnLBH48kgww" isTransient="true" isVolatile="true" base_Property="Relationship-relatedElement"/>
  <Ecore:EReference xmi:id="_wVJ9mFm-Ed2QnLBH48kgww" isTransient="true" isVolatile="true" base_Property="DirectedRelationship-source"/>
  <Ecore:EReference xmi:id="_wVTukFm-Ed2QnLBH48kgww" isTransient="true" isVolatile="true" base_Property="DirectedRelationship-target"/>
  <Ecore:EReference xmi:id="_wVTukVm-Ed2QnLBH48kgww" isTransient="true" isVolatile="true" base_Property="Generalization-specific"/>
  <Ecore:EReference xmi:id="_wVTuklm-Ed2QnLBH48kgww" isTransient="true" isVolatile="true" base_Property="Generalization-general"/>
  <Ecore:EReference xmi:id="_wVTulFm-Ed2QnLBH48kgww" isTransient="true" isVolatile="true" base_Property="PublicPackageSection-privateSection"/>
  <Ecore:EReference xmi:id="_wVTulVm-Ed2QnLBH48kgww" isTransient="true" isVolatile="true" base_Property="PrivatePackageSection-publicSection"/>
  <Ecore:EReference xmi:id="_wVc4gVm-Ed2QnLBH48kgww" isTransient="true" isVolatile="true" base_Property="ComponentType-ownedFeature"/>
  <Ecore:EReference xmi:id="_wVc4glm-Ed2QnLBH48kgww" isTransient="true" isVolatile="true" base_Property="ComponentType-extended"/>
  <Ecore:EReference xmi:id="_wVc4g1m-Ed2QnLBH48kgww" isTransient="true" isVolatile="true" base_Property="ComponentImplementation-type"/>
  <Ecore:EReference xmi:id="_wVc4hFm-Ed2QnLBH48kgww" isTransient="true" isVolatile="true" base_Property="ComponentImplementation-ownedSubcomponent"/>
  <Ecore:EReference xmi:id="_wVc4hVm-Ed2QnLBH48kgww" isTransient="true" isVolatile="true" base_Property="ComponentImplementation-extended"/>
  <Ecore:EReference xmi:id="_wVc4hlm-Ed2QnLBH48kgww" isTransient="true" isVolatile="true" base_Property="ComponentImplementation-ownedConnection"/>
  <Ecore:EReference xmi:id="_wV5kcFm-Ed2QnLBH48kgww" isTransient="true" isVolatile="true" base_Property="FeatureGroupType-extended"/>
  <Ecore:EReference xmi:id="_8tGW8FpIEd2kwugqS-aPYQ" isTransient="true" isVolatile="true" base_Property="FeatureGroupType-ownedFeature"/>
  <Standard:Metamodel xmi:id="_NE82sVprEd2djcltMkYjuA" base_Model="_0"/>
  <Standard:Metaclass xmi:id="_NFPxoFprEd2djcltMkYjuA" base_Class="Element"/>
  <Standard:Metaclass xmi:id="_NFPxoVprEd2djcltMkYjuA" base_Class="NamedElement"/>
  <Standard:Metaclass xmi:id="_NFPxolprEd2djcltMkYjuA" base_Class="Namespace"/>
  <Standard:Metaclass xmi:id="_NFPxo1prEd2djcltMkYjuA" base_Class="Classifier"/>
  <Standard:Metaclass xmi:id="_NFPxpFprEd2djcltMkYjuA" base_Class="ClassifierFeature"/>
  <Standard:Metaclass xmi:id="_NFPxplprEd2djcltMkYjuA" base_Class="Relationship"/>
  <Standard:Metaclass xmi:id="_NFPxp1prEd2djcltMkYjuA" base_Class="DirectedRelationship"/>
  <Standard:Metaclass xmi:id="_NFPxqFprEd2djcltMkYjuA" base_Class="Generalization"/>
  <Standard:Metaclass xmi:id="_NFPxq1prEd2djcltMkYjuA" base_Class="PublicPackageSection"/>
  <Standard:Metaclass xmi:id="_NFPxrFprEd2djcltMkYjuA" base_Class="PrivatePackageSection"/>
  <Standard:Metaclass xmi:id="_NFiskFprEd2djcltMkYjuA" base_Class="ComponentType"/>
  <Standard:Metaclass xmi:id="_NFiskVprEd2djcltMkYjuA" base_Class="ComponentImplementation"/>
  <Standard:Metaclass xmi:id="_NFisk1prEd2djcltMkYjuA" base_Class="AbstractImplementation"/>
  <Standard:Metaclass xmi:id="_NFislVprEd2djcltMkYjuA" base_Class="BusImplementation"/>
  <Standard:Metaclass xmi:id="_NFisl1prEd2djcltMkYjuA" base_Class="DataImplementation"/>
  <Standard:Metaclass xmi:id="_NFsdkVprEd2djcltMkYjuA" base_Class="DeviceImplementation"/>
  <Standard:Metaclass xmi:id="_NFsdk1prEd2djcltMkYjuA" base_Class="MemoryImplementation"/>
  <Standard:Metaclass xmi:id="_NFsdlVprEd2djcltMkYjuA" base_Class="ProcessImplementation"/>
  <Standard:Metaclass xmi:id="_NFsdl1prEd2djcltMkYjuA" base_Class="ProcessorImplementation"/>
  <Standard:Metaclass xmi:id="_NF1ngFprEd2djcltMkYjuA" base_Class="SubprogramImplementation"/>
  <Standard:Metaclass xmi:id="_NF1nglprEd2djcltMkYjuA" base_Class="SubprogramGroupImplementation"/>
  <Standard:Metaclass xmi:id="_NF1nhFprEd2djcltMkYjuA" base_Class="SystemImplementation"/>
  <Standard:Metaclass xmi:id="_NF1nhlprEd2djcltMkYjuA" base_Class="ThreadImplementation"/>
  <Standard:Metaclass xmi:id="_NF_YgFprEd2djcltMkYjuA" base_Class="ThreadGroupImplementation"/>
  <Standard:Metaclass xmi:id="_NF_YglprEd2djcltMkYjuA" base_Class="VirtualBusImplementation"/>
  <Standard:Metaclass xmi:id="_NF_YhFprEd2djcltMkYjuA" base_Class="VirtualProcessorImplementation"/>
  <Standard:Metaclass xmi:id="_NF_YhVprEd2djcltMkYjuA" base_Class="FeatureGroupType"/>
  <Standard:Metaclass xmi:id="_NF_Yh1prEd2djcltMkYjuA" base_Class="GlobalNamespace"/>
  <Ecore:EReference xmi:id="_cKPCQF11Ed2aqP4X3Bnz6w" isTransient="true" isVolatile="true" base_Property="BehavioredImplementation-callSpecification"/>
  <Standard:Metaclass xmi:id="_k5LIUF11Ed2aqP4X3Bnz6w" base_Class="BehavioredImplementation"/>
  <Ecore:EReference xmi:id="_kXvTkF2TEd2P55CRvsZ8Rw" isTransient="true" isVolatile="true" base_Property="AbstractImplementation-type"/>
  <Ecore:EReference xmi:id="_rrzXEF2TEd2P55CRvsZ8Rw" isTransient="true" isVolatile="true" base_Property="BusImplementation-type"/>
  <Ecore:EReference xmi:id="_N92rAF2UEd2P55CRvsZ8Rw" isTransient="true" isVolatile="true" base_Property="DataImplementation-type"/>
  <Ecore:EReference xmi:id="_4AX_sF2WEd2P55CRvsZ8Rw" isTransient="true" isVolatile="true" base_Property="VirtualProcessorImplementation-type"/>
  <Ecore:EReference xmi:id="_AW4-sF2XEd2P55CRvsZ8Rw" isTransient="true" isVolatile="true" base_Property="VirtualBusImplementation-type"/>
  <Ecore:EReference xmi:id="_EfdWkF2XEd2P55CRvsZ8Rw" isTransient="true" isVolatile="true" base_Property="ThreadImplementation-type"/>
  <Ecore:EReference xmi:id="_F6fKIF2XEd2P55CRvsZ8Rw" isTransient="true" isVolatile="true" base_Property="ThreadGroupImplementation-type"/>
  <Ecore:EReference xmi:id="_XpWYkF2XEd2P55CRvsZ8Rw" isTransient="true" isVolatile="true" base_Property="SystemImplementation-type"/>
  <Ecore:EReference xmi:id="_bztgMF2XEd2P55CRvsZ8Rw" isTransient="true" isVolatile="true" base_Property="SubprogramGroupImplementation-type"/>
  <Ecore:EReference xmi:id="_tCZZwF2XEd2P55CRvsZ8Rw" isTransient="true" isVolatile="true" base_Property="SubprogramImplementation-type"/>
  <Ecore:EReference xmi:id="_wMZ3oF2XEd2P55CRvsZ8Rw" isTransient="true" isVolatile="true" base_Property="ProcessorImplementation-type"/>
  <Ecore:EReference xmi:id="_1OB-cF2XEd2P55CRvsZ8Rw" isTransient="true" isVolatile="true" base_Property="ProcessImplementation-type"/>
  <Ecore:EReference xmi:id="_9xDvcF2XEd2P55CRvsZ8Rw" isTransient="true" isVolatile="true" base_Property="MemoryImplementation-type"/>
  <Ecore:EReference xmi:id="_Bjll4F2YEd2P55CRvsZ8Rw" isTransient="true" isVolatile="true" base_Property="DeviceImplementation-type"/>
  <Ecore:EClass xmi:id="__CwukGhxEd21g9MLLnbMJw" xmlName="Package" base_Class="Package" className="AadlPackage"/>
  <Standard:Metaclass xmi:id="_KGjzMGhyEd21g9MLLnbMJw" base_Class="Package"/>
  <Ecore:EReference xmi:id="_feeQ4P3sEd2Ro5zjTxEQsg" isTransient="true" isVolatile="true" base_Property="Feature-classifier"/>
  <Standard:Metaclass xmi:id="_lVhj0P3sEd2Ro5zjTxEQsg" base_Class="Feature"/>
  <Standard:Metaclass xmi:id="_4SVHAFHpEd6aXqaq3cmRZw" base_Class="Subcomponent"/>
  <Ecore:EReference xmi:id="_Bm0xMFHqEd6aXqaq3cmRZw" isTransient="true" isVolatile="true" base_Property="Subcomponent-classifier"/>
  <Standard:Metaclass xmi:id="_2zZsQHAmEeCG1uAXqBr-RA" base_Class="ModalElement"/>
  <Standard:Metaclass xmi:id="_j4BVcHAoEeCG1uAXqBr-RA" base_Class="Mode"/>
  <Ecore:EReference xmi:id="_q4X6wKf3EeCYEIHXYlP5sg" isTransient="true" isVolatile="true" base_Property="Subcomponent-prototype"/>
  <Ecore:EReference xmi:id="_fexyAKgHEeCYEIHXYlP5sg" isTransient="true" isVolatile="true" base_Property="Subcomponent-subcomponentType"/>
  <Standard:Metaclass xmi:id="_usN9ALIBEeCWmNkTdM4SSg" base_Class="FeatureGroup"/>
  <Ecore:EReference xmi:id="_4Z0qwLIBEeCWmNkTdM4SSg" isTransient="true" isVolatile="true" base_Property="FeatureGroup-featureGroupType"/>
  <Ecore:EReference xmi:id="_5j1m0LIBEeCWmNkTdM4SSg" isTransient="true" isVolatile="true" base_Property="FeatureGroup-featureGroupPrototype"/>
  <Ecore:EReference xmi:id="_-PSPELO-EeCzMYz5ww7glA" isTransient="true" isVolatile="true" base_Property="Feature-prototype"/>
  <Ecore:EReference xmi:id="_AIRJ8LO_EeCzMYz5ww7glA" isTransient="true" isVolatile="true" base_Property="Feature-featureClassifier"/>
  <Standard:Metaclass xmi:id="_p5XCELbPEeCFTe7PfIxrcw" base_Class="ModalPath"/>
  <Ecore:EReference xmi:id="_sb-IwLbPEeCFTe7PfIxrcw" isTransient="true" isVolatile="true" base_Property="ModalPath-inMode"/>
  <Ecore:EReference xmi:id="_8dymkLbPEeCFTe7PfIxrcw"/>
  <Ecore:EReference xmi:id="_2pccALcUEeCm2_IbD3l0tA" isTransient="true" isVolatile="true" base_Property="Subcomponent-inMode"/>
  <Standard:Metaclass xmi:id="_gqSIsP5zEeCNbuO0Qm4fmQ" base_Class="Property"/>
  <Ecore:EReference xmi:id="_vn4JYP5zEeCNbuO0Qm4fmQ" isTransient="true" isVolatile="true" base_Property="Property-appliesToClassifier"/>
  <Ecore:EReference xmi:id="_3z8L4P5zEeCNbuO0Qm4fmQ" isTransient="true" isVolatile="true" base_Property="Property-appliesToMetaclass"/>
  <Standard:Metaclass xmi:id="_HSZd8P50EeCNbuO0Qm4fmQ" base_Class="RefinableElement"/>
  <Ecore:EReference xmi:id="_Zqt5EP50EeCNbuO0Qm4fmQ" isTransient="true" isVolatile="true" base_Property="RefinableElement-refinedElement"/>
  <Ecore:EReference xmi:id="_a3ToAP50EeCNbuO0Qm4fmQ" isTransient="true" isVolatile="true" base_Property="RefinableElement-refinementContext"/>
  <Ecore:EAttribute xmi:id="_G8QZYP51EeCNbuO0Qm4fmQ" isTransient="true" isVolatile="true" base_Property="PackageSection-name"/>
  <Ecore:EAttribute xmi:id="_hw3EUP51EeCNbuO0Qm4fmQ" isTransient="true" isVolatile="true" base_Property="Access-category"/>
  <Ecore:EAttribute xmi:id="_iqUb4P51EeCNbuO0Qm4fmQ" isTransient="true" isVolatile="true" base_Property="Port-category"/>
  <Standard:Metaclass xmi:id="_viirgP51EeCNbuO0Qm4fmQ" base_Class="PackageSection"/>
  <Standard:Metaclass xmi:id="_vijSkP51EeCNbuO0Qm4fmQ" base_Class="Access"/>
  <Standard:Metaclass xmi:id="_vijSkf51EeCNbuO0Qm4fmQ" base_Class="Port"/>
  <Ecore:EAttribute xmi:id="_9K2UQP51EeCNbuO0Qm4fmQ" isTransient="true" isVolatile="true"/>
  <Standard:Metaclass xmi:id="_EAU-UP52EeCNbuO0Qm4fmQ"/>
  <Standard:Metaclass xmi:id="_6S69wNciEeGChpddaBFCtg" base_Class="ModeTransition"/>
  <Standard:Metaclass xmi:id="_4FrdgGWVEeKn5rvcPbyT8w" base_Class="CallContext"/>
  <Standard:Metaclass xmi:id="_BcO10GWZEeKn5rvcPbyT8w" base_Class="SubprogramType"/>
  <Ecore:EAttribute xmi:id="_YW234E4fEeOhgd3TaVpFAQ" isTransient="true" isVolatile="true" base_Property="Mode-derived"/>
  <Standard:Metaclass xmi:id="_62gtgE4gEeOhgd3TaVpFAQ" base_Class="ComponentClassifier"/>
  <Ecore:EAttribute xmi:id="_210X4E4jEeOhgd3TaVpFAQ" base_Property="ComponentClassifier-derivedModes"/>
  <Standard:Metaclass xmi:id="_oen6kFBtEeOaTYYfekn7kw" base_Class="Comment"/>
  <Standard:Metaclass xmi:id="_oen6kVBtEeOaTYYfekn7kw" base_Class="Type"/>
  <Standard:Metaclass xmi:id="_oen6klBtEeOaTYYfekn7kw" base_Class="TypedElement"/>
  <Standard:Metaclass xmi:id="_oexEgFBtEeOaTYYfekn7kw" base_Class="StructuralFeature"/>
  <Standard:Metaclass xmi:id="_oexEgVBtEeOaTYYfekn7kw" base_Class="BehavioralFeature"/>
  <Standard:Metaclass xmi:id="_oexEglBtEeOaTYYfekn7kw" base_Class="ArrayDimension"/>
  <Standard:Metaclass xmi:id="_oexEg1BtEeOaTYYfekn7kw" base_Class="ArrayableElement"/>
  <Standard:Metaclass xmi:id="_oexEhFBtEeOaTYYfekn7kw" base_Class="ComponentImplementationReference"/>
  <Standard:Metaclass xmi:id="_oexEhVBtEeOaTYYfekn7kw" base_Class="TypeExtension"/>
  <Standard:Metaclass xmi:id="_oexEhlBtEeOaTYYfekn7kw" base_Class="ImplementationExtension"/>
  <Standard:Metaclass xmi:id="_oexEh1BtEeOaTYYfekn7kw" base_Class="Realization"/>
  <Standard:Metaclass xmi:id="_oexEiFBtEeOaTYYfekn7kw" base_Class="SubcomponentType"/>
  <Standard:Metaclass xmi:id="_oexEiVBtEeOaTYYfekn7kw" base_Class="Connection"/>
  <Standard:Metaclass xmi:id="_oexEilBtEeOaTYYfekn7kw" base_Class="ConnectionEnd"/>
  <Standard:Metaclass xmi:id="_oexEi1BtEeOaTYYfekn7kw" base_Class="Context"/>
  <Standard:Metaclass xmi:id="_oexEjFBtEeOaTYYfekn7kw" base_Class="ConnectedElement"/>
  <Standard:Metaclass xmi:id="_oexEjVBtEeOaTYYfekn7kw" base_Class="ElementName"/>
  <Standard:Metaclass xmi:id="_oexEjlBtEeOaTYYfekn7kw" base_Class="AbstractConnectionEnd"/>
  <Standard:Metaclass xmi:id="_oexEj1BtEeOaTYYfekn7kw" base_Class="AnnexLibrary"/>
  <Standard:Metaclass xmi:id="_oexEkFBtEeOaTYYfekn7kw" base_Class="AnnexSubclause"/>
  <Standard:Metaclass xmi:id="_oexEkVBtEeOaTYYfekn7kw" base_Class="DefaultAnnexLibrary"/>
  <Standard:Metaclass xmi:id="_oexEklBtEeOaTYYfekn7kw" base_Class="DefaultAnnexSubclause"/>
  <Standard:Metaclass xmi:id="_oexEk1BtEeOaTYYfekn7kw" base_Class="GroupExtension"/>
  <Standard:Metaclass xmi:id="_oexElFBtEeOaTYYfekn7kw" base_Class="AbstractFeature"/>
  <Standard:Metaclass xmi:id="_oexElVBtEeOaTYYfekn7kw" base_Class="DirectedFeature"/>
  <Standard:Metaclass xmi:id="_oe61gFBtEeOaTYYfekn7kw" base_Class="FeatureType"/>
  <Standard:Metaclass xmi:id="_oe61gVBtEeOaTYYfekn7kw" base_Class="FeatureClassifier"/>
  <Standard:Metaclass xmi:id="_oe61glBtEeOaTYYfekn7kw" base_Class="FlowSpecification"/>
  <Standard:Metaclass xmi:id="_oe61g1BtEeOaTYYfekn7kw" base_Class="FlowImplementation"/>
  <Standard:Metaclass xmi:id="_oe61hFBtEeOaTYYfekn7kw" base_Class="FlowElement"/>
  <Standard:Metaclass xmi:id="_oe61hVBtEeOaTYYfekn7kw" base_Class="EndToEndFlow"/>
  <Standard:Metaclass xmi:id="_oe61hlBtEeOaTYYfekn7kw" base_Class="EndToEndFlowElement"/>
  <Standard:Metaclass xmi:id="_oe61h1BtEeOaTYYfekn7kw" base_Class="FlowFeature"/>
  <Standard:Metaclass xmi:id="_oe61iFBtEeOaTYYfekn7kw" base_Class="FlowEnd"/>
  <Standard:Metaclass xmi:id="_oe61iVBtEeOaTYYfekn7kw" base_Class="FlowSegment"/>
  <Standard:Metaclass xmi:id="_oe61ilBtEeOaTYYfekn7kw" base_Class="EndToEndFlowSegment"/>
  <Standard:Metaclass xmi:id="_oe61i1BtEeOaTYYfekn7kw" base_Class="Flow"/>
  <Standard:Metaclass xmi:id="_oe61jFBtEeOaTYYfekn7kw" base_Class="ModeTransitionTrigger"/>
  <Standard:Metaclass xmi:id="_oe61jVBtEeOaTYYfekn7kw" base_Class="ModeFeature"/>
  <Standard:Metaclass xmi:id="_oe61jlBtEeOaTYYfekn7kw" base_Class="TriggerPort"/>
  <Standard:Metaclass xmi:id="_oe61j1BtEeOaTYYfekn7kw" base_Class="ModeBinding"/>
  <Standard:Metaclass xmi:id="_oe61kFBtEeOaTYYfekn7kw" base_Class="PackageRename"/>
  <Standard:Metaclass xmi:id="_oe61kVBtEeOaTYYfekn7kw" base_Class="ComponentTypeRename"/>
  <Standard:Metaclass xmi:id="_ofD_cFBtEeOaTYYfekn7kw" base_Class="FeatureGroupTypeRename"/>
  <Standard:Metaclass xmi:id="_ofD_cVBtEeOaTYYfekn7kw" base_Class="PrototypeBinding"/>
  <Standard:Metaclass xmi:id="_ofD_clBtEeOaTYYfekn7kw" base_Class="ComponentPrototype"/>
  <Standard:Metaclass xmi:id="_ofD_c1BtEeOaTYYfekn7kw" base_Class="ComponentPrototypeBinding"/>
  <Standard:Metaclass xmi:id="_ofD_dFBtEeOaTYYfekn7kw" base_Class="FeatureGroupPrototype"/>
  <Standard:Metaclass xmi:id="_ofD_dVBtEeOaTYYfekn7kw" base_Class="FeatureGroupPrototypeBinding"/>
  <Standard:Metaclass xmi:id="_ofD_dlBtEeOaTYYfekn7kw" base_Class="FeaturePrototype"/>
  <Standard:Metaclass xmi:id="_ofD_d1BtEeOaTYYfekn7kw" base_Class="FeaturePrototypeBinding"/>
  <Standard:Metaclass xmi:id="_ofD_eFBtEeOaTYYfekn7kw" base_Class="FeaturePrototypeActual"/>
  <Standard:Metaclass xmi:id="_ofD_eVBtEeOaTYYfekn7kw" base_Class="AccessSpecification"/>
  <Standard:Metaclass xmi:id="_ofD_elBtEeOaTYYfekn7kw" base_Class="PortSpecification"/>
  <Standard:Metaclass xmi:id="_ofD_e1BtEeOaTYYfekn7kw" base_Class="FeaturePrototypeReference"/>
  <Standard:Metaclass xmi:id="_ofD_fFBtEeOaTYYfekn7kw" base_Class="ComponentPrototypeActual"/>
  <Standard:Metaclass xmi:id="_ofD_fVBtEeOaTYYfekn7kw" base_Class="FeatureGroupPrototypeActual"/>
  <Standard:Metaclass xmi:id="_ofD_flBtEeOaTYYfekn7kw" base_Class="SubprogramCallSequence"/>
  <Standard:Metaclass xmi:id="_ofD_f1BtEeOaTYYfekn7kw" base_Class="CallSpecification"/>
  <Standard:Metaclass xmi:id="_ofD_gFBtEeOaTYYfekn7kw" base_Class="CalledSubprogram"/>
  <Standard:Metaclass xmi:id="_ofNwcFBtEeOaTYYfekn7kw" base_Class="ProcessorCall"/>
  <Standard:Metaclass xmi:id="_ofNwcVBtEeOaTYYfekn7kw" base_Class="SubprogramCall"/>
  <Standard:Metaclass xmi:id="_ofNwclBtEeOaTYYfekn7kw" base_Class="Prototype"/>
  <Standard:Metaclass xmi:id="_ofNwc1BtEeOaTYYfekn7kw" base_Class="Abstract"/>
  <Standard:Metaclass xmi:id="_ofNwdFBtEeOaTYYfekn7kw" base_Class="AbstractType"/>
  <Standard:Metaclass xmi:id="_ofNwdVBtEeOaTYYfekn7kw" base_Class="AbstractClassifier"/>
  <Standard:Metaclass xmi:id="_ofNwdlBtEeOaTYYfekn7kw" base_Class="AbstractSubcomponent"/>
  <Standard:Metaclass xmi:id="_ofNwd1BtEeOaTYYfekn7kw" base_Class="AbstractSubcomponentType"/>
  <Standard:Metaclass xmi:id="_ofNweFBtEeOaTYYfekn7kw" base_Class="AbstractPrototype"/>
  <Standard:Metaclass xmi:id="_ofXhcFBtEeOaTYYfekn7kw" base_Class="Bus"/>
  <Standard:Metaclass xmi:id="_ofXhcVBtEeOaTYYfekn7kw" base_Class="BusClassifier"/>
  <Standard:Metaclass xmi:id="_ofXhclBtEeOaTYYfekn7kw" base_Class="BusSubcomponent"/>
  <Standard:Metaclass xmi:id="_ofXhc1BtEeOaTYYfekn7kw" base_Class="BusType"/>
  <Standard:Metaclass xmi:id="_ofXhdFBtEeOaTYYfekn7kw" base_Class="BusSubcomponentType"/>
  <Standard:Metaclass xmi:id="_ofXhdVBtEeOaTYYfekn7kw" base_Class="BusPrototype"/>
  <Standard:Metaclass xmi:id="_ofXhdlBtEeOaTYYfekn7kw" base_Class="DataSubcomponent"/>
  <Standard:Metaclass xmi:id="_ofXhd1BtEeOaTYYfekn7kw" base_Class="DataClassifier"/>
  <Standard:Metaclass xmi:id="_ofXheFBtEeOaTYYfekn7kw" base_Class="Data"/>
  <Standard:Metaclass xmi:id="_ofXheVBtEeOaTYYfekn7kw" base_Class="DataType"/>
  <Standard:Metaclass xmi:id="_ofXhelBtEeOaTYYfekn7kw" base_Class="DataSubcomponentType"/>
  <Standard:Metaclass xmi:id="_ofXhe1BtEeOaTYYfekn7kw" base_Class="DataPrototype"/>
  <Standard:Metaclass xmi:id="_ofXhfFBtEeOaTYYfekn7kw" base_Class="Device"/>
  <Standard:Metaclass xmi:id="_ofXhfVBtEeOaTYYfekn7kw" base_Class="DeviceClassifier"/>
  <Standard:Metaclass xmi:id="_ofXhflBtEeOaTYYfekn7kw" base_Class="DeviceSubcomponent"/>
  <Standard:Metaclass xmi:id="_ofXhf1BtEeOaTYYfekn7kw" base_Class="DeviceType"/>
  <Standard:Metaclass xmi:id="_ofgrYFBtEeOaTYYfekn7kw" base_Class="DeviceSubcomponentType"/>
  <Standard:Metaclass xmi:id="_ofgrYVBtEeOaTYYfekn7kw" base_Class="DevicePrototype"/>
  <Standard:Metaclass xmi:id="_ofgrYlBtEeOaTYYfekn7kw" base_Class="Memory"/>
  <Standard:Metaclass xmi:id="_ofgrY1BtEeOaTYYfekn7kw" base_Class="MemoryClassifier"/>
  <Standard:Metaclass xmi:id="_ofgrZFBtEeOaTYYfekn7kw" base_Class="MemoryType"/>
  <Standard:Metaclass xmi:id="_ofgrZVBtEeOaTYYfekn7kw" base_Class="MemorySubcomponent"/>
  <Standard:Metaclass xmi:id="_ofgrZlBtEeOaTYYfekn7kw" base_Class="MemoryPrototype"/>
  <Standard:Metaclass xmi:id="_ofgrZ1BtEeOaTYYfekn7kw" base_Class="MemorySubcomponentType"/>
  <Standard:Metaclass xmi:id="_ofgraFBtEeOaTYYfekn7kw" base_Class="Subprogram"/>
  <Standard:Metaclass xmi:id="_ofgraVBtEeOaTYYfekn7kw" base_Class="SubprogramClassifier"/>
  <Standard:Metaclass xmi:id="_ofgralBtEeOaTYYfekn7kw" base_Class="SubprogramSubcomponent"/>
  <Standard:Metaclass xmi:id="_ofgra1BtEeOaTYYfekn7kw" base_Class="SubprogramSubcomponentType"/>
  <Standard:Metaclass xmi:id="_ofgrbFBtEeOaTYYfekn7kw" base_Class="SubprogramPrototype"/>
  <Standard:Metaclass xmi:id="_ofqcYFBtEeOaTYYfekn7kw" base_Class="SubprogramGroup"/>
  <Standard:Metaclass xmi:id="_ofqcYVBtEeOaTYYfekn7kw" base_Class="SubprogramGroupClassifier"/>
  <Standard:Metaclass xmi:id="_ofqcYlBtEeOaTYYfekn7kw" base_Class="SubprogramGroupType"/>
  <Standard:Metaclass xmi:id="_ofqcY1BtEeOaTYYfekn7kw" base_Class="SubprogramGroupSubcomponent"/>
  <Standard:Metaclass xmi:id="_ofqcZFBtEeOaTYYfekn7kw" base_Class="SubprogramGroupSubcomponentType"/>
  <Standard:Metaclass xmi:id="_ofqcZVBtEeOaTYYfekn7kw" base_Class="SubprogramGroupPrototype"/>
  <Standard:Metaclass xmi:id="_ofqcZlBtEeOaTYYfekn7kw" base_Class="System"/>
  <Standard:Metaclass xmi:id="_ofqcZ1BtEeOaTYYfekn7kw" base_Class="SystemClassifier"/>
  <Standard:Metaclass xmi:id="_ofqcaFBtEeOaTYYfekn7kw" base_Class="SystemType"/>
  <Standard:Metaclass xmi:id="_ofqcaVBtEeOaTYYfekn7kw" base_Class="SystemSubcomponent"/>
  <Standard:Metaclass xmi:id="_ofzmUFBtEeOaTYYfekn7kw" base_Class="SystemSubcomponentType"/>
  <Standard:Metaclass xmi:id="_ofzmUVBtEeOaTYYfekn7kw" base_Class="SystemPrototype"/>
  <Standard:Metaclass xmi:id="_ofzmUlBtEeOaTYYfekn7kw" base_Class="Processor"/>
  <Standard:Metaclass xmi:id="_ofzmU1BtEeOaTYYfekn7kw" base_Class="ProcessorClassifier"/>
  <Standard:Metaclass xmi:id="_ofzmVFBtEeOaTYYfekn7kw" base_Class="ProcessorType"/>
  <Standard:Metaclass xmi:id="_ofzmVVBtEeOaTYYfekn7kw" base_Class="ProcessorSubcomponent"/>
  <Standard:Metaclass xmi:id="_ofzmVlBtEeOaTYYfekn7kw" base_Class="ProcessorSubcomponentType"/>
  <Standard:Metaclass xmi:id="_ofzmV1BtEeOaTYYfekn7kw" base_Class="ProcessorPrototype"/>
  <Standard:Metaclass xmi:id="_ofzmWFBtEeOaTYYfekn7kw" base_Class="Process"/>
  <Standard:Metaclass xmi:id="_ofzmWVBtEeOaTYYfekn7kw" base_Class="ProcessClassifier"/>
  <Standard:Metaclass xmi:id="_ofzmWlBtEeOaTYYfekn7kw" base_Class="ProcessType"/>
  <Standard:Metaclass xmi:id="_of9XUFBtEeOaTYYfekn7kw" base_Class="ProcessSubcomponent"/>
  <Standard:Metaclass xmi:id="_of9XUVBtEeOaTYYfekn7kw" base_Class="ProcessSubcomponentType"/>
  <Standard:Metaclass xmi:id="_of9XUlBtEeOaTYYfekn7kw" base_Class="ProcessPrototype"/>
  <Standard:Metaclass xmi:id="_of9XU1BtEeOaTYYfekn7kw" base_Class="Thread"/>
  <Standard:Metaclass xmi:id="_of9XVFBtEeOaTYYfekn7kw" base_Class="ThreadClassifier"/>
  <Standard:Metaclass xmi:id="_of9XVVBtEeOaTYYfekn7kw" base_Class="ThreadType"/>
  <Standard:Metaclass xmi:id="_of9XVlBtEeOaTYYfekn7kw" base_Class="ThreadSubcomponent"/>
  <Standard:Metaclass xmi:id="_ogHIUFBtEeOaTYYfekn7kw" base_Class="ThreadSubcomponentType"/>
  <Standard:Metaclass xmi:id="_ogHIUVBtEeOaTYYfekn7kw" base_Class="ThreadPrototype"/>
  <Standard:Metaclass xmi:id="_ogHIUlBtEeOaTYYfekn7kw" base_Class="ThreadGroup"/>
  <Standard:Metaclass xmi:id="_ogHIU1BtEeOaTYYfekn7kw" base_Class="ThreadGroupClassifier"/>
  <Standard:Metaclass xmi:id="_ogHIVFBtEeOaTYYfekn7kw" base_Class="ThreadGroupType"/>
  <Standard:Metaclass xmi:id="_ogHIVVBtEeOaTYYfekn7kw" base_Class="ThreadGroupSubcomponent"/>
  <Standard:Metaclass xmi:id="_ogHIVlBtEeOaTYYfekn7kw" base_Class="ThreadGroupSubcomponentType"/>
  <Standard:Metaclass xmi:id="_ogHIV1BtEeOaTYYfekn7kw" base_Class="ThreadGroupPrototype"/>
  <Standard:Metaclass xmi:id="_ogHIWFBtEeOaTYYfekn7kw" base_Class="VirtualBus"/>
  <Standard:Metaclass xmi:id="_ogHIWVBtEeOaTYYfekn7kw" base_Class="VirtualBusClassifier"/>
  <Standard:Metaclass xmi:id="_ogHIWlBtEeOaTYYfekn7kw" base_Class="VirtualBusType"/>
  <Standard:Metaclass xmi:id="_ogQSQFBtEeOaTYYfekn7kw" base_Class="VirtualBusSubcomponent"/>
  <Standard:Metaclass xmi:id="_ogQSQVBtEeOaTYYfekn7kw" base_Class="VirtualBusPrototype"/>
  <Standard:Metaclass xmi:id="_ogQSQlBtEeOaTYYfekn7kw" base_Class="VitualBusSubcomponentType"/>
  <Standard:Metaclass xmi:id="_ogQSQ1BtEeOaTYYfekn7kw" base_Class="VirtualProcessor"/>
  <Standard:Metaclass xmi:id="_ogQSRFBtEeOaTYYfekn7kw" base_Class="VirtualProcessorClassifier"/>
  <Standard:Metaclass xmi:id="_ogQSRVBtEeOaTYYfekn7kw" base_Class="VirtualProcessorSubcomponent"/>
  <Standard:Metaclass xmi:id="_ogQSRlBtEeOaTYYfekn7kw" base_Class="VirtualProcessorType"/>
  <Standard:Metaclass xmi:id="_ogQSR1BtEeOaTYYfekn7kw" base_Class="VirtualProcessorSubcomponentType"/>
  <Standard:Metaclass xmi:id="_ogQSSFBtEeOaTYYfekn7kw" base_Class="VirtualProcessorPrototype"/>
  <Standard:Metaclass xmi:id="_ogQSSVBtEeOaTYYfekn7kw" base_Class="AccessConnection"/>
  <Standard:Metaclass xmi:id="_ogQSSlBtEeOaTYYfekn7kw" base_Class="ParameterConnection"/>
  <Standard:Metaclass xmi:id="_ogQSS1BtEeOaTYYfekn7kw" base_Class="PortConnection"/>
  <Standard:Metaclass xmi:id="_ogQSTFBtEeOaTYYfekn7kw" base_Class="AccessConnectionEnd"/>
  <Standard:Metaclass xmi:id="_ogaDQFBtEeOaTYYfekn7kw" base_Class="ParameterConnectionEnd"/>
  <Standard:Metaclass xmi:id="_ogaDQVBtEeOaTYYfekn7kw" base_Class="PortConnectionEnd"/>
  <Standard:Metaclass xmi:id="_ogaDQlBtEeOaTYYfekn7kw" base_Class="FeatureGroupConnection"/>
  <Standard:Metaclass xmi:id="_ogaDQ1BtEeOaTYYfekn7kw" base_Class="FeatureGroupConnectionEnd"/>
  <Standard:Metaclass xmi:id="_ogaDRFBtEeOaTYYfekn7kw" base_Class="FeatureConnection"/>
  <Standard:Metaclass xmi:id="_ogaDRVBtEeOaTYYfekn7kw" base_Class="FeatureConnectionEnd"/>
  <Standard:Metaclass xmi:id="_ogaDRlBtEeOaTYYfekn7kw" base_Class="DataAccess"/>
  <Standard:Metaclass xmi:id="_ogaDR1BtEeOaTYYfekn7kw" base_Class="BusAccess"/>
  <Standard:Metaclass xmi:id="_ogaDSFBtEeOaTYYfekn7kw" base_Class="SubprogramAccess"/>
  <Standard:Metaclass xmi:id="_ogaDSVBtEeOaTYYfekn7kw" base_Class="DataPort"/>
  <Standard:Metaclass xmi:id="_ogaDSlBtEeOaTYYfekn7kw" base_Class="EventPort"/>
  <Standard:Metaclass xmi:id="_ogaDS1BtEeOaTYYfekn7kw" base_Class="EventDataPort"/>
  <Standard:Metaclass xmi:id="_ogaDTFBtEeOaTYYfekn7kw" base_Class="Parameter"/>
  <Standard:Metaclass xmi:id="_ogaDTVBtEeOaTYYfekn7kw" base_Class="SubprogramGroupAccess"/>
  <Standard:Metaclass xmi:id="_ogs-MFBtEeOaTYYfekn7kw" base_Class="PropertyAssociation"/>
  <Standard:Metaclass xmi:id="_og2vMFBtEeOaTYYfekn7kw" base_Class="BasicPropertyAssociation"/>
  <Standard:Metaclass xmi:id="_og2vMVBtEeOaTYYfekn7kw" base_Class="ArrayRange"/>
  <Standard:Metaclass xmi:id="_og2vMlBtEeOaTYYfekn7kw" base_Class="ContainedNamedElement"/>
  <Standard:Metaclass xmi:id="_og2vM1BtEeOaTYYfekn7kw" base_Class="ContainmentPathElement"/>
  <Standard:Metaclass xmi:id="_og_5IFBtEeOaTYYfekn7kw" base_Class="ModalPropertyValue"/>
  <Standard:Metaclass xmi:id="_og_5IVBtEeOaTYYfekn7kw" base_Class="PropertyConstant"/>
  <Standard:Metaclass xmi:id="_og_5IlBtEeOaTYYfekn7kw" base_Class="PropertyOwner"/>
  <Standard:Metaclass xmi:id="_ohJqIFBtEeOaTYYfekn7kw" base_Class="BasicProperty"/>
  <Standard:Metaclass xmi:id="_ohJqIVBtEeOaTYYfekn7kw" base_Class="PropertyExpression"/>
  <Standard:Metaclass xmi:id="_ohJqIlBtEeOaTYYfekn7kw" base_Class="StringLiteral"/>
  <Standard:Metaclass xmi:id="_ohJqI1BtEeOaTYYfekn7kw" base_Class="NumberValue"/>
  <Standard:Metaclass xmi:id="_ohJqJFBtEeOaTYYfekn7kw" base_Class="ClassifierValue"/>
  <Standard:Metaclass xmi:id="_ohJqJVBtEeOaTYYfekn7kw" base_Class="ReferenceValue"/>
  <Standard:Metaclass xmi:id="_ohJqJlBtEeOaTYYfekn7kw" base_Class="BooleanLiteral"/>
  <Standard:Metaclass xmi:id="_ohJqJ1BtEeOaTYYfekn7kw" base_Class="RangeValue"/>
  <Standard:Metaclass xmi:id="_ohJqKFBtEeOaTYYfekn7kw" base_Class="IntegerLiteral"/>
  <Standard:Metaclass xmi:id="_ohJqKVBtEeOaTYYfekn7kw" base_Class="RealLiteral"/>
  <Standard:Metaclass xmi:id="_ohJqKlBtEeOaTYYfekn7kw" base_Class="PropertyValue"/>
  <Standard:Metaclass xmi:id="_ohJqK1BtEeOaTYYfekn7kw" base_Class="Operation"/>
  <Standard:Metaclass xmi:id="_ohS0EFBtEeOaTYYfekn7kw" base_Class="RecordValue"/>
  <Standard:Metaclass xmi:id="_ohS0EVBtEeOaTYYfekn7kw" base_Class="ComputedValue"/>
  <Standard:Metaclass xmi:id="_ohS0ElBtEeOaTYYfekn7kw" base_Class="ListValue"/>
  <Standard:Metaclass xmi:id="_ohS0E1BtEeOaTYYfekn7kw" base_Class="AbstractNamedValue"/>
  <Standard:Metaclass xmi:id="_ohS0FFBtEeOaTYYfekn7kw" base_Class="NamedValue"/>
  <Standard:Metaclass xmi:id="_ohS0FVBtEeOaTYYfekn7kw" base_Class="PropertySet"/>
  <Standard:Metaclass xmi:id="_ohS0FlBtEeOaTYYfekn7kw" base_Class="ModelUnit"/>
  <Standard:Metaclass xmi:id="_ohclEFBtEeOaTYYfekn7kw" base_Class="NonListType"/>
  <Standard:Metaclass xmi:id="_ohclEVBtEeOaTYYfekn7kw" base_Class="AadlBoolean"/>
  <Standard:Metaclass xmi:id="_ohclElBtEeOaTYYfekn7kw" base_Class="AadlString"/>
  <Standard:Metaclass xmi:id="_ohclE1BtEeOaTYYfekn7kw" base_Class="AadlInteger"/>
  <Standard:Metaclass xmi:id="_ohclFFBtEeOaTYYfekn7kw" base_Class="AadlReal"/>
  <Standard:Metaclass xmi:id="_ohclFVBtEeOaTYYfekn7kw" base_Class="EnumerationType"/>
  <Standard:Metaclass xmi:id="_ohclFlBtEeOaTYYfekn7kw" base_Class="EnumerationLiteral"/>
  <Standard:Metaclass xmi:id="_ohclF1BtEeOaTYYfekn7kw" base_Class="ClassifierType"/>
  <Standard:Metaclass xmi:id="_ohclGFBtEeOaTYYfekn7kw" base_Class="MetaclassReference"/>
  <Standard:Metaclass xmi:id="_ohclGVBtEeOaTYYfekn7kw" base_Class="NumberType"/>
  <Standard:Metaclass xmi:id="_ohclGlBtEeOaTYYfekn7kw" base_Class="NumericRange"/>
  <Standard:Metaclass xmi:id="_ohclG1BtEeOaTYYfekn7kw" base_Class="RangeType"/>
  <Standard:Metaclass xmi:id="_ohclHFBtEeOaTYYfekn7kw" base_Class="RecordType"/>
  <Standard:Metaclass xmi:id="_ohclHVBtEeOaTYYfekn7kw" base_Class="RecordField"/>
  <Standard:Metaclass xmi:id="_ohmWEFBtEeOaTYYfekn7kw" base_Class="ReferenceType"/>
  <Standard:Metaclass xmi:id="_ohmWEVBtEeOaTYYfekn7kw" base_Class="UnitsType"/>
  <Standard:Metaclass xmi:id="_ohmWElBtEeOaTYYfekn7kw" base_Class="UnitLiteral"/>
  <Standard:Metaclass xmi:id="_ohmWE1BtEeOaTYYfekn7kw" base_Class="ListType"/>
  <Standard:Metaclass xmi:id="_ohmWFFBtEeOaTYYfekn7kw" base_Class="PropertyType"/>
  <Standard:Metaclass xmi:id="_ohmWFVBtEeOaTYYfekn7kw" base_Class="ProcessorPort"/>
  <Standard:Metaclass xmi:id="_ohmWFlBtEeOaTYYfekn7kw" base_Class="InternalEvent"/>
  <Standard:Metaclass xmi:id="_ohmWF1BtEeOaTYYfekn7kw" base_Class="ProcessorSubprogram"/>
  <Standard:Metaclass xmi:id="_ohmWGFBtEeOaTYYfekn7kw" base_Class="ArraySize"/>
  <Standard:Metaclass xmi:id="_ohmWGVBtEeOaTYYfekn7kw" base_Class="ArraySizeProperty"/>
</xmi:XMI>
