slide: Challenges in OO

Challenges in OO

Anton Eliëns VU/CWI

In this talk we will look at the motivations and rationale of OO and why OO has failed to realize its original promises with respect to reuse and maintenance.

Facing the challenges of the current Web-driven frenzy of software construction, we will discuss how classical notions of OO may be integrated with the new component-oriented technologies.

Centering around the notions of software architecture and frameworks, we will delineate the research issues for the next century, as another attempt at taming the forces underlying the ever present software crisis.


Based on Principles of OO Software Development (2nd edn soon to appear, Addison-Wesley, 2000)
Online at:

http://www.cs.vu.nl/~eliens/online/talks/ipa99/lecture.html



slide: Guess ...


Challenges in OO

http://www.cs.vu.nl/~eliens/online/talks/ipa99

Principles of OO Software Development


slide: Contents



     If
         OO
  	   is the Answer
     What is
  	   the Question?
  

See Ch 1: Themes and Variations

slide: What is the Question?


Trends -- modeling


slide: Trends and Technologies


Technologies -- components


slide: Trends and Technologies


Challenges

See Overview

slide: Trends and Technologies


Challenges in O-O


slide: Challenges


See Practicum OO

slide: Challenges



     If
         Components
  	   is the Question
     What is
  	   the Answer?
  

See Ch 1: Beyond Object-Orientation?

slide: What is the Answer?



slide: Guess ...


OO unleashes metaphorical thinking


slide: 1


Object-Orientation:

The Power of Abstraction

Project Failures

slide: Object-Orientation: The power of abstraction


Themes and Variations

The heritage of Simula



slide: Themes and Variations


See Object Speak and Features of OOP



slide: Themes and Variations


How to survive the Web revolution?

Beyond Object-Orientation?: 6 7 8

slide: How to survive the Web revolution?


The Object Web

slide: The Object Web


Recurring questions

Web Applications

Web Applications

slide: Recurring questions



slide: ...


A (component) framework embodies a problem solving mind set


slide: 2


Component

substitutability

slide: Definitions


Object

identity
Definitions

slide: Definitions


 [Szyperski97]: component-oriented approach, to deliver reusable "off-the-shelf" components for a composing large applications.

Beyond Object-Orientation?

slide: Off-the-shelf ...


A software component is a unit of composition with contractually specified interfaces and explicit context dependencies only. A software component can be deployed independently and is subject to composition by third parties.

Component Myths

slide: Definition


Component Questions

slide: Component Questions


The Component War is as yet undecided!



The Java Platform?



slide: The Component War



slide: Guess ...


The building metaphor is WRONG

It is all about ecology


slide: 8


Elements of Architecture

 [Wolf]

slide: Elements of Architecture -- models and views


Models and Views

Elements of Architecture

slide: Elements of Architecture -- models and views


Our building metaphor is wrong!

Architectural decisions must strive for an ecology of change, that is a flexible arrangement of components to promote changes in business-logic and adaptiveness to a changing environment.

Software Architecture Revisited

slide: Our building metaphor is wrong!


Architectural software styles

Software Architecture

slide: Architectural software styles


Themes and variations

Beyond Object-Orientation?

slide: Themes and variations


Architectural issues for the Web

Application Infrastructure

slide: Architectural issues



slide: Guess ...


The knowledge imposes a pattern, and falsifies.

For the pattern is new in every moment.

T.S. Eliot


slide: 6


Are Components better Objects?

Component Technology

slide: Are components better objects?


Responsibilities


slide: Responsibilities in OOP


Client

Server

Client/Server Model

slide: Responsibilities in OOP


Contracts

Behavioral refinement

Contracts

slide: Contracts and behavioral refinement


Conformance

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

Behavioral Refinement



slide: Behavioral refinement


Subtype -- signature and behavior


slide: Subtyping and behavior


Behavioral properties

Types as Behavior

slide: Subtyping and behavior


Example -- IntSet \not<= FatSet


slide: History properties -- example


History property -- not satisfied by $IntSet$

Objects as Behavioral Types

slide: History properties -- example


From Metaphor to Calculus

Agents for the Web

slide: Research Challenges


Case Study: Verifiable (Component) Software

Towards a formal approach

slide: Research Challenges



slide: Guess ...


There is no silver bullet


slide: 7


It is a brave architect who, in today's environment, does not develop, or at least consider, an object-oriented design.

 [Practice] p. 10

Software Architecture Revisited

slide: It is a brave architect ...

..., ignoring details, plugin architectures indicate what may become the dominant paradigm of the future,

framework-like environments that are extensible by components following a clearly defined pattern or protocol.

That is to say, components created according to the Principles of Object-Oriented Software Development.



slide: Challenges in OO