Class Diagram
Class Diagram
Class Diagram
Class Diagram
Object class name
Attributes
Operations
(behaviors) to
fulfill the
class’s
responsibilities
.
Steps in Developing a Class
Diagram
Class
attributes
operations
One-to-one association
StickyNote
Workorder
* x: Integer
y: Integer
schedule() z: Integer
One-to-many association
[From Bruegge, 2000]
Many-to-Many Associations
Mechanics Plane
* Work on *
Makes 0..*
0..* Customer Payment
A customer can
Zero or or make no payment
more up to many
Makes * payments.
* Customer Payment
Car
4,6 2,4 *
Super class
Sub class
Name
Address
Salary
No. staff
last name
first name
birthdate
gender
walk()
jump()
talk()
sleep()
eat()
etc.()
Arrowhead indicates
generalization/specialization
relationship
Student Teacher
GPA rank
classification
enroll() lecture()
displayGPA()
Inheritance Example
Cell
1 11
Environmental Controller SystemLog
Define_climate Display
Terminate_climate
RecordEvent
Example : Class Diagram
Object /Class Association Generalization
Aggregation
Library Item
0..* No. Copies
ShelfNo
Status
User Borrows Title
Issue
Address Return
Member# Shelve
Name
Subscribe
Unsubscribe
Recorded Media
External Reader Borrower
Ext. Library Name Items Borrowed
Book CAL Package
Maximum Loans
Author Distributor
ISBN
Course Text
Pub. Date
Publisher
Summary – Class Relationship
GENERALIZATIO Plan
ASSOCIATION N/ INHERITANCE
PlanAnalyst
analyzes
1..*
PlanMetrics
FruitGrowingPlan
AGGREGATION COMPOSITION
Controller * 1 Cooler
Food
* *
1 1
1..23
*
* 1
Vitamin Calorie
Light Heater
Member Services System Class Diagram
Member
Member-Number
Member-Name
Member-Status
Member-Street-Address
Member-PO-Box
Member-City
Member-State
Member-Zip-Code
persistent
<<actor>> <<actor>>
Potential Member Club Member <<actor>>
Past Member
Member-Date-Of-Last-Order
Member-Daytime-Phone-Number Expiration-Date Agreement
persistent Member-Credit-Card-Expire-Date
Member-Credit-Card-Number Agreement-Number
Member-Credit-Card-Type persistent Agreement-Expire-Date
Member-Balance-Due Agreement-Active-Date
Member-Bonus-Balance-Available 1..* Fulfillment-Period
Audio-Category-Preference Required-Number-Of-Credits
Audio-Media-Preference
1 Date-Enrolled binds
Has Email-Address 1
purchased Game-Category-Preference persistent
0..* Game-Media-Preference
Product Number-Of-Credits-Earned
Member Ordered Product
Privacy-Code
Product-Number Video-Category-Preference
UPC- Quantity-Ordered Video-Media-Preference Transaction
Quantity-In-Stock Quantity-Shipped
Product-Type Quantity-Backordered 1 Conduct Transaction-Reference-Number
Suggested-Retail-Price 1 Sold as Purchase-Unit-Price s Transaction-Date
Default-Unit-Price Credits-Earned persistent Transaction-Type
Current-Special-Unit-Price 0..* Transaction-Description
Current-Month-Units-Sold 0..* Transation-Amount
Current-Year-Units-Sold persistent
Total-Lifetime-Units-Sold 1
1..* persistent
persistent Places
0..*
Member Order Return
Sells
1 Order-Number
Merchandise Title Order-Creation-Date
Promotion Order-Fill-Date persistent
Merchandise-Name Title-Of-Work Shipping-Address-Name
Merchandise-Description Title-Cover 1..* Promotion-Number Shipping-Street-Address
Merchandise-Type Catalog-Description Promotion-Release-Date Generate Shipping-City
Unit-of-Measure Copyright-Date Promotion-Status 0..1 s Shipping-State
Entertainment-Company Feature 0..* Shipping-Zip-Code
s Promotion-Type 0..* Shipping-Instructions
Credit-Value
persistent Order-Sub-Total
Order-Sales-Tax
persistent Order-Shipping-Method
persistent Order-Shipping-&-Handling-Cost
Order-Status
Order-Prepaid-Amount
Order-Prepayment-Method
persistent
Audio Tilte Video Title Game Title
Artist Producer Manufacturer
Audio-Category Director Game-Category
Audio-Sub-Category Video-Category Game-Sub-Category
Number-Of-Units-In-Package Video-Sub-Category Game-Platform
Audio-Media-Code Closed-Captioned Game-Media-Type
Content-Advisory-Code Language Number-Of-Players
Running-Time Parent-Advisory-Code
Video-Media-Type
persistent Video-Encoding
Screen-Aspect
MPA-Rating-Code persistent
persistent
Sequence Diagram
Order Entry Order Order Line Stock Item Reorder Delivery
window Item Item
prepare()
prepare()
check()
[check=“true”]
remove()
needsToReorder()
[needsToReorder=“true”]
enter new
[check=“true”]
enter new
Order OrderLine ReOrderItem
orderNumber itemnumber itemnumber
date quantity quantity
etc… etc… etc…
prepare() prepare()
enter new()
StockItem
DeliveryItem
orderNumber
minQuantity is_for deliveryadress
date quantity
etc… etc…
needsToReorder(): enter new()
boolean
check(): boolean
remove()
Computer: PrintServer: Printer: Queue:
Computer PrintServer Printer Queue
User: User
print
(filename)
print(file)
[printer free]
print(file)
[printer busy]
store(file)
Computer PrintServer Printer
status(): integer
print(file)
uses
print(filename) print(file)
Managed by
Queue
store(file)
Recap
• After studying this chapter we learned
to:
– Understand how to structure
requirements with class diagram.
– Explain the element of class diagrams
– Construct class diagrams.