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.