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..*>>
    Reference deliverablePartsExclude : WorkProduct<<0..*>>

  Class Descriptor -> BreakdownElement
    Attribute isSynchronizedWithSource : Boolean<<1..1>>
    Reference guidanceExclude : Guidance<<0..*>>
    Reference guidanceAdditional : Guidance<<0..*>>

  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..*>>
    Reference responsibleForExclude : WorkProduct<<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 additionallyPerformedByExclude : Role<<0..*>>
    Reference mandatoryInputExclude : WorkProduct<<0..*>>
    Reference optionalInputExclude : WorkProduct<<0..*>>
    Reference outputExclude : WorkProduct<<0..*>>
    Reference selectedStepsExclude : Section<<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>
