Current Z.151 Metamodel

For version 2 of the URN standard (October 2012), see Z151Metamodel2012.

Z.151 Metamodel

This page contains the URN/Z.151 metamodel (version 1, 2008) in a form compatible with the draft Z.111 meta-metamodel and independent from jUCMNav's implementation. The start point was the jUCMNav metamodel version 0.19 (Feb. 14th, 2008) to which an extensive set of modifications was done to align it with Z.111 and to separate the abstract syntax metamodel from the concrete syntax metamodel.

A new set of more intuitive diagrams is also provided.

Download the latest version (September 2, 2008)

  • URN-20080902.zip: Draft Z.151 metamodel, in zipped Rose EE format (September 2, 2008)
  • Documentation in HTML (for people who do not have access to Rose)
  • All documentation as a ZIP file

Older versions:

Important Notes

  • Classes in gray and their associations and attributes are part of the concrete syntax metamodel, whereas the classes in white are part of both the abstract syntax and concrete syntax metamodels.
  • Diagrams whose names end with Abstract are for the abstract syntax metamodel, whereas those that end with Concrete extend the abstract syntax metamodel with additional classes and relationships (associations, inheritance, and aggregations) to produce the concrete syntax metamodel.
  • Diagrams whose names end with Unused are not being used in the Z.151 URN standard document; they are just included for information.
  • "Nat" data type is for natural numbers (Z.111 meta-metamodel), and "String" is a presentation of the Z.111 Token data type.

XML Schema

The following is an XML schema generated from the metamodel via Eclipse's EMF tools. This schema is used as the interchange format of Z.151 models.

Modifications (September 2, 2008)

  • Removed "None" default value from waitType attribute in Wait metaclass.

Modifications (August 31, 2008)

Associations
  • Component to Component: includedComponents instead of includedComponent
  • Component to Component: includingComponents instead of includingComponent
  • Component to Component: includingComponents 0..* instead of 0..1
  • ScenarioDef to StartPoint: startPoints are ordered
  • ScenarioDef to ScenarioDef: includedScenarios are ordered
  • ScenarioDef to ScenarioGroup: association instead of composition
  • ScenarioDef to ScenarioGroup: groups instead of group
  • ScenarioDef to ScenarioGroup: groups 1..* instead of 1
UCM performance
  • Refined Workload class with 6 new subclasses (ClosedWorkload, OpenWorkload, OWPoisson, OWPeriodic, OWUniform, OWPhaseType)
  • Removed ArrivalKind enumeration
  • Added TimeUnit enumeration
  • Set default value of multiplicity attribute to 1 in GeneralResource
Others
  • Removed String initializations
  • added composition between UCMspec and ScenarioDef
  • added new diagrams and several others to make the naming scheme a more consistent

Modifications (August 5, 2008)

  • Deleted attribute Other from ComponentKind
  • Deleted attribute None from WaitKind
  • Deleted attribute threshold to NodeConnection
  • Deleted attribute Other from DeviceKind
  • Modified attribute synchronization of Stub to synchronizing
  • Modified multiplicity of "in" role (PluginBinding - InBinding) from 1..*"to 0..*
  • Modified multiplicity of "out" role (PluginBinding - OutBinding) from 1..* to 0..*
  • Modified multiplicity of "label" role (ActorRef - Label) from 0..1 to 1
  • Modified multiplicity of "label" role (GRLNode - Label) from 0..1 to 1

Modifications (July 31, 2008)

  • Added inheritance from LinkRef to GRLmodelElement
  • Deleted BeliefLink metaclass
  • Modified z attribute of Position metaclass (renamed y)
  • Modified hostDemand attribute in RespRef metaclass from Nat to String (now an Integer expression)
  • Modified Stub - PluginBinding composition. Multiplicity on the Stub side changed from 0..1 to 1.
  • Modified EvaluationStrategy - StrategiesGroup association. Multiplicity on the StrategiesGroup side changed from 1 to 1..*.
  • Modified enumerations of WaitKind: Transient instead of Failure, Persistent instead of Abort
  • Replaced compositions between ScenarioDef and Start / EndPoint with associations
  • Modified navigability of composition: LinkRef - LinkRefBendpoint (not navigable from LinkRefBendpoint)
  • Modified navigability of association: Actor - CollapsedActorRef (navigable in both directions)
  • Modified navigability of compositions: Condition, NodeConnection, LinkRef, GRLNode, PathNode, ActorRef, ComponentRef - Label (not navigable from Label)
  • Modified navigability of compositions: UCMmap / GRLGraph - Comment (not navigable from Comment)
  • Modified navigability of association: Timer - NodeConnection (navigable in both directions)
  • Modified navigability of associations: ScenarioDef - Start / EndPoint (not navigable from Start / EndPoint)
  • Modified navigability of compositions: NodeConnection / PluginBinding / StartPoint / EndPoint / Concern / ScenarioDef (2x) - Condition (not navigable from Condition)
  • Modified most diagrams (by hiding attributes of metaclasses presented elsewhere).

