Ch2 - Object-Oriented Data Modeling

Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 31

Chapter 2

Object-Oriented Data Modeling

1
Outlines
• OO vs. EER Data Modeling
• Classes and Objects
• Class Components
• Class and Object Diagram
• Association relationships of different degrees
• Association Class
• Generalization/Specialization
• Polymorphism
– Overriding Inheritance
– Overloading Inheritance
• Multiple Inheritance
• Aggregation and Composition 2
What is Object-Oriented Data Modeling?
• Centers around objects and classes
• Involves inheritance
• Encapsulates both data and behavior
• Benefits of Object-Oriented Modeling
– Ability to tackle challenging problems
– Improved communication between users, analysts,
designers, and programmers
– Increased consistency in analysis, design, and
programming
– Explicit representation of commonality among system
components
– System robustness
– Reusability of analysis, design, and programming results
3
OO vs. EER Data Modeling
Object Oriented EER
Class Entity type

Object Entity instance


Association Relationship
Inheritance of attributes Inheritance of attributes

Inheritance of behavior No representation of


behavior

Object-oriented modeling is typically represented using


the Unified Modeling Language (UML) 4
Classes and Objects
• Class: An entity that has a well-defined role in
the application domain, as well as state,
behavior, and identity
– Tangible: person, place or thing
– Concept or Event: department, performance, marriage,
registration
– Artifact of the Design Process: user interface, controller,
scheduler
• Object: a particular instance of a class

Objects exhibit BEHAVIOR as well as attributes


•  Different from entities

5
State, Behavior, Identity
• State: attribute types and values
• Behavior: how an object acts and
reacts
– Behavior is expressed through operations
that can be performed on it
• Identity: every object has a unique
identity, even if all of its attribute
values are the same

6
UML class and object diagram
a) Class diagram showing two classes

Class diagram shows the static structure of an object-


oriented model: object classes, internal structure,
relationships. 7
UML class and object diagram (cont.)
b) Object diagram with two instances

Object diagram shows instances that are compatible with a


given class diagram.
8
Operation
• A function or service that is provided by all
instances of a class
• Types of operations:
– Constructor: creates a new instance of a class
– Query: accesses the state of an object but does
not alter its state
– Update: alters the state of an object
– Scope: operation applying to the class instead of
an instance

Operations implement the object’s behavior

9
Examples of association relationships of different degrees
Unary
Lower-bound – upper-bound

Represented as:
0..1, 0..*, 1..1, 1..*

Similar to minimum/maximum
Binary cardinality rules in EER

Ternary

10
Examples of binary association relationships
a) University example

Alternative multiplicity
representation: specifying the
two possible values in a list
instead of a range

11
Examples of binary association relationships (cont.)
b) Customer Order example

12
Association Class
• An association that has attributes or
operations of its own or that
participates in relationships with
other classes

• Like an associative entity in ER


model

13
Association class and link object
a) Class diagram showing association classes

Binary association
class with behavior

Unary association with


only attributes and no
behavior

14
Association class and link object (cont.)
b) Object diagram showing link objects

Association class
instances

15
Ternary relationship with association class

16
Derived attribute, association, and role
Constraint expression for derived attribute

Derived attribute

Derived relationship (from Registers-for and Scheduled-for)

Derived attributes and relationships shown with / in front of the name


17
Generalization/Specialization
• Subclass, superclass
– similar to subtype/supertype in EER
• Common attributes, relationships, and
operations
• Disjoint vs. Overlapping
• Complete (total specialization) vs.
incomplete (partial specialization)
• Abstract Class: no direct instances
possible, but subclasses may have direct
instances
• Concrete Class: direct instances possible
18
Examples of generalization, inheritance,
and constraints
a) Employee superclass with three subclasses
An employee can
only be one of
Shared attributes these subclasses
and operations An employee
may be none
of them.

Specialized attributes and operations 19


Examples of generalization, inheritance,
and constraints (cont.)
b) Abstract Patient class with two concrete subclasses

Abstract indicated by italics

A patient MUST be
EXACTLY one of the
subtypes Dynamic means a patient can change from
one subclass to another over time

20
Polymorphism
• Abstract Operation: Defines the
form or protocol of the operation,
but not its implementation
• Method: The implementation of an
operation
• Polymorphism: The same
operation may apply to two or more
different classes in different ways
21
Polymorphism, abstract operation,
class-scope attribute, and ordering

This operation is abstract…it has no


method at Student level

Class-scope attributes–only
one value common to all
instances of these classes
(includes default values)

Methods are defined at subclass level 22


Overriding Inheritance
The process of replacing a method
inherited from a superclass by a more
specific implementation of that method in a
subclass
– For Extension: add code
– For Restriction: limit the method
– For Optimization: improve code by
exploiting restrictions imposed by the
subclass
23
Overriding inheritance
Subclasses that
do not override
place-student
use the default
behavior

Restrict job placement


24
Multiple Inheritance
• Multiple Classification: An object is
an instance of more than one class

• Multiple Inheritance: A class inherits


features from more than one
superclass

25
Multiple inheritance

26
Aggregation
• Aggregation: A part-of relationship between a
component object and an aggregate object

• Composition: A stronger form of aggregation


in which a part object belongs to only one
whole object and exists only as part of the
whole object

• Recursive Aggregation: Composition where


component object is an instance of the same
class as the aggregate object
27
Example of aggregation

A Personal Computer includes CPU, Hard Disk, Monitor, and Keyboard


as parts. But, these parts can exist without being installed into a
computer. The open diamond indicates aggregation, but not
composition
28
Aggregation and Composition
(a) Class diagram

Closed diamond indicates


composition. The room cannot
exist without the building

29
Aggregation and Composition
(b) Object diagram

30
Recursive aggregation

31

You might also like