topical media & game development
This chapter looked at
We started with a simple example and
subsequently discussed guidelines for
We then looked at a more formal approach,
involving the transition from a formal
specification to the actual
implementation based on a notion of abstract systems
- drawing canvas -- in hush
- drawtool -- compound widgets
slide: Section 4.1: The drawtool application
In section 1 we looked at how to develop applications
in hush, as a typical
example of inplementing an interactive editor.
- individual class design
- establishing invariants
- an objective sense of style
slide: Section 4.2: Guidelines for design
In section 2, some guidelines
for design were presented. We looked at issues that may
arise when attempting to establish class invariants.
Finally, we discussed the rules imposed by
the Demeter method.
- structure versus behavior
- model-based specification
- abstract systems
slide: Section 4.3: From specification to implementation
In section 3, we discussed the distinction
between structural and behavioral aspects of
We looked at the application of
formal methods to specify the requirements for
a system, and we studied an implementation
based on abstract systems and events which was
derived from the original formal specification.
- Give an example of your choice to describe OO application development.
- Discuss possible guidelines for individual class design.
- Discuss how inheritance may affect class invariants.
- What would be your rendering of the Law of Demeter?
Can you phrase its underlying intuition? Explain.
- Define the notions of client, supplier and acquaintance.
What restrictions must be satisfied to speak of
a preferred acquaintance and a preferred supplier?
- Characterize the differences between semantic
modeling and object-oriented modeling.
- How would you characterize the notion of
- Explain how events may be employed to
maintain system integrity. Give an example!
The original paper on hush is [HUSH].
A veritable catalogue of object-oriented
applications can be found in [Harmon93].
A classical paper on class design is [JF88].
For the Law of Demeter, consult [LH89].
The notion of abstract systems
was introduced in [Henderson93],
which also gives a good account of a
formal approach to object-oriented design.
For an introduction to formal methods and Z,
For object-oriented extensions of Z, see [Stepney].
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.