0% found this document useful (0 votes)
53 views14 pages

Chapter-1 OOAD

The document discusses the foundations of the object model. It describes how object-oriented concepts evolved from structured design methods and how objects combine procedures and data. It also defines key object-oriented terms like class, object, encapsulation, and inheritance. Lastly, it traces the history and contributions to the object model from fields like software engineering, databases, artificial intelligence, and philosophy.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
53 views14 pages

Chapter-1 OOAD

The document discusses the foundations of the object model. It describes how object-oriented concepts evolved from structured design methods and how objects combine procedures and data. It also defines key object-oriented terms like class, object, encapsulation, and inheritance. Lastly, it traces the history and contributions to the object model from fields like software engineering, databases, artificial intelligence, and philosophy.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 14

Chapter-1

Foundations of the Object Model

 Structured design methods evolved to guide developers who were trying to build
complex systems using algorithms as their fundamental building blocks.

 Similarly, object-oriented design methods have evolved to help developers exploit


the expressive power of object-based and object-oriented programming
languages, using the class and object as basic building blocks.
 Foundations—The Object Model
Is the unifying concept in Computer Science, applicable not just to programming languages but also to the
design of user interfaces, databases, and even computer architectures
 Thus Object-oriented analysis and design represents an evolutionary development, not a
revolutionary one
 The object model derives from so many disparate sources which has muddle of terminology. Ex-
A Smalltalk programmer uses methods
A C++ programmer uses virtual member functions
A CLOS programmer uses generic functions
An Object Pascal programmer talks of a type coercion
An Ada programmer calls the same thing a type conversion
A C# or Java programmer would use a cast
 The phrase object-oriented “has been bandied about with carefree abandon with
much the same reverence accorded ‘motherhood,’ ‘apple pie,’ and ‘structured
programming”

 The concept of object is central to object-oriented

 Stefik and Bobrow define objects as “entities that combine the properties of
procedures and data since they perform computations and save local state”.
 Jones further clarifies this term by noting that “in the object model, emphasis is placed on crisply
characterizing the components of the physical or abstract system to be modeled by a programmed
system”.

 Objects have a certain ‘integrity’ which cannot violated.

 An object can only change state, behave, be manipulated, or stand in relation to other objects in
ways appropriate to that object.
Foundations—The Object Model

 As Yonezawa and Tokoro point out, “The term ‘object’ emerged almost independently
in various fields in computer science, almost simultaneously in the early 1970s, to refer
to notions that were different in their appearance, yet mutually related. All of these
notions were invented to manage the complexity of software systems in such a way that
objects represented components of a modularly decomposed system or modular units of
knowledge representation”
 Levy adds that the following events have contributed to the evolution of object-
oriented concepts:
 Advances in computer architecture, including capability systems and hardware support for
operating systems concepts
 Advances in programming languages, as demonstrated in Simula, Smalltalk, CLU, and Ada
 Advances in programming methodology, including modularization and information hiding
 Three more contributions to the foundation of the object model:
 Advances in database models
 Research in artificial intelligence
 Advances in philosophy and cognitive science
 The concept of object begins in hardware with invention of descriptor-based
architecture to capability-based architectures
 Computers can also have an object-oriented architecture with advantages: better
error detection, improved execution efficiency, fewer instruction types, simpler
compilation, and reduced storage requirements.
 Object-oriented architectures are used object-oriented operating systems.
 Dijkstra’s work with the THE multiprogramming system first introduced the
concept of building systems as layered state machines
 Other object-oriented operating systems include the Plessey/System 250 (for the
Plessey 250 multiprocessor), Hydra (for CMU’s C.mmp), CALTSS (for the CDC
6400), CAP (for the Cambridge CAP computer), UCLA Secure UNIX (for the
PDP 11/45 and 11/70), StarOS (for CMU’s Cm*), Medusa (also for CMU’s Cm*),
and iMAX (for the Intel 432).
 The fundamental ideas of classes and objects first appeared in the language Simula
67.
 Smalltalk-80, took Simula’s object-oriented paradigm, an instance of class.
 In the 1970s languages such as Alphard, CLU, Euclid, Gypsy, Mesa, and Modula
were developed, which supported the then-emerging ideas of data abstraction.
 The unification of object-oriented concepts with C has lead to the languages C++
and Objective C.
 Java avoid common programming errors when using C++.
 Adding object-oriented programming mechanisms to Pascal has led to the
languages Object Pascal, Eiffel, and Ada.
 Lisp incorporate the object-oriented features of Simula and Smalltalk
 Dijkstra first identified the importance of composing systems in layers of abstraction
 Parnas later introduced the idea of information hiding
 In the 1970s a number of researchers, most notably Liskov and Zilles , Guttag, and Shaw,
pioneered the development of abstract data type mechanisms.
 Hoare contributed to these developments with his proposal for a theory of types and subclasses.
 Database technology contribute ideas of the entity-relationship (ER) approach to data modeling.
The ER model, first proposed by Chen.
 In the field of artificial intelligence, developments in knowledge representation have contributed
to an understanding of object-oriented abstractions. In 1975, Minsky first proposed a theory of
frames to represent real-world objects by image and natural language recognition systems.
 Lastly, philosophy and cognitive science have contributed to the advancement of the object
model. In the twentieth century, Rand expanded on these themes in her philosophy of objectivist
epistemology. , Minsky has proposed a model of human intelligence in which he considers the
mind to be organized as a society of otherwise mindless agents.
Object-Oriented Programming

 Defined it as follows:
Object-oriented programming is a method of implementation in which programs are
organized as cooperative collections of objects, each of which represents an instance of
some class, and whose classes are all members of a hierarchy of classes united via
inheritance relationships.
 Three important parts to this definition:
1. Object-oriented programming uses objects, not algorithms, as its fundamental logical
building
2. Each object is an instance of some class
3. Classes may be related to one another via inheritance relationships
 Programming with abstract data types- No inheritance
 A language is object-oriented if and only if it satisfies the following requirements:
 It supports objects that are data abstractions with an interface of named operations and
a hidden local state.
 Objects have an associated type [class].
 Types [classes] may inherit attributes from supertypes [superclasses].
 If a language does not provide direct support for inheritance, then it is not object-
oriented. Cardelli and Wegner distinguish such languages by calling them object-
based rather than object-oriented.
 Under this definition, Smalltalk, Object Pascal, C++, Eiffel, CLOS, C#, and Java
are all object-oriented, and Ada83 is object-based (support for object orientation
was later added to Ada95).
Object-Oriented Design

Object-oriented design is a method of design encompassing the process of object-oriented


decomposition and a notation for depicting both logical and physical as well as static and
dynamic models of the system under design.
 There are two important parts to this definition: object-oriented design
1. Leads to an object-oriented decomposition
2. Uses different notations to express different models of the logical (class and object
structure) and physical (module and process architecture) design of a system, in
addition to the static and dynamic aspects of the system.
Object-Oriented Analysis

 Object-oriented analysis (OOA) emphasizes the building of real-world models,


using an object-oriented view of the world:
Object-oriented analysis is a method of analysis that examines requirements from the
perspective of the classes and objects found in the vocabulary of the problem domain.
 How are OOA, OOD, and OOP related?
 The products of object-oriented analysis serve as the models from which an object-
oriented design is started; the products of object-oriented design can then be used as
blueprints for completely implementing a system using object-oriented programming
methods.

You might also like