## AMALTHEA meta model changes

Based on the changes in AMALTHEA meta model across various releases, below description contains the differences in detail which are considered for model migration.

Hint: Model extensions (that do not require migration) are not listed here.

### Version APP4MC 3.0.0 to APP4MC 3.1.0

Change in the namespace:

AMALTHEA Namespace (version APP4MC 3.0.0) | AMALTHEA Namespace (version APP4MC 3.1.0)
http://app4mc.eclipse.org/amalthea/3.0.0 | http://app4mc.eclipse.org/amalthea/3.1.0

### Version APP4MC 2.2.0 to APP4MC 3.0.0

Change in the namespace:

AMALTHEA Namespace (version APP4MC 2.2.0) | AMALTHEA Namespace (version APP4MC 3.0.0)
http://app4mc.eclipse.org/amalthea/2.2.0 | http://app4mc.eclipse.org/amalthea/3.0.0

Following Classes are removed:

Class name in 2.2.0 | Model Migration behavior | 3.0.0
ModeSwitch | replaced with Switch | Switch
ModeSwitchEntry | replaced with SwitchEntry | SwitchEntry
ModeSwitchDefault | replaced with SwitchDefault | SwitchDefault
ISatisfiable | - | -
ModeConditionDisjunction | replaced with ConditionDisjunction | ConditionDisjunction
ModeConditionDisjunctionEntry | replaced with ConditionDisjunctionEntry | ConditionDisjunctionEntry
ModeConditionConjunction | replaced with ConditionConjunction | ConditionConjunction

Following Classes are extended:

Sub model | Class | New attribute | Model Migration behavior
OSModel | Semaphore | ownership | Value is set to according to semaphore type.
OSModel | SemaphoreType (Enum) | Mutex | -

Below references are changed:

Sub model | Class | Variable Name and Type (2.2.0) | Variable Name and Type (3.0.0) | Model Migration behavior
ComponentModel | ComponentInterface | datatype | dataType | attribute is renamed
SWModel | Label | dataType ‹containment› → DataType | dataType ‹reference› → TypeDefinition | inline type definitions are replaced by references to newly created global type definitions
SWModel | Channel | elementType ‹containment› → DataType | elementType ‹reference› → TypeDefinition | inline type definitions are replaced by references to newly created global type definitions

### Version APP4MC 2.1.0 to APP4MC 2.2.0

Change in the namespace:

AMALTHEA Namespace (version APP4MC 2.1.0) | AMALTHEA Namespace (version APP4MC 2.2.0)
http://app4mc.eclipse.org/amalthea/2.1.0 | http://app4mc.eclipse.org/amalthea/2.2.0

### Version APP4MC 2.0.0 to APP4MC 2.1.0

Change in the namespace:

AMALTHEA Namespace (version APP4MC 2.0.0) | AMALTHEA Namespace (version APP4MC 2.1.0)
http://app4mc.eclipse.org/amalthea/2.0.0 | http://app4mc.eclipse.org/amalthea/2.1.0

Following Class is extended:

Sub model | Class | New attribute | Model Migration behavior
SWModel | ChannelFillCondition | relation | Value is set to “GREATER_THAN_OR_EQUAL” to preserve former semantics.

### Version APP4MC 1.2.0 to APP4MC 2.0.0

Change in the namespace:

AMALTHEA Namespace (version APP4MC 1.2.0) | AMALTHEA Namespace (version APP4MC 2.0.0)
http://app4mc.eclipse.org/amalthea/1.2.0 | http://app4mc.eclipse.org/amalthea/2.0.0

Following Classes are removed:

Class name in 1.2.0 | Model Migration behavior | 2.0.0
SchedulingParameters | removed | SchedulingParameter
ParameterExtension | removed | SchedulingParameter
Algorithm | (abstract class) | -
InterruptSchedulingAlgorithm | (abstract class) | -
PriorityBased | removed | corresponding SchedulerDefinition and SchedulingParameterDefinition
TaskSchedulingAlgorithm | (abstract class) | -
FixedPriority | (abstract class) | -
FixedPriorityPreemptive | removed | corresponding SchedulerDefinition and SchedulingParameterDefinition
FixedPriorityPreemptiveWithBudgetEnforcement | removed | corresponding SchedulerDefinition and SchedulingParameterDefinition
OSEK | removed | corresponding SchedulerDefinition and SchedulingParameterDefinition
DeadlineMonotonic | removed | corresponding SchedulerDefinition and SchedulingParameterDefinition
RateMonotonic | removed | corresponding SchedulerDefinition and SchedulingParameterDefinition
Pfair | (abstract class) | -
PfairPD2 | removed | corresponding SchedulerDefinition and SchedulingParameterDefinition
PartlyPFairPD2 | removed | corresponding SchedulerDefinition and SchedulingParameterDefinition
EarlyReleaseFairPD2 | removed | corresponding SchedulerDefinition and SchedulingParameterDefinition
PartlyEarlyReleaseFairPD2 | removed | corresponding SchedulerDefinition and SchedulingParameterDefinition
DynamicPriority | (abstract class) | -
LeastLocalRemainingExecutionTimeFirst | removed | corresponding SchedulerDefinition and SchedulingParameterDefinition
EarliestDeadlineFirst | removed | corresponding SchedulerDefinition and SchedulingParameterDefinition
PriorityBasedRoundRobin | removed | corresponding SchedulerDefinition and SchedulingParameterDefinition
ReservationBasedServer | (abstract class) | -
DeferrableServer | removed | corresponding SchedulerDefinition and SchedulingParameterDefinition
PollingPeriodicServer | removed | corresponding SchedulerDefinition and SchedulingParameterDefinition; name: PollingServer
SporadicServer | removed | corresponding SchedulerDefinition and SchedulingParameterDefinition
ConstantBandwidthServer | removed | corresponding SchedulerDefinition and SchedulingParameterDefinition
ConstantBandwidthServerWithCASH | removed | corresponding SchedulerDefinition and SchedulingParameterDefinition; name: ConstantBandwidthServerWithCapacitySharing
Grouping | removed | corresponding SchedulerDefinition and SchedulingParameterDefinition; name: GroupingServer
UserSpecificSchedulingAlgorithm | removed | corresponding SchedulerDefinition and SchedulingParameterDefinition

Below references are changed:

Sub model | Class | Variable Name and Type (1.2.0) | Variable Name and Type (2.0.0) | Model Migration behavior
OSModel | TaskScheduler | schedulingAlgorithm ( Algorithm) | definition ( SchedulerDefinition) | containment reference to Algorithm is changed to a reference to SchedulerDefinition
OSModel | SchedulerAssociation | schedulingParameters ( SchedulingParameters) | schedulingParameters ( SchedulingParameter) | containment reference is changed to new class
OSModel | SchedulerAssociation | parameterExtensions ( ParameterExtension) | schedulingParameters ( SchedulingParameter) | containment reference is changed to new class
MappingModel | TaskAllocation | schedulingParameters ( SchedulingParameters) | schedulingParameters ( SchedulingParameter) | containment reference is changed to new class
MappingModel | TaskAllocation | parameterExtensions ( ParameterExtension) | schedulingParameters ( SchedulingParameter) | containment reference is changed to new class
SWModel | WhileLoop | condition ( ModeConditionDisjunction) | condition ( ConditionDisjunction) | containment reference is changed to generalized class
SWModel | Runnable | executionCondition ( ModeConditionDisjunction) | executionCondition ( ConditionDisjunction) | containment reference is changed to generalized class
StimuliModel | Stimulus | executionCondition ( ModeConditionDisjunction) | executionCondition ( ConditionDisjunction) | containment reference is changed to generalized class

Following Enums are renamed:

Class name in 1.2.0 | Changed Class name in 2.0.0 | Container
Condition | CombinatorialCondition | Classification

### Version APP4MC 1.1.0 to APP4MC 1.2.0

Change in the namespace:

AMALTHEA Namespace (version APP4MC 1.1.0) | AMALTHEA Namespace (version APP4MC 1.2.0)
http://app4mc.eclipse.org/amalthea/1.1.0 | http://app4mc.eclipse.org/amalthea/1.2.0

### Version APP4MC 1.0.0 to APP4MC 1.1.0

Change in the namespace:

AMALTHEA Namespace (version APP4MC 1.0.0) | AMALTHEA Namespace (version APP4MC 1.1.0)
http://app4mc.eclipse.org/amalthea/1.0.0 | http://app4mc.eclipse.org/amalthea/1.1.0

### Version APP4MC 0.9.9 to APP4MC 1.0.0

Change in the namespace:

