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>>

  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>
