Basic Technology

Download Report

Transcript Basic Technology

Basic OO Technology
Technology determines the effectiveness of the approach
Postacademische Cursus Informatie Technologie
vrije Universiteit
amsterdam
Concepts
•
•
•
•
Encapsulation
Data hiding
Inheritance
Polymorphism
Postacademische Cursus Informatie Technologie
vrije Universiteit
amsterdam
Encapsulation
•
•
•
•
An object contains data and methods
It provides a boundary:
to the world outside
to its ‘children’
Postacademische Cursus Informatie Technologie
vrije Universiteit
amsterdam
Information hiding
•
•
•
•
Reduces complexity
Allows you to defer implementations
Remember: Ignorance is bliss
Helps in decoupling components
Postacademische Cursus Informatie Technologie
vrije Universiteit
amsterdam
Inheritance
•
•
•
•
A mechanism for code-sharing
Supports incremental development
Organize by classification
Allows for abstract interfaces
Postacademische Cursus Informatie Technologie
vrije Universiteit
amsterdam
Polymorphism
•
•
•
•
•
An object may have multiple types
An abstract type: when it is used
A concrete type: when it is created
An object’s type is determined by its behavior
An object’s type is determined by the messages it allows
Postacademische Cursus Informatie Technologie
vrije Universiteit
amsterdam
Postacademische Cursus Informatie Technologie
vrije Universiteit
amsterdam
Design by Contract
• formal basis -- pre and post conditions
• refinement -- by inheritance or polymorphism
• runtime checks -- division of responsibility
see Ch. 3, Contracts
Postacademische Cursus Informatie Technologie
vrije Universiteit
amsterdam
Design by Contract
Abstract Data Types
ADT = state + behavior
Object-Oriented Modeling
data oriented
Postacademische Cursus Informatie Technologie
vrije Universiteit
amsterdam
Responsibilities
what rather than how
to specify behavior
Client
client/server model
makes request to perform a service
Server
provides service upon request
Postacademische Cursus Informatie Technologie
vrije Universiteit
amsterdam
object = information + responsibilities
Contracts
a set of services
Behavioral refinement
improving contracts
Postacademische Cursus Informatie Technologie
vrije Universiteit
amsterdam
Conformance --
behavioral refinement
if B refines A then B may be
used wherever A is allowed
Postacademische Cursus Informatie Technologie
vrije Universiteit
amsterdam
Attributes
more information
refine
Services
better services
Contracts
more and better services
A better service
fewer restrictions for the client
more obligations for the server
Postacademische Cursus Informatie Technologie
vrije Universiteit
amsterdam
Object-Oriented Modeling
prototyping, specification, refinement, interactions
OOP = Contracts + Refinements
Postacademische Cursus Informatie Technologie
vrije Universiteit
amsterdam