AMALTHEA Namespace (version APP4MC 0.9.9) | AMALTHEA Namespace (version APP4MC 1.0.0)
http://app4mc.eclipse.org/amalthea/0.9.9 | http://app4mc.eclipse.org/amalthea/1.0.0

Following Classes are removed:

Class name in 0.9.9 | Model Migration behavior | 1.0.0
MeasurementModel | removed ( + log entry) | use Amalthea trace database (ATDB) instead
Measurement | abstract class | -
EventChainMeasurement | removed (as sub element) | -
TaskMeasurement | removed (as sub element) | -
RunnableMeasurement | removed (as sub element) | -

Following Enums are changed:

Enum literal in 0.9.9 | Model Migration behavior | 1.0.0
ProcessEventType.deadline | removed ( + log entry) | default; manual fix reqiured

### Version APP4MC 0.9.8 to APP4MC 0.9.9

Change in the namespace:

AMALTHEA Namespace (version APP4MC 0.9.8) | AMALTHEA Namespace (version APP4MC 0.9.9)
http://app4mc.eclipse.org/amalthea/0.9.8 | http://app4mc.eclipse.org/amalthea/0.9.9

### Version APP4MC 0.9.7 to APP4MC 0.9.8

Change in the namespace:

AMALTHEA Namespace (version APP4MC 0.9.7) | AMALTHEA Namespace (version APP4MC 0.9.8)
http://app4mc.eclipse.org/amalthea/0.9.7 | http://app4mc.eclipse.org/amalthea/0.9.8

### Version APP4MC 0.9.6 to APP4MC 0.9.7

Change in the namespace:

AMALTHEA Namespace (version APP4MC 0.9.6) | AMALTHEA Namespace (version APP4MC 0.9.7)
http://app4mc.eclipse.org/amalthea/0.9.6 | http://app4mc.eclipse.org/amalthea/0.9.7

Following Classes behavior is changed:

Class name | Amalthea sub-model | Changed behavior in 0.9.7
Component | componentsModel | Component has reference to ports and its type is change to new type ComponentPort.
ComponentPort | componentsModel | ComponentPort has reference to ComponentInterface.

Following Classes are renamed:

Class name in 0.9.6 | Changed Class name in 0.9.7 | Amalthea sub-model
CallGraph | ActivityGraph | sw
CallGraphItem | ActivityGraphItem | sw

Below references are changed:

Variable Name (version APP4MC 0.9.6) | Variable Name (version APP4MC 0.9.7) | Variable Type (in 0.9.6) | Variable Type (in 0.9.7) | Class containing Variable | AMALTHEA sub model | Model Migration behavior
ports | ports | Port | ComponentPort | Component | componentsModel | ports reference is changed to new type ComponentPort

Below references are renamed:

Variable Name (version APP4MC 0.9.6) | Variable Name (version APP4MC 0.9.7) | Variable Type (in 0.9.6) | Variable Type (in 0.9.7) | Class containing Variable | AMALTHEA sub model | Model Migration behavior
tasks | processes | AbstractProcess | AbstractProcess | Component | ComponentsModel | tasks reference is renamed to processes
callGraph | activityGraph | CallGraph | ActivityGraph | Process | sw | callGraph reference is renamed to activityGraph
callGraph | activityGraph | CallGraph | ActivityGraph | Runnable | sw | callGraph reference is renamed to activityGraph

### Version APP4MC 0.9.5 to APP4MC 0.9.6

Change in the namespace:

AMALTHEA Namespace (version APP4MC 0.9.5) | AMALTHEA Namespace (version APP4MC 0.9.6)
http://app4mc.eclipse.org/amalthea/0.9.5 | http://app4mc.eclipse.org/amalthea/0.9.6

Following Classes behavior is changed:

Class name | Amalthea sub-model | Changed behavior in 0.9.6
RunnableCall | sw | RunnableCall has reintroduced the reference to Counter as an attribute.It is possible now to create counter for RunnableCall.
AbstractEventChain | constraints | Now only one type of EvenChainItems are possible.EventchainItemType indicates if it is sequence or parallel

Following Classes are renamed:

Class name in 0.9.5 | Changed Class name in 0.9.6 | Amalthea sub-model
ModeCondition | ModeValueCondition | sw, stimuli

Below references are changed:

Variable Name (version APP4MC 0.9.5) | Variable Name (version APP4MC 0.9.6) | Variable Type (in 0.9.5) | Variable Type (in 0.9.6) | Class containing Variable | AMALTHEA sub model | Model Migration behavior
segments | items | EventChainItem | EventChainItem | AbstractEventChain | constraints | segments reference is renamed to items
strands | items | EventChainItem | EventChainItem | AbstractEventChain | constraints | strands reference is renamed to items

### Version APP4MC 0.9.4 to APP4MC 0.9.5

Change in the namespace:

AMALTHEA Namespace (version APP4MC 0.9.4) | AMALTHEA Namespace (version APP4MC 0.9.5)
http://app4mc.eclipse.org/amalthea/0.9.4 | http://app4mc.eclipse.org/amalthea/0.9.5

Below references are removed:

Variable Name | Variable Type | Class containing Variable | AMALTHEA sub model | Model Migration behavior
runnableItems | RunnableItem | Runnable | sw | runnableItems reference has been removed and replaced with new attribute CallGraph to provide all child elements same as Task.

Following Classes are removed:

Class name in 0.9.4 | Model Migration behavior
CallSequence | Equivalent element is Group in 0.9.5
RunnableModeSwitch | Equivalent element is ModeSwitch in 0.9.5
RunnableProbabilitySwitch | Equivalent element is ProbabilitySwitch in 0.9.5
GraphEntryBase | Equivalent element is CallGraphItem in 0.9.5
RunnableItem | Equivalent element is CallGraphItem in 0.9.5
ClockSinusFunction | Equivalent is ClockFunction in 0.9.5 with a new attribute type curvetype=sine
ClockTriangleFunction | Equivalent is ClockFunction in 0.9.5 with a new attribute type curvetype=triangle

Following Classes are renamed:

Class name in 0.9.4 | Changed Class name in 0.9.5 | Amalthea sub-model
ClockMultiplierList | ClockStepList | stimuli
ClockMultiplierListEntry | ClockStep | stimuli

Following Classes behavior is changed:

Class name | Amalthea sub-model | Changed behavior in 0.9.5
Runnable | sw | Runnable class has a new attribute callGraph. It is now possible to have all the child elements same as Task or Process
Scenario | stimuli | Reference recurrence (Time) is replaced by samplingRecurrence (non negative double)

Below references are changed:

Variable Name (version APP4MC 0.9.4) | Variable Name (version APP4MC 0.9.5) | Variable Type (in 0.9.4) | Variable Type (in 0.9.5) | Class containing Variable | AMALTHEA sub model | Model Migration behavior
runnableItems | callGraph | RunnableItem | CallGraph | Runnable | sw | runnableItems reference has been removed and replaced with new attribute CallGraph to provide all child elements same as Task.
graphEntries | items | GraphEntryBase | CallGraphItem | CallGraph | sw | graphEntries reference has been changed to items of type CallGraphItem.
items | items | RunnableItem | CallGraphItem | Group | sw | items reference has been changed to elements of type CallGraphItem
entries | entries | ClockMultiplierListEntry | ClockStep | ClockStepList | stimuli | entries reference has been changed to type ClockStep

### Version APP4MC 0.9.3 to APP4MC 0.9.4

Change in the namespace:

AMALTHEA Namespace (version APP4MC 0.9.3) | AMALTHEA Namespace (version APP4MC 0.9.4)
http://app4mc.eclipse.org/amalthea/0.9.3 | http://app4mc.eclipse.org/amalthea/0.9.4

Below Enum Literals are changed:

Enum Name | Literal name (version APP4MC 0.9.3) | Literal name (version APP4MC 0.9.4)
PortInterface | ABH | AHB

Below references are removed:

Variable Name | Variable Type | Class containing Variable | AMALTHEA sub model | Model Migration behavior
deadine | Time | Runnable | sw | deadline attribute has been removed and an equivalent RunnableRequirement object is created in the ConstraintsModel.
disablingModeValueList | ModeValueDisjunction | Stimulus | stimuli | disablingModeValueList reference has been completely removed.

Following Classes are renamed:

Class name in 0.9.3 | Changed Class name in 0.9.4 | Amalthea sub-model
ModeValueDisjunction | ModeConditionDisjunction | sw, stimuli
ModeValueDisjunctionEntry | ModeConditionDisjunctionEntry | sw, stimuli
ModeValueConjunction | ModeConditionConjunction | sw, stimuli
DataPlatformMapping | Alias | sw

