blob: 7f83cf5e4b533abb3ae2e7ce880f2e2a63c67ebe [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="UMLProfileForDC" nsURI="http:///UMLProfileForDC.ecore" nsPrefix="UMLProfileForDC">
<eSubpackages name="components" nsURI="http://www.omg.org/spec/DEPL/4.0/profile/components/1.0"
nsPrefix="UMLProfileForDC.Components">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
<details key="invocationDelegates" value="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot"/>
<details key="settingDelegates" value="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot"/>
</eAnnotations>
<eClassifiers xsi:type="ecore:EClass" name="Component">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The Component metaclass extends the UML Component metaclass (from UML2.0::Components). In UML 2.0, a&#xD;&#xA;component is defined in terms of its set of ports and has references to its realizations.&#xD;&#xA;The Component stereotype is defined as “required,” which means that every instance of the Component metaclass must&#xD;&#xA;be associated with an instance of the Component stereotype.&#xD;&#xA;Note: Definition. Component (from UML2.0::Components): A component represents a modular part of a system that&#xD;&#xA;encapsulates its contents and whose manifestation is replaceable within its environment. A component defines its&#xD;&#xA;behavior in terms of provided and required interfaces. As such, a component serves as a type, whose conformance is&#xD;&#xA;defined by these provided and required interfaces (encompassing both their static as well as dynamic semantics). One&#xD;&#xA;component may therefore be substituted by another only if the two are type conformant. Larger pieces of a system's&#xD;&#xA;functionality may be assembled by reusing components as parts in an encompassing component or assembly of&#xD;&#xA;components, and wiring together their required and provided interfaces. A component is modeled throughout the&#xD;&#xA;development life cycle and successively refined into deployment and run-time. A component may be manifest by one or&#xD;&#xA;more artifacts, and in turn, that artifact may be deployed to its execution environment. A deployment specification may&#xD;&#xA;define values that parameterize the component’s execution."/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="base_Component" ordered="false"
lowerBound="1" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Component"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="ownedPort" ordered="false"
upperBound="-1" eType="#//components/Port" containment="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Contains the set of ports of the component.These configuration properties are used to configure the component once&#xD;&#xA;instantiated. This allows the definition of configuration properties in a package regardless of which implementation is&#xD;&#xA;chosen. ownedPort is a renaming of the ownedPort association of Component (inherited from&#xD;&#xA;UML2.0::CompositeStructures::Ports::EncapsulatedClassifier).&#xD;&#xA;&#xD;&#xA;Note: Definition. Component (from UML2.0::Components): A component represents a modular part of a system that&#xD;&#xA;encapsulates its contents and whose manifestation is replaceable within its environment. A component defines its&#xD;&#xA;behavior in terms of provided and required interfaces. As such, a component serves as a type, whose conformance is&#xD;&#xA;defined by these provided and required interfaces (encompassing both their static as well as dynamic semantics). One&#xD;&#xA;component may therefore be substituted by another only if the two are type conformant. Larger pieces of a system's&#xD;&#xA;functionality may be assembled by reusing components as parts in an encompassing component or assembly of&#xD;&#xA;components, and wiring together their required and provided interfaces. A component is modeled throughout the&#xD;&#xA;development life cycle and successively refined into deployment and run-time. A component may be manifest by one or&#xD;&#xA;more artifacts, and in turn, that artifact may be deployed to its execution environment. A deployment specification may&#xD;&#xA;define values that parameterize the component’s execution."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="label" ordered="false"
lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//String">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="An optional human-readable label for the component."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="UUID" ordered="false"
lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//String">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="An optional unique identifier for this component."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="implementation" ordered="false"
upperBound="-1" eType="#//components/ComponentImplementation">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="References the Classifiers of which the Component is an abstraction, i.e., that realize its behavior. This association&#xD;&#xA;renames the “realization” association owned by Component (from UML2.0::Components::Component)."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="configProperty" ordered="false"
upperBound="-1" eType="#//components/Property" containment="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Contains the set of configurable properties of the component. These configuration properties are used to configure the&#xD;&#xA;component once instantiated. This allows the definition of configuration properties in a package regardless of which&#xD;&#xA;implementation is chosen. configProperty is a subset of the ownedAttribute association of Component (inherited from&#xD;&#xA;UML2.0::CompositeStructures::InternalStructures::StructuredClassifier)."/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Port">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The Port stereotype is an extension of the UML 2.0 Port metaclass (from UML2.0::CompositeStructure::Ports).&#xD;&#xA;The Port stereotype is defined as “required,” which means that every instance of the Port metaclass must be associated&#xD;&#xA;with an instance of the Port stereotype.&#xD;&#xA;&#xD;&#xA;Note: Restriction. In UML 2.0, a Port can be associated with both required and provided interfaces. In this specification,&#xD;&#xA;a Port is restricted to be associated with either required interfaces (user Port) or provided interfaces (provider Port). An&#xD;&#xA;OCL constraint could be added to formally express this restriction."/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="base_Port" ordered="false"
lowerBound="1" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Port"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="name" ordered="false"
lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//String">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The name of the port."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="UUID" ordered="false"
lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//String">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The primary type of the port."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="supportedType" upperBound="-1"
eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//String">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="All types supported by this port, including the primary and inherited types. All of the types listed in this attribute are&#xD;&#xA;acceptable for a connection."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="provider" ordered="false"
lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//Boolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Identifies whether the port acts in the role of provider or user, for any connection attached to it."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="exclusiveProvider" ordered="false"
lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//Boolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="If set to true, then this port expects that there is at most one provider on the connection that it is an endpoint to."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="exclusiveUser" ordered="false"
lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//Boolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="If set to true, then this port expects that there is at most one user on the connection that it is an endpoint to."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="optional" ordered="false"
lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//Boolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Identifies whether connecting this port is optional or mandatory."/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ComponentImplementation" abstract="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The ComponentImplementation stereotype is an extension of the UML 2.0 Class metaclass (from UML2.0::Kernel). A&#xD;&#xA;ComponentImplementation is an abstract class that contains the attributes and associations that are common to the&#xD;&#xA;different types of component implementations (MonolithicImplementation and ComponentAssembly).&#xD;&#xA;A ComponentImplementation describes a specific implementation of a component interface. This implementation can be&#xD;&#xA;either assembly based or monolithic. The ComponentImplementation may contain configuration properties that are used&#xD;&#xA;to configure each component instance (“default values”). Implementations may be tagged with user-defined capabilities.&#xD;&#xA;Administrators can then select among implementations using selection requirements; Assemblers can place requirements&#xD;&#xA;on implementations."/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="base_Class" ordered="false"
lowerBound="1" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Class"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="capability" upperBound="-1"
eType="#//components/Capability" containment="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Tags that can be used to discriminate between implementations."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="deployRequirement" ordered="false"
lowerBound="1" upperBound="-1" eType="#//components/Requirement">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Requirements that are matched against node resources at deployment time."/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Capability">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Capability is used to describe an implementation’s capabilities, which are matched against selection requirements."/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="name" ordered="false"
lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//String">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="An optional name for the requirement satisfier."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="resourceType" upperBound="-1"
eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//String">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The resource types that can be satisfied by this satisfier."/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Requirement">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Requirements are used to express the fact that an implementation artifact or connection has requirements that must be&#xD;&#xA;fulfilled by resources in the target environment. The resource type must match the type of a resource."/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="resourceType" ordered="false"
lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//String">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Identifies the resource type."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="properties" ordered="false"
lowerBound="1" eType="#//components/Property" containment="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Properties associated with the resource."/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Property">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The Property stereotype is an extension of the UML 2.0 Property metaclass (from&#xD;&#xA;UML2.0::CompositeStructures::InternalStructures). A Property has a name and a typed value. It is used to carry named&#xD;&#xA;and typed values in various places. In the context of D&amp;C, components have configuration properties."/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="base_Property" ordered="false"
lowerBound="1" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Property"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ComponentAssembly" eSuperTypes="#//components/ComponentImplementation">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="In spite of the fact that UML 2.0 allows for the recursive definition of components in terms of subcomponents (based on&#xD;&#xA;the fact that a UML 2.0 Component is a specialization of UML2.0::StructuredClass::Class ), the concept of component&#xD;&#xA;assembly is not explicitly defined in UML 2.0. The ComponentAssembly stereotype specializes the UML 2.0 Class&#xD;&#xA;metaclass from StructuredClasses (UML2.0::CompositeStructures::StructuredClasses). It is a subclass of the&#xD;&#xA;ComponentImplementation stereotype.&#xD;&#xA;A ComponentAssembly is a classifier whose behavior is fully described by the collaboration of a set of components. A&#xD;&#xA;ComponentAssembly is defined in terms of a set of components (subcomponents) and the set of connections that connect&#xD;&#xA;components.&#xD;&#xA;A ComponentAssembly is defined as an implementation of a Component.&#xD;&#xA;A ComponentAssembly also has a two derived attributes: ports, that contains the set of external ports of the assembly&#xD;&#xA;implements, and properties, that contains the set of properties of the assembly. These two attributes are derived from the&#xD;&#xA;component the assembly implements. The ports and properties of the implemented component must be allocated to ports&#xD;&#xA;and properties of sub-components contained in the ComponentAssembly."/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="containedComponent" ordered="false"
lowerBound="1" upperBound="-1" eType="#//components/Component">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Describes the set of Components contained in the ComponentAssembly (i.e., subcomponents). This association is a&#xD;&#xA;subset of the “role” association owned by the StructuredClassifier&#xD;&#xA;(UML2.0::CompositeStructures::InternalStructures::StructuredClassifier)."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="ownedPropertyConnector"
ordered="false" upperBound="-1" eType="#//components/PropertyConnector"
containment="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Maps the external properties of the component that is implemented by the assembly to properties of subcomponent&#xD;&#xA;instances. Describes the set of PropertyConnectors owned by the ComponentAssembly. This association is a subset of&#xD;&#xA;the ownedConnector association owned by UML2.0::CompositeStructures::InternalStructures::StructuredClassifier."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="assemblyProperty" ordered="false"
upperBound="-1" eType="#//components/Property" changeable="false" volatile="true"
transient="true" derived="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Contains the set of properties of the assembly. This association is derived from the Component the assembly&#xD;&#xA;implements."/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="derivation" value="Component.allInstances()->select(c|c.implementation->includes(self)).configProperty->flatten()"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="externalPort" ordered="false"
upperBound="-1" eType="#//components/Port" changeable="false" volatile="true"
transient="true" derived="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Contains the set of external ports of the assembly. This association is derived from the Component the assembly&#xD;&#xA;implements."/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="derivation" value="Component.allInstances()->select(c|c.implementation->includes(self)).ownedPort->flatten()"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="ownedPortConnector" ordered="false"
upperBound="-1" eType="#//components/PortConnector" containment="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Describes the set of PortConnectors owned by the ComponentAssembly. This association is a subset of the&#xD;&#xA;ownedConnector association owned by UML2.0::CompositeStructures::InternalStructures::StructuredClassifier."/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="PropertyConnector">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The PropertyConnector stereotype is an extension of the UML 2.0 Connector metaclass (from&#xD;&#xA;UML2.0::Components::BasicComponents). A PropertyConnector connects properties of a ComponentAssembly to&#xD;&#xA;properties of sub-Components.&#xD;&#xA;&#xD;&#xA;Constraints:&#xD;&#xA;• One of the connected Properties must be a Property of the ComponentAssembly.&#xD;&#xA;One of the connected Properties must be a Property of the ComponentAssembly."/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="base_Connector" ordered="false"
lowerBound="1" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Connector"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="connectedProperty" ordered="false"
lowerBound="2" upperBound="-1" eType="#//components/Property">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The set of Properties connected by the PropertyConnector. This association is a subset of the “end” association owned&#xD;&#xA;by UML2.0::CompositeStructures::InternalStructures::Connector."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="label" ordered="false"
lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//String">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Optionally identifies this connection within its assembly. May be used or generated by visual design tools."/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="PortConnector">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The PortConnector stereotype is an extension of the UML 2.0 Connector metaclass (from&#xD;&#xA;UML2.0::Components::BasicComponents). A PortConnector connects a set of compatible ports.&#xD;&#xA;&#xD;&#xA;Constraints:&#xD;&#xA;• A PortConnector connects two or more ConnectableElements, which are either of type Port or ExternalReference.&#xD;&#xA;• Also, at least one of the ConnectableElements must be of type Port.&#xD;&#xA;&#xD;&#xA;Note: Definition. Connector (from UML2.0::Components::BasicComponents): The connector concept is extended in the&#xD;&#xA;Components package to include interface based constraints and notation. A delegation connector is a connector that links&#xD;&#xA;the external contract of a component (as specified by its ports) to the internal realization of that behavior by the&#xD;&#xA;component’s parts. It represents the forwarding of signals (operation requests and events) : a signal that arrives at a port&#xD;&#xA;that has a delegation connector to a part or to another port will be passed on to that target for handling. An assembly&#xD;&#xA;connector is a connector between two components that defines that one component provides the services that another&#xD;&#xA;component requires. An assembly connector is a connector that is defined from a required interface or port to a provided&#xD;&#xA;interface or port.&#xD;&#xA;&#xD;&#xA;Note: One of the issues in the D&amp;C is that a single connector can at the same time connect ports of peer components in&#xD;&#xA;an assembly and ports of internal components to external ports, i.e., delegation ports. So according to the UML 2.0 spec,&#xD;&#xA;we have connectors that have both a delegation connector capability and an assembly connector capability. The D&amp;C&#xD;&#xA;concept of PortConnector is based on the ECAD (circuit design, netlist) model. It fully expresses the idea that a set of&#xD;&#xA;ports can be connected together just like a &quot;signal&quot; (say &quot;the reset signal&quot;) can be connected to many &quot;pins&quot; of the&#xD;&#xA;components (chips) of a circuit. This allows the expression of connections that are point to point (one provider and one&#xD;&#xA;user) as well as those with multiple users (like many clients for one server, many event producers for one consumer),&#xD;&#xA;multiple providers (like a multicast channel), or multiple of both (like a multicast event channel with multiple listeners).&#xD;&#xA;Also, in network systems, you want to talk about a flow that represents the traffic between a set of users and providers so&#xD;&#xA;you can plan, manage, and configure it as a whole. If the only means of expression is point to point connections, there is&#xD;&#xA;no way to talk about the aggregate &quot;connection.&quot; This &quot;richness&quot; has been used in network, circuit, and chip design&#xD;&#xA;systems for decades.&#xD;&#xA;A PortConnector connects two or more ConnectableElements, which are either of type Port or ExternalReference.&#xD;&#xA;Also, at least one of the ConnectableElements must be of type Port."/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="base_Connector" ordered="false"
lowerBound="1" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Connector"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="connectedPort" ordered="false"
lowerBound="2" upperBound="-1" eType="#//components/Port">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The set of Ports connected by the PortConnector. This association is a subset of the “end” association owned by&#xD;&#xA;UML2.0::CompositeStructures::InternalStructures::Connector."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="label" ordered="false"
lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//String">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Optionally identifies this connection within its assembly. May be used or generated by visual design tools."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="externalReference" ordered="false"
upperBound="-1" eType="#//components/ExternalReference">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The set of ExternalReferences connected by the PortConnector. This association is a subset of the “end” association&#xD;&#xA;owned by UML2.0::CompositeStructures::InternalStructures::Connector."/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ExternalReference">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The ExternalReference stereotype is an extension of the UML 2.0 ConnectableElement metaclass (from&#xD;&#xA;UML2.0::CompositeStructures::InternalStructures). It identifies a location outside the assembly as an endpoint of a&#xD;&#xA;PortConnector. Whether the endpoint is a provider or user port is implied by the URL, and its type is assumed to be&#xD;&#xA;compatible with the connection."/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="base_ConnectableElement"
ordered="false" lowerBound="1" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//ConnectableElement"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="location" ordered="false"
lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//String">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="URL which references a port outside of the assembly that is to be an endpoint of this connection, which is resolved at execution&#xD;&#xA;time."/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="MonolithicImplementation" eSuperTypes="#//components/ComponentImplementation">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The MonolothicImplementation stereotype is an extension of the UML 2.0 Class metaclass (from UML2.0::Kernel). It is&#xD;&#xA;a subclass of the ComponentImplementation stereotype. A MonolithicImplementation is a class that contains the&#xD;&#xA;implementation of a component."/>
</eAnnotations>
</eClassifiers>
</eSubpackages>
<eSubpackages name="target" nsURI="http://www.omg.org/spec/DEPL/4.0/profile/target/1.0"
nsPrefix="UMLProfileForDC.Target">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
<details key="invocationDelegates" value="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot"/>
<details key="settingDelegates" value="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot"/>
</eAnnotations>
<eClassifiers xsi:type="ecore:EClass" name="Domain">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The Domain stereotype extends the UML 2.0 Class metaclass (from UML2.0::CompositeStructures::StructuredClasses). A&#xD;&#xA;Domain is defined as a set of Nodes, CommunicationPaths, and SharedResources. In a Domain, Nodes are connected&#xD;&#xA;using CommunicationPaths. It represents the entire target environment.&#xD;&#xA;&#xD;&#xA;Constraints:&#xD;&#xA;• The top-level elements in a domain all have name attributes. These names must be unique within the domain.&#xD;&#xA;The top-level elements in a domain all have name attributes. These names must be unique within the domain."/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="base_Class" ordered="false"
lowerBound="1" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Class"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="containedCommunicationPath"
ordered="false" upperBound="-1" eType="#//target/CommunicationPath">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="CommunicationPaths that provide connections between nodes."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="containedNode" ordered="false"
lowerBound="1" upperBound="-1" eType="#//target/Node">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Node elements that belong to the domain."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="domainResource" ordered="false"
upperBound="-1" eType="#//target/SharedResource">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Shared resources that belong to the domain."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="label" ordered="false"
lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//String">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="An optional human-readable label for the domain."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="UUID" ordered="false"
lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//String">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="An optional unique identifier for this domain."/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="CommunicationPath">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The CommunicationPath stereotype extends the UML 2.0 CommunicationPath metaclass (from&#xD;&#xA;UML2.0::Deployments::Nodes). A CommunicationPath connects two or more Nodes (as opposed to only two nodes for&#xD;&#xA;UML 2.0 Node). A CommunicationPath may be composed of one or more Interconnects and zero or more Bridges."/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="base_CommunicationPath"
ordered="false" lowerBound="1" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//CommunicationPath"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="interconnect" ordered="false"
lowerBound="1" upperBound="-1" eType="#//target/Interconnect" containment="true"
eOpposite="#//target/Interconnect/communicationPath">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Set of Interconnect contained in the CommunicationPath."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="bridge" ordered="false"
upperBound="-1" eType="#//target/Bridge" containment="true" eOpposite="#//target/Bridge/communicationPath">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Set of Bridges contained in the CommunicationPath."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="connectedNode" ordered="false"
lowerBound="1" upperBound="-1" eType="#//target/Node" volatile="true" transient="true"
derived="true" eOpposite="#//target/Node/communicationPath">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Set of Nodes that uses the sharedResource. This association is derived from the Interconnect::connectedNode&#xD;&#xA;association."/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="derivation" value="self.interconnect.connectedNode->flatten()"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Interconnect">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The Interconnect stereotype extends the UML 2.0 AssociationClass metaclass (from UML2.0::AssociationClasses). It&#xD;&#xA;establishes connection between a set of Nodes and Bridges.&#xD;&#xA;An Interconnect provides a shared direct connection between one or more nodes. It can have resources, but no shared&#xD;&#xA;resources. Resources are matched against a connection's requirements at deployment time.&#xD;&#xA;An Interconnect that is attached to only a single node can be used to describe the loopback connection. A loopback&#xD;&#xA;connection is implicit; components can always be interconnected locally. Sometimes, it may be useful or necessary to&#xD;&#xA;describe the type(s) of available loopback connections (e.g., “shared memory”), or their resources or capabilities (e.g.,&#xD;&#xA;latency).&#xD;&#xA;&#xD;&#xA;Constraints:&#xD;&#xA;• The name must be unique within the domain&#xD;&#xA;All ends of an Interconnect are typed by either Node or Bridge&#xD;&#xA;The name must be unique within the domain"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="base_AssociationClass"
ordered="false" lowerBound="1" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//AssociationClass"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="bridge" ordered="false"
upperBound="-1" eType="#//target/Bridge" eOpposite="#//target/Bridge/interconnect">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The bridges that provide connectivity to other interconnects."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="ownedResource" ordered="false"
upperBound="-1" eType="#//target/Resource" containment="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Set of Resources owned by the Interconnect."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="connectedNode" ordered="false"
lowerBound="1" upperBound="-1" eType="#//target/Node" eOpposite="#//target/Node/nodeConnector">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Set of nodes that the Interconnect is connected to."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="name" ordered="false"
lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//String">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The interconnect’s name."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="label" ordered="false"
lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//String">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="An optional human-readable label for the interconnect."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="communicationPath" ordered="false"
lowerBound="1" eType="#//target/CommunicationPath" eOpposite="#//target/CommunicationPath/interconnect">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Reference the CommunicationPath the Interconnect belongs to."/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Bridge">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The Bridge stereotype extends the UML 2.0 AssociationClass metaclass (from UML2.0::AssociationClasses). A Bridge is&#xD;&#xA;a special type of association that connects two or more interconnects.&#xD;&#xA;A Bridge exists between Interconnects to describe an indirect communication path between nodes. If a connection is to be&#xD;&#xA;deployed between components that are instantiated on nodes that are not directly connected, therefore requiring bridging,&#xD;&#xA;the connection's requirements must be satisfied by the resources of each interconnect and bridge in between.&#xD;&#xA;&#xD;&#xA;Constraints:&#xD;&#xA;The name must be unique within the domain.&#xD;&#xA;All ends of a Bridge are typed by Interconnects&#xD;&#xA;The name must be unique within the domain"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="base_AssociationClass"
ordered="false" lowerBound="1" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//AssociationClass"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="ownedResource" ordered="false"
upperBound="-1" eType="#//target/Resource" containment="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Set of Resources owned by the Bridge."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="name" ordered="false"
lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//String">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The bridge’s name."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="label" ordered="false"
lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//String">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="An optional human-readable label for this bridge."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="communicationPath" ordered="false"
lowerBound="1" eType="#//target/CommunicationPath" eOpposite="#//target/CommunicationPath/bridge">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Reference the CommunicationPath the Interconnect belongs to."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="interconnect" ordered="false"
lowerBound="1" upperBound="-1" eType="#//target/Interconnect" eOpposite="#//target/Interconnect/bridge">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The Interconnects that this Bridge provides connectivity to."/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Resource">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The Resources stereotype extends the UML 2.0 Class metaclass (from UML2.0::Kernel).&#xD;&#xA;Resources represent features within the target environment. They are matched against implementation requirements at&#xD;&#xA;deployment planning time.&#xD;&#xA;&#xD;&#xA;Constraints&#xD;&#xA;• The name of a Resource must be unique within the container.&#xD;&#xA;• A Resource is exclusively owned by either a Node, an Interconnect, or a bridge.&#xD;&#xA;The name of a Resource must be unique within the container.&#xD;&#xA;A Resource is exclusively owned by either a Node, an Interconnect, or a bridge."/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="base_Class" ordered="false"
lowerBound="1" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Class"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="name" ordered="false"
lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//String">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="An optional name for the requirement satisfier."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="resourceType" unique="false"
lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//String">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The resource types that can be satisfied by this resource."/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Node">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The Node stereotype extends the UML 2.0 Node metaclass (from UML2.0::Deployments::Nodes).&#xD;&#xA;Nodes are connected to zero or more CommunicationPaths that enable components that are instantiated on this node to&#xD;&#xA;communicate with components on other nodes. Nodes may own resources and may have access to shared resources that&#xD;&#xA;are shared between nodes.&#xD;&#xA;&#xD;&#xA;Constraints:&#xD;&#xA;• The name of the Node must be unique within the Domain (see above).&#xD;&#xA;The name of the Node must be unique within the Domain."/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="base_Node" ordered="false"
lowerBound="1" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Node"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="availableSharedResource"
ordered="false" upperBound="-1" eType="#//target/SharedResource" eOpposite="#//target/SharedResource/resourceUser">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Set of SharedResources that the Node has access to."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="communicationPath" ordered="false"
upperBound="-1" eType="#//target/CommunicationPath" volatile="true" transient="true"
derived="true" eOpposite="#//target/CommunicationPath/connectedNode">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Set of CommunicationPath to which the node is connected. This association is derived from the&#xD;&#xA;Interconnect::communicationPath association."/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="derivation" value="self.nodeConnector.communicationPath->flatten()"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="name" ordered="false"
lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//String">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The node’s name."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="label" ordered="false"
lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//String">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="An optional human readable label for the node."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="ownedResource" ordered="false"
upperBound="-1" eType="#//target/Resource" containment="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Set of resources owned by the Node."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="nodeConnector" ordered="false"
upperBound="-1" eType="#//target/Interconnect" eOpposite="#//target/Interconnect/connectedNode">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Set of Interconnect to which the node is connected."/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="SharedResource" eSuperTypes="#//target/Resource">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The SharedResources stereotype extends the UML 2.0 Class metaclass (from UML2.0::Kernel). It is a specialization of&#xD;&#xA;the Resource stereotype.&#xD;&#xA;Shared resources are resources that are shared between nodes. They are semantically equivalent to “normal” resources;&#xD;&#xA;however, the planner must make sure that a shared resource is not exhausted by using it from multiple nodes in parallel.&#xD;&#xA;&#xD;&#xA;Constraints:&#xD;&#xA;• The name of the SharedResource must be unique within the domain.&#xD;&#xA;• A SharedResource is a type of Resource that can only be associated with Nodes.&#xD;&#xA;A SharedRsource can only be associated with Nodes, not Interconnect&#xD;&#xA;The name of the SharedResource must be unique within the domain."/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="resourceUser" ordered="false"
upperBound="-1" eType="#//target/Node" eOpposite="#//target/Node/availableSharedResource">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Set of nodes that have access to the SharedResource."/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
</eSubpackages>
</ecore:EPackage>