OCUP 2 Intermediate · OMG · Updated October 2026
OCUP 2 Intermediate practice questions
Original & expert-reviewed · explanation for every option · no dumps
Practise OCUP 2 Intermediate with original, expert-reviewed questions — each with an explanation for every option, linked to the source, across the full exam blueprint. No dumps, no ads, 6 free to start.
Free: 6 questions in study mode, no card. Full OCUP 2 Intermediate bank with mock exams and the error log: $15 one-time, or every exam with All-Access for $19/mo or $119/yr.
What makes these different from dumps
📚 An explanation for every option
Not just the right answer — why each wrong option is wrong, linked to the source. Wrong answers teach the most.
⏱️ Timed mocks at the real pace
Sit timed runs at the real OCUP 2 Intermediate pace (90 questions in 105 minutes on the real exam) on all 30 questions in the bank today, and get a readiness report by area.
↻ Spaced-repetition error log
Every miss comes back on a 1 → 3 → 7 → 16-day schedule, so the fixes actually stick.
🔖 Original & reviewed
Every question is written to test the concepts and reviewed before it ships — never copied or leaked “dumps”.
Try 10 real OCUP 2 Intermediate questions — free, no sign-up
A representative slice of the bank: all coverage areas, mixed difficulty (hard ones included). Answers are one tap away — no email wall.
1/10 · Activities & Actions
In an order activity, the output pin order of 'Receive Order' has two outgoing object flows: one to the input pin of 'Ship Order' and one to the input pin of 'Send Invoice'. Each of these input pins is the only input of its action, and neither action is executing. 'Receive Order' completes and places one Order object on its output pin. What happens next?
ABoth actions start, each with its own copy of the Order.
BOne of the two actions starts, and the other one does not.
CThe Order stays on the pin, and neither action starts.
DThe model is ill-formed and has no defined run-time effect.
Show answer & explanation
B is correct. 15.4.3.1 Object Nodes (PDF p. 439): tokens held by an ObjectNode may leave the node on outgoing ActivityEdges, but a token may traverse only one of the outgoing edges; pins are the ObjectNodes that actions use for their inputs and outputs (15.2.3.2, PDF p. 417). The same subclause 15.2.3.2 states that a token offered to multiple ActivityNodes at the same time shall be accepted by at most one of them, and exactly which one is not completely determined by the Activity flow semantics. If both 'Ship Order' and 'Send Invoice' must get the Order, the flow is split with a ForkNode, the control node that splits a flow into multiple concurrent flows (15.3.3.3, PDF p. 430).
↗ OMG UML 2.5.1 specification
2/10 · Basic Structure
In a class model, ShipmentPlanner has a binary association to Depot, with multiplicity 1 at the Depot end, and a «use» dependency on RouteOptimizer. A reviewer asks which of these two relationships says anything about ShipmentPlanner objects at run time. According to UML 2.5.1, which one does?
ABoth the association and the «use» dependency.
BThe «use» dependency, but not the Depot association.
CThe association to Depot, but not the «use» dependency.
DNeither the association nor the «use» dependency.
Show answer & explanation
C is correct. 7.7.3.1 Dependency (PDF p. 80): the presence of Dependency relationships has no runtime semantic implications, because their semantics are given in terms of the participating NamedElements, not their instances; 7.7.3.2 adds that a Usage does not specify how the client uses the supplier. An Association, by contrast, declares that there can be links between instances of the associated types, and the multiplicity of an end constrains the number of linked instances (11.5.3.1, PDF pp. 241-242).
↗ OMG UML 2.5.1 specification
3/10 · Interactions
A communication diagram for checkout labels one message '2.1a: reserveStock()' on the link to :Warehouse and another '2.1b: chargeCard()' on the link to :Bank. How should the relative order of these two messages be read?
AAs concurrent threads: the calls proceed independently
BAs consecutive steps: reserveStock() before chargeCard()
CAs alternative branches: one of the two messages gets sent
DAs nested calls: chargeCard() inside the reserveStock() activation
Show answer & explanation
A is correct. Subclause 17.9.1.3 (PDF p. 642) defines each sequence term as an integer or a name: integers give the sequential order within the next higher level of procedural calling, while a name represents a concurrent thread of control, so Message 3.1a and Message 3.1b are concurrent within activation 3.1. A recurrence '*[...]' is an iteration assumed to run sequentially unless written '*||', and '[guard]' marks a branch (PDF pp. 642-643).
↗ OMG UML 2.5.1 specification
4/10 · StateMachines & Use Cases
In a library model's containment tree, use case Renew Loan is owned directly by package Circulation. On a use case diagram, Renew Loan is drawn inside a rectangle labeled «Subsystem» SelfServiceKiosk, with actor Member outside it. Is the diagram consistent with the containment tree?
AInconsistent: the rectangle makes SelfServiceKiosk owner and subject of Renew Loan
BConsistent: the rectangle is a layout aid that shows neither owner nor subject
CInconsistent: SelfServiceKiosk, as subject of Renew Loan, has to own it as well
DConsistent: the rectangle shows a subject of the use case, but not an owner
Show answer & explanation
D is correct. Subclause 18.1.4 (PDF p. 684) notes that the subject rectangle does not imply that the subject classifier owns the contained UseCases, but merely that the UseCases apply to that classifier; ownership by a Classifier can be shown instead by nesting the ellipse in a separate compartment of the owner. Subclause 18.1.3.1 (PDF p. 682) adds that a UseCase may be owned either by a Package or by a Classifier, and that an owning Classifier is not necessarily a subject, while UseCase::subject holds the subjects to which the UseCase applies (18.2.5, PDF p. 691). The diagram therefore agrees with the containment tree.
↗ OMG UML 2.5.1 specification
5/10 · Components
The «executionEnvironment» node KioskOS has an internal structure consisting of one part, checkout : CheckoutApp, where CheckoutApp is a component. How does UML 2.5.1 judge this part?
AValid: the part shows that CheckoutApp runs within KioskOS
BValid, provided an artifact manifesting CheckoutApp is deployed there
CInvalid: the parts of a node have to be typed by other nodes
DInvalid: an execution environment cannot have internal structure
Show answer & explanation
C is correct. 19.4.3 Semantics (PDF p. 700): Nodes may have complex internal structure defined by nesting, but the internal structure of Nodes can only consist of other Nodes. The Node constraint internal_structure (19.5.10.6, PDF p. 707) states that the internal structure of a Node consists solely of parts of type Node, and ExecutionEnvironment specializes Node (19.5.8.3, PDF p. 706), so the constraint applies to KioskOS. Component specializes Class alone (11.8.6.3, PDF p. 266), so a part typed by CheckoutApp breaks it. Components reach an execution environment by being deployed on it in the form of executable artifacts (19.5.8.1, PDF p. 706), and an Artifact may embody, or manifest, a number of model elements (19.3.3, PDF p. 699).
↗ OMG UML 2.5.1 specification
6/10 · Common Behavior
Class InvoiceStore is drawn with an extra vertical bar on each side of its rectangle. Class PaymentListener is drawn as a plain rectangle and keeps the default value of isActive. The receptions compartment of each class lists a reception for the signal InvoicePaid. Which of these reception declarations does UML 2.5.1 allow?
ABoth declarations, one in each class
BOnly the declaration in InvoiceStore
COnly the declaration in PaymentListener
DNeither declaration, each still lacking a method
Show answer & explanation
B is correct. Sub clause 13.2.3.5 (PDF p. 331) states that, of the different kinds of BehavioredClassifiers in UML, only Classes may have BehavioralFeatures and only active Classes may have Receptions, and the Class constraint passive_class (11.8.3.8, PDF p. 264) repeats this for Classes as an invariant. isActive defaults to false (11.8.3.5, PDF p. 263), and a Class with isActive = true can be shown with an additional vertical bar on either side (11.4.4, PDF p. 237), so only InvoiceStore may declare the reception. No method is needed for that: a MessageEvent for a Reception without methods is saved in the event pool and handled by a matching Trigger in the receiver's Behavior (13.3.3.2, PDF p. 334).
↗ OMG UML 2.5.1 specification
7/10 · Structured Classifiers
Active class Downloader has as its classifier behavior a state machine with a single region. After a file is saved, that region reaches its final state and the state machine execution completes. A moment later, another object calls getProgress() on the Downloader instance. What is the condition of that Downloader object?
AIt lives on as a passive object serving calls
BIt stays idle in the final state, awaiting events
CIt restarts its state machine from the beginning
DIt is already terminated along with that run
Show answer & explanation
D is correct. Sub clause 11.4.3.1 (PDF p. 237) defines an active object as one that starts executing its classifierBehavior as a direct consequence of its creation and does not cease until either the complete Behavior is executed or the object is terminated by some external object. It adds that if the classifierBehavior of an active object completes, the object is terminated, so the Downloader has already been terminated when getProgress() is called.
↗ OMG UML 2.5.1 specification
8/10 · Classification
Class Ticket has two subclasses, PaperTicket and MobileTicket, grouped in one generalization set. The only label next to the set is {complete}, and no other constraint is defined for it. Which statement holds for Ticket instances under this model?
AEach Ticket is a PaperTicket, a MobileTicket, or both
BEach Ticket is exactly one of PaperTicket and MobileTicket
CA Ticket may be one of the two or neither, not both
DA Ticket may be neither, one of the two, or both
Show answer & explanation
A is correct. Sub clause 9.7.3 (PDF pp. 161-162) defines isCovering as every instance of the general Classifier being an instance of at least one specific Classifier, and isDisjoint as no instance of one specific Classifier also being an instance of another, with both properties false by default. Sub clause 9.7.4 (PDF p. 163) gives the default values {incomplete, overlapping} and states that if only one constraint is shown, the other takes its default value. {complete} alone therefore means complete and overlapping: every Ticket is a PaperTicket, a MobileTicket, or both.
↗ OMG UML 2.5.1 specification
9/10 · Activities & Actions · hard
An order activity has an interruptible activity region, drawn as a dashed rounded box around 'Pick Items' and 'Pack Items'. The accept event action 'Cancel Received' lies inside the box, with an interrupting edge to 'Refund'; the accept event action 'Address Changed' lies outside the box. Neither accept event action has incoming edges. From the initial node, the flow runs through 'Check Stock' to 'Pick Items' and on to 'Pack Items'. Shortly after the activity starts, while 'Check Stock' is still running, a Cancel signal and an AddressChange signal both arrive. Which accept event actions accept their signal at that moment?
A'Address Changed' accepts its signal, but 'Cancel Received' does not.
BBoth 'Cancel Received' and 'Address Changed' accept their signals.
C'Cancel Received' accepts its signal, but 'Address Changed' does not.
DNeither 'Cancel Received' nor 'Address Changed' accepts its signal.
Show answer & explanation
A is correct. 15.6.3.2 Interruptible Activity Regions (PDF p. 450): AcceptEventActions in the region that have no incoming edges are enabled only when a token enters the region, even if that token is not directed at them. Outside a region, 16.10.3.1 Accept Event Action (PDF p. 515) applies: an AcceptEventAction without incoming edges is enabled when its immediately containing activity begins execution. While 'Check Stock' is still running, no token has entered the region, so only 'Address Changed' is waiting for its signal.
↗ OMG UML 2.5.1 specification
10/10 · Activities & Actions · hard
In an order activity, 'Approve Order' is followed by a fork node with two outgoing control flows. One leads to 'Send Confirmation'. The other carries the guard [paymentReceived] and leads to 'Ship Order'. Neither action has any other incoming edge or is already running. When 'Approve Order' completes and the fork offers its token, paymentReceived is false; a minute later it becomes true. What happens on the branch to 'Ship Order'?
A'Ship Order' receives the token once paymentReceived becomes true.
BNeither action starts until paymentReceived becomes true.
C'Ship Order' does not receive the token and does not start.
DThe model is ill-formed: guards belong on edges leaving decision nodes.
Show answer & explanation
C is correct. 15.3.3.3 Fork Nodes (PDF p. 430): tokens offered to a ForkNode are offered on all its outgoing edges, and once at least one offer is accepted, the tokens are removed from their source and the acceptor receives a copy. An offer that a target fails to accept remains pending on its edge and may be accepted later; an outgoing edge that fails to accept because of its guard, rather than its target, receives no copy of those tokens. Per 15.2.3.3 Activity Edges (PDF p. 418), a guard is evaluated for each token offered to the edge, and guards are allowed on any ActivityEdge. When paymentReceived turns true, no token is left on that edge to pass, so 'Ship Order' does not run for this order. The same subclause on fork nodes advises that no downstream JoinNode should depend on tokens passing through such a guarded edge.
↗ OMG UML 2.5.1 specification
Covering all coverage areas
The bank spans the whole OCUP 2 Intermediate blueprint, weighted toward what the exam tests most:
Start practising OCUP 2 Intermediate free
6 free questions in study mode · no card · full OCUP 2 Intermediate bank: $15 one-time · no dumps, no ads.
Start OCUP 2 Intermediate free →
OCUP 2 Intermediate practice — FAQ
Do I need OCUP 2 Foundation before taking OCUP 2 Intermediate?
Yes. OMG's exam info sheet lists a passing score on the UML 2 Foundation exam as the prerequisite for Intermediate, and Intermediate is in turn the prerequisite for the OCUP 2 Advanced exam.
How is OCUP 2 Intermediate different from OCUP 2 Foundation?
Foundation's weights follow diagram types (class, activity, sequence, state machine and others) plus 'Why We Model', and it covers the most-used subset of UML. OCUP 2 Intermediate is weighted by areas of the UML 2.5.1 specification (chapters 7-20) and adds elements used in larger models: ports and structured classifiers, components and deployment, protocol state machines, communication diagrams and expansion regions. It is shorter (105 vs 120 minutes) and its pass mark is lower (51 of 90 vs 60 of 90).
Why does Pearson VUE show EDM Association when I book OCUP 2 Intermediate?
EDM Association completed its acquisition of the Object Management Group's assets on 1 October 2025, and Pearson VUE now lists the program as EDMA-Certified Unified Modeling Language Professional 2 (OCUP 2). The exam keeps its OMG code, OMG-OCUP2-INT200, and the official exam info sheet is still published on omg.org.
How many questions is the OCUP 2 Intermediate exam and how long is it?
90 multiple-choice questions (text and UML diagram images) in 105 minutes, or 135 minutes outside native English-speaking countries, taken at a Pearson VUE test centre or online with OnVUE.
What is the passing score for OCUP 2 Intermediate?
The passing score is 51 of 90 questions (about 57%). Aim for a consistent 80–85% on realistic practice exams before booking.
What is the OCUP 2 Intermediate pass rate?
OMG does not publish official pass rates, so any exact percentage quoted online is unverified. The readiness signal that actually predicts passing: consistently holding 80–85% on realistic, full-length practice exams before you book.
What are the OCUP 2 Intermediate eligibility requirements?
A passing score on the OCUP 2 Foundation (UML 2 Foundation) exam is required: OMG lists it as the prerequisite for Intermediate. No course is required: OMG-accredited training is optional and self-preparation with the exam info sheet is allowed. OMG aims Intermediate at model builders working on complex, larger system models; Intermediate is in turn the prerequisite for OCUP 2 Advanced.
How much does OCUP 2 Intermediate cost?
The exam fee is US$350 plus taxes per attempt (charged in the regional currency equivalent), paid when you book through Pearson VUE. If you fail, your score report includes a 20% discount code for the retake. OMG also lists discounts that cannot be combined: 25% if your organisation is an EDM Association, OMG, AREA or DTC member, 20% for military personnel (active, guard, reserve) and veterans, and 15% for INCOSE members and for students or academic instructors. Cancel more than 24 hours before the appointment for a full refund; later cancellations forfeit the fee (verified on omg.org, 15 Oct 2026).
Does the OCUP 2 Intermediate certification need recertification?
Expires 3 years after the exam date; extend it by passing the same or a higher-level OMG UML exam (OCUP 2 Advanced), US$350 per exam (OMG UML 2 Intermediate exam info sheet, checked 15 Oct 2026).
Are ExamDeck's OCUP 2 Intermediate questions exam dumps?
No — every question is original, written to test the concepts and reviewed before it ships, with an explanation linked to the source for every option. Dumps are stale, often wrong, and against OMG's policies.
ExamDeck is an independent study tool, not affiliated with, endorsed by, or sponsored by OMG. OCUP 2 Intermediate and related marks are trademarks of their respective owners, used for identification only. Exam facts checked against official OMG materials (as of October 2026); always confirm current details with the vendor before booking.