| <?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
component is defined in terms of its set of ports and has references to its realizations.
The Component stereotype is defined as “required,” which means that every instance of the Component metaclass must
be associated with an instance of the Component stereotype.
Note: Definition. Component (from UML2.0::Components): A component represents a modular part of a system that
encapsulates its contents and whose manifestation is replaceable within its environment. A component defines its
behavior in terms of provided and required interfaces. As such, a component serves as a type, whose conformance is
defined by these provided and required interfaces (encompassing both their static as well as dynamic semantics). One
component may therefore be substituted by another only if the two are type conformant. Larger pieces of a system's
functionality may be assembled by reusing components as parts in an encompassing component or assembly of
components, and wiring together their required and provided interfaces. A component is modeled throughout the
development life cycle and successively refined into deployment and run-time. A component may be manifest by one or
more artifacts, and in turn, that artifact may be deployed to its execution environment. A deployment specification may
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
instantiated. This allows the definition of configuration properties in a package regardless of which implementation is
chosen. ownedPort is a renaming of the ownedPort association of Component (inherited from
UML2.0::CompositeStructures::Ports::EncapsulatedClassifier).

Note: Definition. Component (from UML2.0::Components): A component represents a modular part of a system that
encapsulates its contents and whose manifestation is replaceable within its environment. A component defines its
behavior in terms of provided and required interfaces. As such, a component serves as a type, whose conformance is
defined by these provided and required interfaces (encompassing both their static as well as dynamic semantics). One
component may therefore be substituted by another only if the two are type conformant. Larger pieces of a system's
functionality may be assembled by reusing components as parts in an encompassing component or assembly of
components, and wiring together their required and provided interfaces. A component is modeled throughout the
development life cycle and successively refined into deployment and run-time. A component may be manifest by one or
more artifacts, and in turn, that artifact may be deployed to its execution environment. A deployment specification may
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
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
component once instantiated. This allows the definition of configuration properties in a package regardless of which
implementation is chosen. configProperty is a subset of the ownedAttribute association of Component (inherited from
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).
The Port stereotype is defined as “required,” which means that every instance of the Port metaclass must be associated
with an instance of the Port stereotype.

Note: Restriction. In UML 2.0, a Port can be associated with both required and provided interfaces. In this specification,
a Port is restricted to be associated with either required interfaces (user Port) or provided interfaces (provider Port). An
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
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
ComponentImplementation is an abstract class that contains the attributes and associations that are common to the
different types of component implementations (MonolithicImplementation and ComponentAssembly).
A ComponentImplementation describes a specific implementation of a component interface. This implementation can be
either assembly based or monolithic. The ComponentImplementation may contain configuration properties that are used
to configure each component instance (“default values”). Implementations may be tagged with user-defined capabilities.
Administrators can then select among implementations using selection requirements; Assemblers can place requirements
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
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
UML2.0::CompositeStructures::InternalStructures). A Property has a name and a typed value. It is used to carry named
and typed values in various places. In the context of D&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
the fact that a UML 2.0 Component is a specialization of UML2.0::StructuredClass::Class ), the concept of component
assembly is not explicitly defined in UML 2.0. The ComponentAssembly stereotype specializes the UML 2.0 Class
metaclass from StructuredClasses (UML2.0::CompositeStructures::StructuredClasses). It is a subclass of the
ComponentImplementation stereotype.
A ComponentAssembly is a classifier whose behavior is fully described by the collaboration of a set of components. A
ComponentAssembly is defined in terms of a set of components (subcomponents) and the set of connections that connect
components.
A ComponentAssembly is defined as an implementation of a Component.
A ComponentAssembly also has a two derived attributes: ports, that contains the set of external ports of the assembly
implements, and properties, that contains the set of properties of the assembly. These two attributes are derived from the
component the assembly implements. The ports and properties of the implemented component must be allocated to ports
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
subset of the “role” association owned by the StructuredClassifier
(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
instances. Describes the set of PropertyConnectors owned by the ComponentAssembly. This association is a subset of
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
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
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
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
UML2.0::Components::BasicComponents). A PropertyConnector connects properties of a ComponentAssembly to
properties of sub-Components.

Constraints:
• One of the connected Properties must be a Property of the ComponentAssembly.
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
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
UML2.0::Components::BasicComponents). A PortConnector connects a set of compatible ports.

