Model Uma

This model description is not a real EMF artifact. It was generated by the
org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's
code generator can be extended.
This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false.

Package uma <http://www.eclipse.org/epf/uma/1.0.6/uma.ecore>

  Class Classifier -> Type
    Attribute isAbstract : Boolean<<1..1>>

  Class Type -> PackageableElement

  Class PackageableElement -> NamedElement

  Class NamedElement -> Element
    Attribute name : String

  Class Element

  Class Package -> Namespace, PackageableElement

  Class Namespace -> NamedElement

  Class Constraint -> MethodElement
    Attribute body : String

  Class MethodElement -> PackageableElement
    Attribute guid : String
    Attribute presentationName : String
    Attribute briefDescription : String
    Reference ownedRules : Constraint<<0..*>>
    Reference methodElementProperty : MethodElementProperty<<0..*>>
    Reference kind : Kind<<0..*>>
    Attribute suppressed : Boolean<<1..1>>
    Attribute orderingGuide : String

  Class MethodElementProperty -> PackageableElement
    Attribute value : String

  Class Kind -> ContentElement
    Reference applicableMetaClassInfo : ApplicableMetaClassInfo<<0..*>>

  Class ContentElement -> DescribableElement, VariabilityElement
    Reference supportingMaterials : SupportingMaterial<<0..*>>
    Reference conceptsAndPapers : Concept<<0..*>>
    Reference checklists : Checklist<<0..*>>
    Reference guidelines : Guideline<<0..*>>
    Reference examples : Example<<0..*>>
    Reference assets : ReusableAsset<<0..*>>
    Reference termdefinition : TermDefinition<<0..*>>

  Class DescribableElement -> MethodElement, Classifier
    Reference presentation : ContentDescription
    Attribute shapeicon : Uri
    Attribute nodeicon : Uri

  Class ContentDescription -> MethodUnit
    Attribute mainDescription : String
    Reference sections : Section<<0..*>>
    Attribute externalId : String
    Attribute keyConsiderations : String
    Attribute longPresentationName : String<<1..1>>

  Class MethodUnit -> MethodElement
    Attribute authors : String
    Attribute changeDate : Date
    Attribute changeDescription : String
    Attribute version : String
    Reference copyrightStatement : SupportingMaterial

  Class SupportingMaterial -> Guidance

  Class Guidance -> ContentElement

  Class Section -> VariabilityElement
    Attribute sectionName : String
    Attribute sectionDescription : String
    Reference subSections : Section<<0..*>>
    Reference predecessor : Section

  Class VariabilityElement -> MethodElement
    Attribute variabilityType : VariabilityType<<1..1>>
    Reference variabilityBasedOnElement : VariabilityElement<<1..1>>

  Class Concept -> Guidance

  Class Checklist -> Guidance

  Class Guideline -> Guidance

  Class Example -> Guidance

  Class ReusableAsset -> Guidance

  Class TermDefinition -> Guidance

  Class ApplicableMetaClassInfo -> Classifier
    Attribute isPrimaryExtension : Boolean<<1..1>>

  Class Artifact -> WorkProduct
    Reference containerArtifact : Artifact
    Reference containedArtifacts : Artifact<<0..*>>

  Class WorkProduct -> ContentElement, FulfillableElement
    Reference reports : Report<<0..*>>
    Reference templates : Template<<0..*>>
    Reference toolMentors : ToolMentor<<0..*>>
    Reference estimationConsiderations : EstimationConsiderations<<0..*>>

  Class FulfillableElement -> DescribableElement
    Reference fulfills : FulfillableElement<<0..*>>

  Class Report -> Guidance

  Class Template -> Guidance

  Class ToolMentor -> Guidance

  Class EstimationConsiderations -> Guidance

  Class Deliverable -> WorkProduct
    Reference deliveredWorkProducts : WorkProduct<<0..*>>

  Class Outcome -> WorkProduct

  Class Step -> Section, WorkDefinition

  Class WorkDefinition -> MethodElement
    Reference precondition : Constraint
    Reference postcondition : Constraint

  Class Whitepaper -> Concept

  Class Task -> ContentElement, WorkDefinition
    Reference performedBy : Role<<0..*>>
    Reference mandatoryInput : WorkProduct<<0..*>>
    Reference output : WorkProduct<<0..*>>
    Reference additionallyPerformedBy : Role<<0..*>>
    Reference optionalInput : WorkProduct<<0..*>>
    Reference /steps : Step<<0..*>>
    Reference toolMentors : ToolMentor<<0..*>>
    Reference estimationConsiderations : EstimationConsiderations<<0..*>>

  Class Role -> ContentElement, FulfillableElement
    Reference /modifies : WorkProduct<<0..*>>
    Reference responsibleFor : WorkProduct<<0..*>>

  Class ArtifactDescription -> WorkProductDescription
    Attribute briefOutline : String
    Attribute representationOptions : String
    Attribute representation : String
    Attribute notation : String

  Class WorkProductDescription -> ContentDescription
    Attribute purpose : String
    Attribute impactOfNotHaving : String
    Attribute reasonsForNotNeeding : String

  Class DeliverableDescription -> WorkProductDescription
    Attribute externalDescription : String
    Attribute packagingGuidance : String

  Class RoleDescription -> ContentDescription
    Attribute skills : String
    Attribute assignmentApproaches : String
    Attribute synonyms : String

  Class TaskDescription -> ContentDescription
    Attribute purpose : String
    Attribute alternatives : String

  Class GuidanceDescription -> ContentDescription
    Attribute attachments : String

  Class PracticeDescription -> ContentDescription
    Attribute additionalInfo : String
    Attribute problem : String
    Attribute background : String
    Attribute goals : String
    Attribute application : String
    Attribute levelsOfAdoption : String

  Class RoleSet -> ContentCategory
    Reference roles : Role<<0..*>>

  Class ContentCategory -> ContentElement

  Class Domain -> ContentCategory
    Reference workProducts : WorkProduct<<0..*>>
    Reference subdomains : Domain<<0..*>>

  Class WorkProductType -> ContentCategory
    Reference workProducts : WorkProduct<<0..*>>

  Class DisciplineGrouping -> ContentCategory
    Reference disciplines : Discipline<<0..*>>

  Class Discipline -> ContentCategory
    Reference tasks : Task<<0..*>>
    Reference subdiscipline : Discipline<<0..*>>
    Reference referenceWorkflows : Activity<<0..*>>

  Class Activity -> WorkBreakdownElement, FulfillableElement, VariabilityElement, WorkDefinition
    Reference breakdownElements : BreakdownElement<<0..*>>
    Reference roadmaps : Roadmap<<0..*>>

  Class WorkBreakdownElement -> BreakdownElement
    Attribute isRepeatable : Boolean<<1..1>>
    Attribute isOngoing : Boolean<<1..1>>
    Attribute isEventDriven : Boolean<<1..1>>
    Reference linkToPredecessor : WorkOrder<<0..*>>

  Class BreakdownElement -> ProcessElement
    Attribute prefix : String
    Attribute isPlanned : Boolean<<1..1>>
    Attribute hasMultipleOccurrences : Boolean<<1..1>>
    Attribute isOptional : Boolean<<1..1>>
    Reference presentedAfter : BreakdownElement
    Reference presentedBefore : BreakdownElement
    Reference planningData : PlanningData
    Reference superActivities : Activity<<1..1>>
    Reference checklists : Checklist<<0..*>>
    Reference concepts : Concept<<0..*>>
    Reference examples : Example<<0..*>>
    Reference guidelines : Guideline<<0..*>>
    Reference reusableAssets : ReusableAsset<<0..*>>
    Reference supportingMaterials : SupportingMaterial<<0..*>>
    Reference templates : Template<<0..*>>
    Reference reports : Report<<0..*>>
    Reference estimationconsiderations : EstimationConsiderations<<0..*>>
    Reference toolmentor : ToolMentor<<0..*>>

  Class ProcessElement -> DescribableElement

  Class PlanningData -> ProcessElement
    Attribute startDate : Date<<1..1>>
    Attribute finishDate : Date<<1..1>>
    Attribute rank : Integer<<1..1>>

  Class WorkOrder -> ProcessElement
    Attribute linkType : WorkOrderType<<1..1>>
    Reference pred : WorkBreakdownElement<<1..1>>

  Class Roadmap -> Guidance

  Class Tool -> ContentCategory
    Reference toolMentors : ToolMentor<<0..*>>

  Class RoleSetGrouping -> ContentCategory
    Reference roleSets : RoleSet<<0..*>>

  Class CustomCategory -> ContentCategory
    Reference categorizedElements : DescribableElement<<0..*>>
    Reference subCategories : ContentCategory<<0..*>>

  Class MethodPackage -> MethodElement, Package
    Attribute global : Boolean<<1..1>>
    Reference reusedPackages : MethodPackage<<0..*>>
    Reference childPackages : MethodPackage<<0..*>>

  Class ContentPackage -> MethodPackage
    Reference contentElements : ContentElement<<0..*>>

  Class Milestone -> WorkBreakdownElement
    Reference requiredResults : WorkProductDescriptor<<0..*>>

  Class WorkProductDescriptor -> Descriptor
    Attribute activityEntryState : String
    Attribute activityExitState : String
    Reference WorkProduct : WorkProduct
    Reference impactedBy : WorkProductDescriptor<<0..*>>
    Reference impacts : WorkProductDescriptor<<0..*>>
    Reference deliverableParts : WorkProductDescriptor<<0..*>>

  Class Descriptor -> BreakdownElement
    Attribute isSynchronizedWithSource : Boolean<<1..1>>

  Class Iteration -> Activity

  Class Phase -> Activity

  Class TeamProfile -> BreakdownElement
    Reference teamRoles : RoleDescriptor<<0..*>>
    Reference superTeam : TeamProfile<<1..1>>
    Reference subTeam : TeamProfile<<0..*>>

  Class RoleDescriptor -> Descriptor
    Reference Role : Role
    Reference /modifies : WorkProductDescriptor<<0..*>>
    Reference responsibleFor : WorkProductDescriptor<<0..*>>

  Class TaskDescriptor -> WorkBreakdownElement, Descriptor
    Reference Task : Task
    Reference additionallyPerformedBy : RoleDescriptor<<0..*>>
    Reference assistedBy : RoleDescriptor<<0..*>>
    Reference externalInput : WorkProductDescriptor<<0..*>>
    Reference mandatoryInput : WorkProductDescriptor<<0..*>>
    Reference optionalInput : WorkProductDescriptor<<0..*>>
    Reference output : WorkProductDescriptor<<0..*>>
    Reference performedPrimarilyBy : RoleDescriptor<<0..*>>
    Reference selectedSteps : Section<<0..*>>
    Reference performedPrimarilyByExcluded : Role<<0..*>>
    Reference performedPrimarilyByIncluded : Role<<0..*>>

  Class CompositeRole -> RoleDescriptor
    Reference aggregatedRoles : Role<<0..*>>

  Class DeliveryProcess -> Process
    Reference educationMaterials : SupportingMaterial<<0..*>>
    Reference communicationsMaterials : SupportingMaterial<<0..*>>

  Class Process -> Activity
    Reference includesPatterns : CapabilityPattern<<0..*>>
    Reference defaultContext : MethodConfiguration<<1..1>>
    Reference validContext : MethodConfiguration<<0..*>>

  Class CapabilityPattern -> Process

  Class MethodConfiguration -> MethodUnit
    Reference methodPluginSelection : MethodPlugin<<1..*>>
    Reference methodPackageSelection : MethodPackage<<1..*>>
    Reference processViews : ContentCategory<<0..*>>
    Reference defaultView : ContentCategory<<1..1>>
    Reference baseConfigurations : MethodConfiguration<<0..*>>
    Reference subtractedCategory : ContentCategory<<0..*>>
    Reference addedCategory : ContentCategory<<0..*>>

  Class MethodPlugin -> MethodUnit, Package
    Attribute userChangeable : Boolean<<1..1>>
    Reference methodPackages : MethodPackage<<1..*>>
    Reference bases : MethodPlugin<<0..*>>
    Attribute supporting : EBoolean

  Class ProcessPlanningTemplate -> Process
    Reference basedOnProcesses : Process<<0..*>>

  Class Practice -> Guidance
    Reference subPractices : Practice<<0..*>>
    Reference contentReferences : ContentElement<<0..*>>
    Reference activityReferences : Activity<<0..*>>

  Class BreakdownElementDescription -> ContentDescription
    Attribute usageGuidance : String

  Class ActivityDescription -> BreakdownElementDescription
    Attribute purpose : String
    Attribute alternatives : String
    Attribute howtoStaff : String

  Class DeliveryProcessDescription -> ProcessDescription
    Attribute scale : String
    Attribute projectCharacteristics : String
    Attribute riskLevel : String
    Attribute estimatingTechnique : String
    Attribute projectMemberExpertise : String
    Attribute typeOfContract : String

  Class ProcessDescription -> ActivityDescription
    Attribute scope : String
    Attribute usageNotes : String

  Class DescriptorDescription -> BreakdownElementDescription
    Attribute refinedDescription : String

  Class ProcessComponentDescriptor -> Descriptor
    Reference _processComponent : ProcessComponent<<1..1>>

  Class ProcessComponent -> ProcessPackage, MethodUnit
    Reference interfaces : ProcessComponentInterface<<1..*>>
    Reference process : Process<<1..1>>

  Class ProcessPackage -> MethodPackage
    Reference processElements : ProcessElement<<0..*>>
    Reference diagrams : Diagram<<0..*>>

  Class Diagram -> GraphNode
    Reference diagramLink : DiagramLink<<0..*>>
    Reference namespace : SemanticModelBridge<<1..1>>
    Attribute zoom : Double
    Reference viewpoint : Point<<1..1>>

  Class GraphNode -> GraphElement
    Reference size : Dimension<<1..1>>

  Class GraphElement -> DiagramElement
    Reference contained : DiagramElement<<0..*>>
    Reference position : Point<<1..1>>
    Reference link : DiagramLink<<0..*>>
    Reference anchorage : GraphConnector<<0..*>>
    Reference semanticModel : SemanticModelBridge<<1..1>>

  Class DiagramElement -> MethodElement
    Attribute isVisible : Boolean<<1..1>>
    Reference container : GraphElement
    Reference reference : Reference<<0..*>>
    Reference property : Property<<0..*>>

  Class Reference -> DiagramElement
    Attribute isIndividualRepresentation : Boolean<<1..1>>
    Reference referenced : DiagramElement<<1..1>>

  Class Property -> DiagramElement
    Attribute key : String
    Attribute value : String

  Class Point
    Attribute x : Double<<1..1>>
    Attribute y : Double<<1..1>>

  Class DiagramLink -> DiagramElement
    Attribute zoom : Double<<1..1>>
    Reference viewport : Point<<1..1>>
    Reference diagram : Diagram<<1..1>>
    Reference graphElement : GraphElement<<1..1>>

  Class GraphConnector -> GraphElement
    Reference graphEdge : GraphEdge<<0..*>>
    Reference graphElement : GraphElement<<1..1>>

  Class GraphEdge -> GraphElement
    Reference waypoints : Point<<2..*>>
    Reference anchor : GraphConnector<<2..2>>

  Class SemanticModelBridge -> DiagramElement
    Attribute presentation : String
    Reference diagram : Diagram
    Reference graphElement : GraphElement

  Class Dimension
    Attribute width : Double<<1..1>>
    Attribute height : Double<<1..1>>

  Class ProcessComponentInterface -> BreakdownElement
    Reference interfaceSpecifications : TaskDescriptor<<0..*>>
    Reference interfaceIO : WorkProductDescriptor<<0..*>>

  Class SimpleSemanticModelElement -> SemanticModelBridge
    Attribute typeInfo : String

  Class UMASemanticModelBridge -> SemanticModelBridge
    Reference element : MethodElement<<1..1>>

  Class CoreSemanticModelBridge -> SemanticModelBridge
    Reference element : Element<<1..1>>

  Class LeafElement -> DiagramElement

  Class TextElement -> LeafElement
    Attribute text : String

  Class Image -> LeafElement
    Attribute uri : Uri
    Attribute mimeType : String

  Class GraphicPrimitive -> LeafElement

  Class Polyline -> GraphicPrimitive
    Attribute closed : Boolean<<1..1>>
    Reference waypoints : Point<<2..*>>

  Class Ellipse -> GraphicPrimitive
    Reference center : Point<<1..1>>
    Attribute radiusX : Double<<1..1>>
    Attribute radiusY : Double<<1..1>>
    Attribute rotation : Double<<1..1>>
    Attribute startAngle : Double<<1..1>>
    Attribute endAngle : Double<<1..1>>

  Class ProcessFamily -> MethodConfiguration
    Reference deliveryProcesses : DeliveryProcess<<0..*>>

  Class MethodLibrary -> MethodUnit, Package
    Reference methodPlugins : MethodPlugin<<0..*>>
    Reference predefinedConfigurations : MethodConfiguration<<0..*>>

  Enum VariabilityType
    Literal na = 0
    Literal contributes = 1
    Literal extends = 2
    Literal replaces = 3
    Literal localContribution = 4
    Literal localReplacement = 5
    Literal extendsReplaces = 6

  Enum WorkOrderType
    Literal finishToStart = 0
    Literal finishToFinish = 1
    Literal startToStart = 2
    Literal startToFinish = 3

  DataType String <java.lang.String>

  DataType Boolean <java.lang.Boolean>

  DataType Date <java.util.Date>

  DataType Uri <java.net.URI>

  DataType Set <java.util.Set>

  DataType Sequence <java.util.List>

  DataType Integer <int>

  DataType Double <java.lang.Double>
