Vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie Object-Oriented Software...
-
Upload
dennis-richardson -
Category
Documents
-
view
217 -
download
2
description
Transcript of Vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie Object-Oriented Software...
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
Object-Oriented Software Engineering
Anton EliënsVrije Universiteit, Amsterdam
28 october 1998
http://www.cs.vu.nl/~eliens/cmg/html/oohttp://www.cs.vu.nl/~eliens/online/courses/cmg/oo
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
Topics:
• OO technology• The OO life cycle• Project Management• Application Frameworks• Current developments and trends
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
Introduction
If OO
is the Answer,
What isthe Question?
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
Keywords and phrases
• the OO lifecycle -- modelling• encapsulation, inheritance, delegation,
polymorphism• specification and implementation inheritance• design by contract• interfaces, components and frameworks• idioms, patterns, software architecture
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
Characterisations of OO
1. encapsulation + inheritance2. data abstraction + polymorphism3. interfaces + components4. types + implementations5. CORBA + Application Frameworks6. Java + nothing else7. a metaphor + hype8. everything I can sell …
Let's have a look at the Introduction from Principles of Object-Oriented Software Development
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
Managing O-O Projects
Did YOU ever manage a project?
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
Critical Success Factors
• use incremental scheduling and staging• find and fix failing ideas• develop a habit of delivering• get: sponsor, project manager, technical leader
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
Key Failure Indicators
• absence of incremental development• use of C++ in commercial IS
see Surviving Object-Oriented Projects: A Managers Guide
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
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!
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
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
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
Drawbacks
• Are YOU underestimating?• productivity takes time• hazards of C++ (and Java, ...)• reuse is difficult• establishing a software process• business-modelling or software design?• CASE helps?• You will pay for: training, experience, tools,
consultants, ...
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
The hazards of C++?
• C++ won the language war over Eiffel, Objective-C, SOM, C@+, and Java?
• Java -- relative simplicity and portability
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
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!
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
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
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
Case studies: Application Framework
• The hush Framework• The San Francisco Framework
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
Technology and Trends
UML Risks
JavaFrameworks
ContractsCORBAPatternsDOT
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
The Unified Modelling Language
• use case diagram• class diagram• behaviour diagrams:
– state-chart diagram– activity diagram– interaction diagrams:
• sequence diagram• collaboration diagram
• implementation diagrams:– component diagram– deployment diagram
For some background see: Ch. 11: Methods and Tools
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
UML - Quick Reference and Overview
adapted from the Rational Rose Quick Reference at http://www.rational.com/uml/qr
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
Design by Contract
• formal basis -- pre and post conditions• refinement -- by inheritance or polymorphism• runtime checks -- division of responsibility
see Ch. 3, Contracts
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
Frameworks
• Frameworks = Components + PatternsRalph Johnson, CACM Nov. 1997
• Self-documentation PrincipleBertrand 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 ...
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
The benefits
The benefits of frameworks stem from the inversion of control.
A Framework defines an Architecture?
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
Software Architecture
Software Architecture = a set of rules, guidelines, interfaces, and conventions used to define how components and applications communicate and interoperate with each other ...
see patterns
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
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
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
The Pattern Schema: structure
• Name - handle– increases design vocabulary
• Problem - when to apply– explains the problem and the conflict
• Solution - general arrangement– design, responsibilities, collaborations
• Consequences - trade-off's– to understand the costs and benefit
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
Causes for Redesign (1)
1. creating an object by specifying a class explicitly -- Abstract Factory, Factory Method, Prototype
2. dependence on specific operations -- Chain of Responsibility, Command
3. dependence on hardware & software platforms -- Abstract Factory, Bridge
4. dependence on object implementation or representation -- Abstract Factory, Bridge, Memento, Proxy
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
Causes for Redesign (2)
5. algorithm dependence -- Builder, Iterator, Strategy, Template Method, Visitor
6. extending functionality by subclassing -- Bridge, Chain, Composite, Decorator, Observer
7. tight coupling -- Abstract Factory, Bridge, Chain of Responsibilities, Command, Facade, Mediator, Observer
8. inability to alter classes conveniently -- Adaptor, Decorator, Visitor
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
Kinds of Patterns
• creational patterns -- Factory, Singleton, ...• structural patterns -- Adaptor, Composite, Bridge, ...• behavioral patterns -- Mediator, Observer,
Command, …
see also
see UML
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
Java
If Java
is the Answer,
What isthe Question?
see Ted Lewis, IEEE Computer, March 1997, p. 136
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
The dream: UNCOL
• Java is pervasive• remember, most of Java is just warmed-up C/C+
+• UNCOL = Universal Common Language
(1963) Algol -> PL/I -> Pascal -> Ada -> C++ -> …• Java as UNCOL: the dial-tone of the Internet
if today's languages are inadequate for Software then Java must be inadequate too ...
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
Hostages of legacy code
• our responsibility is that future applications (built with Java) are well-behaved legacy systems
• US DOD: $ 30 billion in year 2000 problem• maintaining legacy COBOL from the 70's is a
major industry ...• by 2010, Java will be the maintenance tail
wagging the software dog!
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
Is Java doomed to repeat history?
• elegant minimalism is one of the goals of Java,remember Pascal, a toy language!
• Java lacks IO, OS support ...
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
Problems
• Java = watered-down C++, retrofitting Pascal– syntax: int i = ++i--;– unruly scope rules: C++ plus f i n a l, n a t i v e, s y n
c h r o n i z e d, ...– threads: potential deadlocks
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
Java: a better mousetrap?
• requirements: no support (assert)• defacts: syntax, non-standard APIs• components: Beans ActiveX, CORBA,
OpenDoc• cycle time: Java does little to accommodate
Internet time, like script languages do• complexity: Java does not advance the
intellectual frontier!
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
CORBA
• the issue is standardisation• by means of interfaces• looking for consensus• this differs from a de-facto standard• imposed by market share ...
see Ch 11: Application integration -- standards andsee frameworks
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
Dimensions of Risks
• Knowledge• Teaming• Productivity• Ownership• Distractions
Don't discuss risks, unless you know how to do Project Management
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
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
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
Risk Reduction Strategies
• Teaming– holistic diversity -- co-ordinate specialists!
• Productivity– gold rush -- start immediately, adjust slowly
• Ownership– function / component owners -- create responsibility
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
Risk Reduction Strategies
• Distractions– someone always makes progress -- no total
interruption– team per task -- a subteam deals with diversions– sacrifice one person -- and preserve the team
• Training– day care -- hire an expert to take care of novices
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
Conclusions
• OO offers– a valid metaphor for SE– powerful technology– maturing design methods and notations– a rich set of patterns
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
Yet beware of
• the learning curve• simplified hype• cutting edge technology• (over) ambitious projects
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
Assignments:
• Write a paper about one of the following topics. The paper may discuss concepts or focus on a case study.– The Unified Modelling Language -- UML– Frameworks -- for example San Francisco
• 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.
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
Course material
• Chapter 1• Additional material
– Ch 3: Design by Contract– Ch 11: Methods and Tools– Object Tutorials
• Resources– http://www.rational.com -- Rational Rose, UML– http://www.ibm.com/java/sanfrancisco -- IBM Java San Francisco
Framework
• Papers and Reports– http://www.rational.com/uml/html/summary -- UML Summary– http://www.ibm.com/Java/Sanfrancisco/prd_summary.html -- San
Francisco Technical Summary