2' Object Model - PowerPoint PPT Presentation

About This Presentation
Title:

2' Object Model

Description:

'An abstraction denotes the essential characteristics of an ... Example : Car has Engine and ... Part belongs to only one whole (by Value) Part lives and dies ... – PowerPoint PPT presentation

Number of Views:48
Avg rating:3.0/5.0
Slides: 57
Provided by: venkatsub
Learn more at: https://www2.cs.uh.edu
Category:

less

Transcript and Presenter's Notes

Title: 2' Object Model


1
2. Object Model
2
Benefits Of OO Development
  • Models System using Objects
  • Small Semantic gap between reality model
  • Understanding the system is easier
  • Modifications are localized

3
Object-Oriented Paradigm
  • Collection of Discrete Objects
  • Data Behavior
  • OO Paradigm
  • Abstraction
  • Encapsulation
  • Hierarchy
  • Inheritance hierarchy (is-a)
  • Part of hierarchy (has a)
  • Polymorphism

4
Abstraction
  • 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
5
Encapsulation
  • 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

6
What 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
7
What is a Class?
  • Group of Objects with similar
  • properties (attributes)
  • behavior
  • relationships to other objects
  • semantics
  • Blueprints of Objects

Parrot
Example
Girl
Boy
charlie
8
Hierarchy
  • 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

9
Polymorphism
  • 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

10
Object Model
  • Captures static structure of system
  • Objects, relationships, attributes
  • operations
  • Most important
  • Intuitive graphic representation
  • Valuable for communication documentation

11
Objects
  • Decomposing problem into objects
  • depends on judgement nature of problem
  • No one correct representation
  • Objects have identity

12
Class
  • 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

13
Class Diagrams
  • Provide formal graphic notation for modeling
  • Concise, easy to understand, practical
  • Describes many possible instances

14
Object 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

15
Notation for Classes Objects (UML)
16
Attributes
  • 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

17
Attributes...
  • Attribute is a pure data value - not an object
  • Internal identifiers must not be shown as
    attributes
  • Show only important attributes

18
Derived 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
19
Attributes Notation
Underline in revised notation
20
Operations 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

21
Operations Notation
22
Example with Attributes Operations
23
Associations 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
24
Associations 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

25
Ternary 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

26
Associations Notations
27
Link 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

28
Association Class Notation
Person
Company


Employment
salarydouble
29
Role 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
30
Qualifiers
  • 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
31
Aggregation 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

32
Aggregation
Composition...
  • Composition
  • Part belongs to only one whole (by Value)
  • Part lives and dies with the whole
  • Whole cannot replace the part

33
Aggregation/Composition Notation
34
Aggregation /Composition Example
Person
brain
Composition
Aggregation
Car
35
Inheritance
  • 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

36
Inheritance Notation
37
Inheritance Example
38
Grouping 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

39
Package Notation
40
Aggregation 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

41
Aggregation Vs.
Inheritance
  • Aggregation represents part-of relationship
  • Inheritance represents kind-of relationship
  • Aggregation refers to object relationships
  • Inheritance refers to class relationships

42
Fixed, 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

43
Example Fixed,
Variable, Recursive
Aggregation
44
Operations Aggregation
  • Operation or Triggering
  • automatic application of an operation to network
    of objects when applied to some starting object
  • ShallowCopy
  • DeepCopy

45
Abstract Classes
  • Representing an Abstraction that is Abstract.
  • Abstract classes represent
  • concepts
  • not real objects
  • ABCs used only to create other Concrete classes

46
Abstract Classes ...
  • Example Shape, Employee, Animal
  • Whether a class in Abstract or not depends on
  • judgement
  • application on hand

47
Inheritance 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)

48
Inheritance Extension
Restriction ...
  • Proper Extension
  • A Subclass may override the internal
    implementation of an operation
  • No problem as long as external protocol remains
    the same

49
Metadata Metaclass
  • Metadata Data that is description of other data
  • Metaclass Class descriptor objects that
    describe other classes

50
Constraints
  • Restricts values that entities can assume
  • Entity objects, classes, attributes,
    associations
  • Better to capture constraints in structure rather
    than using constraints constructs

51
Multiple Inheritance
  • Allows a class to have more than one Superclass
  • Join class

52
Multiple Inheritance
Poses Problems
  • Ambiguous function collisions
  • Class proliferation

53
Workarounds for MI
  • Delegation using aggregation of roles
  • Single inherit important class delegate rest
  • Nested Generalization

54
Delegation using Aggregation
of Roles
  • Inheritance of operations across aggregation not
    automatic
  • Join class must handle that operations and
    delegate to appropriate component

55
Single Inherit
Important Class
Delegate Rest
  • Preserves identity and inheritance across at
    least one generalization

56
Nested Generalization
  • Violates the OO spirit
  • Not practical for large number of combinations
Write a Comment
User Comments (0)
About PowerShow.com