Object-Oriented Software Engineering with Eiffel
By
Jean-Marc Jézéquel,
from the
Triskell Project,
Addison-Wesley Eiffel in Practice Series
ISBN 0-201-63381-7 * Paperback * 368 pages * © 1996
-
Book Description by
Addison-Wesley and Ordering Information
-
Preface
-
Table of Contents
-
Chapters 1 to 4 of the book (with permission from Addison-Wesley)
-
Errata
-
Source code of examples (all of them in one zip file)
-
What well known people said about Eiffel
-
Put it in the contract:
The lessons of Ariane
-
More info on Eiffel
-
My new book:Design
Patterns and Contracts
This is a book on software engineering the Eiffel's way.
Born in Dijon (France), Gustave Eiffel (1832--1923)
first worked as an engineer for a
railroad construction company before starting an office of studies
dedicated to metallic construction.
Using light steel modular structures instead of the usual
design with cast iron, Eiffel built tall infrastructures featuring very
good aerodynamic resistance.
He built several viaducts, most notably at Bordeaux (1858) and Gabarit
(1884). He also created the
framework of the Bon Marche department store (1876) in Paris.
Abroad he oversaw several
projects in Austria, Switzerland, Hungary (Pest Railway Station, 1876),
and Portugal (the Maria-Pia Bridge near Porto, 1877).
His most famous structures were the framework of Bartholdi's
Liberty Statue in New York and the 300-meter
Eiffel Tower, built for the 1889 universal exposition in Paris.
These two world-famous landmarks were also technological marvels
for that time. They opened the way for the new domain of industrial
architecture.
After 1890, Eiffel resigned from his business to concentrate on
aerodynamic studies from the top of the Eiffel Tower.
Today, more than one century after their construction, most of Eiffel's
buildings are still standing and open for business.
In the software engineering domain,
Eiffel
is also the name of an
object-oriented language that emphasizes the design and construction
of large, high-quality softwares by assembling reusable software
components, called classes, that serve as templates to make
objects. Beyond classes (on which modularity is based), Eiffel offers
multiple inheritance, polymorphism, static typing and dynamic binding,
genericity, garbage collection, a disciplined exception mechanism, and
systematic use of assertions to improve software correctness in the
context of programming by contract.
Software engineering encompasses much more than what a computer language
can offer. Computer languages are just tools that software engineers
can use (or misuse) within a larger context. The Eiffel language is a
tool that has been specially designed in the context of software
engineering. This book describes the tool, and provides clues on how
to use it.
Chapter 1 is an introduction presenting the object-oriented approach
within the context of software
engineering. The main body of the book is then divided roughly into two parts.
The first part of this book presents the language itself.
Chapter 2 presents the basic (procedural) elements of the
language: what an Eiffel program is, what the
instruction set is, and how to declare and use entities (variables) and
routines.
Chapter 3 introduces the concepts underlying the object-oriented
approach: modularity, inheritance, and dynamic binding, and illustrates
them in a small case study from the management information system domain.
Eiffel programs do not exist in a void, so Chapter 4 brings
in environment matters: system configuration, interfacing with
external software, and garbage collection.
Chapter 5 closes the Eiffel presentation with more advanced
issues involving exception handling, repeated inheritance, typing
problems, and parallelism.
The second part of this book addresses some Eiffel software
development issues. In Chapter 6, we outline how an object-oriented
software engineering process may make the best use of Eiffel,
concentrating on specific guidelines to facilitate the translation
OOAD to a maintainable Eiffel
implementation. This process is illustrated by a rather large case study from
the telecommunications domain. As a logical continuation of this
study, Chapter 7 addresses verification and validation (V&V)
issues of Eiffel software systems built in a software engineering
context.
Building reusable libraries
discussed in Chapter 8, which
presents three competing Eiffel data structure libraries.
Finally, Chapter 9 shows how Eiffel can be used as an
enabling technology to master a very complex problem: the building
of a parallel linear algebra library ( Paladin)
that allows an application
programmer to use distributed computing systems in a transparent way.
If you are lost at some point with the Eiffel-related vocabulary,
there is a small glossary in Appendix A.
An Eiffel syntax summary is presented in Appendix B,
and a contact list closes this book (Appendix C).
To learn more about the Eiffel Galaxy, check the
Geoff's Universal Eiffel Resource Locator (GUERL)