Modifications (July 28, 2008)

  • Deleted Actor-Actor association (includedActors-!includingActors)
  • Deleted ActorRef-!ActorRef association (parent-children)
  • Deleted composition from URNlink to Metadata (already handled by URNmodelElement)
  • Modified GRLNode-Size association to a composition.
  • Added several diagrams (partial views for the Z.151 standard)

Modifications (July 25, 2008)

These modifications reflect discussions at the University of Toronto (July 22) and a proposal for UCM 2.0 more aligned with workflow languages.
  • URN
    • Added inheritance from URNlink to URNmodelElement
    • Added metaclass Comment, with compositions from UCMmap and GRLGraph
    • Added metaclass DataType, with subclasses Integer, Boolean, and Enumeration (SDL-like types for URN)
    • Deleted NextGlobalID attribute from ConcreteURNSpec metaclass
  • GRL
    • Added curved attribute to LinkRef metaclass
    • Moved the showAsMeansEnd attribute of ConcreteURNspec to new ConcreteGRLspec metaclass
    • Added composition from metaclass GRLNode to metaclass Size
    • Modified the includingActor[0..1] attribute of metaclass Actor to includingActors[0..*]
  • UCM
    • Modified waitType:String attribute in Wait metaclass to waitType:WaitKind
    • Added WaitKind enumeration
    • Deleted ScenarioStartPoint metaclass, and added composition between ScenarioDef and StartPoint
    • Deleted ScenarioEndPoint metaclass, and added composition between ScenarioDef and EndPoint
    • Deleted replicationFactor attribute componentRef
    • Modified the replicationFactor attribute type in PluginBinding to String (expression, not a constant)
    • Modified the replicationCount attribute type in RespRef to String (expression, not a constant)
    • Deleted attributes pointcut and repetitionCount from the Stub metaclass
    • Modified type attribute in Variable metaclass; type : DatatypeKind="Boolean"
    • Added DatatypeKind enumeration

Modifications (April 17, 2008)

  • Replaced boolean (attributes) with Boolean
  • Replaced int with Nat in some cases for the abstract syntax (multiplicity, replicationFactor, etc.), and int with Integer for the others and for the concrete syntax (deltaX, deltaY…). More in line with Z.111.
  • Replaced double with Nat for probabilities
  • Replaced some String with Nat where it made sense (e.g., replication factor)
  • Removed BeliefLink class (beliefs are now only intentional elements)

Modifications (April 11, 2008)

  • Added Actor (0..1) - IntentionalElement (0..*) association

Modifications (April 8, 2008)

  • Deleted (all phased out according to January 2008 meeting):
    • transaction attribute in PluginBinding
    • role attribute in ComponentRef
    • slot attribute in Component
    • shared attribute in Stub
  • Fixed Description class with a description attribute of type String (not Sring)

  • Deleted UCMdefinition (ucmdefinition 1) - Concern (concerns 0..*) aggregation (fixed issue with concerns that were only linked to diagrams)
  • Deleted Concern (concern 0..1) - UCMmap (ucmMaps 0..*) association
  • Deleted Concern (concern 0..1) - GRLGraph (grlGraphs 0..*) association
  • Added URNspec (urnspec 1) - Concern (concerns 0..*) aggregation
  • Added Concern (concern 0..1) - URNmodelElement (elements 0..*) association

  • In enumeration class DecompositionType, renamed Ior as IOR and Or as XOR (to clearly distinguish them)

  • Moved containment of Responsibility, Component, and ComponentType from UCMdefinition to UCMspec and deleted UCMdefinition (UCMdefinition has become useless)

  • Association between NodeConnection and PathNode now shown in diagrams
  • Refactored diagrams to better separate abstract syntax classes from concrete syntax classes and to avoid redundancy in the classes and their relationships.

