topical media & game development

talk show tell print

object-oriented programming


Object-Oriented Software Engineering

Anton Eliëns

Vrije Universiteit, Amsterdam

CMG Course - 10 juni 1998

slide: CMG Course: Web Applications


  • OO technology
  • The OO life cycle
  • Project Management
  • Application Frameworks
  • Current developments and trends

slide: Object-Oriented Software Engineering (abstract)


Keywords and phrases

  • the OO lifecycle -- modeling
  • encapsulation, inheritance, delegation, polymorphism
  • specification and implementation inheritance
  • design by contract
  • interfaces, components and frameworks
  • idioms, patterns, software architecture

slide: Keywords and phrases


  • OO = encapsulation + inheritance
  • OO = data abstraction + polymorphism
  • OO = interfaces + components
  • OO = types + implementations
  • OO = CORBA + Application Frameworks
  • OO = Java + nothing else
  • OO = a metaphor + hype
  • OO = everything I can sell ...

slide: OO is ...

Let's have a look at the Introduction from Principles of Object-Oriented Software Development

slide: Let's have a look ...

Managing O-O Projects


slide: Did you ever manage a project?

Critical Success Factors

  • use incremental scheduling and staging
  • find and fix failing ideas
  • develop a habit of delivering
  • Get: sponsor, project manager, technical leader

slide: Critical Success Factors

Key Failure Indicators

  • absence of incremental development
  • use of C++ in commercial IS

see Surviving Object-Oriented Projects: A managers Guide

slide: Key Failure Indicators

OO - Success and Failure

  • OO = technology + mind-set
  • it might be new technology to your organisation
  • developers love it!
  • requires and enables communication between groups
  • adopting OO may succeed or fail!

slide: OO - Success and Failure

Possible benefits - responsiveness

  • responsiveness - variations on a theme
  • responsiveness to change!
  • time-to-market
  • communication - developers, users, executives
  • maintenance, reuse, productivity
  • GUI development
  • morale -- cutting-edge technology

slide: Possible benefits - responsiveness


  • Are YOU underestimating?
  • productivity takes time
  • hazards of C++ (and Java, ...)
  • reuse is difficult
  • establishing a software process
  • business-modeling or software design?
  • CASE helps?
  • You will pay for: training, experience, tools, consultants, ...

slide: Drawbacks

The hazards of C++?

  • C++ won the language war over Eiffel, Objective-C, SOM, C@+, and Java?
  • Java -- relative simplicity and portability

slide: The hazards of C++?

Managing (the complexity of) C++

  • misconception: C++ is like C
  • consider using another language
  • Why does C++ exist? - engineering and systems programming
  • create a subset of the language
  • design and coding standards
  • use people with knowledge!

slide: Managing (the complexity of) C++

Risk-reduction Strategies

  • look carefully all around the project
  • detect the risks!
  • list the risks in order
  • work on the risks in order of danger

see Risk Avoidance Patterns

slide: Risk-reduction Strategies

Case studies: Application Framework

Applications Frameworks

slide: Case studies: Application Frameworks


Design by Contract

  • formal basis -- pre and post conditions
  • refinement -- by inheritance or polymorphism
  • runtime checks -- division of responsibility

see Ch. 3, Contracts

slide: Design by Contract


Frameworks = Components + Patterns

Ralph Johnson, CACM Nov. 1997

Self-documentation Principle

Bertrand Meyer, OO Software Construction 2nd ed.

the designer of a module should strive to make all information about the module part of the module itself ...

slide: Frameworks = Components + Patterns

The benefits of frameworks stem from the inversion of control

A Framework defines an Architecture?

slide: The benefits ...

Software Architecture = a set of rules, guidelines, interfaces, and conventions used to define how components and applications communicate and interoperate with eachother ...

see patterns

slide: Software Architecture


A Catalogue of Design patterns

  • a common design vocabulary
  • documentation and learning aid
  • an adjunct to existing methods
  • a target for redesign

see the GOF Design Patterns and the Patterns Homepage

slide: A Catalogue of Design patterns



  • the issue is standardization
  • by means of interfaces
  • looking for consensus
  • this differs from a de-facto standard
  • imposed by market share ...

See Ch 6: Component Technology

slide: CORBA

Risk Avoidance Patterns

Dimensions of Risks

  • Knowledge
  • Teaming
  • Productivity
  • Ownership
  • Distractions

Don't discuss risks, unless you know how to do Project Management

slide: Dimensions of Risks

Risk Reduction Strategies

slide: Risk Reduction Strategies


  • clear the fog -- get to the real issues
  • early and regular delivery -- discover what you don't know
  • prototype! -- discover how it really works
  • create microcosm -- do something real, but with care

slide: Knowledge


  • holistic diversity -- coordinate specialists!

slide: Teaming


  • gold rush -- start immediatly, adjust slowly

slide: Productivity


  • function / component owners -- create responsibility

slide: Ownership


  • someone always makes progress -- no total interruption
  • team per task -- a subteam deals with diversions
  • sacrifice one person -- and preserve the team

slide: Distraction


  • day care -- hire an expert to take care of novices

slide: Training


OO offers

  • a valid metaphor for SE
  • powerful technology
  • maturing design methods and notations
  • a rich set of patterns

slide: Conclusions

Yet beware of

  • the learning curve
  • simplified hype
  • cutting edge technology
  • (over) ambitious projects

slide: Beware of


Assignments: (nederlandse versie)

  • Write a paper about one of the following topics. The paper may discuss concepts or focus on a case study.
    • The Unified Modeling Language -- UML
    • Frameworks -- for example Sanfrancisco
  • Write a comparative study of object-oriented analysis and design methods, focussing on aspects of project management.
  • Describe a case study concerning the deployment of design patterns.

Course material

Course Material

Additional material


Papers and Reports

(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.