package Metamodel; package BusinessEntityModel { class DataType { } class Action { } class Class { } abstract class BusinessEntityPropertySet extends DataType { } abstract class BusinessRole extends Action { !ordered ref BusinessEntityPropertySet[1] characterisedby; !ordered ref Class[1] typ; !ordered ref Task[*]#associatedWith task; !ordered ref BusinessEntity[+]#placehold fille; } class Task { !ordered ref BusinessRole[+]#task associatedWith; !ordered ref ArtifactRole[*] needs; } class ArtifactRole extends BusinessRole { } class PerformerRole extends BusinessRole { !ordered ref Task[1] perform; } class OrganisationalUnit extends BusinessRole { } class BusinessEntity extends Class { !ordered ref BusinessRole[+]#fille placehold; } } package PrimitiveTypes { datatype Boolean : ""; datatype Integer : ""; datatype String : ""; }