Modifications (March 30, 2008)

Packages

  • Flattened all packages and removed them (Z.111 has no packages).

Abstract classes

  • Made Label, PathNode, UCMmodelElement, GRLmodelElement, URNmodelElement, GeneralResource, ActiveResource, GRLLinkableElement concrete classes (Z.111 has no abstract class concept).

Visibility

  • Removed visibility for all attributes and association ends (Z.111 has no visibility concept)

KPI Classes

  • Deleted KPI-related classes (with associations): Indicator, IndicatorGroup, KPIInformationElement, KPIInformationElementRef, KPIModelLink, KPIModelLinkRef, KPIEvalValueSet, KPIInformationConfig (as discussed in the January meeting, this part was removed because it is not mature enough yet).

GRL Contribution Changes Classes

  • Deleted classes ContributionChange, ContributionContext, and ContributionContextGroup, with their associations (following discussions with the Toronto group, this addition from February has not been implemented and will not be mature enough for inclusion in the first Z.151 release).

Interfaces and Labels

The following is a long list of model refactoring transformations aimed to remove interfaces (not supported in Z.111) and factor out label information (labels are a concrete syntax concept)

  • Added Actor (actorDef 1) - ActorRef (actorRefs 0..*) association
  • Added Component (compDef 1) - ComponentRef (actorRefs 0..*) association
  • Deleted IURNContainer (contDef 1) - IURNContainerRef (contRefs 0..*) association
  • Deleted IURNContainer interface

  • Deleted IURNContainerRef (0..1) - ComponentLabel (1) aggregation
  • Added ComponentRef (compRef 0..1) - Label (label 1) aggregation
  • Added ActorRef (actorRef 0..1) - Label (label 1) aggregation
  • Deleted ComponentLabel class

  • Added ComponentRef (parent 0..1) - ComponentRef (children 0..*) association
  • Added ActorRef (parent 0..1) - ActorRef (children 0..*) association
  • Deleted IURNContainerRef (parent 0..1) - IURNContainerRef (children 0..*) association

  • Added Concern (concern 0..1) - UCMMap (ucmMaps 0..*) association
  • Added Concern (concern 0..1) - GRLGraph (grlGraphs 0..*) association
  • Deleted Concern (concern 0..1) - IURNDiagram (specDiagrams 0..*) association

  • Added PathNode (pathNode 0..1) - Label (label 0..1) aggregation
  • Added GRLNode (grlNode 0..1) - Label (label 0..1) aggregation
  • Deleted IURNNode (node 1) - NodeLabel (label 0..1) aggregation
  • Deleted NodeLabel class

  • Added LinkRef (linkRef 0..1) - Label (label 0..1) aggregation
  • Added NodeConnection (nodeCon 0..1) - Label (label 0..1) aggregation (Note: did not add it for BeliefLink. Unused.)
  • Deleted IURNNodeConnection (node 1) - Connectionlabel (label 0..1) aggregation
  • Deleted Connectionlabel class

  • Added UCMmap (diagram 1) - PathNode (nodes 0..*) aggregation
  • Added GRLGraph (diagram 1) - GRLNode (nodes 0..*) aggregation
  • Deleted IURNDiagram (diagram 1) - IURNNode (nodes 0..*) aggregation

  • Added UCMmap (diagram 1) - NodeConnection (connections 0..*) aggregation
  • Added GRLGraph (diagram 1) - LinkRef (connections 0..*) aggregation
  • Added BeliefLink --> ElementLink inheritance
  • Deleted BeliefLink --> IURNConnection inheritance
  • Deleted IURNDiagram (diagram 1) - IURNConnection (connections 0..*) aggregation

  • Added PathNode (target 1) - NodeConnection (pred 0..*) association
  • Added PathNode (source 1) - NodeConnection (succ 0..*) association
  • Added GRLNode (target 1) - LinkRef (pred 0..*) association
  • Added GRLNode (source 1) - LinkRef (succ 0..*) association
  • Deleted IURNNode (target 1) - IURNConnection (pred 0..*) association
  • Deleted IURNNode (source 1) - IURNConnection (succ 0..*) association

  • Deleted LinkRef --> IURNConnection inheritance
  • Deleted NodeConnection --> IURNConnection inheritance
  • Deleted IURNConnection interface

  • Added temporary URNdefinition (urndefinition 1) - UCMmap (ucmMaps 0..*) aggregation
  • Added temporary URNdefinition (urndefinition 1) - GRLGraph (grlGraphs 0..*) aggregation
  • Deleted URNdefinition (urndefinition 1) - IURNDiagram (specDiagrams 0..*) aggregation

  • Added UCMMap (diagram 1) - ComponentRef (contRefs 0..*) aggregation
  • Added GRLGRaph (diagram 1) - ActorRef (contRefs 0..*) aggregation
  • Deleted IURNDiagram (diagram 1) - IURNContainerRef (contRefs 0..*) aggregation
  • Deleted IURNDiagram interface (with 2 inheritance from UCMmap and GRLGraph)

  • Added ActorRef (contRef 0..1) - GRLNode (nodes 0..*) association
  • Added ComponentRef (contRef 0..1) - PathNode (nodes 0..*) association
  • Deleted IURNContainerRef (contRef 0..1) - IURNNode (nodes 0..*) association
  • Deleted IURNContainerRef interface (with 2 inheritance from ComponentRef and ActorRef)
  • Deleted IURNNode interface (with 2 inheritance from PathNode and GRLNode)

