topical media & game development
object-oriented programming
overview
Object-Oriented Software Engineering
Anton Eliëns
Vrije Universiteit, Amsterdam
CMG Course - 10 juni 1998
www.cs.vu.nl/~eliens/online/courses/cmg/oo
slide: CMG Course: Web Applications
Topics:
- 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
Characterizations
- 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 ...
Did
YOU
ever
manage
a
project?
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
Drawbacks
- 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
Contracts
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
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
Patterns
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
CORBA
- 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
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
knowledge
- 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
teaming
- holistic diversity -- coordinate specialists!
slide: Teaming
productivity
- gold rush -- start immediatly, adjust slowly
slide: Productivity
ownership
- function / component owners -- create responsibility
slide: Ownership
distraction
- someone always makes progress -- no total interruption
- team per task -- a subteam deals with diversions
- sacrifice one person -- and preserve the team
slide: Distraction
training
- day care -- hire an expert to take care of novices
slide: Training
Conclusions
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
- 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
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.