Object-Oriented Software Construction

{{Short description|Book by Bertrand Meyer}}

{{Infobox book

| name = Object-Oriented Software Construction

| title_orig =

| translator =

| image = Oosc2-medium.jpg

| caption =

| author = Bertrand Meyer

| illustrator =

| cover_artist =

| country =

| language =

| series =

| subject = software object-oriented programming

| genre =

| publisher = Prentice Hall

| release_date = 1988, 1997

| english_release_date =

| media_type =

| pages = 1254 + xxviii

| isbn = 978-0136291558

| isbn_note = (1997 ed.)

| dewey= 005.1/17 21

| congress= QA76.64 .M493 1997

| oclc= 36187052

| preceded_by =

| followed_by =

}}

Object-Oriented Software Construction, also called OOSC, is a book by Bertrand Meyer, widely considered a foundational text of object-oriented programming.{{Citation needed|date=January 2009}} The first edition was published in 1988; the second edition, extensively revised and expanded (more than 1300 pages), in 1997. Many 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).Web search, August 2006 The book has been cited thousands of times. {{As of|2011|12|15}}, The Association for Computing Machinery's (ACM) Guide to Computing Literature counts 2,233 citations,{{Cite book |author= |date=2024 |url=https://dl.acm.org/doi/book/10.5555/261119#citings |title=Object-oriented software construction (2nd ed.) |website=Association for Computing Machinery (ACM)|publisher=Prentice-Hall |isbn=978-0-13-629155-8 }} for the second edition alone in computer science journals and technical books; Google Scholar lists 7,305 citations. {{As of|2006|09}}, the book is number 35 in the list of all-time most cited works (books, articles, etc.) in computer science literature, with 1,260 citations.[http://citeseer.ist.psu.edu/articles.html Citeseer], September 2006

The book won a Jolt award in 1994.{{Cite web |author= |date=2001 |url=http://www.ddj.com/joltawards/prev_bks.htm |title=Previous Winners: Books |website=Dr. Dobb's Journal (DDJ) |archive-url=https://web.archive.org/web/20090525043039/http://www.ddj.com/joltawards/prev_bks.htm |archive-date=2009-05-25}} The second edition is available online free.{{cite book |last1=Meyer |first1=Bertrand |author1-link=Bertrand Meyer |date=1997 |title=Object-Oriented Software Construction |edition=2nd |isbn=978-0136291558 |publisher=Prentice-Hall |url=https://bertrandmeyer.com/OOSC2/}}

Unless otherwise indicated, descriptions below apply to the second edition.

Focus

The book 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 types as the theoretical basis for object technology and proceeds with the main object-oriented techniques: classes, objects, genericity, inheritance, Design by Contract, concurrency, and persistence. It includes extensive discussions of methodological issues.

Table of contents

class="wikitable" style="background:linen"

|valign="top"|

Preface etc.

Part A: The issues

:1 Software quality

:2 Criteria of object orientation

Part B: The road to object orientation

:3 Modularity

:4 Approaches to reusability

:5 Towards object technology

:6 Abstract data types

Part C: Object-oriented techniques

:7 The static structure: classes

:8 The run-time structure: objects

:9 Memory management

:10 Genericity

:11 Design by Contract: building reliable software

:12 When the contract is broken: exception handling

:13 Supporting mechanisms

:14 Introduction to inheritance

:15 Multiple inheritance

:16 Inheritance techniques

:17 Typing

:18 Global objects and constants

|valign="top"|

Part D: Object-oriented methodology:

applying the method well

:19 On methodology

:20 Design pattern: multi-panel interactive systems

:21 Inheritance case study: “undo” in an interactive system

:22 How to find the classes

:23 Principles of class design

:24 Using inheritance well

:25 Useful techniques

:26 A sense of style

:27 Object-oriented analysis

:28 The software construction process

:29 Teaching the method

Part E: Advanced topics

:30 Concurrency, distribution, client-server and the Internet

:31 Object persistence and databases

:32 Some O-O techniques for graphical interactive applications

|valign="top"|

Part F: Applying the method in various

languages and environments

:33 O-O programming and Ada

:34 Emulating object technology in non-O-O environments

:35 Simula to Java and beyond: major O-O languages and environments

Part G: Doing it right

:36 An object-oriented environment

:Epilogue, In Full Frankness Exposing the Language

Part H: Appendices

:A Extracts from the Base library

:B Genericity versus inheritance

:C Principles, rules, precepts and definitions

:D A glossary of object technology

:E Bibliography

Index

Notation

The first edition of the book used the programming language Eiffel 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{{Citation needed|date=January 2009}} 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. Also, in the Appendix, titled "Epilogue, In Full Frankness Exposing the Language" (in first initials), the first letters of each paragraph spell the same pattern.

See also

References

{{Reflist}}

{{Refbegin}}

  • {{cite book

|last1=Meyer

|first1=Bertrand

|author1-link=Bertrand Meyer

|year=1988

|title=Object-Oriented Software Construction

|publisher=Prentice Hall

|isbn=978-0-13-629049-0

|url=

}}

  • {{cite book

|last1=Meyer

|first1=Bertrand

|author1-link=Bertrand Meyer

|year=1997

|title=Object-Oriented Software Construction, second edition

|publisher=Prentice Hall

|isbn=978-0-13-629155-8

|url=https://archive.org/details/objectorientedso00meye_0

|url-access=registration

}}

{{Refend}}