GRL

  • Deleted criticality and priority attributes from IntentionalElementRef
  • Removed Priority and Criticality enumerations (Criticality and Priority have been replaced by Importance)

  • Replaced Indicator with Belief in IntentionalElementType enumeration
  • Deleted the Belief class (Following a discussion with Toronto, belief are now back as intentional elements. They can perform contributions too. Belief links (used for comments) will be kept too)

  • Added Ior (inclusive OR) to the DecompositionType enumeration (Need to distinguish exclusive OR (default) from new inclusive or)

URNdefinition --> UCMdefinition

The URNdefinition class was mainly UCM definitions + UCM maps + GRL diagrams, and the later should no longer be there. Refactored to include UCM definitions only. GRL diagrams are moved up to GRL spec and UCM maps to UCM spec.
  • Deleted temporary URNdefinition (urndefinition 1) - GRLGraph (grlGraphs 0..*) aggregation
  • Added GRLspec (grlspec 1) - GRLGraph (grlGraphs 0..*) aggregation
  • Deleted temporary URNdefinition (urndefinition 1 ) - UCMmap (ucmMaps 0..*) aggregation
  • Added UCMspec (ucmspec 1 ) - UCMmap (ucmMaps 0..*) aggregation

  • Renamed URNdefinition class as UCMdefinition
  • Renamed all association ends connected to UCMdefinition as ucmdefinition

  • Deleted URNspec (urnspec 1) - UCMdefinition (ucmdefinition 1) aggregation
  • Added UCMspec (ucmspec 1) - UCMdefinition (ucmdefinition 1) aggregation

Others

  • Deleted orientation attribute from classes OrFork, AndFork, OrJoin, and AndJoin
  • Renamed Ressource as Resource in IntentionalElementType enumeration
  • Deleted author attributed from EvaluationStrategy class
  • Deleted anchored attribute from class ComponentRef
  • Deleted empty attribute from class Responsibility

Layout (Concrete Syntax)

The following transformations allowed the introduction of layout/style information contained in the original interfaces and classes as new classes connected to the abstract syntax metamodel via association, inheritance, and aggregation/

  • Added class ConcreteStyle with attributes lineColor, fillColor, and filled.

  • Deleted attributes lineColor, fillColor, and filled from class IntentionalElement
  • Added IntentionalElement (elem 0..1) - ConcreteStyle (style 0..1) aggregation
  • Added Actor (actor 0..1) - ConcreteStyle (style 0..1) aggregation
  • Added Component (component 0..1) - ConcreteStyle (style 0..1) aggregation

  • Factored out all attributes but name from class URNspec as ConcreteURNspec
  • Added URNspec (urnspec 1) - ConcreteURNspec (info 0..1) aggregation

  • Factored out description attribute from class URNmodelElement as Description
  • Added URNspec (urnspec 1) - Description (desc 0..1) aggregation

  • Factored out description and label attributes from class Condition as ConcreteCondition
  • Added Condition (condition 1) - ConcreteCondition (desc 0..1)

  • Deleted Condition --> Label inheritance (An abstract syntax class cannot depend on an a concrete syntax class)
  • Added Condition (condition 0..1) - Label (label 0..1)
  • Changed multiplicity of label role to 0..1 in aggregations from ComponentRef and ActorRef (so an abstract syntax model still remains a valid concrete syntax model)

  • Added class Size with attributes width and height
  • Added ActorRef (actorRef 0..1) - Size (size 1) aggregation
  • Added ComponentRef (compRef 0..1) - Size (size 1) aggregation

  • Added class Position with attributes x and y
  • Added ActorRef (actorRef 0..1) - Position (pos 1) aggregation
  • Added GRLNode (grlNode 0..1) - Position (pos 1) aggregation
  • Added PathNode (pathNode 0..1) - Position (pos 1) aggregation

