Title: 2' Object Model
12. Object Model
2Benefits Of OO Development
- Models System using Objects
- Small Semantic gap between reality model
- Understanding the system is easier
- Modifications are localized
3Object-Oriented Paradigm
- Collection of Discrete Objects
- Data Behavior
- OO Paradigm
- Abstraction
- Encapsulation
- Hierarchy
- Inheritance hierarchy (is-a)
- Part of hierarchy (has a)
- Polymorphism
4Abstraction
- A simplified description ...
- of a system that emphasizes some of the
systems details ... while suppressing others
An abstraction denotes the essential
characteristics of an object that distinguish it
from all other kind of objects and thus provide
crisply defined conceptual boundaries, relative
to the perspective of the viewer
5Encapsulation
- Information hiding
- Interface - Implementation
- Behavior Data
- Encapsulation is the process of
compartmentalizing the elements of an abstraction
that constitute its structure and behavior
encapsulation serves to separate the contractual
interface of an abstraction and its
implementation
6What is an Object?
- Concept, abstraction, or thing
- with crisp boundary meaning for a problem
- An Object has state and behavior
- Objects receive stimuli/messages respond
- Receiving a stimulus, Object may change state
- Examples
charlie.fly() stimulus
7What is a Class?
- Group of Objects with similar
- properties (attributes)
- behavior
- relationships to other objects
- semantics
- Blueprints of Objects
-
Parrot
Example
Girl
Boy
charlie
8Hierarchy
- Hierarchy is a ranking of abstractions
- Inheritance
- expresses is-a or Kind-of relationship
- Extensibility Reusability
- Part-of
- expresses that object is an aggregate of another
9Polymorphism
- Hiding alternative procedures
- behind a Common Interface
- Send a Message to an object - Polymorphism
guarantees that the correct/proper implementation
is invoked. - Sender does not know specific class of receiver
10Object Model
- Captures static structure of system
- Objects, relationships, attributes
- operations
- Most important
- Intuitive graphic representation
- Valuable for communication documentation
11Objects
- Decomposing problem into objects
- depends on judgement nature of problem
- No one correct representation
- Objects have identity
12Class
- Often appear as nouns in problem descriptions
- Has semantic
- Interpretation of semantics
- depends on application and matter of judgement
- Each class may have zero, one or more objects
- Each object knows it class
13Class Diagrams
- Provide formal graphic notation for modeling
- Concise, easy to understand, practical
- Describes many possible instances
14Object Diagrams
- Describes how set of objects relate
- Useful for
- documenting test cases
- Clarification of complex class diagrams
- Class Diagram corresponds to infinite set of
object diagrams
15Notation for Classes Objects (UML)
16Attributes
- Data value held by objects of a class
- Objects may have same/different values for
attribute - Attribute name unique within a class
- Adjectives often represent specific enumerated
attribute values red car
17Attributes...
- Attribute is a pure data value - not an object
- Internal identifiers must not be shown as
attributes - Show only important attributes
18Derived Attributes
- Base Attribute
- primitive, not dependent on other attributes
- Derived Attribute
- computing not considered to change state of an
object - dependent on base attributes
- may be stored or computed upon a query operation
Example Area of a circle, age of a person
19Attributes Notation
Underline in revised notation
20Operations Methods
- Operation Function that may be applied to or by
objects - Same Operations applying
to different
classes Polymorphic - Method is implementation of an operation for a
class - Operation has a target object and may have
arguments - Same operations on different classes should have
- same signature and consistent intent
- Query Operation Does not affect the state of
object - Show only important methods
21Operations Notation
22Example with Attributes Operations
23Associations and Links
- Link is physical or conceptual connection
between objects - Link is an instance of an Association
Example Link Susan is-wife-of
Robert Julie is-wife-of John Association Woma
n is-wife-of Man
Associations and Links appear as Verbs
24Associations Links...
- Associations are bi-directional
- may be implemented as unidirectional
- Implemented usually as pointers
- important not to think as pointers
- Associations may be
- one-to-one
- one-to-many
- many-to-one
- many-to-many
25Ternary High Order Associations
- Binary Association Relates two classes
- Woman is-wife-of Man
- Ternary Association Relates three classes
- Nancy is-daughter-of Susan and Robert
- n-ary Association Relates n classes
- Higher Order Associations
- complicated to draw, implement and think
- try to avoid if possible
26Associations Notations
27Link Attributes
Association Classes
- Attributes that belong to
association of object
rather than one object - Link Attributes belong in Association Classes
- Ex Salary received by Employee from Company
- In an one-to-one association you may try to make
it attribute of one of the objects - Leads to extensibility problems
28Association Class Notation
Person
Company
Employment
salarydouble
29Role Names
- Name given to either end of an association
- Helps to navigate from one object to related
objects
husband
wife
Woman
Man
0..1
married
0..1
- Helps clarify when two classes have several
associations between them
husband
wife
Man
Woman
married
0..1
0..1
1
daughter
children
father
30Qualifiers
- Distinguishes among set of associated objects
- Models associative arrays, dictionaries
- Qualifiers may be wrongly modeled as attribute of
associated class
GradeList
Student
code
Unqualified
GradeList
1
code
Student
Qualified
31Aggregation Composition
- Aggregation
- Part-of or part-whole relationship (by reference)
- Example Car has Engine and Transmission
- Assembly of objects with aggregate and component
parts - Component existence may or may not depend on
aggregate
32Aggregation
Composition...
- Composition
- Part belongs to only one whole (by Value)
- Part lives and dies with the whole
- Whole cannot replace the part
33Aggregation/Composition Notation
34Aggregation /Composition Example
Person
brain
Composition
Aggregation
Car
35Inheritance
- Models is-a relationship
- Relationship between a class and its refined
versions - Superclass or Base class
- Subclass or Derived class
- Inheritance is transitive
- Discriminator The property being abstracted by
a particular inheritance - Breath Vs. Depth of inheritance
36Inheritance Notation
37Inheritance Example
38Grouping Mechanism Package
- Grouping classes together into higher-level
units - Package diagram with dependency
- Dependency between packages exists if
- class in one package depends on a class in the
other - definition change of one package may change other
39Package Notation
40Aggregation Vs. Association
- Special form of Association
- Confusing
- Aggregation represents part-of relationship
- Some operations on whole automatically
applied to its parts - Aggregate is asymmetric part is subordinate
to the whole - Association is symmetric objects involved
are of equal stature
41Aggregation Vs.
Inheritance
- Aggregation represents part-of relationship
- Inheritance represents kind-of relationship
- Aggregation refers to object relationships
- Inheritance refers to class relationships
42Fixed, Variable
Recursive Aggregates
- Fixed
- Fixed structure
- Number types of parts pre-defined
- Variable
- Finite number of levels - Number of parts vary
- Recursive
- Contains instances of the same kind of aggregate
- number of potential levels unlimited
43Example Fixed,
Variable, Recursive
Aggregation
44Operations Aggregation
- Operation or Triggering
- automatic application of an operation to network
of objects when applied to some starting object - ShallowCopy
- DeepCopy
45Abstract Classes
- Representing an Abstraction that is Abstract.
- Abstract classes represent
- concepts
- not real objects
- ABCs used only to create other Concrete classes
46Abstract Classes ...
- Example Shape, Employee, Animal
- Whether a class in Abstract or not depends on
- judgement
- application on hand
47Inheritance Extension
Restriction
- Extension
- Subclass adds new features
- Subclass inherits all properties operations of
ancestor - Restriction
- Subclass constrains ancestor attributes
- Subclass may not inherit all properties
operations of its ancestor - Often leads to trouble (Liskov Substitutability
Principle)
48Inheritance Extension
Restriction ...
- Proper Extension
- A Subclass may override the internal
implementation of an operation - No problem as long as external protocol remains
the same
49Metadata Metaclass
- Metadata Data that is description of other data
- Metaclass Class descriptor objects that
describe other classes
50Constraints
- Restricts values that entities can assume
- Entity objects, classes, attributes,
associations - Better to capture constraints in structure rather
than using constraints constructs
51Multiple Inheritance
- Allows a class to have more than one Superclass
- Join class
52Multiple Inheritance
Poses Problems
- Ambiguous function collisions
- Class proliferation
53Workarounds for MI
- Delegation using aggregation of roles
- Single inherit important class delegate rest
- Nested Generalization
54Delegation using Aggregation
of Roles
- Inheritance of operations across aggregation not
automatic - Join class must handle that operations and
delegate to appropriate component
55Single Inherit
Important Class
Delegate Rest
- Preserves identity and inheritance across at
least one generalization
56Nested Generalization
- Violates the OO spirit
- Not practical for large number of combinations