Association is a relationship where two objects know about each other and can interact, but neither owns the other. It's like two friends who can talk but live separately.
Click to reveal answer
beginner
Define aggregation with a real-life example.
Aggregation is a 'has-a' relationship where one object contains or uses another, but the contained object can exist independently. For example, a library has many books, but books can exist without the library.
Click to reveal answer
intermediate
What makes composition different from aggregation?
Composition is a strong 'part-of' relationship where the contained object cannot exist without the container. Like a house and its rooms: if the house is destroyed, rooms don't exist separately.
Click to reveal answer
intermediate
In UML diagrams, how is composition represented?
Composition is shown with a filled diamond shape at the container end connecting to the part, indicating strong ownership and lifecycle dependency.
Click to reveal answer
beginner
Explain why understanding these relationships is important in system design.
Knowing association, aggregation, and composition helps design clear object interactions, manage lifecycles properly, and build maintainable, scalable systems.
Click to reveal answer
Which relationship implies that the part can exist independently of the whole?
AAggregation
BComposition
CAssociation
DInheritance
✗ Incorrect
Aggregation allows the part to exist independently, unlike composition where the part depends on the whole.
In which relationship does the lifecycle of the part depend entirely on the whole?
AComposition
BAggregation
CDependency
DAssociation
✗ Incorrect
Composition means the part cannot exist without the whole, so their lifecycles are tied.
What symbol represents aggregation in UML diagrams?
AFilled diamond
BHollow diamond
CArrow
DDashed line
✗ Incorrect
Aggregation is shown with a hollow diamond at the container end.
Which relationship best describes two objects that interact but do not own each other?
AComposition
BAggregation
CAssociation
DGeneralization
✗ Incorrect
Association is a loose relationship where objects know each other but have no ownership.
If a car has an engine, and the engine cannot exist without the car, what is this relationship?
AAssociation
BAggregation
CDependency
DComposition
✗ Incorrect
The engine is part of the car and depends on it, so this is composition.
Describe the differences between association, aggregation, and composition with simple examples.
Think about friends, libraries with books, and houses with rooms.
You got /3 concepts.
Explain how understanding these relationships helps in designing software systems.
Consider how parts depend on wholes in real life.
You got /3 concepts.
Practice
(1/5)
1. Which relationship describes two objects connected without ownership, where both can exist independently?
easy
A. Inheritance
B. Association
C. Composition
D. Aggregation
Solution
Step 1: Understand relationship types
Association means objects are linked but do not own each other and can exist separately.
Step 2: Compare with other relationships
Aggregation and composition imply ownership; inheritance is a different concept.
Final Answer:
Association -> Option B
Quick Check:
Association = connected without ownership [OK]
Hint: No ownership means association, not aggregation or composition [OK]
Common Mistakes:
Confusing aggregation with association
Thinking composition allows independent existence
Mixing inheritance with relationships
2. Which of the following correctly shows a composition relationship in UML notation?
easy
A. A solid diamond at the owner end connected to the part
B. A hollow diamond at the owner end connected to the part
C. A plain line with no diamonds between objects
D. A dashed arrow pointing from part to owner
Solution
Step 1: Recall UML notation for composition
Composition uses a solid diamond at the owner end to show strong ownership.
Step 2: Differentiate from aggregation and association
Aggregation uses hollow diamond; association uses plain line; dashed arrow is for dependency.
Final Answer:
A solid diamond at the owner end connected to the part -> Option A
Quick Check:
Composition = solid diamond [OK]
Hint: Solid diamond means composition, hollow means aggregation [OK]
Common Mistakes:
Mixing hollow and solid diamonds
Confusing association line with composition
Using dashed arrows for composition
3. Consider this code snippet representing relationships:
class Engine:
pass
class Car:
def __init__(self):
self.engine = Engine()
What type of relationship does Car have with Engine?
medium
A. Association
B. Aggregation
C. Inheritance
D. Composition
Solution
Step 1: Analyze ownership in code
Car creates and owns Engine instance inside its constructor, implying strong ownership.
Step 2: Match with relationship definitions
Since Engine cannot exist meaningfully without Car here, this is composition.
Final Answer:
Composition -> Option D
Quick Check:
Car owns Engine fully = Composition [OK]
Hint: Creating owned object inside means composition [OK]
Common Mistakes:
Thinking it's aggregation because of ownership
Confusing association with composition
Assuming inheritance from code
4. Identify the error in this aggregation example:
class Wheel:
pass
class Car:
def __init__(self, wheels):
self.wheels = wheels
car = Car([Wheel(), Wheel()])
What is wrong with this aggregation?
medium
A. Wheels cannot exist independently in aggregation
B. Car should not hold wheels as a list
C. No error; this is correct aggregation
D. Wheels should be created inside Car for composition
Solution
Step 1: Understand aggregation ownership
Aggregation means Car owns wheels but wheels can exist independently.
Step 2: Check code for ownership and independence
Wheels are created outside Car and passed in, so they can exist alone, matching aggregation.
Final Answer:
No error; this is correct aggregation -> Option C
Quick Check:
Aggregation allows independent parts [OK]
Hint: Aggregation parts created outside owner, passed in [OK]
Common Mistakes:
Thinking wheels must be created inside Car
Confusing aggregation with composition
Assuming list usage is wrong
5. You are designing a library system where a Library contains many Books. Books can exist outside the library and be moved between libraries. Which relationship best fits this scenario and why?
hard
A. Aggregation, because library owns books but books can exist alone
B. Composition, because books depend fully on the library
C. Association, because library and books are loosely connected
D. Inheritance, because books inherit properties from library
Solution
Step 1: Analyze ownership and existence
Books can exist independently and move between libraries, so they are not fully owned.
Step 2: Match relationship type
Aggregation fits because library owns books but books can exist alone and be shared.
Final Answer:
Aggregation, because library owns books but books can exist alone -> Option A
Quick Check:
Aggregation = ownership with independent parts [OK]
Hint: If parts can exist alone, use aggregation [OK]
Common Mistakes:
Choosing composition thinking books depend fully
Selecting association ignoring ownership
Confusing inheritance with ownership
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.