Issues

  • The main remaining issue to solve (by Gunter very likely) here is related to the concept of "concern". We have been able to separate entirely GRL diagrams from the underlying model, which is quite useful as diagrams simply become views of the model and can overlap in a numbers of way to improve scalability and understandability. However, a concern is a group of UCM and GRL diagrams. UCM maps are still part of the abstract syntax metamodel (as such separation is neither desirable nor easily feasible) but GRL graphs are suddenly only available in the concrete syntax metamodel.
    • Fixed in April 08 version: concerns now connect URNmodelElements instead of diagrams. More generic and can be tailored in a number of ways afterwards.

Known Bugs

To be fixed in the next version:
  • An association between Actor (0..1) and IntentionalElement (0..*) is missing.

-- DanielAmyot - 31 Mar 2008
Topic attachments
I Attachment Action Size Date Who Comment
URN-20080330.mdlmdl URN-20080330.mdl manage 938 K 31 Mar 2008 - 09:51 DanielAmyot Draft Z.151 metamodel, in Rose EE format
Urn20080330XMI.xsdxsd Urn20080330XMI.xsd manage 44 K 31 Mar 2008 - 10:33 DanielAmyot XML schema corresponding to Z.151 draft metamodel
URN-20080408.mdlmdl URN-20080408.mdl manage 875 K 08 Apr 2008 - 15:49 DanielAmyot Draft Z.151 metamodel, in Rose EE format (April 8, 2008)
URN-20080411.mdlmdl URN-20080411.mdl manage 857 K 11 Apr 2008 - 16:36 DanielAmyot Draft Z.151 metamodel, in Rose EE format (April 11, 2008)
Urn20080411XMI.xsdxsd Urn20080411XMI.xsd manage 44 K 11 Apr 2008 - 17:19 DanielAmyot XML schema (April 11, 2008)
URN-20080417.mdlmdl URN-20080417.mdl manage 871 K 22 Apr 2008 - 23:56 DanielAmyot Draft Z.151 metamodel, in Rose EE format (April 17, 2008)
URN-20080725.mdlmdl URN-20080725.mdl manage 897 K 25 Jul 2008 - 11:16 DanielAmyot Draft Z.151 metamodel, in Rose EE format (July 25, 2008)
URN-20080728.mdlmdl URN-20080728.mdl manage 933 K 28 Jul 2008 - 17:17 DanielAmyot Draft Z.151 metamodel, in Rose EE format (July 28, 2008)
URN-20080731.zipzip URN-20080731.zip manage 72 K 31 Jul 2008 - 20:32 DanielAmyot Draft Z.151 metamodel, in zipped Rose EE format (July 31, 2008)
URN-20080805.zipzip URN-20080805.zip manage 73 K 06 Aug 2008 - 07:17 DanielAmyot Draft Z.151 metamodel, in zipped Rose EE format (August 5, 2008)
URN-20080831.zipzip URN-20080831.zip manage 105 K 01 Sep 2008 - 01:06 DanielAmyot Draft Z.151 metamodel, in zipped Rose EE format (August 31, 2008)
URN-20080902.zipzip URN-20080902.zip manage 105 K 10 Sep 2008 - 00:34 DanielAmyot Draft Z.151 metamodel, in zipped Rose EE format (September 2, 2008)
Topic revision: r18 - 18 Sep 2013, DanielAmyot
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Foswiki? Send feedback