Following Classes behavior is changed:

Class name | Amalthea sub-model | Changed behavior in 0.9.4
Mode | sw | Mode is changed as abstract class. Mode has two subclasses NumericMode and EnumMode. All the Mode objects from Amalthea 0.9.3 are converted as EnumMode objects in 0.9.4
ModeValue | sw, stimuli | ModeValue is an abstract class derived into ModeAssignment and ModeCondition
ModeValueDisjunctionEntry | sw, stimuli | It is now changed as an interface ModeConditionDisjunctionEntry. This interface is realized as ModeCondition & ModeConditionConjunction.
Runnable | sw | Runnable class has a new attribute executionCondition.

Below references are changed:

Variable Name (version APP4MC 0.9.3) | Variable Name (version APP4MC 0.9.4) | Variable Type (in 0.9.3) | Variable Type (in 0.9.4) | Class containing Variable | AMALTHEA sub model | Model Migration behavior
enablingModeValueList | executionCondition | ModeValueDisjunction | ModeConditionDisjunction | Stimulus | stimuli | enablingModeValueList reference is now changed to executionCondition.
entries | entries | ModeValue | ModeCondition | ModeValueDisjunction(in 0.9.3), ModeConditionDisjunction(in 0.9.4) | sw, stimuli | ModeValue is now changed to ModeCondition.
value | value | ModeLiteral | String | ModeValueMapEntry, ModeValue | sw, stimuli | value is changed from ModeLiteral reference to a String (containing only modeLiteral name)
valueProvider | label | ModeLabel | ModeLabel | ModeValue (can be ModeCondition or ModeAssignment) | sw, stimuli | valueProvider reference is changed to a label
condition | condition | ModeValueDisjunction | ModeConditionDisjunction | ModeSwitchEntry | sw, stimuli | condition type is changed to new reference class type ModeConditionDisjunction
initialValue | initialValue | ModeLiteral | String | ModeLabel | sw | initialValue is changed from ModeLiteral reference to a String (containing only modeLiteral name) additional attribute mode is created and it is referring to the Mode which was containing ModeLiteral
access | access | LabelAccessEnum | ModeLabelAccessEnum | ModeLabelAccess | sw | access is now a reference to enum type ModeLabelAccessEnum enhanced to support Enum mode.If literal “write” was used now it is changed to “set”.
modeValue | value | ModeLiteral | String | ModeLabelAccess | sw | value is changed from ModeLIteral reference to a String (containing only modeLiteral name)
dataMapping | aliases | DataPlatformMapping | Alias | BaseTypeDefinition | sw | dataMapping is renamed to avoid mixup with mapping to memory
platformName | target | String | String | DataPlatformMapping (in 0.9.3), Alias (in 0.9.4) | sw | platformName attribute is renamed to target
platformType | alias | String | String | DataPlatformMapping (in 0.9.3), Alias (in 0.9.4) | sw | platformType attribute is renamed to alias

### Version APP4MC 0.9.2 to APP4MC 0.9.3

Change in the namespace:

AMALTHEA Namespace (version APP4MC 0.9.2) | AMALTHEA Namespace (version APP4MC 0.9.3)
http://app4mc.eclipse.org/amalthea/0.9.2 | http://app4mc.eclipse.org/amalthea/0.9.3

Below Classes are removed:

Class Name (version APP4MC 0.9.2) | Model Migration behavior
Deviation | Depending on the type of generic used for Deviation element, contents are migrated as IContinuousValueDeviation or IDiscreteValueDeviation or ITimeDeviation

Following Class names are changed:

Class name in 0.9.2 | Changed Class name in 0.9.3 | Amalthea sub-model
OsInstructions | OsOverhead | os
OsAPIInstructions | OsAPIOverhead | os
OsISRInstructions | OsISROverhead | os
LatencyConstant | DiscreteValueConstant | hw
LatencyDeivation | DiscreteValueBetaDistribution DiscreteValueBoundaries DiscreteValueGaussDistribution DiscreteValueStatistics DiscreteValueUniformDistribution DiscreteValueWeibullEstimatorsDistribution | os

Following Classes behavior is changed:

Class name | Amalthea sub-model | Changed behavior in 0.9.3
ExecutionNeed | sw | Till 0.9.2 ExecutionNeed element was used to specify the runtime information and also additional behaviour e.g: Performance etc., Based on the latest change in 0.9.3, runtime information should be represented with Ticks element and additional information w.r.t. Performance etc., can be represented using ExecutionNeed element

Below references are changed:

Variable Name(version APP4MC 0.9.2) | Variable Name(version APP4MC 0.9.3) | Variable Type (in 0.9.2) | Variable Type (in 0.9.3) | Class containing Variable | AMALTHEA sub model | Model Migration behavior

occurencesPerStep

occurencesPerStep

Deviation<DoubleObject>

IContinuousValueDeviation

VariableRateActivation

sw

As there is a change in the Type of this reference from Deviation<DoubleObject> to IContinousValueDeviation. Content is migrated to the new elements.
Following elements are supported as Type: BoundedContinuousValueDistribution ContinuousValueBetaDistribution ContinuousValueBoundaries ContinuousValueConstant ContinuousValueGaussDistribution ContinuousValueHistogram ContinuousValueStatistics ContinuousValueUniformDistribution ContinuousValueWeibullEstimatorsDistribution TruncatedContinuousValueDistribution

activationDeviation

activation

Deviation<Time>

ITimeDeviation

SporadicActivation

sw

As there is a change in the Type of this reference from Deviation<Time> to ITimeDeviation. Content is migrated to the new elements.
Following elements are supported as Type : TimeBetaDistribution TimeBoundaries TimeConstant TimeGaussDistribution TimeHistogram TimeStatistics TimeUniformDistribution TimeWeibullEstimatorsDistribution

chunkProcessingInstructions | chunkProcessingTicks | EInt | EInt | ChannelReceive ChannelSend LabelAccess | sw | reference name changed from chunkProcessingInstructions to chunkProcessingTicks
computationItems | computationItems | ExecutionNeed | Ticks | TaskScheduler InterruptController | os | ExecutionNeed elements with HwFeatureCategory Instructions, are converted as Ticks with default or extended (based on the way ExecutionNeed was defined earlier)
items | items | ExecutionNeed | ExecutionNeed | Group | sw | ExecutionNeed elements with HwFeatureCategory Instructions are converted as Ticks. If HwFeatureCategory is other than Instructions, then content of the specific entry is retained as ExecutionNeed (In 0.9.3 ExecutionNeed does not support Extended entries )
runnableitems | runnableitems | ExecutionNeed | ExecutionNeed | Runnable | sw | ExecutionNeed elements with HwFeatureCategory Instructions are converted as Ticks. If HwFeatureCategory is other than Instructions, then content of the specific entry is retained as ExecutionNeed (In 0.9.3 ExecutionNeed does not support Extended entries )

jitter

jitter

Deviation<Time>

ITimeDeviation

PeriodicStimulus

stimuli

As there is a change in the Type of this reference from Deviation<Time> to ITimeDeviation. Content is migrated to the new elements.
Following elements are supported as Type : TimeBetaDistribution TimeBoundaries TimeConstant TimeGaussDistribution TimeHistogram TimeStatistics TimeUniformDistribution TimeWeibullEstimatorsDistribution

nextOccurrence

nextOccurrence

Deviation<Time>

ITimeDeviation

RelativePeriodicStimulus

stimuli

As there is a change in the Type of this reference from Deviation<Time> to ITimeDeviation. Content is migrated to the new elements.
Following elements are supported as Type : TimeBetaDistribution TimeBoundaries TimeConstant TimeGaussDistribution TimeHistogram TimeStatistics TimeUniformDistribution TimeWeibullEstimatorsDistribution

occurencesPerStep

occurencesPerStep

Deviation<DoubleObject>

IContinuousValueDeviation

VariableRateStimulus

stimuli

As there is a change in the Type of this reference from Deviation<DoubleObject> to IContinousValueDeviation. Content is migrated to the new elements.
Following elements are supported as Type: BoundedContinuousValueDistribution ContinuousValueBetaDistribution ContinuousValueBoundaries ContinuousValueConstant ContinuousValueGaussDistribution ContinuousValueHistogram ContinuousValueStatistics ContinuousValueUniformDistribution ContinuousValueWeibullEstimatorsDistribution TruncatedContinuousValueDistribution

maxIncreasePerStep | maxIncreasePerStep | DoubleObject | Double | VariableRateStimulus | stimuli | Double value is migrated as a attribute
maxDecreasePerStep | maxDecreasePerStep | DoubleObject | Double | VariableRateStimulus | stimuli | Double value is migrated as a attribute
osOverheads | osOverheads | OsInstructions | OsOverhead | OSModel | os | References are updated accordingly

