A Survey of Object-Oriented Concept Oscar Nierstrasz.

Slides:



Advertisements
Similar presentations
OO Programming in Java Objectives for today: Overriding the toString() method Polymorphism & Dynamic Binding Interfaces Packages and Class Path.
Advertisements

Classes and Object- Oriented... tMyn1 Classes and Object-Oriented Programming The essence of object-oriented programming is that you write programs in.
Chapter Object-Oriented Practices. Agenda Object-Oriented Concepts Terminology Object-Oriented Modeling Tips Object-Oriented Data Models and DBMSs.
Programming Language Paradigms: summary. Object-oriented programming Objects are the fundamental building blocks of a program. Interaction is structured.
Object Oriented System Development with VB .NET
OOP in Java Nelson Padua-Perez Chau-Wen Tseng Department of Computer Science University of Maryland, College Park.
Object-Oriented Databases
Object-oriented Programming Concepts
1 Introduction to C++ Programming Concept Basic C++ C++ Extension from C.
Object-oriented design CS 345 September 20,2002. Unavoidable Complexity Many software systems are very complex: –Many developers –Ongoing lifespan –Large.
EER vs. UML Terminology EER Diagram Entity Type Entity Attribute
Comparison of OO Programming Languages © Jason Voegele, 2003.
Object-Oriented Programming Concepts
Programming Languages and Paradigms Object-Oriented Programming.
Design Patterns OOD. Course topics Design Principles UML –Class Diagrams –Sequence Diagrams Design Patterns C#,.NET (all the course examples) Design Principles.
MT311 Java Application Development and Programming Languages Li Tak Sing( 李德成 )
OOPs Object oriented programming. Based on ADT principles  Representation of type and operations in a single unit  Available for other units to create.
CISC6795: Spring Object-Oriented Programming: Polymorphism.
CSM-Java Programming-I Spring,2005 Objects and Classes Overview Lesson - 1.
An Object-Oriented Approach to Programming Logic and Design
Introduction to Object Oriented Programming. Object Oriented Programming Technique used to develop programs revolving around the real world entities In.
CS 403 – Programming Languages Class 25 November 28, 2000.
1 Chapter 10: Data Abstraction and Object Orientation Aaron Bloomfield CS 415 Fall 2005.
Unified Modeling Language, Version 2.0
Features of Object Oriented Programming Lec.4. ABSTRACTION AND ENCAPSULATION Computer programs can be very complex, perhaps the most complicated artifact.
Chapter 6 Object-Oriented Java Script JavaScript, Third Edition.
Guided Notes Ch. 9 ADT and Modules Ch. 10 Object-Oriented Programming PHP support for OOP and Assignment 4 Term project proposal C++ and Java Designer.
Introduction to Object Oriented Programming CMSC 331.
CSSE501 Object-Oriented Development. Chapter 11: Static and Dynamic Behavior  In this chapter we will examine the differences between static and dynamic.
More on Hierarchies 1. When an object of a subclass is instantiated, is memory allocated for only the data members of the subclass or also for the members.
OBJECT-ORIENTED PROGRAMMING (OOP) WITH C++ Instructor: Dr. Hany H. Ammar Dept. of Electrical and Computer Engineering, WVU.
Chapter 12 Support for Object oriented Programming.
Object Oriented Software Development
Chapter 6 Introduction to Defining Classes. Objectives: Design and implement a simple class from user requirements. Organize a program in terms of a view.
CSE 341, S. Tanimoto Java brief review - 1 Java Brief Review Java’s strengths Object-oriented terminology Inheritance Interfaces An example with inheritance.
Lecture 10 Concepts of Programming Languages Arne Kutzner Hanyang University / Seoul Korea.
CS451 - Lecture 2 1 CS451 Lecture 2: Introduction to Object Orientation Yugi Lee STB #555 (816) * Acknowledgement:
Object-Oriented Programming Chapter Chapter
OOPs Object oriented programming. Abstract data types  Representationof type and operations in a single unit  Available for other units to create variables.
Object Oriented Programming
Testing OO software. State Based Testing State machine: implementation-independent specification (model) of the dynamic behaviour of the system State:
ISBN Object-Oriented Programming Chapter Chapter
Copyright © 2005 Elsevier Object-Oriented Programming Control or PROCESS abstraction is a very old idea (subroutines!), though few languages provide it.
1 Unified Modeling Language, Version 2.0 Chapter 2.
Chapter 18 Object Database Management Systems. Outline Motivation for object database management Object-oriented principles Architectures for object database.
1 CSE Programming in C++. 2 Overview Sign roster list Syllabus and Course Policies Introduction to C++ About Lab 1 Fill Questionnaire.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
Object orientation and Packaging in Java Object Orientation and Packaging Introduction: After completing this chapter, you will be able to identify.
1 C# - Inheritance and Polymorphism. 2 1.Inheritance 2.Implementing Inheritance in C# 3.Constructor calls in Inheritance 4.Protected Access Modifier 5.The.
Internet Computing Module II. Syllabus Creating & Using classes in Java – Methods and Classes – Inheritance – Super Class – Method Overriding – Packages.
 Description of Inheritance  Base Class Object  Subclass, Subtype, and Substitutability  Forms of Inheritance  Modifiers and Inheritance  The Benefits.
