Title: Principles of Object-Oriented Software Development
1Principles of Object-Oriented Software Development
- Software Development Projects
2Software Development Projects
- gambling machine
- interactive video game (Coplien, 1992)
- simple hypermedia system (Meyrowitz, 1986)
- direct manipulation score editor (Pope, 1991)
- an object-oriented expert system (Hu, 1989)
- 3D animation editor (Ammeraal, 1992)
- a simple case tool (Coad and Yourdon, 1991b)
- route planner
3Idioms and Patterns
Introduction Polymorphism Idioms
in hush A catalogue of design patterns
Event-driven computation Summary Q/A
Literature
4Summary
5Questions
1.How would you characterize OOP and what, in
your opinion, is the motivation underlying the
introduction of OOP? 2.Characterize the most
important features of OOP. 3.Explain the meaning
of the phrase "object orientation reduces the
complexity of programming." 4.How would you
characterize contracts? Why are contracts
important? 5.How is OOP related to programming
languages? 6.What classes of languages support
OOP features? Explain. 7.What influence is an
object-oriented approach said to have on the
software life-cycle? What is your own opinion?
Discuss the problem of maintenance. 8.How would
you characterize software quality? 9.Mention a
number of object-oriented programming languages,
and give a brief characterization. 10.What do
you see as the major challenges for research in
object-orientation?
6Further reading
Nowadays there are many books that may serve as a
starting point for reading about OO. Dependent on
your interest, you may look at Surviving, which
treats issues of OO project management,
Meyer97, which gives an extensive introduction
to design by contract and programming in Eiffel,
or Fowler97, which gives a succinct
introduction to UML. Alternatively, you may take
one of the introductory programming books for
Java, from which you will almost certainly learn
something about OO as well.