apiSendMessage apiTerminateTask apiSchedule apiRequestResource apiReleaseResource apiSetEvent apiWaitEvent apiClearEvent apiActivateTask apiEnforcedMigration apiSuspendOsInterrupts apiResumeOsInterrupts apiRequestSpinlock apiReleaseSpinlock apiSenderReceiverRead apiSenderReceiverWrite apiSynchronousServerCallPoint apiIocRead apiIocWrite

apiSendMessage apiTerminateTask apiSchedule apiRequestResource apiReleaseResource apiSetEvent apiWaitEvent apiClearEvent apiActivateTask apiEnforcedMigration apiSuspendOsInterrupts apiResumeOsInterrupts apiRequestSpinlock apiReleaseSpinlock apiSenderReceiverRead apiSenderReceiverWrite apiSynchronousServerCallPoint apiIocRead apiIocWrite

Instructions

Ticks

OsAPIInstructions

os

Instructions elements are converted to Ticks.
InstructionsConstant is converted to DiscreteValueConstant.
InstructionsDeviation is converted to one of the following type (based on conversion criteria):
DiscreteValueBetaDistribution DiscreteValueBoundaries DiscreteValueGaussDistribution DiscreteValueStatistics DiscreteValueUniformDistribution DiscreteValueWeibullEstimatorsDistribution

preExecutionOverhead postExecutionOverhead

preExecutionOverhead postExecutionOverhead

Instructions

Ticks

OsISRInstructions

os

Instructions elements are converted to Ticks.
InstructionsConstant is converted to DiscreteValueConstant.
InstructionsDeviation is converted to one of the following type (based on conversion criteria):
DiscreteValueBetaDistribution DiscreteValueBoundaries DiscreteValueGaussDistribution DiscreteValueStatistics DiscreteValueUniformDistribution DiscreteValueWeibullEstimatorsDistribution

runtimeDeviation

runtimeDeviation

Deviation<Time>

ITimeDeviation

Measurement

MeasurementModel

As there is a change in the Type of this reference from Deviation<Time> to ITimeDeviation. Content is migrated to the new elements.
Following elements are supported as Type : TimeBetaDistribution TimeBoundaries TimeConstant TimeGaussDistribution TimeHistogram TimeStatistics TimeUniformDistribution TimeWeibullEstimatorsDistribution

cycles | value | Long | Long | LatencyConstant | hw | LatencyConstant is changed to DiscreteValueConstant, reference name changed from cycles to value
cycles | value | Deviation | Deviation<DoubleObject> | LatencyDeviation | hw | LatencyDeviation is changed to DiscreteValueBetaDistribution DiscreteValueBoundaries DiscreteValueGaussDistribution DiscreteValueStatistics DiscreteValueUniformDistribution DiscreteValueWeibullEstimatorsDistribution. In 0.9.3, intermediate cycles element is removed. Content of it is merged as a part of the Distribution

### Version APP4MC 0.9.1 to APP4MC 0.9.2

Change in the namespace:

AMALTHEA Namespace (version APP4MC 0.9.1) | AMALTHEA Namespace (version APP4MC 0.9.2)
http://app4mc.eclipse.org/amalthea/0.9.1 | http://app4mc.eclipse.org/amalthea/0.9.2

### Version APP4MC 0.9.0 to APP4MC 0.9.1

Change in the namespace:

AMALTHEA Namespace (version APP4MC 0.9.0) | AMALTHEA Namespace (version APP4MC 0.9.1)
http://app4mc.eclipse.org/amalthea/0.9.0 | http://app4mc.eclipse.org/amalthea/0.9.1

Below Classes are removed:

Class Name (version APP4MC 0.9.0) | Model Migration behavior
TimeObject | Equivalent element of this class in 0.9.1 is Time

### Version APP4MC 0.8.3 to APP4MC 0.9.0

Change in the namespace:

AMALTHEA Namespace (version APP4MC 0.8.3) | AMALTHEA Namespace (version APP4MC 0.9.0)
http://app4mc.eclipse.org/amalthea/0.8.3 | http://app4mc.eclipse.org/amalthea/0.9.0

Below Classes/Interfaces behaviour is changed:

Class Name (version APP4MC 0.8.3) | AMALTHEA sub model | Changes in behavior (as per 0.9.0) | Model Migration behavior

Memory

HWModel

Memory and Cache are two different elements. Memory can be defined only inside a HwStructure where as Cache can be defined inside HwStructure and ProcessingUnit

Memory element of 0.8.3 is converted either as a Memory element or Cache element based on the type specified for MemoryType element. If the type is specified as CACHE, then Memory object _ is converted as Cache element and in other cases it is converted as Memory.
Note: _In 0.8.3, Memory element could be contained inside a ComplexNode, as a part of migration : If there is not a possibility to define either a Cache or Memory inside a specific element then it is added as a part of the corresponding parent HwStructure element

HwPort | HWModel | HwPort and ComplexPort elements from 0.8.3 are represented as HwPort in 0.9.0. | For both HwPort and ComplexPort elements, HwPort object is created. Based on the value of attribute master on HwPort or ComplexPort : portType is set either as initiator _ or responder _(if master=false)

Below Classes are removed:

Class Name (version APP4MC 0.8.3) | AMALTHEA sub model | Model Migration behavior
RunnableInstructions | SWModel, OSModel | Equivalent element of this class in 0.9.0 is ExecutionNeed. default InstructionsConstant,InstructionsDeviation are converted as NeedEntry and the key refers to HwFeatureCategory "Instructions"
RunnableInstructionsEntry | SWModel, OSModel | Equivalent element of this class in 0.9.0 is ExecutionNeedExtended. Key attribute of ExecutionNeedExtended refer to ProcessingUnitDefintion
ECUType | HWModel | There is no equivalent element in 0.9.0
MicroControllerType | HWModel | There is no equivalent element in 0.9.0
SystemType | HWModel | There is no equivalent element in 0.9.0
HWAccessPath | HWModel | There is no equivalent element in 0.9.0. Only LatencyAccessPath is migrated
HWComponent | HWModel | There is no equivalent element in 0.9.0
NestedComponent | HWModel | There is no equivalent element in 0.9.0
PreScaler | HWModel | There is no equivalent element in 0.9.0. Based on to which HW element PreScaler is added ,Quartz of the corresponding element is fetched : value of clockRatio is multiplied with the Frequency value of the Quartz and a new FrequencyDomain object is created which contains the obtained Frequency value. Created FrequencyDomain will contain clockratio value in suffix of the name
Quartz | HWModel | Equivalent element of this class in 0.9.0 is FrequencyDomain.
Pin | HWModel | There is no equivalent element in 0.9.0
MemoryType | HWModel | Equivalent element of this class in 0.9.0 is MemoryDefinition. If type is specified as Cache, then corresponding element is migrated as CacheDefinition, in other cases it will be MemoryDefinition
CoreType | HWModel | Equivalent element of this class in 0.9.0 is ProcessingUnitDefinition.
NetworkType, Bus, Bridge, CrossbarSwitch | HWModel | Equivalent element of these classes in 0.9.0 is ConnectionHandlerDefinition.
LatencyAccessPath | HWModel | Equivalent element of this class in 0.9.0 is HwAccessElement. If the source element of the LatencyAccessPath is Core, in the corresponding ProcessingUnit : HwAccessElement is created and the destination of it is set based on the destination of LatencyAccessPath (Note: Destination of HwAccessElement can only be Memory or ProcessingUnit)
System | HWModel | Equivalent element of this class in 0.9.0 is HwStructure. StructureType is set as System
ECU | HWModel | Equivalent element of this class in 0.9.0 is HwStructure. StructureType is set as ECU
MicroController | HWModel | Equivalent element of this class in 0.9.0 is HwStructure. StructureType is set as Microcontroller
Core | HWModel | Equivalent element of this class in 0.9.0 is ProcessingUnit
Network | HWModel | Equivalent element of this class in 0.9.0 is ConnectionHandler
ComplexPort | HWModel | There is no equivalent element in 0.9.0

Below references are removed/changed:

