Objectives

This section discusses the issues involved in the design of libraries for object-oriented programming, following  [Meyer90]. It gives an overview of the standard libraries that come with Eiffel and discusses the conventions adopted in their design. It further illustrates how a taxonomic structure may be reflected in the actual classes constituting a library, and discusses how such a structure may be used in the archival and querying tools needed to manage and use a library. As an example, the development of bag and set classes in C++ is sketched.

Points to emphasize

Hints

The design of the Eiffel libraries presents an example of a rational approach to software development, including documentation and reliability. It is important to stress that the approach adopted for Eiffel may fruitfully be employed for other languages as well.

Questions

  1. Discuss the problems involved in library design. How would you solve the problem of maintaining consistency between different releases?
  2. What are your preferences with regard to naming conventions for object methods? Discuss the pros and cons of your approach.
  3. What tools can you think of to support reuse in practice?

Comments

An important aspect of library design is to reach consensus with respect to the functionality that must be covered and the conventions for usage adopted. Practical experience with the development of a library is invaluable to appreciate the choices involved.