Nothing Special   »   [go: up one dir, main page]

skip to main content
Skip header Section
Object-oriented software engineering with EiffelMarch 1996
Publisher:
  • Addison Wesley Longman Publishing Co., Inc.
  • 350 Bridge Pkwy suite 208 Redwood City, CA
  • United States
ISBN:978-0-201-63381-8
Published:01 March 1996
Pages:
340
Skip Bibliometrics Section
Reflects downloads up to 20 Nov 2024Bibliometrics
Contributors
  • University of Rennes

Reviews

Ronald Thomas House

Object-oriented programming and the Eiffel language are described in this book, and their unique features are related to the field of software engineering. Chapter 1 is an overview. Chapters 2 through 5 describe Eiffel in the context of its approach to object orientation. Finally, chapters 6 through 9 cover building software systems with Eiffel. The book starts at too basic a level for a text whose title refers to software engineering of any kind. Most software engineering courses take for granted that the reader is already a competent programmer in the language used for the exposition; nowadays, prior exposure to object orientation would normally be assumed. This is not to criticize the book, only the title. The first section on Eiffel and object orientation is quite good, covers most of the important issues, and develops the topic in an intelligent and easily assimilated order. The discussion of system testing is particularly good. On the other hand, the description of the covariance-contravariance dispute smacks of being an apologetic for the covariant approach. Parts of the software engineering section seem too superficial but, to be fair, this is a common defect in other software engineering texts. The final chapter is titled “Building a Parallel Linear Algebra Library with Eiffel.” A library of classes called Paladin is introduced, but we are not told who wrote it or where to get the complete system. Some classes and skeletons are presented, and some of the principles of the system are described, but it is sometimes hard to decide what general principles of software engineering we are meant to learn from this. I would have liked to see a discussion of alternatives to the class design used that were considered, and why they were rejected—all described in terms of basic principles independent of the application. Symptomatic of the problems in this section is the presentation, immediately before the two-paragraph conclusion to the book, of a table showing “performances of a Paladin matrix-matrix product on the Paragon XP/S,” with the performances shown in Mflops. We are told that “this table clearly shows that Eiffel does not prevent the programmer from getting the best performance out of this supercomputer.” It shows no such thing to any reader unacquainted with the Mflop figures to be expected from that machine. Such a table badly dates the text, in view of the rate at which computing hardware advances. More important, this kind of technical detail is not the right focus for the conclusion of a book that attempts to present principles in practice. If the point is a comparison of Eiffel's object-oriented approach with those of other languages, then a comparison of timings with programs written in another language, such as Fortran, would at least have had the benefit of putting the figures in context. Chapter 8, on data structure libraries, is a good description of some of the libraries available for Eiffel, but it does not teach software engineering principles. The usefulness of the book as a text is hampered by its lack of exercises. Overall, although there are some important defects, many parts of this book are well written. Perhaps the ideal reader is a practitioner wishing to move into Eiffel and object-oriented methodologies; such a reader could place the later material in context and get the maximum benefit from it.

Access critical reviews of Computing literature here

Become a reviewer for Computing Reviews.

Please enable JavaScript to view thecomments powered by Disqus.

Recommendations