Variable Name(version APP4MC 0.8.3) | Variable Type | Class containing Variable | AMALTHEA sub model | Model Migration behavior
memories | Memory | TargetMemory | ConstraintsModel | If the Memory object as per 0.8.3 is still Memory in 0.9.0, then reference is unchanged. If Memory in 0.8.3 is migrated as Cache based on the type of MemoryType (as CACHE in 0.8.3) , corresponding reference is removed
memories | Memory | PhysicalSectionConstraint | ConstraintsModel | If the Memory object as per 0.8.3 is still Memory in 0.9.0, then reference is unchanged. If Memory in 0.8.3 is migrated as Cache based on the type of MemoryType (as CACHE in 0.8.3) , corresponding reference is removed
memory | Memory | PhysicalSectionMapping | MappingModel | If the Memory object as per 0.8.3 is still Memory in 0.9.0, then reference is unchanged. If Memory in 0.8.3 is migrated as Cache based on the type of MemoryType (as CACHE in 0.8.3) , corresponding reference is removed
memory | Memory | MemoryMapping | MappingModel | If the Memory object as per 0.8.3 is still Memory in 0.9.0, then reference is unchanged. If Memory in 0.8.3 is migrated as Cache based on the type of MemoryType (as CACHE in 0.8.3) , corresponding reference is removed
cores | Core | TargetCore | ConstraintsModel | instead of Core object, variable Type is updated to corresponding ProcessingUnit element
hardwareContext | ComplexNode | CPUPercentageRequirementLimit | ConstraintModel | variable Type is changed to ProcessingUnit. In 0.8.3 models if an element was referring to any other ComplexNode other than Core, corresponding reference will be removed
core | Core | ProcessEvent | EventModel | variable name is changed from core to processingUnit.Type of the reference is changed to ProcessingUnit
core | Core | ProcessChainEvent | EventModel | variable name is changed from core to processingUnit.Type of the reference is changed to ProcessingUnit
core | Core | RunnableEvent | EventModel | variable name is changed from core to processingUnit.Type of the reference is changed to ProcessingUnit
core | Core | SemaphoreEvent | EventModel | variable name is changed from core to processingUnit.Type of the reference is changed to ProcessingUnit
cores | Core | MicroController | HWModel | variable name is changed from cores to modules.Type of the reference is changed to ProcessingUnit. MicroController class is changed to HwStructure
responsibility | Core | SchdulerAllocation | MappingModel | Type is changed from Core to ProcessingUnit
executingCore | Core | SchdulerAllocation | MappingModel | variable name is changed from executingCore to executingPU. Type is changed from Core to ProcessingUnit
coreAffinity | Core | TaskAllocation | MappingModel | variable name is changed from coreAffinity to affinity. Type is changed from Core to ProcessingUnit
items, runnableItems, computationItems | RunnableInstructions | Group, Runnable, Scheduler | SWModel, OSModel | Type is changed from RunnableInstructions to ExecutionNeed

### Version APP4MC 0.8.2 to APP4MC 0.8.3

Change in the namespace:

AMALTHEA Namespace (version APP4MC 0.8.2) | AMALTHEA Namespace (version APP4MC 0.8.3)
http://app4mc.eclipse.org/amalthea/0.8.2 | http://app4mc.eclipse.org/amalthea/0.8.3

Below Classes/Interfaces behaviour is changed:

Class Name (version APP4MC 0.8.2) | AMALTHEA sub model | Changes in behavior (as per 0.8.3) | Model Migration behavior
ModeSwitch, RunnableModelSwitch | SW Model | valueProvider ( of ModeLabel reference) is removed and is associated to ModeValue element. | valueProvider ( of ModeLabel reference) is removed and is associated to ModeValue element, which is created inside ModeValueDisjunction element contained in ModeSwitch, RunnableModeSwitch
ModeSwitchEntry | SW Model | values ( of type list of ModeLiteral) is removed and is as ModeValue element inside ModeValueDisjunction class. | values ( of type list of ModeLiteral) is removed and each element in the list is associated as ModeValue element, which is created inside ModeValueDisjunction element contained in ModeSwitch, RunnableModeSwitch

PeriodicStimulus

Stimuli Model

stimulusDevaiation, offset, clock elements are removed

For migration, below points are to be considered:

- If clock value is set for PeriodicStimuls, then this PeriodicStimulus will be migrated as VariableRateStimulus.
  - clock, recurrence elements are moved from PeriodicStimulus to Scenario element, contained inside VariableRateStimulus.
  - offset element value is moved as a customProperty for Scenario element
- If clock value is not set for PeriodicStimuls, then type of the element will not be changed.
  - stimulsDeviation element is renamed as jitter.

Below Classes are removed:

Class Name (version APP4MC 0.8.2) | AMALTHEA sub model | Model Migration behavior
FInterfacePort | Components Model | FinterfacePort is replaced by InterfacePort class. As a part of model migration, in Components model -> type attribute for the definition of FInterfacePort is changed from “am:FInterfacePort” to “am:InterfacePort”, and new type (InterfacePort) is also updated for references of FInterfacePort
SyntheticStimulus | Stimuli Model | SyntheticStimulus is replaced by PeriodicSyntheticStimulus class. As a part of model migration, in Stimuli model -> type attribute for the definition of FInterfacePort is changed from “am:SyntheticStimulus” to “am:PeriodicSyntheticStimulus”, and new type (PeriodicSyntheticStimulus) is also updated for references of SyntheticStimulus
SporadicStimulus | Stimuli Model | SporadicStimulus is replaced by RelativePeriodicStimulus class. As a part of model migration, in Stimuli model -> type attribute for the definition of SporadicStimulus is changed from “am:SporadicStimulus” to “am:RelativePeriodicStimulus”, and new type (RelativePeriodicStimulus) is also updated for references of SporadicStimulus

Below references are removed/changed:

Variable Name | Variable Type | Class containing Variable | AMALTHEA sub model | Model Migration behavior
activationDeviation | Deviation | VariableRateActivation | SW Model | activationDeviation element is removed from the VariableRateActivation element
valueProvider | ModeLabel | ModeSwitch, RunnableModeSwitch | SW Model | valueProvider ( ModeLabel reference) is removed directly from ModeSwitch, RunnableModelSwitch elements and associated to each ModeValue element ->> which is created inside condition element ( of type ModeValueDisJunction)
values | ModeLiteral | ModeSwitch, RunnableModeSwitch | SW Model | values list is removed directly from ModeSwitch, RunnableModelSwitch and associated inside condition element ( of type ModeValueDisJunction) as different ModeValue elements ( Note: Each element in values List is created a separate ModeValue element inside condition element)
period | Time | SyntheticStimulus | Stimuli Model | period element is changed to recurrence
triggerTimes | TimeStampList | SyntheticStimulus | Stimuli Model | triggerTimes element is removed from SyntheticStimulus. Content of TriggerTimes element -> timeStamps list is migrated as occurrenceTimes element inside SyntheticStimulus
stimulusDeviation | Deviation | SporadicStimulus | Stimuli Model | stimulusDeviation element is changed as nextOccurrence
numberOfEvents | Integer | ArrivalCurveEntry | Stimuli Model | numberOfEvents element is changed as numberOfOccurrences
stimulusDeviation | Deviation | ArrivalCurveStimulus, SingleStimulus, CustomStimulus, InterProcessStimulus, EventStimulus, SyntheticStimulus | Stimuli Model | stimulusDeviation element is removed from SingleStimulus
activation | Time | SingleStimulus | Stimuli Model | activation element is changed as occurrence
stimulusDeviation | Deviation | PeriodicStimulus | Stimuli Model | If clock value is not set for PeriodicStimulus, in this case stimulusDeviation element is changed as jitter.
recurrence, clock | Time | PeriodicStimulus | Stimuli Model | If clock value is set for PeriodicStimulus, in this case both recurrence and clock are removed directly from PeriodicStimulus and their values are added inside Scenario element -> contained inside PeriodicStimulus( which will be migrated to VariableRateStimulus as a part of migration)
offset | Time | PeriodicStimulus | Stimuli Model | If clock value is set for PeriodicStimulus, in this case offset element is removed directly from PeriodicStimulus and its value is added inside Scenario element -> contained inside PeriodicStimulus( which will be migrated to VariableRateStimulus as a part of migration) as a CustomProperty with name "offset"
stimulusDeviation | Deviation | PeriodicStimulus | Stimuli Model | If clock value is set then stimulusDeviation element is removed from PeriodicStimulus

### Version APP4MC 0.8.1 to APP4MC 0.8.2

Change in the namespace:

AMALTHEA Namespace (version APP4MC 0.8.1) | AMALTHEA Namespace (version APP4MC 0.8.2)
http://app4mc.eclipse.org/amalthea/0.8.1 | http://app4mc.eclipse.org/amalthea/0.8.2

### Version APP4MC 0.8.0 to APP4MC 0.8.1

Change in the namespace:

