Based on the changes in AMALTHEA meta model across various releases, below description contains the differences in detail which are considered for model migration:
Below are the changes in the meta model from ITEA 1.1.0 version to ITEA 1.1.1
| AMALTHEA Namespace (version ITEA 1.0.3) | AMALTHEA Namespace (verison ITEA 1.1.0) |
| http://www.amalthea.itea2.org/model/1.1.0/sw | http://www.amalthea.itea2.org/model/1.2.0/sw |
| http://www.amalthea.itea2.org/model/1.1.0/stimuli | http://www.amalthea.itea2.org/model/1.2.0/stimuli |
| http://www.amalthea.itea2.org/model/1.1.0/propertyconstraints | http://www.amalthea.itea2.org/model/1.2.0/propertyconstraints |
| http://www.amalthea.itea2.org/model/1.1.0/os | http://www.amalthea.itea2.org/model/1.2.0/os |
| http://www.amalthea.itea2.org/model/1.1.0/mapping | http://www.amalthea.itea2.org/model/1.2.0/mapping |
| http://www.amalthea.itea2.org/model/1.1.0/hw | http://www.amalthea.itea2.org/model/1.2.0/hw |
| http://www.amalthea.itea2.org/model/1.1.0/events | http://www.amalthea.itea2.org/model/1.2.0/events |
| http://www.amalthea.itea2.org/model/1.1.0/constraints | http://www.amalthea.itea2.org/model/1.2.0/constraints |
| http://www.amalthea.itea2.org/model/1.1.0/config | http://www.amalthea.itea2.org/model/1.2.0/config |
| http://www.amalthea.itea2.org/model/1.1.0/common | http://www.amalthea.itea2.org/model/1.2.0/common |
| http://www.amalthea.itea2.org/model/1.1.0/central | http://www.amalthea.itea2.org/model/1.2.0/central |
| http://amalthea.itea2.org/model/1.1.0/components | http://amalthea.itea2.org/model/1.2.0/components |
| Class name in 1.0.3 | Changed Class name in 1.1.0 | Amalthea sub-model |
| DeadlineMonotinic | DeadlineMonotonic | OS |
| Variable Name (version ITEA 1.0.3) | Class containing Variable | AMALTHEA sub model | how migration is done from 1.0.3 models to 1.1.0 |
| scheduler | OSModel | OS model | “scheduler” elements contained inside OSModel element are converted into TaskScheduler elements in the following way:
|
| read, write | LabelAccessStatistic | Software model | “read” elements contained inside LabelAccessStatistic element are removed and “write” elements are replaced by tag name “value” based on the following criteria :
“write” elements contained inside LabelAccessStatistic element are removed and “read” elements are replaced by tag name “value” based on the following criteria :
|
| Variable Name (version ITEA 1.0.3) | Changed Variable Name (version ITEA 1.1.0) | Class containing Variable | AMALTHEA sub model | how migration is done from 1.0.3 models to 1.1.0 |
| readCacheMisses | cacheMisses | LabelAccessStatistic | Software model | “readCacheMisses” is changed to “cacheMisses” in all the places where LabelAccessStatistic definition is present |
| executableAllocation | processAllocation, runnableAllocation | MappingModel | Mapping model | Based on the content of the “executableAllocation”, accordingly either “processAllocation” or “runnableAllocation” elements are created and the corresponding data of “exeuctableAllocation” is mapped.
Below are the criterions :
|
Below are the changes in the meta model from ITEA 1.1.0 version to ITEA 1.1.1
| AMALTHEA Namespace (version ITEA 1.1.0) | AMALTHEA Namespace (version ITEA 1.1.1) |
| http://www.amalthea.itea2.org/model/1.2.0/sw | http://www.amalthea.itea2.org/model/1.3.0/sw |
| http://www.amalthea.itea2.org/model/1.2.0/stimuli | http://www.amalthea.itea2.org/model/1.3.0/stimuli |
| http://www.amalthea.itea2.org/model/1.2.0/propertyconstraints | http://www.amalthea.itea2.org/model/1.3.0/propertyconstraints |
| http://www.amalthea.itea2.org/model/1.2.0/os | http://www.amalthea.itea2.org/model/1.3.0/os |
| http://www.amalthea.itea2.org/model/1.2.0/mapping | http://www.amalthea.itea2.org/model/1.3.0/mapping |
| http://www.amalthea.itea2.org/model/1.2.0/hw | http://www.amalthea.itea2.org/model/1.3.0/hw |
| http://www.amalthea.itea2.org/model/1.2.0/events | http://www.amalthea.itea2.org/model/1.3.0/events |
| http://www.amalthea.itea2.org/model/1.2.0/constraints | http://www.amalthea.itea2.org/model/1.3.0/constraints |
| http://www.amalthea.itea2.org/model/1.2.0/config | http://www.amalthea.itea2.org/model/1.3.0/config |
| http://www.amalthea.itea2.org/model/1.2.0/common | http://www.amalthea.itea2.org/model/1.3.0/common |
| http://www.amalthea.itea2.org/model/1.2.0/central | http://www.amalthea.itea2.org/model/1.3.0/central |
| http://amalthea.itea2.org/model/1.2.0/components | http://amalthea.itea2.org/model/1.3.0/components |
| Variable Name (version ITEA 1.1.0) | Changed Variable Name (version ITEA 1.1.1) | Class containing Variable | AMALTHEA sub model | how migration is done from 1.1.0 models to 1.1.1 |
| tagName | name | Tag | Software model, Components model | attribute “tagName” is changed to “name” in all the places where Tag definition is present |
| elements | components, systems | ComponentsModel | Components model |
|
| elements | connectors, componentInstances | System | Components model |
|
| maximumCyle | maximumCycle | DataAgeCycle | Constraints model | attribute “maximumCyle” is changed to “maximumCycle” in all the places where DataAgeCycle definition is present |
| setLabelsList | setModeValueList | Stimulus | Stimuli model | XML node name is set as "setModeValueList" |
| enablingLabelsList | enablingModeValueList | Stimulus | Stimuli model | XML node name is set as "enablingModeValueList" |
| disablingLabelsList | disablingModeValueList | Stimulus | Stimuli model | XML node name is set as "disablingModeValueList" |
| Variable Name (version ITEA 1.1.0) | Class containing Variable | AMALTHEA sub model | how migration is done from 1.1.0 models to 1.1.1 |
| deadline | Task, ISR, ProcessPrototype | Software model | “deadline” specified at the Process, ProcessPrototype is converted into a constraint element in the following way:
|
| initialValue | Label | Software model | Initial value attribute is removed from all the Label objects |
| Enum Name | Default value (version ITEA 1.1.0) | Default value (version ITEA 1.1.1) | AMALTHEA sub model | Behaviour model migration to migrated 1.1.0 models to 1.1.1 |
| TimeUnit | ps | _undefined_ | Common model | Attribute “unit” with value as “ps” is created (when it is missing in the input model) -> for all the XMI tags where TimeUnit defintion should be present |
| InterfaceKind | PROVIDES | _undefined_ | Components model | Attribute “kind” with value as “PROVIDES” is created (when it is missing in the input model) -> for all the XMI tags where InterfaceKind defintion should be present |
| RunnableOrderType | successor | _undefined_ | Constraints model | Attribute “orderType” with value as “successor” is created (when it is missing in the input model)-> for all the XMI tags where RunnableOrderType defintion should be present |
| RunnableGroupingType | allOfThem | _undefined_ | Constraints model | Attribute “groupingType” with value as “allOfThem” is created (when it is missing in the input model)-> for all the XMI tags where RunnableGroupingType defintion should be present |
| QType | DYNAMIC | _undefined_ | Hardware model | Attribute “type” with value as “DYNAMIC” is created (when it is missing in the input model)-> for all the XMI tags where QType defintion should be present |
| MemoryType | RAM | _undefined_ | Hardware model | Attribute “type” with value as “RAM” is created (when it is missing in the input model)-> for all the XMI tags where MemoryType defintion should be present |
| BusType | CAN | _undefined_ | Hardware model | Attribute “busType” with value as “CAN” is created (when it is missing in the input model)-> for all the XMI tags where BusType defintion should be present |
| RWType | R | _undefined_ | Hardware model | Attribute “direction” with value as “R” is created (when it is missing in the input model)-> for all the XMI tags where RWType defintion should be present |
| SchedType | RROBIN | _undefined_ | Hardware model | Attribute “schedPolicy” with value as “RROBIN” is created (when it is missing in the input model)-> for all the XMI tags where SchedType defintion should be present |
| PinType | ANALOG | _undefined_ | Hardware model | Attribute “type” with value as “ANALOG” is created (when it is missing in the input model)-> for all the XMI tags where PinType defintion should be present |
| FeatureType | floatingPointUnit | _undefined_ | Hardware model | Attribute “value” with value as “floatingPointUnit” is created (when it is missing in the input model)-> for all the XMI tags where FeatureType defintion should be present |
| MemoryAddressMappingType | none | _undefined_ | Mapping model | Attribute “addressMappingType” with value as “none” is created (when it is missing in the input model)-> for all the XMI tags where MemoryAddressMappingType defintion should be present |
| ComparatorType | equal | _undefined_ | Property Constraints model | Attribute “comparator” with value as “equal” is created (when it is missing in the input model)-> for all the XMI tags where ComparatorType defintion should be present |
| ConjunctionType | and | _undefined_ | Property Constraints model | Attribute “conjunction” with value as “and” is created (when it is missing in the input model)-> for all the XMI tags where ConjunctionType defintion should be present |
| WaitEventType | AND | _undefined_ | Software model | Attribute “maskType” with value as “AND” is created (when it is missing in the input model)-> for all the XMI tags where WaitEventType defintion should be present |
| WaitingBehaviour | unspecified | _undefined_ | Software model | In sw:WaitEvent/ sw:SynchronousServerCall / sw:SynchronousServerCall -> if attribute “waitingBehaviour” is with value as “unspecified”, then attribute “waitingBehaviour” and its value are removed in the XML, so that the default value for “waitingBehaviour” as per 1.1.1 : "_ unspecified _" is consisdered |
| AccessPrecedenceType | ignoreWR | _undefined_ | Software model | Attribute “orderType” with value as “ignoreWR” is created (when it is missing in the input model)-> for all the XMI tags where AccessPrecedenceType defintion should be present |
| OrderType | order | _undefined_ | Software model | Attribute “orderType” with value as “order” is created (when it is missing in the input model)-> for all the XMI tags where OrderType defintion should be present |
| LabelAccessEnum | read | _undefined_ | Software model | Attribute “access” with value as “read” is created (when it is missing in the input model)-> for all the XMI tags where LabelAccessEnum defintion should be present |
| SemaphoreAccessEnum | request | _undefined_ | Software model | Attribute “accessEnum” with value as “request” is created (when it is missing in the input model)-> for all the XMI tags where SemaphoreAccessEnum defintion should be present |
| Preemption | cooperative | _undefined_ | Software model | Attribute “preemption” with value as “cooperative” is created (when it is missing in the input model)-> for all the XMI tags where Preemption defintion should be present |
| Enum/Class Name | Namespace (version ITEA 1.1.0) | Namespace (version ITEA 1.1.1) | Behaviour model migration to migrated 1.1.0 models to 1.1.1 |
| SchedulingSWUnit | sw | os | Attribute “xsi:type” of XML node of TaskScheduler/InterruptController is updated to "os:SchedulingSWUnit" |
!! For LabelValueEntry migration to be successful, it is mandatory to have SW-Model in the same model file. In case SW-Model is not present, migration of LabelValueEntry objects will not be performed.
Below are the changes in the meta model from ITEA 1.1.1 version to APP4MC 0.7.0
<ports xsi:type="am:ComplexPort" name="Mem_1_port" bitWidth="16" direction="R" writeCycles="10" readCycles="10"/>
<am:HWModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.7.0"/>
<Element Name>?type=<NameSpace prefix>.<ElementClassName>
<Element Name>?type=<ElementClassName>
| Class name from 1.1.1 | Changed Class name in 0.7.0 |
| OSEvent | OsEvent |
| MemType | MemoryType |
| System | HwSystem |
| Component | HwComponent |
| Port | HwPort |
| AbstractionTypeDescription | AbstractionType |
| MemoryType | MemoryTypeEnum |
| OSInstructions | OsInstructions |
| Periodic | PeriodicActivation |
| Variable Name (version ITEA 1.1.1) | Changed Variable Name (version APP4MC 0.7.0) | Class containing Variable | AMALTHEA sub model |
| isMaster | master | ComplexPort | Hardware model |
| mem | memory | Mapping | Mapping model |
| memTypeDefinitions | memoryTypeDefinitions | PropertyConstraintsModel | Property Constraints model |
| isDefault | default | ModeSwitchEntry | Software model |
| isBuffered | buffered | Label | Software model |
| isBuffered | buffered | LabelAccess | Software model |
| accessEnum | access | SemaphoreAccess | Software model |
| isBuffered | buffered | SenderReceiverCommunication | Software model |
| isOrdered | ordered | Group | Software model |
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" |
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) |
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 |
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 referrable child EventChain elements. |
|
| Quartz | Hardware Model | Quartz is not extending ComplexNode class. In addition below are the other changes w.r.t. Quartz:
|
|
| 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 defintion and references in amxmi file |
| InterProcess | Stimuli model | This class is renamed to InterProcessStimulus. Element type is updated at both defintion and references in amxmi file |
| Periodic | Stimuli model | This class is renamed to PeriodicStimulus. Element type is updated at both defintion and references in amxmi file |
| PeriodicEvent | Stimuli model | This class is renamed to VariableRateStimulus. Element type is updated at both defintion and references in amxmi file |
| Single | Stimuli model | This class is renamed to SingleStimulus. Element type is updated at both defintion and references in amxmi file |
| Sporadic | Stimuli model | This class is renamed to SporadicStimulus. Element type is updated at both defintion and references in amxmi file |
| Synthetic | Stimuli model | This class is renamed to SyntheticStimulus. Element type is updated at both defintion and references in amxmi file |
| InterProcessActivation | SW model | This class is renamed to InterProcessTrigger. Element type is updated at both defintion 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 |
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 |