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.
http://www.cs.vu.nl/~eliens/online/talks/ipa99/lecture.html
Principles of OO Software Development
Object-Orientation:
See Object Speak and Features of OOP
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.
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.
T.S. Eliot
Behavioral refinement
if B refines A
then
B may be used
wherever A is allowed
It is a brave architect who, in today's environment,
does not develop, or at least consider,
an object-oriented design.
..., 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.
(C) Æliens
04/09/2009
Introduction
Challenges in OO
http://www.cs.vu.nl/~eliens/online/talks/ipa99
See Ch 1: Themes and Variations
Trends -- modeling
Technologies -- components
Challenges
See Overview
Challenges in O-O
See Practicum OO
See Ch 1: Beyond Object-Orientation?
Trends and technologies
OO unleashes metaphorical thinking
The Power of Abstraction
Project Failures
Themes and Variations
How to survive the Web revolution?
Beyond Object-Orientation?:
6
7
8
The Object Web
Recurring questions
Web Applications
Web Applications
Objects versus Components
A (component) framework embodies a problem solving mind set
Component
substitutability
Object
identity
Definitions
Beyond Object-Orientation?
Component Myths
Component Questions
The Component War is as yet undecided!
The notion of Software Architecture
The building metaphor is WRONG
It is all about ecology
Elements of Architecture
Models and Views
Elements of Architecture
Our building metaphor is wrong!
Software Architecture Revisited
Architectural software styles
Software Architecture
Themes and variations
Beyond Object-Orientation?
Architectural issues for the Web
Application Infrastructure
Research Issues
The knowledge imposes a pattern,
and falsifies.
For the pattern is new in every moment.
Are Components better Objects?
Component Technology
Responsibilities
Client
Server
Client/Server Model
Contracts
Contracts
Conformance
Subtype -- signature and behavior
Behavioral properties
Types as Behavior
Example -- IntSet \not<= FatSet
History property -- not satisfied by $IntSet$
\hspace{2cm} Objects as Behavioral Types
From Metaphor to Calculus
Agents for the Web
Case Study: Verifiable (Component) Software
Towards a formal approach
Conclusions
There is no silver bullet
Software Architecture Revisited