A Brief Review of Object-Oriented Concepts
These slides review the object-oriented approach and relate it to earlier approaches.
A Brief Review
- 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
- Computer systems viewed as a collection of computer programs
- Three basic logic structures:
Structured systems analysis hierarchy of procedures using
- process model : Data Flow Diagrams, Flow Charts
- data model: Entity Relationship Diagrams
Structured systems design
- 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
- 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 relationships
- information hiding
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
- 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 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
- 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
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License.