A Brief Review of Object-Oriented Concepts

These slides review the object-oriented approach and relate it to earlier approaches.


Object-Oriented Concepts

A Brief Review


Outline

  • What is this thing, "Object-Oriented"?
  • Object-Oriented vs. a traditional approach.
  • What are the benefits?
  • What is an object?
  • What is an object in a computer system?
  • Types of objects.


What is "Object-Oriented?"

  • Similar things can be grouped and classified.
  • Same goes for related but dissimilar things.
  • Example: a computer system can be viewed as a collection of objects.
  • These objects have certain features (attributes).
  • Objects can also exhibit certain behaviors.
  • Things or objects also interact
    • people can be "objects" in a system
    • people and other objects can interact 
  • In building an information system, identify the objects that are needed
  • We then assign activities and attributes to each
  • This is a building block approach
    • incremental design, construction, improvement


Traditional Approach

  • Computer systems viewed as a collection of computer programs
  • Three basic logic structures:
– sequence of sets of instructions
– choose which sets of instructions 
– repetition of a set of instructions
  • Structured systems analysis hierarchy of procedures using
– hierarchy of procedures using
    • process model :  Data Flow Diagrams, Flow Charts
    • data model:  Entity Relationship Diagrams 

  • Structured systems design
– organizing smaller programs (modular)
– hierarchy of smaller programs
– using structure chart as guideline

Uses terminology such as:
  • call
  • procedure
  • process
  • perform
  • program
  • if-then-else
  • do while


Object-Oriented Approach

  • Expands on tradition
  • New methods, rules, concepts
  • Object-Oriented Analysis
  • Defines all the types of objects that are part of the user's work environment
  • Object-Oriented Design

– Defines types of objects

– Designs the user interface and operating environment

– Describes the ways in which everything interacts

  • Object Oriented Programming

– programs written that define all objects

      • including their attributes and behaviors
  • Traditional and Object Oriented approaches are different in many ways BUT are also similar

– identifies business events

– defines users' requirements

– data modeling concepts and techniques

– user interfaces


Uses terminology such as:

    •     class
    •     class relationships
    •     object
    •     polymorphism
    •     generalization
    •     specialization
    •     inheritance
    •     encapsulation
    •     information hiding
    •     reuse
    •     methods
    •     attributes
    •     messaging
    •     instance
    •     independence
    •     whole/part

    NOT an Either/Or Choice

    • Traditional approaches are used to implement object-oriented entities.
    • "Object-Oriented" extends "Traditional".
    • "Traditional" is the foundation upon which "Object-Oriented" is built.


    Benefits of OO

    • OO approach addresses THREE pervasive problems with traditional systems development

    – Quality

    – Productivity

    – Flexibility

    • Small, bounded, manageable objects reduce system development complexity
    • Reuse can greatly increase productivity
    • Adding objects can be done without interfering with the rest of the system – same with some changes


    Why Focus on Objects

    • OO approach is a more natural approach for people.
    • We think in terms of objects.
    • We classify objects into hierarchies
    • We divide objects into parts.
    • In some way everything can be an object.
    • The classification process is based on the features and behaviors that make up a class of objects
    • A more specialized class "inherits" the features and behaviors of all classes above in a hierarchy
    • People naturally organize information into classes and hierarchies of general classes and specialized subclasses

    – generalization / specialization hierarchies

    • People also naturally recognize that things can be divided into parts called whole-part hierarchies
    • Generalization/Specialization hierarchies and whole-part hierarchies allow us to understand things and define things and communicate about things in terms of other things we know
    • Generalization/Specialization hierarchy is often described as a series of is-a relationships
    • We also understand things, define things, and communicate about things using the concept of an object and its parts

    – whole-part relationships


    What is an Object?

    • A person or thing through which, or to which, action, thought, or feeling is directed.
    • Anything visible or tangible.

    – material product or substance.

    • James Martin defines an object in relation to concepts.

    – From a very early age, we form concepts.

    – Each concept is a particular idea or understanding we have about our world.

    – These concepts allow us to make sense of and reason about the things in our world.

    – These things to which our concepts apply are called objects.

    • Grady Booch uses a variety of approaches.

    – tangible and/or visible thing

    – something that may be apprehended intellectually

    – something toward which thought or actions is directed

    – an individual, identifiable item, unit, or entity, either real or abstract, with – a well-defined role in the problem domain

    – anything with a crisply defined boundary

    • Others conclude that anything can be considered an object

    – an object is a thing that can be distinctly identified

    – at the appropriate level of abstraction almost anything can be considered to be an object

    – a specific person, organization, machine, or event can be

    – regarded as an object

    Similarities in Definitions

    • All of these definitions acknowledge that an object is something that people think about, identify, act upon, or apply concepts to.
    • Because different people have perceptions of the same object, what an object is depends upon the point of view of the observer.
    • We describe an object on the basis of the features and behaviors that are relevant to us.


    What is a Computer System Object

    • Just about anything that can be considered to be an object can be identified as an object in a computer system.
    • Peter Coad uses a concept called "object think".

    – proposes that an object simply "knows things" and "knows how to do things".


    Types of Computer System Objects

    • If anything can be considered to be an object at some level of abstraction then anything applying to computer systems can be considered to be an object.
    • The types of objects in computer systems might be classified as user interface objects, operating system objects, and task-related objects.


    Operating Environment Objects

    • Operating environment object is another type.
    • Client and Server in client/server architecture is OO.
    • Server object provides services for others
    • Client object requests services form others.
    • To those developers who work on operating systems, OO mean operating system objects.


    Task-Related Objects

    • Task-related objects are used to complete work.

    – those things a computer application deals with or creates.

    • Document Objects: documents are objects that know things and know how to do things.

    – i.e. word processing applications

    • Multimedia Objects: Multimedia systems are another important type of application which contain sound, video, images.
    • Problem Domain Objects: They are things typically involved in information processing systems

    – customers, products, orders, employees, database records, ….

    – often correspond to the types of things identified when modeling data


    Summary

    • Object-Oriented approaches stipulate classes
    • Instances of these classes are called objects
    • Objects have attributes and abilities
    • Objects exist and function independently
    • They can be joined into a system
    • Sub-classes can create objects that derive attributes and abilities from higher-level classes
    • Great approach for incremental system creation
    • Fosters component reuse
    • Does not do away with tradition but builds on it
    • Means of engaging non-computer people



    Source: Peter G. Raeth, https://drive.google.com/file/d/1gUSvPLaaFBT-wfr2uqotw9k5CE4Dc2x0/view?usp=sharing
    Creative Commons License This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License.

    Last modified: Friday, May 14, 2021, 5:33 PM