subsections:


Themes and variations


slide: Themes and variations


Object terminology

object speak



slide: Object terminology


Features of OOP


slide: Features of OOP


OO = encapsulation + inheritance


benefits of OOP


slide: Benefits of OOP


the object model


message


encapsulation


protocol



slide: The object model


Computing devices

Object-oriented programming does not enlarge the class of computable problems, nor does it reduce the computational complexity of the problems we can handle.


slide: Computing devices


Encapsulation

ADT = state + behavior

Object-oriented modeling


slide: Abstract data types -- encapsulation


Responsibilities

Client

client/server model


Server


slide: Responsibilities in OOP


object = information + responsibilities

Contracts

Behavioral refinement


slide: Contracts and behavioral refinement


Conformance -- behavioral refinement

if B refines A then B may be used wherever A is allowed


slide: Behavioral refinement


attributes

  • more information

services

  • better services

contracts

  • more and better services

A better service

  • fewer restrictions for the client
  • more obligations for the server

slide: Improving services


Object-oriented modeling

OOP = Contracts + Refinements


slide: Object-oriented modeling