What does UML stand for and what is it?
Unified Modeling Language. It is a STANDARDIZED visual language for describing software systems — their structure, behavior, and interactions. It is NOT a development method, just a notation/language.
Who created UML and when?
Grady Booch, James Rumbaugh, and Ivar Jacobson (the ‘Three Amigos’) at Rational Software, starting 1996. UML 1.0 was submitted to OMG in 1997. Current standard: ISO/IEC 19501.
What is a Use Case?
A description of a sequence of actions a system performs that yields a result of value to an Actor. It defines WHAT the system does from the user’s perspective, not HOW it does it.
What is an Actor in UML?
A role played by a person, organization, or external system that interacts with our system. One person can play multiple actor roles. An actor can also be another software system.
What is the difference between include and extend in Use Case diagrams?
INCLUDE: Use case A always calls use case B (mandatory). Example: ‘Login’ always includes ‘Verify Password’. EXTEND: Use case B optionally extends A under certain conditions. Example: ‘Apply Discount’ extends ‘Checkout’.
What is a Use Case Model?
Defines: (1) the system’s context — actors and external systems, (2) the system itself — the use cases. It specifies system behavior in terms of responses to inputs from outside.
What is an Activity Diagram used for?
Modeling workflows and processes. Can represent: business processes, use case scenarios, parallel processing, algorithms, and operations. Shows the FLOW of control or objects through activities.
What is the difference between an Action and an Activity in UML?
ACTION: A basic, atomic operation that cannot be interrupted. ACTIVITY: A composite operation made of other actions/activities. An activity diagram detailing an activity must have the same name.
What is a Decision Node in Activity Diagrams?
A diamond-shaped node where control flow splits based on a condition (guard). Like an if-statement. Control follows ONE path based on the condition. The merge node reunites the paths.
What is a Fork and Join in Activity Diagrams?
FORK: Splits one flow into multiple PARALLEL flows (like starting multiple threads). JOIN: Waits for ALL incoming parallel flows to complete before continuing. Together they model concurrent processing.
What are the 4 main OOP concepts?
What is a Class in OOP?
A blueprint/template that defines the properties (attributes) and behaviors (methods) shared by all objects of that type. Example: ‘Car’ class defines color, speed, drive(), brake().
What is an Object?
A specific INSTANCE of a class with its own data values. Example: myCar = Car(color=’red’, speed=120). Each object has: identity (unique ID), state (attribute values), behavior (methods).
How is a Class shown in a UML Class Diagram?
A rectangle divided into sections: TOP: class name (bold), MIDDLE: attributes (name: type = default), BOTTOM: methods (name(params): returnType). Visibility: + public, - private, # protected.
What is Inheritance in UML Class Diagrams?
Shown as an arrow with a hollow triangle pointing to the PARENT class. The child class inherits all attributes and methods of the parent. Also called ‘generalization’ (going up) or ‘specialization’ (going down).
What is an Association in UML?
A relationship between two classes where objects of one class are related to objects of another. Shown as a line between classes. Has: name, roles, and multiplicity.
What is Multiplicity in UML associations?
Specifies how many objects participate in a relationship. Common notations: 1 (exactly one), * or 0..* (zero or more), 1..* (one or more), 0..1 (zero or one), 2..5 (two to five).
What is the difference between Aggregation and Composition?
AGGREGATION (hollow diamond): ‘has-a’ — parts can exist independently. Example: Department has Employees. COMPOSITION (filled diamond): ‘strong has-a’ — parts cannot exist without the whole. Example: House has Rooms.
What is an Association Class?
A class attached to an association that holds attributes/methods belonging to the RELATIONSHIP itself, not to either participating class. Example: ‘AccessPermission’ between User and File storing permission level.
What is a Qualified Association?
An association with a QUALIFIER attribute that acts as a key to identify specific objects on one end. Like using a key in a dictionary to look up a specific object. Reduces multiplicity.
What is disjoint vs overlapping inheritance?
DISJOINT: An object can belong to only ONE subclass (default in Java/C++). OVERLAPPING: An object can belong to MULTIPLE subclasses simultaneously. Example: a vehicle that is both a WaterVehicle and LandVehicle.
What is an N-ary Association?
An association linking objects from more than 2 classes simultaneously. A ternary association links 3 classes. Note: N-ary associations cannot have aggregation, composition, qualifiers, or one-way navigation.
What is a Derived Association?
An association that can be calculated/derived from other associations in the model. Marked with ‘/’ before the name. It’s redundant but shown for clarity.
What is the purpose of a sequence diagram?
Shows object interactions arranged in TIME order. Shows which objects call which methods and in what sequence. Great for showing the flow of a single use case scenario.