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
- reuse -- library design
- conventions -- naming, taxonomy
- indexing -- archival and querying
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
- Discuss the problems involved
in library design.
How would you solve the problem
of maintaining consistency between
different releases?
- What are your preferences with regard
to naming conventions for object methods?
Discuss the pros and cons of your approach.
- 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.