Object Oriented Programming using Java - Introduction - PowerPoint PPT Presentation

About This Presentation
Title:

Object Oriented Programming using Java - Introduction

Description:

Department of Computer and Information Science, School of Science, IUPUI ... concepts (like class definitions, inheritance and polymorphism.) Basic Definitions ... – PowerPoint PPT presentation

Number of Views:145
Avg rating:3.0/5.0
Slides: 11
Provided by: dalero
Category:

less

Transcript and Presenter's Notes

Title: Object Oriented Programming using Java - Introduction


1
Object Oriented Programming using Java-
Introduction
Department of Computer and Information
Science,School of Science, IUPUI
Dale Roberts, Lecturer Computer Science,
IUPUI E-mail droberts_at_cs.iupui.edu
2
Software Orientation over Time
  • 1960s, 1970s Process-Orientation Process
    models Data Flow Diagrams,
  • Flow Charts
  • 1980s Data-Orientation Data models
    Entity-Relationship (ER) Diagrams
  • 1990s Object-Orientation Object models
    Class Diagrams, Event Diagrams
  • 2000s Unified Modeling Language an attempt
    to standardize all the models into a single
    standard. Synthesizing models is still maturing.

3
Overview
  • What are object-oriented (OO) methods?
  • OO methods provide a set of techniques for
    analyzing, decomposing, and modularizing software
    system architectures.
  • In general, OO methods are characterized by
    structuring the system architecture around
    objects (and classes of objects) rather than the
    actions it performs.
  • This contrasts object-oriented programming from
    procedural programming.
  • What are the benefits of OO?
  • OO enhances key software quality factos of a
    system and its constituent components
  • What is the rationale for using OO?
  • In general, systems evolve and functionality
    changes, but objects and classes tend to remain
    more stable over time.

4
Software Quality Factors
  • Object-oriented techniques enhance key external
    and internal software quality factors
  • External (visible to end-users)
  • Correctness
  • Robustness and reliability
  • Performance
  • Internal (visible to developers)
  • Modularity
  • Flexibility/Extensibility
  • Reusability
  • Compatibility (via standard/uniform interfaces)

5
OOA, OOD and OOP
  • Object-oriented methods may be applied to
    different phases of the software development life
    cycle.
  • Analysis, Design, Implementation, etc.
  • OO analysis (OOA) is a process of discovery.
  • Where a development team models and understands
    the requirements of the system in terms of
    actors.
  • OO design (OOD) is a process of invention and
    adaptation
  • Where the development team created abstractions
    and mechanisms necessary to meet the systems
    behavioral requirements determined during
    analysis.

6
OOA, OOD and OOP (cont.)
  • OO programming (OOP) implements an OOD in a
    particular programming language.
  • The more consistent the OOD and OOP techniques,
    the easier the implementation
  • Because of the wide use of OOD and OOP
    terminology, it is useful to distinguish between
    the two.
  • OOD is relatively language independent.
  • OOP is language dependent and primarily concerned
    with software implementation details of OOD
    concepts (like class definitions, inheritance and
    polymorphism.)

7
Basic Definitions
  • Object-Oriented Design
  • A method of decomposing software architectures
    based on the objects that every systems or
    subsystem manipulates.
  • Rather than the functionality that is meant to be
    delivered.
  • Object-Oriented Programming
  • The construction of software systems as
    structured collections of Abstract Data Type
    (ADT) implementations plus inheritance and
    dynamic binding (polymorphism).

8
Object-Oriented Design Topics
  • Object-oriented design concepts include
  • Decomposition/Composition
  • Abstraction
  • Modularity
  • Information Hiding (Encapsulation)
  • Virtual Machine Hierarchies
  • Separating Policy and Mechanism
  • Subset Identification and Program Families
  • Reusability
  • Main purpose of these design concepts is to
    manage software system complexity by improving
    software quality factors.

9
Object-Oriented Programming Topics
  • Object-oriented programming features include
  • Data abstraction, Information Hiding
    (Encapsulation)
  • Active (rather than passive) types
  • Genericity
  • Inheritance and dynamic binding (Polymorphism)
  • Assertions and exception handling
  • This courses focuses on how these OOP topics
    improve software quality
  • Correctness, reusability, extensibility,
    reliability, etc.
  • Advanced courses focus on OOD topics
  • Factoring, Class Diagrams, Use Cases, Design
    Patterns, etc.

10
Acknowledgements
  • http//www.cs.wustl.edu/schmidt/PDF/ood-overview4
    .pdf
Write a Comment
User Comments (0)
About PowerShow.com