AMALTHEA Namespace (version APP4MC 0.8.0) | AMALTHEA Namespace (version APP4MC 0.8.1)
http://app4mc.eclipse.org/amalthea/0.8.0 | http://app4mc.eclipse.org/amalthea/0.8.1

Below Classes/Interfaces behaviour is changed:

Class Name (version APP4MC 0.8.0) | AMALTHEA sub model | Changes in behavior (as per 0.8.1) | Model Migration behavior

SubEventChain

Constraints Model

SubEventChain class (in 0.8.0) is replaced by EventChainContainer class (in 0.8.1). EventChainContainer class is modelled to contain SubEventChain elements (in 0.8.1) which are non referable child EventChain elements.

- In amxmi file, xsi:type with “am:SubEventChain” is replaced with “am:EventChainContainer”.
- If sub EventChain elements are referred inside EventChainReference or inside TimingConstraints (e.g: EventChainLatencyConstraint or EventChainSynchronizationConstraint):
  - Then corresponding reference is removed and the reference String is stored in a CustomProperty of the corresponding element

Quartz

Hardware Model

Quartz is not extending ComplexNode class. In addition below are the other changes w.r.t. Quartz:

- It is no longer possible to have nested Quartz elements
- All Quartz elements should be present in single list, which is part of HwSystem class

- Per each amxmi file, from HWModel all Quartz elements are collected ( both root and sub Quartz elements) and are added in a central list which is part of HwSystem.

- Quartz element definitions are removed from the other HW elements (which are sub-classes of ComplexNode)

ModeValueListEntry | Stimuli model | ModeValueListEntry class is having two sub-classes ModeValue and ModeValueConjunction | ModeValue type is associated to all the ModeValueListEntry elements

Below Classes are removed:

Class Name (version APP4MC 0.8.0) | AMALTHEA sub model | Model Migration behavior
CoreAllocation | Mapping Model | CoreAllocation is replaced by SchedulerAllocation. As a part of model migration, In Mapping model references of CoreAllocation are changed as SchedulerAllocation. Also the “core” attribute/tag of it is renamed to "responsibility"
SchedulingHWUnit | OS model | SchedulingHWUnit reference is removed from Scheduler
SchedulingSWUnit | OS model | SchedulingSWUnit reference is removed from Scheduler and content of Instructions is copied to the corresponding ComputationItem elements of type RunnableInstructions
ArrivalCurve | Stimuli model | This class is renamed to ArrivalCurveStimulus. Element type is updated at both definition and references in amxmi file
InterProcess | Stimuli model | This class is renamed to InterProcessStimulus. Element type is updated at both definition and references in amxmi file
Periodic | Stimuli model | This class is renamed to PeriodicStimulus. Element type is updated at both definition and references in amxmi file
PeriodicEvent | Stimuli model | This class is renamed to VariableRateStimulus. Element type is updated at both definition and references in amxmi file
Single | Stimuli model | This class is renamed to SingleStimulus. Element type is updated at both definition and references in amxmi file
Sporadic | Stimuli model | This class is renamed to SporadicStimulus. Element type is updated at both definition and references in amxmi file
Synthetic | Stimuli model | This class is renamed to SyntheticStimulus. Element type is updated at both definition and references in amxmi file
InterProcessActivation | SW model | This class is renamed to InterProcessTrigger. Element type is updated at both definition and references in amxmi file

Below references are removed/changed:

Variable Name | Variable Type | Class containing Variable | AMALTHEA sub model | Model Migration behavior
coreAllocation | CoreAllocation | MappingModel | Mapping Model | coreAllocation tag name is renamed to schedulerAllocation. Equivalent of CoreAllocation is SchedulerAllocation element
priority | integer | TaskAllocation | Mapping Model | priority attribute is removed from TaskAllocation and its corresponding value is copied to priority attribute of the SchedulingParameters
xAccessPattern | String | MemoryType | HW model | xAccessPattern attribute and its value present in MemoryType element are removed from the amxmi file
parameter | AlgorithmParameter | Scheduler | OS model | parameter tag name is changed to parameterExtensions ( Also changed variable Type here is : ParameterExtensions)
scheduleUnitPriority | integer | Scheduler | OS model | scheduleUnitPriority attribute is removed
delay | Time | SchedulingHWUnit | OS model | delay tag is removed
instructions | Instructions | SchedulingSWUnit | OS model | “instructions” tag is removed from the SchedulingSWUnit and each “instructions” tag content is copied as a “default” tag of computationItems (of type RunnableInstructions)
schedulingUnit | SchedulingUnit | Scheduler | OS model | schedulingUnit tag is removed. And the contents of SchedulingSWUnit are migrated to ComputationItem’s
trigger | TriggerEvent | EventStimulus | Event model | renamed to triggeringEvents
activation | Activation | Runnable | SW model | renamed to activations
deadline | Time | PeriodicActivation | SW model | deadline attribute is removed
trigger | TriggerEvent | EventActivation | SW model | renamed to triggeringEvents
priority | integer | Process | SW model | priority attribute is removed
osekTaskGroup | integer | Task | SW model | osekTaskGroup attribute is removed
quartzes | List of Quartz | Core ECU HwComponent Memory Microcontroller Network | Hardware Model | All Quartz elements from these model elements are moved to HwSystem element. Note:If there are nested Quartz elements, they are flattened and stored inside a single list

### Version APP4MC 0.7.2 to APP4MC 0.8.0

Change in the namespace:

AMALTHEA Namespace (version APP4MC 0.7.2) | AMALTHEA Namespace (version APP4MC 0.8.0)
http://app4mc.eclipse.org/amalthea/0.7.2 | http://app4mc.eclipse.org/amalthea/0.8.0

Below references are removed from storage format (amxmi):

Variable Name (version APP4MC 0.7.2) | Variable Type | Class containing Variable | AMALTHEA sub model | Model Migration behavior
mode | Mode | ModeValueProvider | SW Model | mode is made as a derived variable and transient property is set to it, as a result it will not be serialized into the model file. Based on the selection of ModeLiteral (in ModeValueProvider element) mode element will be considered accordingly.
osDataConsistency | OsDataConsistency | OSModel | OS Model | OsDataConsistency element is shifted from OSModel to OperatingSystem element. As a part of migration, osDataConsistency element content is copied inside each OperatingSystem element

Below references names are changed :

Variable Name (version APP4MC 0.7.2) | Variable Name (version APP4MC 0.8.0) | Variable Type | Class containing Variable | AMALTHEA sub model | Model Migration behavior
mapping | memoryMapping | Mapping (in 0.7.2) -> MemoryMapping (in 0.8.0) | MappingModel | Mapping model | As there is a change in the reference name (from mapping to memoryMapping) in metamodel --> corresponding XML tag names in amxmi are changed from mapping to memoryMapping, type attribute is removed from memoryMapping XML tag as MemoryMapping is a concrete class

Below Classes/Interfaces are removed:

Class Name (version APP4MC 0.7.2) | AMALTHEA sub model | Model Migration behavior
ModeValueProvider (Interface) | SW Model | Content present inside ModeValueProvider class is moved to ModeLabel. Reference to Mode element is made as derived variable, and it automatically populated based on the selection of ModeLiteral.
SignedTimeObject | SW Model | Equivalent of this element is TimeObject in APP4MC 0.8.0. There is no change in the storage format.
SignedTime | SW Model | Equivalent of this element is Time in APP4MC 0.8.0. There is no change in the storage format.
Mapping | Mapping Model | This interface is removed from the model. MemoryMapping is equivalent of this model element in APP4MC 0.8.0. As a part of model migration type attribute is removed from the tag which is defining MemoryMapping.
AbstractElementMapping | Mapping Model | MemoryMapping is equivalent of this model element in APP4MC 0.8.0. As a part of model migration type attribute is removed from the tag which is defining MemoryMapping.
AbstractElementMemoryInformation | HW Model | AbstractMemoryElement is the equivalent of this model element in APP4MC 0.8.0. There is no change in the storage format.
ProbabiltitySwitch | HW Model | ProbabiltitySwitch class is changed to ProbabilitySwitch (typo corrected in the class name). ProbabilitySwitch is the equivalent of this model element in APP4MC 0.8.0

AllocationConstraint

PropertyConstraints Model

AllocationConstraint class is changed to CoreAllocationConstraint. In CoreAllocationConstraint -> reference to HwCoreConstraint element is removed, based on this change -> during model migration CustomProperty is created with key as “hwConstraint (element removed during Migration of Model to 0.8.0 version)” and value as the XML content of “hwConstraint” element.

MappingConstraint

PropertyConstraints Model

