''Object-Oriented Software Construction'' is a book by
Bertrand Meyer
Bertrand Meyer (; ; born 21 November 1950) is a French academic, author, and consultant in the field of computer languages. He created the Eiffel programming language and the idea of design by contract.
Education and academic career
Meyer rece ...
, widely considered a foundational text of
object-oriented programming
Object-oriented programming (OOP) is a programming paradigm based on the concept of " objects", which can contain data and code. The data is in the form of fields (often known as attributes or ''properties''), and the code is in the form of ...
. The first edition was published in 1988; the second, extensively revised and expanded edition (more than 1300 pages), in 1997. Numerous translations are available including Dutch (first edition only), French (1+2), German (1), Italian (1), Japanese (1+2), Persian (1), Polish (2), Romanian (1), Russian (2), Serbian (2), and Spanish (2). The book has been cited thousands of times
[The ACM's ''Guide to Computing Literature'' count]
2,233 citations as of December, 15, 2011
for the second edition alone in computer science journals and technical books; Google Scholar (December 15, 2011) lists 7,305 citations; the book appears as number 35 in th
(books, articles etc.) in computer science, with 1260 citations (September 2006). in computer science literature.
The book won a
Jolt award in 1994.
Jolt winners 1997
''Unless otherwise indicated, descriptions below apply to the second edition.''
Focus
The book, often known as "OOSC", presents object technology as an answer to major issues of software engineering, with a special emphasis on addressing the software quality factors of correctness, robustness, extendibility and reusability. It starts with an examination of the issues of software quality, then introduces abstract data type
In computer science, an abstract data type (ADT) is a mathematical model for data types. An abstract data type is defined by its behavior (semantics) from the point of view of a '' user'', of the data, specifically in terms of possible values, po ...
s as the theoretical basis for object technology and proceeds with the main object-oriented techniques: classes, objects, genericity
Generic programming is a style of computer programming in which algorithms are written in terms of types ''to-be-specified-later'' that are then ''instantiated'' when needed for specific types provided as parameters. This approach, pioneered ...
, inheritance
Inheritance is the practice of receiving private property, titles, debts, entitlements, privileges, rights, and obligations upon the death of an individual. The rules of inheritance differ among societies and have changed over time. Offici ...
, Design by Contract, concurrency
Concurrent means happening at the same time. Concurrency, concurrent, or concurrence may refer to:
Law
* Concurrence, in jurisprudence, the need to prove both ''actus reus'' and ''mens rea''
* Concurring opinion (also called a "concurrence"), a ...
, and persistence. It includes extensive discussions of methodological issues.
Table of contents
Notation
The first edition of the book used Eiffel
Eiffel may refer to:
Places
* Eiffel Peak, a summit in Alberta, Canada
* Champ de Mars – Tour Eiffel station, Paris, France; a transit station
Structures
* Eiffel Tower, in Paris, France, designed by Gustave Eiffel
* Eiffel Bridge, Ungheni, ...
for the examples and served as a justification of the language design choices for Eiffel. The second edition also uses Eiffel as its notation, but in an effort to separate the notation from the concepts it does not name the language until the Epilogue, on page 1162, where "Eiffel" appears as the last word. A few months after publication of the second edition, a reader posted on Usenet
Usenet () is a worldwide distributed discussion system available on computers. It was developed from the general-purpose Unix-to-Unix Copy (UUCP) dial-up network architecture. Tom Truscott and Jim Ellis conceived the idea in 1979, and it was ...
his discovery that the book's 36 chapters alternatively start with the letters "E", "I", "F", "F", "E", "L", a pattern being repeated 6 times. In addition, in the Appendix, titled "Epilogue, In Full Frankness Exposing the Language" (note the initials), the first letters of each paragraph spell out the same pattern.
See also
*Uniform access principle
The uniform access principle of computer programming was put forth by Bertrand Meyer (originally in '' Object-Oriented Software Construction''). It states "All services offered by a module should be available through a uniform notation, which do ...
References
*
*
{{Refend
External links
Author's Online copy available from September 2022
Book's page at Eiffel Software
Bertrand Meyer's publication page
1988 non-fiction books
1997 non-fiction books
Object-oriented programming
Software engineering books
Prentice Hall books