C++ General Characteristics: - Mixed typing system - Constructors and destructors - Elaborate access controls to class entities.
Basic Characteristics of Object-Oriented Systems
ISBN Chapter 12 Support for Object-Oriented Programming.
A Survey of Object-Oriented Concepts, by Oscar Nierstrasz Reviewed by Odd Petter N. Slyngstad for DT8100, 27/1/2005.
Object Oriented Programming in Java Habib Rostami Lecture 2.
Chapter 12: Support for Object- Oriented Programming Lecture # 18.
Chapter 11: Abstract Data Types Lecture # 17. Chapter 11 Topics The Concept of Abstraction Advantages of Abstract Data Types Design Issues for Abstract.
Java Programming Fifth Edition Chapter 9 Introduction to Inheritance.
Slide 1 Unified Modeling Language, Version 2.0 Object-Oriented SAD.
 The Object Oriented concepts was evolved for solving complex problems. Object- oriented software development started in the 1980s. Object-oriented design.
Inheritance Modern object-oriented (OO) programming languages provide 3 capabilities: encapsulation inheritance polymorphism which can improve the design,
Modern Programming Tools And Techniques-I
Object-Oriented Design
Systems Analysis and Design With UML 2
PRINCIPALES OF OBJECT ORIENTED PROGRAMMING
Types of Programming Languages
More Object-Oriented Programming
Polymorphism Polymorphism
Testing with OO OO has several key concepts:
Presentation transcript:

A Survey of Object-Oriented Concept Oscar Nierstrasz

1.1 What is Object-Oriented Programming Language Restrictive – The programming language that supports both object classes and class inheritance. Loose - Any programming language that provides mechanisms that can be used to exploit encapsulation is (at least to some degree) object-oriented.

Object models for programming languages often encapsulate objects in terms of a set of operations as a visible interface, while hiding the object’s realization.

Our Discussion will center on: Reusability Object types Concurrency

1.1.1 Reusability Instantiation Object Classes Inheritance Polymorphism Overloading Generic Classes

Instantiation Instantiation is perhaps the most basic OO reusability mechanism. There are static and dynamic instantiation. Statically instantiated objects are allocated at compile time and exist for the duration that the program executes. Dynamically instantiated objects require run-time support for allocation and for either explicit deallocation or some form of garbage collection.

Instantiation One way for programmers to define and instantiate their own objects is providing the programmer with a facility to define object classes. An alternative approach to instantiation is to use prototypical objects.

Object Classes An object class specifies a set of visible operations, a set of hidden instance variables, and a set of hidden methods that implement the operations. The difference between object classes and prototypical objects is brought out sharply when viewed in terms of applicable inheritance mechanisms.

Inheritance In most cases, inheritance is strictly a reusability mechanism for sharing behavior between objects. Inheritance can be statically or dynamically. –Class inheritance is often represented as the fundamental feature that distinguishes object-oriented from other programming languages. Single inheritance Multiple inheritance. –Dynamic inheritance refers to mechanisms that permit objects to alter their behaviour in the course of normal interactions between objects. Part inheritance. Scope inheritance.

Some interesting points concering class inheritance Not all languages with class inheritance support multiple inheritance. It is important to be able to override inherited methods Subclass may or may not be permitted direct access to inherited instance variables. The issue of name clashes in teh presence of multiple inheritance.

Polymorphism and overloading A polymorphic function is one that can be applied uniformly to a variety of objects. Class inheritance is closely related to polymorphism. Polymorphism enhances software reusability by making it possible to implement generic software that will work not only for a range of existing objects, but also for objects to be added later.

Generic classes Generic object classes achieves software reusability by partially describing a class and parameterizing the unknowns. Two basic categories of generic object: –Container objects: arrays and lists. –Tool objects: sorters and editors. In case of tool objects, the parameter must be constrained to indicate the required parent class of the parameter.

1.1.2 Object types An object type is superficially the same thing as an object class. The difference is that when we manipulate typed objects, we can make static type- checking. The declared types of a varibles and of arguments to operations serve as specification for balid bindings and invocations. In the presence of dynamic binding, it is generally impossible to determine statically the class of a variable, but with teh appropriate type rules we can still perform type-checking.

1.1.3 Concurrency Two ways in which programing languages have dealt with concurrency and communication. Active entities (process)communicate indirectly through shared passive objects. Active entities communicate directly with one another by message passing.

1.2 OO systems Two important kinds of OO system Those that provide run-time support for OO application. Those that form an environment for OO software development.

1.2.1 Object Management Object management refers to a mixed bag of run- time issues such as concurrency, distribution, version control and security. Minimal object management support is provided for C++ objects. Smalltalk and LISP additionally provide fro automatic garbage collection. Object-Oriented Operating system may provide support for persistence, reliable communication, ro distributed object-naming at a low level. OO database.

1.2.2 OO programing Environment This is about tools and environments for application development. First problem is how should we decompose our application into objects in such a way as to best exploit the OO pradigms available to us? (consept model techniques) The next problem is that of selecting objects from a software base (personal expertise, software document, and browsing tools). Third problem is to cope with evolution of software base (making interface unchanged)

Summary The term Object-oriented is best interpreted as referring to any approach that exploits encapsulation or packaging in the process of designing and building software. We have surveyed OO techniques in programing languages and system support.