MappingConstraint class is changed to MemoryMappingConstraint. In MemoryMappingConstraint -> reference to HwMemmoryConstraint element is removed, based on this change -> during model migration CustomProperty is created with key as “hwConstraint (element removed during Migration of Model to 0.8.0 version)” and value as the XML content of “hwConstraint” element.

HwCoreConstraint, HwCoreConjunction, HwCoreProperty | PropertyConstraints Model | These elements are removed from the model. As a reference XML content is stored as a CustomProperty inside CoreAllocationConstraint
HwMemoryConstraint, HwMemoryConjunction, HwMemoryProperty | PropertyConstraints Model | These elements are removed from the model. As a reference XML content is stored as a CustomProperty inside MemoryMappingConstraint

Below are the changes in the datatype of elements:

Variable Name | Variable datatype (version APP4MC 0.7.2) | Variable datatype (version APP4MC 0.8.0) | Class containing Variable | AMALTHEA sub model | Model Migration behavior
instructionsPerCycle | int | float | CoreType | HW model | int is converted to float

### Version APP4MC 0.7.1 to APP4MC 0.7.2

Change in the namespace:

AMALTHEA Namespace (version APP4MC 0.7.1) | AMALTHEA Namespace (version APP4MC 0.7.2)
http://app4mc.eclipse.org/amalthea/0.7.1 | http://app4mc.eclipse.org/amalthea/0.7.2

Below are the changes in the reference names:

Variable Name (version APP4MC 0.7.1) | Changed Variable Name (version APP4MC 0.7.2) | Class containing Variable | AMALTHEA sub model | Model Migration behavior
runnables | group | RunnablePairingConstraint | Constraints Model | xml tag “runnables” present inside “RunnablePairingConstraint” object is changed to “group” in amxmi file
processes | group | ProcessPairingConstraint | Constraints Model | xml tag “processes” present inside “ProcessPairingConstraint” object is changed to “group” in amxmi file
labels | group | DataPairingConstraint | Constraints Model | xml tag “labels” present inside “DataPairingConstraint” object is changed to “group” in amxmi file
initalValue | initialValue | Semaphore | OS Model | xml attribute “initalValue” present inside “Semaphore” object is changed to “initialValue” in amxmi file
arrivalCurveEntries | entries | ArrivalCurve | Stimuli Model | xml tag “arrivalCurveEntries” present inside “ArrivalCurve” object is changed to “entries” in amxmi file

Below are the changes in the reference Types:

Variable Name | Variable Type (version APP4MC 0.7.1) | Variable Type (version APP4MC 0.7.2) | Class containing Variable | AMALTHEA sub model | Model Migration behavior
instructions | OsExecutionInstructions | Instructions | SchedulingSWUnit | OS Model | type of the instructions tag in amxmi is updated either to InstructionsConstant or InstructionsDeviation based on if the type in input is : OsExecutionInstructionsConstant or OsExecutionInstructionsDeviation
apiSendMessage | OsExecutionInstructions | Instructions | OsAPIInstructions | OS Model | type of the apiSendMessage tag in amxmi is updated either to InstructionsConstant or InstructionsDeviation based on if the type in input is : OsExecutionInstructionsConstant or OsExecutionInstructionsDeviation
apiTerminateTask | OsExecutionInstructions | Instructions | OsAPIInstructions | OS Model | type of the apiTerminateTask tag in amxmi is updated either to InstructionsConstant or InstructionsDeviation based on if the type in input is : OsExecutionInstructionsConstant or OsExecutionInstructionsDeviation
apiSchedule | OsExecutionInstructions | Instructions | OsAPIInstructions | OS Model | type of the apiSchedule tag in amxmi is updated either to InstructionsConstant or InstructionsDeviation based on if the type in input is : OsExecutionInstructionsConstant or OsExecutionInstructionsDeviation
apiRequestResource | OsExecutionInstructions | Instructions | OsAPIInstructions | OS Model | type of the apiRequestResource tag in amxmi is updated either to InstructionsConstant or InstructionsDeviation based on if the type in input is : OsExecutionInstructionsConstant or OsExecutionInstructionsDeviation
apiReleaseResource | OsExecutionInstructions | Instructions | OsAPIInstructions | OS Model | type of the apiReleaseResource tag in amxmi is updated either to InstructionsConstant or InstructionsDeviation based on if the type in input is : OsExecutionInstructionsConstant or OsExecutionInstructionsDeviation
apiSetEvent | OsExecutionInstructions | Instructions | OsAPIInstructions | OS Model | type of the apiSetEvent tag in amxmi is updated either to InstructionsConstant or InstructionsDeviation based on if the type in input is : OsExecutionInstructionsConstant or OsExecutionInstructionsDeviation
apiWaitEvent | OsExecutionInstructions | Instructions | OsAPIInstructions | OS Model | type of the apiWaitEvent tag in amxmi is updated either to InstructionsConstant or InstructionsDeviation based on if the type in input is : OsExecutionInstructionsConstant or OsExecutionInstructionsDeviation
apiClearEvent | OsExecutionInstructions | Instructions | OsAPIInstructions | OS Model | type of the apiClearEvent tag in amxmi is updated either to InstructionsConstant or InstructionsDeviation based on if the type in input is : OsExecutionInstructionsConstant or OsExecutionInstructionsDeviation
apiActivateTask | OsExecutionInstructions | Instructions | OsAPIInstructions | OS Model | type of the apiActivateTask tag in amxmi is updated either to InstructionsConstant or InstructionsDeviation based on if the type in input is : OsExecutionInstructionsConstant or OsExecutionInstructionsDeviation
apiEnforcedMigration | OsExecutionInstructions | Instructions | OsAPIInstructions | OS Model | type of the apiEnforcedMigration tag in amxmi is updated either to InstructionsConstant or InstructionsDeviation based on if the type in input is : OsExecutionInstructionsConstant or OsExecutionInstructionsDeviation

Below are the changes in the relation of elements:

Variable Name | Variable Type | Variable Relation (version APP4MC 0.7.1) | Variable Relation (version APP4MC 0.7.2) | Class containing Variable | AMALTHEA sub model | Model Migration behavior

memory

Memory

containment

association

HwMemoryProperty

PropertyConstraints model

memory objects containment is changed as association relation. As a result definition of Memory object should not be present inside HwMemoryProperty, rather only reference of memory should be present inside HwMemoryProperty. Model migration is performed in the following way for this change : Memory elements definition from HwMemoryProperty tag are moved to HW Model (Note: addition of Memory (from PropertyConstraints model) to HW model happens only if Memory with this name is not existing in the model scope)

core

Core

containment

association

HwCoreProperty

PropertyConstraints model

core objects containment is changed as association relation. As a result definition of Core object should not be present inside HWCoreProperty, rather only reference of core should be present inside HWCoreProperty. Model migration is performed in the following way for this change : Core elements definition from HwCoreProperty tag are moved to HW Model (Note: addition of Memory (from PropertyConstraints model) to HW model happens only if Memory with this name is not existing in the model scope)

Below are the changes in Enum elements:

Enum Name | Enum Literal (version APP4MC 0.7.1) | Enum Literal (version APP4MC 0.7.2) | AMALTHEA sub model | Model Migration behavior
Preemption | unknown | - | SW Model | unknown literal is removed from Preemption. Model Migration will replace “unknown” literal with the default literal

Below references are removed:

Variable Name (version APP4MC 0.7.1) | Variable Type | Class containing Variable | AMALTHEA sub model | Model Migration behavior

samplingType

SamplingType

Deviation

Hardware Model Stimuli MOdel OS Model Software Model

In 0.7.2, samplingType attribute is shifted from Deviation to Boundaries element.As a part of Model migration -> samplingType content is removed from Deviation and associated to the corresponding Distribution of type Boundaries. If Boundaries element is not present inside Deviation as a distribution, corresponding samplingType data is skipped during model migration

coreTypeDefinitions

CoreType

PropertyConstraintsModel

Property Constraints Model

coreTypeDefinitions objects are removed from the PropertyConstraintsModel tag and are associated to HW Model (Note: addition of CoreType to HW model happens only if CoreType with this name is not existing in the model scope. If there exists CoreType element with the same name in “PropertyConstraintsModel” and in “HW Model” --> the one from PropertyConstraintsModel will be removed and the one from HW Model will be referred accordingly inside Core element etc.,)

memoryTypeDefinitions

MemoryType

PropertyConstraintsModel

Property Constraints Model

memoryTypeDefinitions objects are removed from the PropertyConstraintsModel tag and are associated to HW Model (Note: addition of MemoryType to HW model happens only if MemoryType with this name is not existing in the model scope . If there exists MemoryType element with the same name in “PropertyConstraintsModel” and in “HW Model” --> the one from PropertyConstraintsModel will be removed and the one from HW Model will be referred accordingly inside MemoryElement element etc.,)

