OCUP 2 Advanced study materials
OCUP 2 Advanced study resources

OCUP 2 Advanced flashcards

OCUP 2 Advanced · Build recall with a focused review session.

32 cards. Read the term and the definition here. The deck at the top of this page is optional.

MultiplicityElement default
A MultiplicityElement with no explicit bounds has lowerValue 1 and upperValue 1, i.e., exactly one. Setting upperValue to LiteralUnlimitedNatural(*) yields unbounded multiplicity.
Composite aggregation semantics
A Property with aggregation=composite is an owned part; destroying the whole destroys the parts, and the part may have at most one composite owner at a time.
Port isBehavior versus isService
A Port with isBehavior=true is typed by a Behavior and relays requests to it; isService=true exposes the port on the classifier's external boundary for use by clients.
Association navigability
An end is navigable when it is an ownedEnd of the association (or otherwise reachable); non-navigable ends are memberEnds only, meaning no traversal from the opposite class.
Operation parameters
An Operation owns Parameters with direction in, out, inout, or return; at most one return parameter exists and it has direction return and multiplicity 1.
Interaction CombinedFragment operators
CombinedFragment.operator is an enum: seq, alt, opt, loop, par, strict, critical, ignore, consider, assert, break. Each fragment owns InteractionOperands guarded by InteractionConstraints.
Message sorts in Interaction
Message kinds: synchronous call (CallOperation/CallSignal with reply), asynchronous signal, create, delete, and reply. Each Message connects a send and receive event.
StateMachine transition anatomy
A Transition has a trigger (Event), a guard (Constraint), and an effect (Behavior). Compound transitions have a compoundTransition with multiple segments and a tail.
Include versus Extend
Include makes the source use case always execute the target. Extend adds optional behavior to the target at an ExtensionPoint when the extension's condition holds.
Activity token semantics
Activity execution moves tokens through ObjectFlow and ControlFlow edges; an ActivityNode fires when its input pins hold sufficient tokens and offers tokens on its outputs.
Pin subtypes
InputPin, OutputPin, and ValuePin (an InputPin with a constant value) are ObjectNodes on actions. ValuePin supplies a ValueSpecification instead of an incoming edge.
TemplateBinding and substitution
A TemplateBinding binds a TemplateSignature's parameters to actual elements via ParameterSubstitution (either a Classifier or an actual Parameter), producing a bound element.
Redefinition constraints
RedefinableElement.redefinedElement links a feature to the one it replaces; isLeaf=true forbids further redefinition; redefinitionContext names the classifier where redefinition applies.
Package merge semantics
PackageMerge combines the contents of the merged package into the receiving package using a merge transformation, distinct from PackageImport, which merely makes names visible.
Component interface realization
A Component realizes provided Interfaces via InterfaceRealization and depends on required Interfaces via Usage. Ports typed by interfaces expose these contracts.
Constraint and OpaqueExpression
Constraint specifies a condition via a ValueSpecification, commonly OpaqueExpression with body and language. Constraints attach to Namespaces, Classifiers, Operations, and Properties.
MOF four-layer stack
M3 is the MOF metamodel, M2 a user metamodel (e.g., UML), M1 a model, and M0 runtime instances. A UML Class is an M2 instance of the M3 metaclass Class.
MOF reflection API
MOF Reflection exposes Factory, Object, and Property. Object.getMetaClass() returns the metaclass, and isInstanceOfType() tests metamodel conformance at runtime.
EMOF restrictions
Essential MOF forbids multiple inheritance of classes, association classes, derived unions, and non-containing opposite ends; it requires single containment and mandatory opposites for XMI.
fUML Locus and Executor
A Locus provides execution services; an Executor hosts one or more Loci. Activity executions, objects, and events live in a locus during fUML execution.
fUML EventDispatchLoop
The EventDispatchLoop dequeues events (Signal, Call, Time, Change) and dispatches them to waiting objects or active classes, driving asynchronous behavior in fUML.
fUML ObjectActivation
An ObjectActivation holds FIFO offers of tokens for an object and accepts incoming offers, enabling fUML object flow semantics for activity execution.
fUML base types
fUML defines Integer, Boolean, String, UnlimitedNatural, and Real as primitive types with literal and operation semantics used by executable activities.
StructuredActivityNode firing
A StructuredActivityNode fires as one action: it takes tokens on input pins, executes its contained nodes to completion, then offers results on output pins.
ExpansionRegion modes
An ExpansionRegion has mode iterative, parallel, or stream; it executes its contained activity once per element of an input collection and collects outputs.
ALF textual action language
ALF is a textual syntax whose statements map to fUML Activities. It supports expressions, control flow, and namespaces, and maps to UML Activity nodes.
ALF assignment mapping
An ALF assignment to a feature maps to AddStructuralFeatureValueAction or ClearStructuralFeatureAction; assignment to a local variable maps to WriteVariableAction.
ALF statement to node mapping
Each ALF statement maps to a StructuredActivityNode or a single Action; sequencing between statements produces ControlFlow edges in the generated Activity.
UML Profile extension
A Profile extends UML via Stereotype, Extension (with required flag), and TaggedValue. A Stereotype is a Class whose metaclass extensions restrict where it applies.
MOF conformance test
A metamodel conforms to MOF when every element is an instance of a MOF metaclass and all MOF constraints (containment, opposites) hold for the M1 model.
fUML conformance requirement
An execution engine conforms to fUML when it implements token-based activity semantics, the EventDispatchLoop, and the specified primitive type behaviors exactly.
Stereotype application syntax
A stereotype is applied to an element via Extension; the application carries tagged values as Property instances of the stereotype, shown as name-value pairs.