2 review of oo paradigm and uml n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
2. Review of OO Paradigm and UML PowerPoint Presentation
Download Presentation
2. Review of OO Paradigm and UML

Loading in 2 Seconds...

play fullscreen
1 / 49

2. Review of OO Paradigm and UML - PowerPoint PPT Presentation


  • 77 Views
  • Uploaded on

2. Review of OO Paradigm and UML. Benefits Of OO Development. Models System using Objects Small Semantic gap between reality & model Understanding the system is easier Modifications are localized. Object-Oriented Paradigm. Collection of Discrete Objects Data & Behavior OO Paradigm

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about '2. Review of OO Paradigm and UML' - ouida


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
benefits of oo development
Benefits Of OO Development
  • Models System using Objects
  • Small Semantic gap between reality & model
  • Understanding the system is easier
  • Modifications are localized
object oriented paradigm
Object-Oriented Paradigm

Collection of Discrete Objects

Data & Behavior

OO Paradigm

  • Abstraction
  • Encapsulation
  • Hierarchy
    • Inheritance hierarchy (“is-a”)
    • Part of hierarchy (“has a”)
  • Polymorphism
abstraction
Abstraction

“A simplified description ...

of a system that emphasizes some of the system’s 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”

encapsulation
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”

what is an object

jullie

dylan

kim

charlie

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

what is a class

jullie

kim

dylan

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

hierarchy
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

polymorphism
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

object model
Object Model
  • Captures static structure of system
  • Objects, relationships, attributes &

operations

  • Most important
  • Intuitive graphic representation
  • Valuable for communication & documentation
objects
Objects
  • Decomposing problem into objects
    • depends on judgement & nature of problem
  • No one correct representation
  • Objects have identity
class
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
class diagrams
Class Diagrams
  • Provide formal graphic notation for modeling
  • Concise, easy to understand, practical
  • Describes many possible instances
object diagrams
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
attributes
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”
attributes1
Attributes...
  • Attribute is a pure data value - not an object
  • Internal identifiers must not be shown as attributes
  • Show only important attributes
derived attributes
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

attributes notation
Attributes Notation

PKG::ClassName

Society::Girl

-attrPrivate

#attrProtected

+attrPublic

assumedPrivateAttr

attrStatic

/derivedAttribute

-attrWType : Int

-attrWInitVal : Float = 0.0

+attr {readOnly}

-age

+name {readOnly}

-numberOfGirls

operations methods
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
operation notation
Operation Notation

PKG::ClassName

Society::Girl

+play()

~sing()

GetGirlsCount() : Int

+methodPublic()

#methodProtected()

-methodPrivate()

assumedPublic()

methodStatic()

~methodPackageVisible()

methodWReturn() : Int

finalMethod() {leaf}

associations and links
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: Woman is-wife-of Man

Associations and Links appear as Verbs

associations links
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
ternary high order associations
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
link attributes association classes
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
association class notation
Association Class Notation

Person

Company

*

*

Employment

salary:double

role names
Role Names
  • Name given to either end of an association
  • Helps to navigate from one object to related objects

wife

husband

Woman

Man

0..1

married

0..1

  • Helps clarify when two classes have several associations between them

wife

husband

Man

Woman

0..1

married

0..1

1

*

daughter

children

father

qualifiers
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

aggregation composition
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
aggregation composition1
Aggregation & Composition...

Composition:

  • Part belongs to only one whole (by Value)
  • Part lives and dies with the whole
  • Whole cannot replace the part
aggregation composition example
Aggregation /Composition Example

Person

brain

Composition

Aggregation

Car

inheritance
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
inheritance example

Animal

Child

Girl

Boy

Dog

Cat

Inheritance Example
grouping mechanism package
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
aggregation vs association
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
aggregation vs inheritance
Aggregation Vs. Inheritance
  • Aggregation represents part-of relationship
  • Inheritance represents kind-of relationship
  • Aggregation refers to object relationships
  • Inheritance refers to class relationships
fixed variable recursive aggregates
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
example fixed variable recursive aggregation
Example : Fixed, Variable, Recursive Aggregation
operations aggregation
Operations & Aggregation
  • Operation or Triggering :
    • automatic application of an operation to network of objects when applied to some starting object
  • ShallowCopy
  • DeepCopy
abstract classes
Abstract Classes

Representing an Abstraction that is Abstract.

  • Abstract classes represent
    • concepts
    • not real objects
  • ABCs used only to create other “Concrete” classes
abstract classes1
Abstract Classes ...

Example: Shape, Employee, Animal

Whether a class in Abstract or not depends on

  • judgement
  • application on hand
inheritance extension restriction
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)
inheritance extension restriction1
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
constraints
Constraints

Restricts values that entities can assume

Entity : objects, classes, attributes, associations

Better to capture constraints in structure rather than using constraints constructs