This text was written for a first programming subject in the object-oriented language Eiffel. It assumes no previous computing experience, presents almost every part of the Eiffel language, and shows how to design good, reusable systems.
The Eiffel language is described in the first half of this text in 13 chapters, divided into three parts. The first part presents the basic concepts and constructs in the language, covering the topics of data flow, control flow, routines, objects, classes, and assertions. The second part describes the common data structures, arrays and lists. The third part covers inheritance and its sub-topics: simple, multiple, and repeated inheritance, plus file storage and generic classes.
An instruction in the language is presented in the following parts:
1. Look and feel
2. Syntax
3. Mechanism
4. Common errors
5. Example
The second half of the text presents a case study in 13 parts to show three things. First, the case study for each chapter shows how the topics described in that chapter are implemented in a working system. Second, each part of the case study shows how to design good, reusable Eiffel classes. Third, the case study shows that an Eiffel system is built by adding new code to an existing system; almost no code is re-written when the system is extended from one simple class to 16 interlocking classes.
A section of the case study is presented in the following parts:
1. Specification.
2. Analysis.
3. Design.
4. Charts: one or more of client, inheritance, and class diagrams.
5. Eiffel code that is new or changed in that section.
The complete, working code for each part of the case study may
be examined and executed in the directory
/pub/psda/oopie
The language described in the text is ISE Eiffel version 3.3.7
running under Solaris. Eiffel has a large library of reusable classes,
that may be examined in the directory
/opt/Eiffel3/library
and its sub-directories
base classes used to build basic Eiffel systems
lex classes used to build and apply lexical analysers
parse clases used to build document processing systems
vision classes used to build graphical interfaces
The base directory contains the directories
kernel basic Eiffel classes, including files and arrays
structures other data structures
support mathematical and other supporting classes