In this section, we learned about UML class diagrams, a language-agnostic approach to visualizing the structure of an object-oriented software system. We saw how individual classes are represented by boxes divided into three compartments; the first for the identity of the class, the second for its attributes, and the third for its operators. We learned that italics are used to indicate abstract classes and operators, and underlining static classes, attributes, and operators.
We also saw how associations between classes can be represented by arrows with specific characteristics, and examined four of these in detail: aggregation, composition, generalization, and realization. We also learned how multiplicities can show the number of instances involved in these associations.
Finally, we saw how classes, interfaces, and enumerations are modeled using UML. We saw how the stereotype can be used to indicate language-specific features like properties. We also looked at creating UML class diagrams using Diagrams.net and Microsoft Visio.
Review Quiz
Check your understanding of the new content introduced in this chapter below - this quiz is not graded and you can retake it as many times as you want.
---
primaryColor: '#512888'
secondaryColor: '#cccccc'
textColor: black
shuffleQuestions: true
shuffleAnswers: true
locale: en
---
# UML
**UML** is the shortened version of what name?
1. [X] Unified Modeling Language
1. [ ] United Modality Language
1. [ ] United Modeling Language
1. [ ] Unified Modality Language
# Class Diagram
A **class diagram** is used to communicate what information about a program?
1. [X] Structure and relationships between classes
1. [ ] Links and communication between software components
1. [ ] Chronological sequence of object interactions
1. [ ] How the users will interact with the software
# Component Diagram
A **component diagram** is used to communicate what information about a program?
1. [ ] Structure and relationships between classes
1. [X] Links and communication between software components
1. [ ] Chronological sequence of object interactions
1. [ ] How the users will interact with the software
# Sequence Diagram
A **sequence diagram** is used to communicate what information about a program?
1. [ ] Structure and relationships between classes
1. [ ] Links and communication between software components
1. [X] Chronological sequence of object interactions
1. [ ] How the users will interact with the software
# Use-Case Diagram
A **use-case diagram** is used to communicate what information about a program?
1. [ ] Structure and relationships between classes
1. [ ] Links and communication between software components
1. [ ] Chronological sequence of object interactions
1. [X] How the users will interact with the software
# Boxes
In a class diagram, a **box** is used to represent what part of a program?
1. [X] A class, struct, or enum
1. [ ] A user
1. [ ] An association
1. [ ] A message
# Stereotype
A **stereotype** in UML is used to convey what information on a diagram?
1. [X] Language-specific information
1. [ ] Associations
1. [ ] Inheritance
1. [ ] Users
# Typed Element
A **typed element** in UML is used to represent what information?
1. [X] A field or parameter
1. [ ] A method
1. [ ] An interface
1. [ ] A user
# Public
In a UML diagram, what symbol is used to indicate **public** visibility?
1. [X] `+`
1. [ ] `-`
1. [ ] `#`
1. [ ] `*`
# Private
In a UML diagram, what symbol is used to indicate **private** visibility?
1. [ ] `+`
1. [X] `-`
1. [ ] `#`
1. [ ] `*`
# Protected
In a UML diagram, what symbol is used to indicate **protected** visibility?
1. [ ] `+`
1. [ ] `-`
1. [X] `#`
1. [ ] `*`
# Constraint
A **constraint** in a UML diagram describes what?
1. [X] A restriction placed on the value of an element
1. [ ] A restriction on the instances of a class that can be created
1. [ ] The number of instances attached to an association
1. [ ] The size of the overall component
# Methods
In a UML class diagram, which compartment of a box representing a class contains the operations or **methods** of that class?
1. [X] The bottom compartment
1. [ ] The top compartment
1. [ ] The middle compartment
1. [ ] The rightmost compartment
# Languages
True or false: developers creating the same program in different programming languages would create identical UML diagrams to represent their program?
1. [X] False
2. [ ] True
# Attributes
In a UML class diagram, **attributes** are indicated using which UML element?
1. [X] Typed element
1. [ ] Classed element
1. [ ] Box element
1. [ ] Association element
# Accessor Methods
Consider the following typed element:
`+ age: int <>`
The **accessor methods** indicated by the `<>` portion are represented using what feature of UML?
1. [X] Stereotype
1. [ ] Association
1. [ ] Sequence Diagram
1. [ ] Generic
# Operations
Consider the following UML **operation**:
`+ volume(r: int, h: int, cone: boolean): float`
What is the **return type** of that operation:
1. [X] `float`
1. [ ] `int`
1. [ ] `boolean`
1. [ ] `volume`
# Static
Which text format is used to indicate a class or method is **static** in a UML diagram?
1. [X] Underline
1. [ ] Italics
1. [ ] Bold
1. [ ] Strikethrough
# Abstract
Which text format is used to indicate a class or method is **abstract** in a UML diagram?
1. [ ] Underline
1. [X] Italics
1. [ ] Bold
1. [ ] Strikethrough
# Associations
An **association** between two classes in a UML diagram is represented by which graphical element?
1. [X] Line
1. [ ] Triangle
1. [ ] Box
1. [ ] Circle
# Realization
The **realization** association is also known as what association type?
1. [X] Weak is-a
1. [ ] Strong is-a
1. [ ] Weak has-a
1. [ ] Strong has-a
# Generalization
The **generalization** association is also known as what association type?
1. [ ] Weak is-a
1. [X] Strong is-a
1. [ ] Weak has-a
1. [ ] Strong has-a
# Aggregation
The **aggregation** association is also known as what association type?
1. [ ] Weak is-a
1. [ ] Strong is-a
1. [X] Weak has-a
1. [ ] Strong has-a
# Composition
The **composition** association is also known as what association type?
1. [ ] Weak is-a
1. [ ] Strong is-a
1. [ ] Weak has-a
1. [X] Strong has-a
# Realization Arrow
The **realization** association is represented by which arrow?
1. [X] Dashed Line with Open Arrow
1. [ ] Solid Line with Open arrow
1. [ ] Solid Line with Open Diamond
1. [ ] Solid Line with Solid Diamond
# Generalization Arrow
The **generalization** association is represented by which arrow?
1. [ ] Dashed Line with Open Arrow
1. [X] Solid Line with Open Arrow
1. [ ] Solid Line with Open Diamond
1. [ ] Solid Line with Solid Diamond
# Aggregation Arrow
The **aggregation** association is represented by which arrow?
1. [ ] Dashed Line with Open arrow
1. [ ] Solid Line with Open Arrow
1. [X] Solid Line with Open Diamond
1. [ ] Solid Line with Solid Diamond
# Composition Arrow
The **composition** association is represented by which arrow?
1. [ ] Dashed Line with Open Arrow
1. [ ] Solid Line with Open Arrow
1. [ ] Solid Line with Open Diamond
1. [X] Solid Line with Solid Diamond
# Multiplicity
The **multiplicity** of an association in UML denotes what information?
1. [X] The number of objects involved
1. [ ] The size of each class
1. [ ] The code complexity of the package
1. [ ] The type of the association