Object Oriented Analysis and Design
Using the UML
Introduction to Object Orientation
(abbreviated!)
OOAD Using the UML - Introduction to Object Orientation, v 4.2
Copyright 1998-1999 Rational Software, all rights reserved
Objectives: Introduction to Object Orientation
Understand the basic principles of object
orientation
Understand the basic concepts and terms
of object orientation and the associated
UML notation
Appreciate the strengths of object
orientation
Understand some basic UML modeling
mechanisms
OOAD Using the UML - Introduction to Object Orientation, v 4.2
Copyright 1998-1999 Rational Software, all rights reserved
1. Basic Principles of Object Orientation
OOAD Using the UML - Introduction to Object Orientation, v 4.2
Copyright 1998-1999 Rational Software, all rights reserved
Know This.
3
Hierarchy
Modularity
Encapsulation
Abstraction
Object Orientation
What is Abstraction?
Salesperson
Not saying
which
salesperson
just a
salesperson
in general!!!
Product
Customer
Manages Complexity
OOAD Using the UML - Introduction to Object Orientation, v 4.2
Copyright 1998-1999 Rational Software, all rights reserved
What is Encapsulation?
Hide implementation from clients
Clients depend on interface only!
Clients do not need to know how the server
operates or provides the services!
How does an object encapsu
What does it encapsulate?
DISCUSS!!!!!
Improves Resiliency
OOAD Using the UML - Introduction to Object Orientation, v 4.2
Copyright 1998-1999 Rational Software, all rights reserved
What is Modularity?
The breaking up of something complex into
manageable pieces
Order
Entry
Order Processing
System
Order
Fulfillment
Billing
Manages Complexity
OOAD Using the UML - Introduction to Object Orientation, v 4.2
Copyright 1998-1999 Rational Software, all rights reserved
What is Hierarchy?
Asset
Levels of abstraction
Increasing
abstraction
Security
BankAccount
Savings Checking
Decreasing
abstraction
Stock
Bond
Elements at the same level of the hierarchy
should be at the same level of abstraction
OOAD Using the UML - Introduction to Object Orientation, v 4.2
Copyright 1998-1999 Rational Software, all rights reserved
RealEstate
2. Basic Concepts of Object Orientation
Object
Class
Attribute
Operation
Interface (Polymorphism)
Component
Package
Subsystem
Relationships
OOAD Using the UML - Introduction to Object Orientation, v 4.2
Copyright 1998-1999 Rational Software, all rights reserved
A More Formal Definition
An object is a concept, abstraction, or thing with
sharp boundaries and meaning for an application
An object is something that has:
State
Behavior
Identity
Know This.
OOAD Using the UML - Introduction to Object Orientation, v 4.2
Copyright 1998-1999 Rational Software, all rights reserved
Representing Objects the beginnings
An object is represented as a rectangle with
underlined name (no class name shown here)
: Professor
(unnamed object)
a + b = 10
ProfessorClark
Class Name Only
ProfessorClark :
Professor
Professor Clark
Object Name Only
Class and Object Name
OOAD Using the UML - Introduction to Object Orientation, v 4.2
Copyright 1998-1999 Rational Software, all rights reserved
(stay tuned for classes)
10
What is a Class?
A class is a description of a group of
objects with common properties (attributes),
behavior (operations), relationships, and
semantics
A class is an abstraction of objects.
An object is an instance of a class
OO Principle: Abstraction
OOAD Using the UML - Introduction to Object Orientation, v 4.2
Copyright 1998-1999 Rational Software, all rights reserved
11
Representing Classes
A class is represented using a
compartmented rectangle
(note: no underlining)
a + b = 10
Professor
Professor Clark
OOAD Using the UML - Introduction to Object Orientation, v 4.2
Copyright 1998-1999 Rational Software, all rights reserved
12
Class Compartments a bit more development
A class is comprised of three sections
The first section contains the class name
The second section shows the structure
(attributes)
The third section shows the behavior
(operations)
Class Name
Attributes
Operations
OOAD Using the UML - Introduction to Object Orientation, v 4.2
Copyright 1998-1999 Rational Software, all rights reserved
Professor
name
empID
create( )
save( )
delete( )
change( )
13
The Relationship Between Classes and Objects
A class is an abstract definition of an object
It defines the structure and behavior of each
object in the class
It serves as a template for creating objects
Objects
Class
Professor
Professor Smith
Professor Mellon
Professor Jones
OOAD Using the UML - Introduction to Object Orientation, v 4.2
Copyright 1998-1999 Rational Software, all rights reserved
14
What is an Attribute?
Object
Class
Attribute
CourseOffering
Specific
attribute values
for different
objects
number
startTime
endTime
:CourseOffering
number = 101
startTime = 900
endTime = 1100
:CourseOffering
number = 104
startTime = 1300
endTime = 1500
OOAD Using the UML - Introduction to Object Orientation, v 4.2
Copyright 1998-1999 Rational Software, all rights reserved
15
What is an Operation? (very general form here)
CourseOffering
Class
Operation
addStudent
deleteStudent
getStartTime
getEndTime
Really need to show more, but here, this is sufficient.
OOAD Using the UML - Introduction to Object Orientation, v 4.2
Copyright 1998-1999 Rational Software, all rights reserved
16
What is a Component?
A non-trivial, nearly independent, and
replaceable part of a system that fulfills a
clear function in the context of a welldefined architecture
A component may be
A source code component
A run time component or
An executable component
Source File
Name
OOAD Using the UML - Introduction to Object Orientation, v 4.2
Copyright 1998-1999 Rational Software, all rights reserved
<<EXE>>
Executable
Name
17
OO Principle:
Encapsulation
Component
Interface
<<DLL>>
Component
Name
What is a Package?
A package is a general purpose mechanism for organizing like
elements into groups
A model element which can contain other model elements
Think: in the Java API, similar classes are found in packages that
we may import, etc.
Package Name
Uses
Organize the model under development
A unit of configuration management
OO Principle:
Modularity
Know This
Think: Math class. (contains math classes such as cos() )
OOAD Using the UML - Introduction to Object Orientation, v 4.2
Copyright 1998-1999 Rational Software, all rights reserved
18
Example for Data Structures Class:
Think IO package you imported.
Inside this package are many (often) unrelated
classes.
FileReader
BufferedReader
FileWriter
PrinterWriter, etc.
To USE any of these classes, we merely create an
object of them and proceed independently of
any other classes.
To USE any of these classes in the package, we
go directly to the class, instantiate the class, and
use the methods in the objects.
OOAD Using the UML - Introduction to Object Orientation, v 4.2
Copyright 1998-1999 Rational Software, all rights reserved
19
What is a Subsystem?
A combination of a package (contains other model
elements) and a class (has behaviors)
A subsystem: realizes one or more interfaces which
define its behavior
Interface is an abstract class. Subsystems
implement (realize) the interface(s)
Realization
<<subsystem>>
Subsystem Name
Interface
Subsystem
Interface
OO Principles: Encapsulation and Modularity
Know This.(stay tuned for realization relationship)
OOAD Using the UML - Introduction to Object Orientation, v 4.2
Copyright 1998-1999 Rational Software, all rights reserved
20
Example of Subsystems
Realization
<<subsystem>>
Subsystem Name
Interface
Subsystem
Interface
Subsystem might be AccountsReceivable, AccountsPayable, Billing,
That is, a major hunk of functionality.
BUT, a client of the subsystem does NOT have access to the individu
Classes like in a Package. Rather, a client must go through the
public Interface to the subsystem, which contains the signatures of t
services provided within the subsystem.
The contents of the subsystem are NOT directly accesses;
They are protected;
Only the services shown in the interface are made available to clien
OOAD Using the UML - Introduction to Object Orientation, v 4.2
Copyright 1998-1999 Rational Software, all rights reserved
21
Relationships
Association
Aggregation
Composition
Dependency
Generalization
Realization
OOAD Using the UML - Introduction to Object Orientation, v 4.2
Copyright 1998-1999 Rational Software, all rights reserved
22
Relationships: Association
Models a semantic connection among classes
Association Name
Professor
University
Works for
Association
Class
Role Names
University
Professor
Employee
OOAD Using the UML - Introduction to Object Orientation, v 4.2
Copyright 1998-1999 Rational Software, all rights reserved
23
Employer
Relationships: Aggregation (simple aggregate)
A special form of association that models a
whole-part relationship between an
aggregate (the whole) and its parts
Whole
Part
Schedule
Student
Know This
OOAD Using the UML - Introduction to Object Orientation, v 4.2
Copyright 1998-1999 Rational Software, all rights reserved
Aggregation sometimes called
simple aggregation.
This is sometimes called a
has_a relationship
24
Relationships: Composition
A form of aggregation with strong
ownership and coincident lifetimes
The parts cannot survive the whole/aggregate
Part
Whole
Schedule
Student
Know This
OOAD Using the UML - Introduction to Object Orientation, v 4.2
Copyright 1998-1999 Rational Software, all rights reserved
Aggregation
This one is called
composition.
25
Association: Multiplicity and Navigation
Multiplicity defines how many objects participate
in a relationship
Multiplicity is a Structural Relationship!
The number of instances (that is, objects) of one
class related to ONE instance of another class
(examples ahead)
Specified for each end of the association
Associations and aggregations are
bidirectional by default, but it is often desirable
to restrict navigation to one direction
If navigation is restricted, an arrowhead is added
to indicate the direction of the navigation
OOAD Using the UML - Introduction to Object Orientation, v 4.2
Copyright 1998-1999 Rational Software, all rights reserved
26
Association: Multiplicity
Unspecified
Exactly one
1
Zero or more (many, unlimited) 0..*
*
One or more
Zero or one
Specified range
Multiple, disjoint ranges
OOAD Using the UML - Introduction to Object Orientation, v 4.2
Copyright 1998-1999 Rational Software, all rights reserved
27
1..*
0..1
2..4
2, 4..6
Example: Multiplicity and Navigation
Multiplicity
Student
0..*
Schedule
Navigation
Note: A student has zero or more schedules. (Multiplicity)
Note:
Aggregation: has_a (whole-part relatio
OOAD Using the UML - Introduction to Object Orientation, v 4.2
Copyright 1998-1999 Rational Software, all rights reserved
28
Relationships: Dependency
A relationship between two model elements where a
change in one may cause a change in the other
Non-structural, using (or communicates) relationship
(non-structural: no numbers of one kind related to another kind)
Can actually say the Client uses the Supplier.
Know This
Client
Class
Package
Supplier
OOAD Using the UML - Introduction to Object Orientation, v 4.2
Copyright 1998-1999 Rational Software, all rights reserved
Supplier
Client
Dependency
relationship
ClientPackage
Component
SupplierPackage
29
Dependency
relationship
Relationships: Generalization
A relationship among classes where one class
shares the structure and/or behavior of one or
more classes
Defines a hierarchy of abstractions in which a
subclass inherits from one or more
superclasses
Generalization is a is-a-kind of
relationship, or simply, is_a relationship.
OOAD Using the UML - Introduction to Object Orientation, v 4.2
Copyright 1998-1999 Rational Software, all rights reserved
30
Example: Single Inheritance
One class inherits from another
Ancestor
Account
balance
name
number
Superclass
(parent)
Withdraw()
CreateStatement()
Generalization Relationship
Savings
Checking
Subclasses
GetInterest()
Withdraw()
OOAD Using the UML - Introduction to Object Orientation, v 4.2
Copyright 1998-1999 Rational Software, all rights reserved
Withdraw()
Descendents
31
Subclasses inherit both
attributes and methods from
base (parent) class.
Example: Multiple Inheritance
A class can inherit from several other classes
FlyingThing
Animal
multiple
inheritance
Airplane
Helicopter
Bird
Wolf
Horse
Use multiple inheritance only when needed, and
always with caution !
OOAD Using the UML - Introduction to Object Orientation, v 4.2
Copyright 1998-1999 Rational Software, all rights reserved
32
What Gets Inherited?
A subclass inherits its parents attributes,
operations, and relationships
A subclass may add:
additional attributes, operations, relationships
Redefine inherited operations (use caution!)
Common attributes, operations, and/or
relationships are shown at the highest
applicable level in the hierarchy
Inheritance leverages the similarities among classes
OOAD Using the UML - Introduction to Object Orientation, v 4.2
Copyright 1998-1999 Rational Software, all rights reserved
33
Example: What Gets Inherited (note form of arrow)
GroundVehicle
Superclass
(parent)
owner
weight
licenseNumber
0..*
Person
register( )
generalization
Subclass
Truck
Car
size
tonnage
getTax( )
What about a register() in Car?
OOAD Using the UML - Introduction to Object Orientation, v 4.2
Copyright 1998-1999 Rational Software, all rights reserved
34
Trailer
Relationships: Realization (note form of arrow)
One classifier serves as the contract that the
other classifier agrees to carry out
Found between:
Interfaces and the classifiers that realize them
Subsystem
Interface
Canonical form
Use Case
OOAD Using the UML - Introduction to Object Orientation, v 4.2
Copyright 1998-1999 Rational Software, all rights reserved
Elided form
Use-Case Realization
35
Introduction to Object Orientation Topics
Basic Principles of Object Orientation
Basic Concepts of Object Orientation
Strengths of Object Orientation
General UML Modeling Mechanisms
OOAD Using the UML - Introduction to Object Orientation, v 4.2
Copyright 1998-1999 Rational Software, all rights reserved
37
4. Stereotypes
Classify/extend UML notational elements
Define a new model element in terms of
another model element
May be applied to all modeling elements
Represented with name in guillemets or as
a different icon
<<boundary>>
MyBoundaryClass
MyBoundaryClass
OOAD Using the UML - Introduction to Object Orientation, v 4.2
Copyright 1998-1999 Rational Software, all rights reserved
38
Notes
A Note can be added to any UML element
The class diagram is the one most often
extended
Notes may be added to add more info to
diagram
It is a dog eared rectangle
The note may be anchored to an element with
There can be up to one
a dashed line
MaintainScheduleForm per
user session.
MaintainScheduleForm
OOAD Using the UML - Introduction to Object Orientation, v 4.2
Copyright 1998-1999 Rational Software, all rights reserved
39
Tagged Values
Extensions of the properties, or specific
attributes, of a UML element
Some properties are defined by UML
Persistence
Location (e.g., client, server)
Properties can be created by UML
modelers for any purpose
PersistentClass
{persistence}
OOAD Using the UML - Introduction to Object Orientation, v 4.2
Copyright 1998-1999 Rational Software, all rights reserved
anObject : ClassA
{location=server}
40
Constraints
Supports the addition of new rules or
modification of existing rules
Professor
Member
1..*
Department Head
1
Department
{subset}
1
This notation is used to capture two relationships between Professor-t
and Department-type objects; where one relationship is a subset of
Shows how UML can be tailored to correctly modeling exact relationsh
OOAD Using the UML - Introduction to Object Orientation, v 4.2
Copyright 1998-1999 Rational Software, all rights reserved
41
Review: Introduction to Object Orientation
What are the four basic principles of object
orientation?
Provide a brief description of each.
What is an Object and what is a Class?
What is the difference between them?
What is an Attribute?
What is an Operation?
What is an Interface?
What is Polymorphism?
What is a Component?
OOAD Using the UML - Introduction to Object Orientation, v 4.2
Copyright 1998-1999 Rational Software, all rights reserved
42
(continued)
Review: Introduction to Object Orientation (cont.)
What is a Package?
What is Subsystem?
Know This
How does it relate to a Component?
How does it relate to a package?
How does it relate to a class?
Name the four basic UML relationships and describe
each.
Describe the strengths of object orientation.
Name and describe some general UML mechanisms.
What are stereotypes?
Name some common uses of stereotypes.
OOAD Using the UML - Introduction to Object Orientation, v 4.2
Copyright 1998-1999 Rational Software, all rights reserved
43