A class diagram is a visual representation that shows classes, their attributes, methods, and relationships in a system. It helps understand the structure of the system.
Click to reveal answer
beginner
Name three types of relationships shown in class diagrams.
The three main relationships are: Association (a link between classes), Inheritance (one class inherits from another), and Aggregation/Composition (whole-part relationships).
Click to reveal answer
intermediate
What is the difference between aggregation and composition in class diagrams?
Aggregation means a class has a part that can exist independently. Composition means the part cannot exist without the whole; it is a stronger relationship.
Click to reveal answer
beginner
Why are class diagrams useful in software design?
They help visualize system structure, clarify how classes interact, guide coding, and improve communication among team members.
Click to reveal answer
beginner
What does a class box typically contain in a class diagram?
A class box usually has three sections: the class name at the top, attributes (properties) in the middle, and methods (functions) at the bottom.
Click to reveal answer
Which section of a class box lists the functions it can perform?
AAttributes section
BMethods section
CClass name section
DRelationships section
✗ Incorrect
The methods section lists the functions or operations a class can perform.
What type of relationship shows one class inheriting from another?
AAssociation
BAggregation
CInheritance
DComposition
✗ Incorrect
Inheritance means one class derives properties and behavior from another class.
In a class diagram, what does aggregation represent?
AA part that cannot exist without the whole
BA simple link between classes
CA class inheriting from another
DA part that can exist independently
✗ Incorrect
Aggregation means the part can exist independently of the whole.
Which of these is NOT typically shown in a class diagram?
AUser interface layout
BClass attributes
CClass methods
DClass relationships
✗ Incorrect
User interface layout is not shown in class diagrams; they focus on class structure.
Why use class diagrams in software design?
ATo visualize system structure and relationships
BTo design database queries
CTo write code faster
DTo create user manuals
✗ Incorrect
Class diagrams help visualize the system's structure and how classes relate.
Explain the main components of a class diagram and their purpose.
Think about the three sections of a class box and how classes connect.
You got /5 concepts.
Describe the differences between association, aggregation, and composition in class diagrams.
Consider how parts relate to wholes and if they can exist separately.
You got /4 concepts.
Practice
(1/5)
1. What does a class diagram primarily represent in system design?
easy
A. The structure of classes and their relationships
B. The flow of data between servers
C. The user interface layout
D. The sequence of method calls
Solution
Step 1: Understand the purpose of class diagrams
Class diagrams show the static structure of a system by representing classes and their relationships.
Step 2: Differentiate from other diagrams
Flow of data, UI layout, and method sequences are shown in other diagram types like sequence or activity diagrams.
Final Answer:
The structure of classes and their relationships -> Option A
Quick Check:
Class diagram = structure and relationships [OK]
Hint: Class diagrams show classes and links, not flow or UI [OK]
Common Mistakes:
Confusing class diagrams with sequence diagrams
Thinking class diagrams show UI design
Assuming class diagrams show runtime behavior
2. Which of the following is the correct way to represent inheritance in a class diagram?
easy
A. A dashed line with a hollow circle pointing to the child class
B. A dashed line with an open arrow pointing to the child class
C. A solid line with a filled diamond pointing to the parent class
D. A solid line with a hollow triangle arrow pointing to the parent class
Solution
Step 1: Recall UML notation for inheritance
Inheritance is shown by a solid line with a hollow triangle arrow pointing to the parent class.
Step 2: Identify incorrect options
Filled diamonds represent composition, dashed lines with open arrows represent dependencies, and hollow circles are not standard UML symbols.
Final Answer:
A solid line with a hollow triangle arrow pointing to the parent class -> Option D
Quick Check:
Inheritance = solid line + hollow triangle [OK]
Hint: Inheritance uses solid line + hollow triangle arrow [OK]
Common Mistakes:
Mixing composition and inheritance symbols
Using dashed lines for inheritance
Pointing arrow to child instead of parent
3. Given this class diagram snippet: Class A
- attr1: int
+ method1() What does the '-' before attr1 and '+' before method1() mean?
medium
A. '-' means protected attribute; '+' means private method
B. '-' means private attribute; '+' means public method
C. '-' means public attribute; '+' means protected method
D. '-' means static attribute; '+' means abstract method
Solution
Step 1: Understand UML visibility symbols
In UML, '-' means private visibility, '+' means public visibility.
Step 2: Apply to attributes and methods
So, attr1 is private attribute, method1() is public method.
Final Answer:
'-' means private attribute; '+' means public method -> Option B
Quick Check:
Visibility: '-' private, '+' public [OK]
Hint: '-' = private, '+' = public in UML [OK]
Common Mistakes:
Confusing visibility symbols with data types
Assuming '-' means protected
Mixing static/abstract with visibility
4. Identify the error in this class diagram description: Class Car
- engine: Engine
- wheels: List<Wheel>
-- engine "1" --- "4" wheels What is wrong with the association notation?
medium
A. The association should use a hollow diamond for aggregation
B. The multiplicity numbers are reversed; wheels should be "4" and engine "1"
C. The association line uses double dashes instead of a single solid line
D. The class names should be connected with a dashed line
Solution
Step 1: Check association line style
Associations use a single solid line, not double dashes.
Step 2: Verify multiplicity and line type
Multiplicity "1" to "4" is correct; aggregation uses hollow diamond but not required here.
Final Answer:
The association line uses double dashes instead of a single solid line -> Option C
Quick Check:
Association = single solid line [OK]
Hint: Association lines are single solid lines, not double dashes [OK]
Common Mistakes:
Using double dashes for associations
Confusing aggregation with association
Reversing multiplicity numbers
5. You need to design a class diagram for a library system where a Library has many Book objects, and each Book can have multiple Authors. Which of the following best represents this relationship?
hard
A. Library "1" --- "*" Book; Book "*" --- "*" Author with an association class for author details
B. Library "*" --- "1" Book; Book "1" --- "*" Author with inheritance
C. Library "1" --- "1" Book; Book "1" --- "1" Author with composition
D. Library "*" --- "*" Book; Book "*" --- "1" Author with aggregation
Solution
Step 1: Analyze multiplicity between Library and Book
A library has many books, so multiplicity is "1" to "*".
Step 2: Analyze multiplicity between Book and Author
A book can have multiple authors, and authors can write multiple books, so "*" to "*" is correct, often modeled with an association class for author details.
Step 3: Check other options for correctness
Other options have incorrect multiplicities or wrong relationships like inheritance or composition.
Final Answer:
Library "1" --- "*" Book; Book "*" --- "*" Author with an association class for author details -> Option A
Quick Check:
Library to Book = 1 to many; Book to Author = many to many [OK]
Hint: Many-to-many needs association class; library has many books [OK]
Common Mistakes:
Using inheritance instead of association
Incorrect multiplicity numbers
Confusing composition with aggregation
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.