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:

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

Introduction



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

  • 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


Challenges

  • 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



     If
         Components
  	   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


Object-Orientation:

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


Component

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

slide: Definitions


Object

identity
  • unit of instantiation
  • (persistent) state
  • encapsulation of state and behavior
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


  • 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

 [Wolf]
  • 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?


Responsibilities

  • to specify behavior

    what rather than how



slide: Responsibilities in OOP


Client

  • makes request to perform a service

Server

  • provides service upon request
Client/Server Model

slide: Responsibilities in OOP


Contracts

  • a set of services

Behavioral refinement

  • improving contracts
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

  • 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

Conclusions



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.