AMALTHEA metamodel changes (detailed transformation description)

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

Version ITEA 1.0.3 to ITEA 1.1.0

Below are the changes in the metamodel 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:
  • OperatingSystem element is created and associated to the OSModel element (Note: OperatingSystem class is newly introduced in 1.1.0)
  • All the Scheduler elements present inside the OSModel element are moved to the OperatingSystem element as TaskScheduler’s
  • All the places where Scheduler elements were referred earlier, are updated so as to refer corresponding TaskScheduler element
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 :
  • If the LabelAccess element containing LabelAccessStatistic ->contains the access as “write”, then all the “read” elements of LabelAccessStatistic are removed

“write” elements contained inside LabelAccessStatistic element are removed and “read” elements are replaced by tag name “value” based on the following criteria :
  • If the LabelAccess element containing LabelAccessStatistic ->contains the access as “read”, then all the “write” elements of LabelAccessStatistic are removed
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 :
  • If “executableAllocation” consists of Task element and Scheduler mapping then - > “ProcessAllocation” of type “mapping:TaskAllocation” is created
  • If “executableAllocation” consists of ISR element and Scheduler mapping then - > “ProcessAllocation” of type “mapping:ISRAllocation” is created, and to it corresponding ISR element and “InterruptController” element are associated ( Note:If there is a mapping to “ISR” and “Scheduler” in “executableAllocation”, InterruptController element is created and referred in the “executableAllocation”. In this case previous mapping to the Scheduler element is lost)
  • If “executableAllocation” consists of Runnable element and Scheduler mapping then - > “RunnableAllocation” of type “mapping:RunnableAllocation” is created

Version ITEA 1.1.0 to ITEA 1.1.1

Below are the changes in the metamodel 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
  1. XML child elements of ComponentsModel having name as “elements” and attribute “xsi:type” as either “components:Component” or “components:Composite” are changed to "components"
  2. XML child elements of ComponentsModel having name as “elements” and attribute “xsi:type” as “components:System” are changed to “systems”
elements connectors, componentInstances System Components model
  1. XML child elements of System having name as “elements” and attribute “xsi:type” as “components:Connector” are changed to "components"
  2. XML child elements of ComponentsModel having name as “elements” and attribute “xsi:type” as “components:ComponentInstance” are changed to “componentInstances”
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:
  • with the name of corresponding Process/ProcessPrototype -> ProcessRequirement object is created and the object of Process/ProcessPrototype is linked to it
  • TimeRequirement object is created with the following properties and associated to the created ProcessRequirement:
    1. limitType as upperlimit
    2. metric as responsetime
    3. SignedTime elment is created with the following properties and associated to the TimeRequirement element : value and unit - > values for these elements are fetched from the “deadline” object available at Process/ProcessPrototype
  • once the required content from the “deadline” element of Process/ProcessPrototype is fetched, “deadline” is removed
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"
LabelSwitchEntry (present in Software model)
Class is removed in ITEA 1.1.1, and as replacement following Class is introduced: "ModeSwitchEntry"
LabelSwitch (present in Software model)
Class is removed in ITEA 1.1.1, and as replacement following Class’s are introduced: "ModeSwitch, ModeLabel"
LabelValueEntry (present in Stimuli model)
Class is removed in ITEA 1.1.1, and as replacement following Class is introduced: "ModeValueListEntry"

Version ITEA 1.1.1 to App4MC 0.7.0

Below are the changes in the metamodel from ITEA 1.1.1 version to APP4MC 0.7.0

Class name from 1.1.1 Changed Class name in 0.7.0
OSEvent OsEvent
MemType MemoryType
System HwSystem
Component HwComponent
Port HwPort
AbstractionType AbstractionTypeDescription
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

Version App4MC 0.7.0 to App4MC 0.7.1

Below are the changes in the metamodel 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 behaviour
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 behaviour
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 behaviour
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 behaviour
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"