Principles of Object-Oriented Software Development
[] readme course preface 1 2 3 4 5 6 7 8 9 10 11 12 appendix lectures resources

talk show tell print


This chapter looked at application development. We started with a simple example and subsequently discussed guidelines for class design. 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 and events.

The drawtool application


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.

Guidelines for design


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.

From specification to implementation


  • 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 a system. 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.


  1. Give an example of your choice to describe OO application development.
  2. Discuss possible guidelines for individual class design.
  3. Discuss how inheritance may affect class invariants.
  4. What would be your rendering of the Law of Demeter? Can you phrase its underlying intuition? Explain.
  5. Define the notions of client, supplier and acquaintance. What restrictions must be satisfied to speak of a preferred acquaintance and a preferred supplier?
  6. Characterize the differences between semantic modeling and object-oriented modeling.
  7. How would you characterize the notion of abstract systems?
  8. Explain how events may be employed to maintain system integrity. Give an example!

Further reading

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, consult  [Diller94]. For object-oriented extensions of Z, see  [Stepney].

[] readme course preface 1 2 3 4 5 6 7 8 9 10 11 12 appendix lectures resources

draft version 0.1 (15/7/2001)