Constraints:
• A PortConnector connects two or more ConnectableElements, which are either of type Port or ExternalReference.
• Also, at least one of the ConnectableElements must be of type Port.

Note: Definition. Connector (from UML2.0::Components::BasicComponents): The connector concept is extended in the
Components package to include interface based constraints and notation. A delegation connector is a connector that links
the external contract of a component (as specified by its ports) to the internal realization of that behavior by the
component’s parts. It represents the forwarding of signals (operation requests and events) : a signal that arrives at a port
that has a delegation connector to a part or to another port will be passed on to that target for handling. An assembly
connector is a connector between two components that defines that one component provides the services that another
component requires. An assembly connector is a connector that is defined from a required interface or port to a provided
interface or port.

Note: One of the issues in the D&C is that a single connector can at the same time connect ports of peer components in
an assembly and ports of internal components to external ports, i.e., delegation ports. So according to the UML 2.0 spec,
we have connectors that have both a delegation connector capability and an assembly connector capability. The D&C
concept of PortConnector is based on the ECAD (circuit design, netlist) model. It fully expresses the idea that a set of
ports can be connected together just like a "signal" (say "the reset signal") can be connected to many "pins" of the
components (chips) of a circuit. This allows the expression of connections that are point to point (one provider and one
user) as well as those with multiple users (like many clients for one server, many event producers for one consumer),
multiple providers (like a multicast channel), or multiple of both (like a multicast event channel with multiple listeners).
Also, in network systems, you want to talk about a flow that represents the traffic between a set of users and providers so
you can plan, manage, and configure it as a whole. If the only means of expression is point to point connections, there is
no way to talk about the aggregate "connection." This "richness" has been used in network, circuit, and chip design
systems for decades.
A PortConnector connects two or more ConnectableElements, which are either of type Port or ExternalReference.
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
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
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
UML2.0::CompositeStructures::InternalStructures). It identifies a location outside the assembly as an endpoint of a
PortConnector. Whether the endpoint is a provider or user port is implied by the URL, and its type is assumed to be
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
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
a subclass of the ComponentImplementation stereotype. A MonolithicImplementation is a class that contains the
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
Domain is defined as a set of Nodes, CommunicationPaths, and SharedResources. In a Domain, Nodes are connected
using CommunicationPaths. It represents the entire target environment.

Constraints:
• The top-level elements in a domain all have name attributes. These names must be unique within the domain.
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
UML2.0::Deployments::Nodes). A CommunicationPath connects two or more Nodes (as opposed to only two nodes for
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
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
establishes connection between a set of Nodes and Bridges.
An Interconnect provides a shared direct connection between one or more nodes. It can have resources, but no shared
resources. Resources are matched against a connection's requirements at deployment time.
An Interconnect that is attached to only a single node can be used to describe the loopback connection. A loopback
connection is implicit; components can always be interconnected locally. Sometimes, it may be useful or necessary to
describe the type(s) of available loopback connections (e.g., “shared memory”), or their resources or capabilities (e.g.,
latency).

Constraints:
• The name must be unique within the domain
All ends of an Interconnect are typed by either Node or Bridge
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
a special type of association that connects two or more interconnects.
A Bridge exists between Interconnects to describe an indirect communication path between nodes. If a connection is to be
deployed between components that are instantiated on nodes that are not directly connected, therefore requiring bridging,
the connection's requirements must be satisfied by the resources of each interconnect and bridge in between.

Constraints:
The name must be unique within the domain.
All ends of a Bridge are typed by Interconnects
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).
Resources represent features within the target environment. They are matched against implementation requirements at
deployment planning time.

Constraints
• The name of a Resource must be unique within the container.
• A Resource is exclusively owned by either a Node, an Interconnect, or a bridge.
The name of a Resource must be unique within the container.
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).
Nodes are connected to zero or more CommunicationPaths that enable components that are instantiated on this node to
communicate with components on other nodes. Nodes may own resources and may have access to shared resources that
are shared between nodes.

Constraints:
• The name of the Node must be unique within the Domain (see above).
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
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
the Resource stereotype.
Shared resources are resources that are shared between nodes. They are semantically equivalent to “normal” resources;
however, the planner must make sure that a shared resource is not exhausted by using it from multiple nodes in parallel.

Constraints:
• The name of the SharedResource must be unique within the domain.
• A SharedResource is a type of Resource that can only be associated with Nodes.
A SharedRsource can only be associated with Nodes, not Interconnect
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> |