OCUP 2 Foundation flashcards
OCUP 2 Foundation · 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.
- Use case diagram purpose
- Shows actors (external users or systems) and the use cases (system capabilities) they interact with, plus include/extend relationships, to capture functional scope from an external viewpoint.
- Activity diagram notation
- Rounded rectangles are actions; diamonds are decisions/merges; bars are forks/joins; solid circle is initial; bullseye is final; arrows show control or object flow.
- State machine transition syntax
- A transition label is written trigger [guard] / effect. The trigger is an event, the guard a boolean condition, and the effect an action executed when the transition fires.
- Sequence diagram lifeline
- A lifeline is drawn as a dashed vertical line under a name:Class or actor; the activation bar on it represents an execution occurrence while a message is being processed.
- Synchronous vs asynchronous message
- In sequence diagrams, a solid arrow with a filled arrowhead is a synchronous call (waits for reply); an open arrowhead is an asynchronous message (no wait). A dashed arrow is a reply.
- Communication diagram numbering
- Messages on links are numbered to express ordering (1, 1.1, 2, 2.1) because the diagram has no time axis; nested numbers show call nesting on the same link.
- Timing diagram notation
- Time runs left to right; horizontal lines show state or value changes of lifelines; a slanted arrow is a message; {d..d} is a duration constraint.
- Interaction overview diagram
- A hybrid diagram whose frames are interaction uses or inline interactions, connected by activity control nodes such as decision, fork, join, initial, and final.
- Behavioral diagram list
- UML 2.5 behavioral diagrams are use case, activity, state machine, and the interaction diagrams: sequence, communication, timing, and interaction overview.
- Class compartment layout
- A class rectangle has three compartments: class name on top, attributes in the middle, operations at the bottom; visibility markers are + public, - private, # protected, ~ package.
- Aggregation vs composition
- Aggregation uses a hollow diamond at the whole and is a weak whole-part relationship; composition uses a filled diamond and implies strong ownership with coincident lifetimes.
- Realization notation
- Realization is a dashed line with a hollow triangle at the target; it links a class to an interface it implements, or a use case to a collaboration that realizes it.
- Component provided/required interface
- A provided interface is drawn as a ball (lollipop) on the component boundary; a required interface is a socket (cup) that receives another component's ball.
- Deployment diagram nodes
- A node is a 3-D box representing hardware or execution environment; artifacts (rectangles with «artifact») are deployed on nodes; communication paths are solid lines between nodes.
- Package import vs merge
- «import» is a dashed arrow that makes public contents of the target package visible; «merge» combines package contents into a single namespace with merge rules.
- Object diagram instance notation
- An instance specification is written name:Class with the whole string underlined; links connect instances and are drawn as solid lines, mirroring associations in a class diagram.
- Composite structure ports
- A port is a small square on the boundary of a classifier; it defines a distinct interaction point; parts inside are roles typed by classifiers and connected by connectors.
- Profile and stereotype
- A profile packages stereotypes; a stereotype extends a metaclass to add domain-specific properties; it is applied to elements as «stereotypeName» above the name.
- Classifier definition
- A classifier is a model element with features that can be generalized; Class, Interface, DataType, Component, Node, and Actor are classifiers in UML.
- Multiplicity syntax
- Multiplicity is lower..upper, e.g., 0..1, 1..*, *; the default is 1; it constrains how many instances may participate at an association end or attribute.
- Operation parameter direction
- Parameters have direction in, out, inout, or return; syntax is direction name: Type [multiplicity] = default; return parameters are shown after a colon on the operation.
- Association end properties
- An association end carries navigability, multiplicity, aggregation kind (none, shared, composite), and a role name; these properties define how instances are linked.
- Constraint and OCL
- A constraint is a boolean expression in braces {…}; OCL (Object Constraint Language) is the standard language; pre/postconditions are written {pre: …} and {post: …}.
- Property metaclass
- Property is the UML metaclass for attributes and association ends; it has type, multiplicity, visibility, and default value, and may be static or derived.
- Generalization relationship
- Generalization is a taxonomic relationship shown by a solid line with a hollow triangle at the parent; the child inherits features and may override operations; multiple inheritance is allowed.
- Comment (note) notation
- A comment is a rectangle with a folded corner containing text; it may be attached to any element by a dashed line and has no semantic effect on the model.
- Abstraction benefit of models
- Models raise the level of abstraction so stakeholders can reason about structure and behavior before code exists; models are cheaper to change than source code.
- Models as communication medium
- Models give analysts, architects, developers, and testers a shared, precise notation, reducing ambiguity in requirements and design discussions across disciplines.
- Model-based analysis
- Models enable consistency checks, traceability from requirements to design, and early detection of design defects before implementation costs are incurred.
- Executable UML
- Executable UML (fUML and action languages) lets models be simulated and validated for behavior before code is written, supporting early verification.
- Model-driven engineering
- MDE/MDA uses models as primary artifacts and applies model-to-model and model-to-text transformations, improving repeatability and reducing manual coding errors.
- When modeling is not justified
- Small, well-understood problems may not need models; the cost/benefit of modeling depends on complexity, team size, and lifecycle, so modeling is not universally required.