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.
See Ch 1: Beyond Object-Orientation?
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.