topical media & game development

talk show tell print

object-oriented programming

Challenges in OO

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:


slide: Guess ...

Challenges in OO

Principles of OO Software Development

slide: Contents

  	   is the Answer
     What is
  	   the Question?

See Ch 1: Themes and Variations

slide: What is the Question?

Trends -- modeling

  • patterns -- examples of design
  • UML -- Unified Modeling Language

slide: Trends and Technologies

Technologies -- components

  • Web -- global infrastructure
  • CORBA/DCOM - the software bus
  • Java -- the platform?

slide: Trends and Technologies


  • Applications -> Frameworks <- Patterns
See Overview

slide: Trends and Technologies

Challenges in O-O

  • vertical framework development -- finance, medical care, insurance
  • separation of business 'logic' from 'control'

slide: Challenges

  • distributed object technology
  • visualisation -- structure and processes
  • knowledge intensive applications
  • heterogeneous systems -- fragmented
See Practicum OO

slide: Challenges

  	   is the Question
     What is
  	   the Answer?

See Ch 1: Beyond Object-Orientation?

slide: What is the Answer?

Trends and technologies

slide: Guess ...

OO unleashes metaphorical thinking

slide: 1


The Power of Abstraction

Project Failures

slide: Object-Orientation: The power of abstraction

Themes and Variations

  • abstraction -- the object metaphor
  • modeling -- structure and behavior

The heritage of Simula

slide: Themes and Variations

  • architecture -- mastering complexity
  • frameworks -- patterns for problem solving
  • components -- scalable software

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

  • What is the economic model?
  • Does it scale?
  • Can you maintain the stuff?
  • Is there an installed base?
Web Applications

slide: Recurring questions

Objects versus Components

slide: ...

A (component) framework embodies a problem solving mind set

slide: 2


  • unit of independent deployment
  • unit of third party composition
  • no persistent state

slide: Definitions


  • unit of instantiation
  • (persistent) state
  • encapsulation of state and behavior

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

  • How to describe the interaction between components?
  • How to manage variety and flexibility?
  • How to guarantee critical system-wide properties?

Component Questions

slide: Component Questions

The Component War is as yet undecided!

The Java Platform?

slide: The Component War

The notion of Software Architecture

slide: Guess ...

The building metaphor is WRONG

It is all about ecology

slide: 8

Elements of Architecture

  • processing elements -- data transformations
  • data elements -- contain information
  • connections -- glueing elements together

slide: Elements of Architecture -- models and views

Models and Views

  • logical -- functional requirements
  • process -- performance, availability, ...
  • physical -- scalability, configuration
  • development -- organization of software
  • scenarios -- instances of use cases
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

  • component types -- process, event, ...
  • runtime relations -- topology
  • semantic constraints -- immutability
  • communication, coordination -- connectors
Software Architecture

slide: Architectural software styles

Themes and variations

  • OO -- simple call and return
  • CORBA -- independent components
  • WWW -- data centered
  • events -- independent components
  • logic -- virtual machine architecture
Beyond Object-Orientation?

slide: Themes and variations

Architectural issues for the Web

  • managing growth, maintaining installed base
  • enhanced functionality -- multimedia
  • improved infrastructure -- HTTP-NG
Application Infrastructure

slide: Architectural issues

Research 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?


  • to specify behavior

    what rather than how

slide: Responsibilities in OOP


  • makes request to perform a service


  • provides service upon request
Client/Server Model

slide: Responsibilities in OOP


  • a set of services

Behavioral refinement

  • improving contracts

slide: Contracts and behavioral refinement


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

Behavioral Refinement

slide: Behavioral refinement

Subtype -- signature and behavior

  • preservation of behavioral properties

slide: Subtyping and behavior

Behavioral properties

  • invariant properties -- true of all states
  • history properties -- all execution sequences
Types as Behavior

slide: Subtyping and behavior

Example -- IntSet \not<= FatSet

  • FatSet -- insert, select, size
  • IntSet -- insert, delete, select, size

slide: History properties -- example

History property -- not satisfied by $IntSet$

  • \A s : FatSet. \A %f, %q : State. %f < %q /\ s \e dom (%q).
    \hspace{2cm} \A x : Int. x \e s_{%f} => x \e s_{%q}

Objects as Behavioral Types

slide: History properties -- example

From Metaphor to Calculus

  • a strong object is a weak agent
Agents for the Web

slide: Research Challenges

Case Study: Verifiable (Component) Software

  • e.g. CMG Test Frame -- UML Use cases -> Test Action Words
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

(C) Æliens 04/09/2009

You may not copy or print any of this material without explicit permission of the author or the publisher. In case of other copyright issues, contact the author.