Object Oriented Software Construction

Object-Oriented Software Construction by BertrandMeyer

There are several editions of this book:

DesignByContract implies that there are multiple editions, but Amazon calls both of these "second edition". The edition published in 1994 seems to be out of print.

Often called OOSC.


Hmmn... I've never heard of the 1994 edition (although that's when I first heard the second edition was "coming soon"). I know the first edition was published in 1988 (I remember buying it when it first came out :-) and I think it is still in print. -- BradAppleton

The new edition is worth buying; it is a complete rework. -- MartineDevos

A book with a wealth of information written in entertaining style. Also aims to sell EiffelLanguage in a "covert" fashion. Quite biased and uncharitable with respect to opinions and comparisons with other languages. -- Sam Shard

Very covertly: it is claimed that EiffelLanguage is mentioned only once in the text.

Actually twice. The very last word in the book is Eiffel. If you also look at the starting letter of each chapter, it spells out Eiffel.

Quite biased, true--though oddly refreshing. -- ToddCoram

Got JoltAward.

The first edition was one of the first books I ever read on O-O. I was crazy about it and it greatly influenced my development as an engineer. The opening chapter just hits you right in the chest, especially if you were new to the "software crisis" concept. -- RobertDiFalco


A Critique

Some spicy criticism of this book can be found at http://geocities.com/tablizer/meyer1.htm or http://reocities.com/tablizer/meyer1.htm (One's easier to read, but temporary) see: TopMind


One of the interesting claims of the book (which, not coincidentally, supports EiffelLanguage over others), is the claim that the same "system" ought to be used for both design and implementation. In other words, when you are doing design-before-implementation [DesignBeforeCoding?], the design is captured in the "system", and when you get to implementation, the interface is already specified and you just go and fill in the implementation details.

EiffelLanguage is such a system, naturally--at least according to BertrandMeyer. It is claimed that one can perform object modelling in Eiffel just as easily as one can write code in it.

ObjectModel-ing systems (such as UnifiedModelingLanguage) which can't be (easily) deployed in production code are dismissed as "unacceptable," as are programming languages which aren't really suitable for modelling purposes (CeePlusPlus especially, though I imagine JavaLanguage is in Meyer's gunsights as well).


I've just nearly finished the book, and concur with much of the above. No other book on OO programming that I can think of is anywhere near as comprehensive as this one--covering a wide variety of topics with both depth and breadth (there are many texts, of course, that provide deeper coverage of individual topics; but the total area (volume)? of this book is impressive).

That said...reading this book is a bit like taking financial advice from one of those financial advisors paid on commission (rather than on a flat-fee basis). BertrandMeyer has a dual role as an advisor on object technologies (which he does well)... and a salesman of EiffelLanguage. (His company is in the Eiffel business, after all--unlike BjarneStroustrup, whose compensation presumably does not depend on adaption of CeePlusPlus, Meyer does stand to profit financially from increased usage of Eiffel.) While he doesn't engage in any dishonesty that I could detect... features/design choices not found in Eiffel are subject to (sometimes harsh) criticism; those found in Eiffel are not.

This may likely (if not probably) be, of course, due to Meyer designing Eiffel according to his beliefs (as opposed to modulating his beliefs to promote his product). Iin the absence of any evidence otherwise, fairness requires that I assume that this be the case.

-- ScottJohnson


See also DesignByContract, BertrandMeyerAndHisOpinions, UniformAccessPrinciple

CategoryBook, CategoryObjectOrientation


EditText of this page (last edited December 28, 2013) or FindPage with title or text search