tags | Tag | ComponentsModel, HWModel, SWModel | Components Model, Hardware Model, Software Model | Tag objects are removed from the ComponentsModel,HWModel,SWModel tags and their content is shifted to CommonElements Model (Note: CommonElements model is contained inside Amalthea root node)

Below Classes are removed:

Class Name (version APP4MC 0.7.1) | AMALTHEA sub model | Model Migration behavior
TargetProcess | Constraints Model | Content is removed from the model. There is no equivalent of this model element in APP4MC 0.7.2
TargetCallSequence | Constraints Model | Content is removed from the model. There is no equivalent of this model element in APP4MC 0.7.2
OsExecutionInstructions, OsExecutionInstructionsDeviation, OsExecutionInstructionsConstant | OS Model | Replacement elements are : Instructions,InstructionsDeviation,InstructionsConstant. As there is no change in the content of these elements(when compared to previous elements) -> during model migration corresponding old type names are replaced with the new model elements
ProbabilityGroup | SW Model | ProbabilityGroup is replaced with RunnableProbabilitySwitch
ProbabilityRunnableItem | SW Model | ProbabilityRunnableItem is replaced wtih ProbabilitySwitchEntry
DeviationRunnableItem | SW Model | Content of DeviationRunnableItem i.e RunnableItem is moved directly inside the Group as a part of “items” list

EventConfigElement, EventConfigLink

Config Model

Both EventConfigElement and EventConfigLink objects are converted as EventConfig objects (As EventConfigElement & EventConfigLink classes are removed from the MetaModel – as per the semantics equivalent class for both of them is EventConfig). In case of migrating EventConfigElement – If definition of EntityEvent element is present as a sub-element -> it is moved to Events Model and the corresponding reference to EntityEvent is established inside EventConfig using attribute "event"

OsBuffering | OS Model | OsBuffering elements are migrated as OsDataConsistency elements. Below steps describe the criteria considered for migration of data :

LabelBufferring

SW Model

LabelBufferring elements are migrated as DataStability elements. Below steps describe the criteria considered for migration of data :
- If LabelBuffering value is “buffered” then the corresponding value of “dataStability” is set as "CustomProtection"
- If LabelBuffering value is “notBuffered” then the corresponding value of “dataStability” is set as “noProtection”
- If LabelBuffering value is " undefined" (default) then the corresponding value of “dataStability” is set as " undefined" (default)

LabelAccessBufferring

SW Model

LabelAccessBufferring elements are migrated as DataStability elements. Below steps describe the criteria considered for migration of data :
- If LabelAccessBufferring value is “inherited” then the corresponding value of “dataStability” is set as "inherited"
- If LabelAccessBufferring value is “buffered” then the corresponding value of “dataStability” is set as “customProtection”
- If LabelAccessBufferring value is “notBuffered” then the corresponding value of “dataStability” is set as “noProtection”
- If LabelAccessBufferring value is " undefined" (default) then the corresponding value of “dataStability” is set as " undefined" (default)

### Version APP4MC 0.7.0 to APP4MC 0.7.1

Below are the changes in the meta model from APP4MC 0.7.0 to APP4MC 0.7.1

Change in the namespace:

AMALTHEA Namespace (version APP4MC 0.7.0) | AMALTHEA Namespace (version APP4MC 0.7.1)
http://app4mc.eclipse.org/amalthea/0.7.0 | http://app4mc.eclipse.org/amalthea/0.7.1

Root Tag in AMALTHEA model amxmi file: It is recommended to have “Amalthea” as a root tag in amxmi file.

Based on the above statement, if the AMALTHEA model file is having sub-model tag as root element (e.g. SWModel or HWModel etc.,), as a part of model migration -> root element is changed as “Amalthea” tag and the content of sub-model is copied inside it.

Input model (containing SWModel as the root tag):

     "<am:SWModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.7.0">
      <labels/>
    </am:SWModel>"

Output model (after model migration):

    <am:Amalthea xmlns:am="http://app4mc.eclipse.org/amalthea/0.7.0" xmlns:xmi="http://www.omg.org/XMI">
      <swModel>
        <labels />
      </swModel>
    </am:Amalthea>

Below are the changes in the reference names:

Variable Name (version APP4MC 0.7.0) | Changed Variable Name (version APP4MC 0.7.1) | Class containing Variable | AMALTHEA sub model | Model Migration behavior
graphEntries | items | ModeSwitchEntry | SW Model | xml tag “graphEntries” present inside “ModeSwitchEntry” object is changed to “items” in amxmi file
value | values | ModeSwitchEntry | SW Model | xml tag “value” present inside “ModeSwitchEntry” object is changed to “values” in amxmi file

Below are the changes in the reference Types:

Variable Name | Variable Type (version APP4MC 0.7.0) | Variable Type (version APP4MC 0.7.1) | Class containing Variable | AMALTHEA sub model | Model Migration behavior
size | Long | DataSize | MemoryType | HW Model, PropertyConstraintsModel | Attribute “size” is migrated as “DataSize” object. Long value of “size” is migrated to “value” of DataSize. As the DataSizeUnit info is not available, “unit” value is not set
size | DataUnit | DataSize | AbstractElementMemoryInformation | SW Model | “size” of type “DataUnit” is migrated as “DataSize” object. Int value of “numberBits” attribute is migrated to “value” of DataSize, “unit” attribute is set as “bit” of type DataSizeUnit
size | DataUnit | DataSize | BaseTypeDefinition | SW Model | “size” of type “DataUnit” is migrated as “DataSize” object. Int value of “numberBit” attribute is migrated to “value” of DataSize, “unit” attribute is set as “bit” of type DataSizeUnit
frequency | EInt | Frequency | Quartz | SW Model | Attribute “frequency” of type EInt is migrated as “Frequency” object. “frequency” EInt value is migrated to “value” EDouble of DataSize. As the FrequencyUnit info is not available, “unit” value is not set

Below references are removed:

Variable Name | Variable Type | Class containing Variable | AMALTHEA sub model | Model Migration behavior
size | DataUnit | Section | SW Model | Content is removed from the model as size can’t be specified for “Section” (considered as virtual memory section)
labels | [0-*] Label | Section | SW Model | Content is removed from the model. As per APP4MC 0.7.1 semantics, Label object has the association to the Section inside which it can be allocated
runEntities | [0-*] Runnable | Section | SW Model | Content is removed from the model. As per APP4MC 0.7.1 semantics, Runnable object has the association to the Section inside which it can be allocated
groupingType | RunnableGroupingType | ProcessRunnableGroup | Constraints Model | Content is removed from the model
entries | [0-*] ProcessRunnableGroupEntry | ProcessRunnableGroup | Constraints Model | Content is removed from the model. Runnable object belonging to the ProcessRunnableGroupEntry is associated to the runnables list contained at the ProcessRunnableGroup object
default | EBoolean | ModeSwitchEntry | SW Model | Content removed from the model. If several ModeSwitchEntry objects contain attribute “default” as “true”, then first ModeSwitchEntry which has “default” as “true” is converted to “ModeSwitchDefault” object

Below Classes are removed:

Class Name | AMALTHEA sub model | Model Migration behavior
SchedulerPairingConstraint | Constraints Model | Content is removed from the model. There is no equivalent of this model element in APP4MC 0.7.1
SchedulerSeparationConstraint | Constraints Model | Content is removed from the model. There is no equivalent of this model element in APP4MC 0.7.1
ProcessRunnableGroupEntry | Constraints Model | This element is removed from the model, but the Runnables associated to it are associated to ProcessRunnableGroup object
OrderConstraint | Constraints Model | Content is removed from the model. There is no equivalent of this model element in APP4MC 0.7.1
AgeConstraint | Constraints model | Content is migrated as EventChainLatencyConstraint element with LatencyType as "Age"
ReactionConstraint | Constraints model | Content is migrated as EventChainLatencyConstraint element with LatencyType as "Reaction"
SynchronisationConstraint | Constraints model | Content is migrated as EventSynchronizationConstraint element
SectionMapping | Mapping Model | Content is removed from the model. As per 0.7.1, there is a possibility to specify PhysicalSectionMapping element i.e. defining mapping of various Section elements to Memory
SectionMappingConstraint | Property Constraints Model | Content is removed from the model.As per 0.7.1, there is a possibility to specify PhysicalSectionConstraint element i.e. defining possibility of Section allocation across various Memories
DataUnit | Sw model | Content is migrated as DataSize. Attribute “unit” is set as DataSizeUnit of type "bit"