SoMoX/Development/SAMM to PCM Migration

Aus SDQ-Wiki

Development Notes

ComponentType

  • in SAMM: Super class of PrimitiveComponent and CompositeComponent
  • in PCM: Enumeration type and NOT super class of basic and composite component!

-> be carefull when using automatic organize imports in eclipse!

CompleteComponentType vs. RepositoryComponent vs. ImplementationComponententType

In the Q-Impress deliverable, the mapping table between SAMM and PCM maps a SAMM ComponentType to a PCM CompleteComponentType. This is not valid for SoMoX because a CompleteComponentType is not compatible with an ImplementationComponentType or a BasicComponent. The latter is required to reference ServiceEffectSpecifications (SEFF) later on. One should use either a BasicComponent or a RepositoryComponent, depending on the requirements of the actually migrated code.

Interfaces

When the SAMM metamodel has been created, it was derived from the "simple" palladio interfaces. Meanwhile, the palladio meta model has been enhanced to specify different types of interfaces. At least event and operational interfaces should be treated explicitly.

Mapping

GASTBehaviourRepository -> SEFF2JavaAST

GASTBehaviour -> SEFF2MethodMapping

GASTBehaviourStub -> ServiceEffectSpecification/ResourceDemandingSEFF

GASTBehaviourStub.getName() -> ???


Mapping of SAMM to PCM

SAMM PCM
Behaviour package
Behaviour covered by ServiceEffectSpecification and RD-SEFF
ComponentTypeBehaviour N/A
OperationBehaviour ServiceEffectSpecification, extended as RD-SEFF
Deployment package
Service Allocation Context
Cache N/A
Container ResourceEnvironment
ExecutionResource N/A
HardwareDescriptor ProcessingResourceSpecification
HardwareDescriptorRepository ResourceRepository
Memory N/A
MemoryDescriptor N/A
MemoryResource N/A
NetworkElement N/A
NetworkElementDescriptor N/A
NetworkInterface N/A
NetworkInterfaceDescriptor N/A
NetworkResource CommunicationLinkResourceSpecification (partially)
Node ResourceContainer
PassiveResource PassiveResource (partially)
Processor ProcessingResourceType
ProcessorCore N/A
ProcessorDescriptor N/A
SchedulingPolicy SchedulingPolicy
StorageDevice ProcessingResourceType
StorageDeviceDescriptor ProcessingResourceSpecification
StorageResource N/A
TargetEnvironment ResourceEnvironment
TLB N/A
Static package
CollectionDataType CollectionDataType
ComplexDataType CompositeDataType
ComponentEndpoint No class exists for this (not necessary as only strongly distinguished connectors (assembly/deleagtion) exist)
ComponentType BasicComponent or RepositoryComponent (original mapping: CompleteComponentType)
CompositeComponent CompositeComponent
CompositeStructure ComposedStructure
Connector AssemblyConnector/DelegationConnector
EndPoint for AssemblyConnector: Association; for Assembly-Context: RequiredRole and ProvidedRole
Entity Entity
EventPort N/A
InnerElement InnerDeclaration
Interface Interface
InterfacePort ProvidedRole/RequiredRole
MessageType Parameter/association returnType of Signature (only one return allowed in PCM)
NamedEntity NamedElement
Operation Signature
OperationException ExceptionType
Parameter Parameter
PrimitiveComponent BasicComponent
PrimitiveDataType PrimitiveDataType
Repository Repository (partially)
ServiceArchitectureModel System
SubcomponentEndpoint Connectors are directly associating Roles and AssemblyContext
SubcomponentInstance AssemblyContext
Type DataType
XSDPrimitiveDataType PrimitiveTypeEnum

Mapping of PCM to SAMM

PCM SAMM
Allocation ServiceArchitectureModel
Allocation Context Service
AssemblyConnector Connector
AssemblyContext SubcomponentInstance
BasicComponent PrimitiveComponent
CollectionDataType CollectionDataType
CommunicationLinkResourceSpecification bandwidth in NetworkResource
CompleteComponentType ComponentType
ComposedProvidingRequiringEntity N/A
ComposedStructure CompositeStructure
CompositeComponent CompositeComponent
CompositeDataType ComplexDataType
Connector Connector
DataType Type
DelegationConnector Connector
Entity Entity
ExceptionType OperationException
ExternalCallAction SimpleStatement
InnerDeclaration InnerElement
Interface Interface
InterfaceProvidingRequirungEntity N/A
NamedElement NamedEntity
Parameter Parameter
PassiveResource PassiveResource
PrimitiveDataType PrimitiveDataType
PrimitiveTypeEnum XSDPrimitiveDataType
ProcessingResourceSpecification HardwareDescriptor
ProcessingResourceType Processor, Memory, Disk
ProvidedDelegationConnector Connector
ProvidedRole InterfacePort
ReleaseAction SimpleStatement
Repository Repository (partially)
RequiredDelegationConnector Connector
RequiredRole InterfacePort
ResourceContainer Node
ResourceDemandingBehaviour OperationBehaviour
ResourceEnvironment TargetEnvironment
ResourceRepository TargetEnvironment
ResourceType N/A (several more concrete types such as Disk, Memory, etc.)
Role InterfacePort
ServiceEffectSpecification Behaviour
Signature Operation
System ServiceArchitectureModel