topical media & game development
Object-Oriented Software Engineering
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
from Principles of Object-Oriented Software Development
slide: Let's have a look ...
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
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!
- 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, ...
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++
- 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
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
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 ...
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
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
Dimensions of Risks
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
- holistic diversity -- coordinate specialists!
- gold rush -- start immediatly, adjust slowly
- function / component owners -- create responsibility
- someone always makes progress -- no total interruption
- team per task -- a subteam deals with diversions
- sacrifice one person -- and preserve the team
- day care -- hire an expert to take care of novices
- a valid metaphor for SE
- powerful technology
- maturing design methods and notations
- a rich set of patterns
Yet beware of
- the learning curve
- simplified hype
- cutting edge technology
- (over) ambitious projects
slide: Beware of
- 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.
Papers and Reports
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.