Jump to content

Object-Oriented Software Construction: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
Ian.joyner (talk | contribs)
m Add link to online version published by author.
m WP:REFerences: plain text + inline WP:EXTernal links > WP:CITations, parameters: adds, fills, reorders, author > last + first. WP:BADEMPHASIS MOS:QUOTEMARKS > WP:ITALICs.
 
(4 intermediate revisions by 3 users not shown)
Line 19: Line 19:
| media_type =
| media_type =
| pages = 1254 + xxviii
| pages = 1254 + xxviii
| isbn = 0-13-629155-4
| isbn = 978-0136291558<!-- 0-13-629155-4 -->
| isbn_note = (1997 ed.)
| isbn_note = (1997 ed.)
| dewey= 005.1/17 21
| dewey= 005.1/17 21
Line 28: Line 28:
}}
}}


'''''Object-Oriented Software Construction''''' 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, 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).<ref>Web search, August 2006</ref> The book has been cited thousands of times<ref name="ACMcitations">The [[Association for Computing Machinery|ACM's]] ''Guide to Computing Literature'' counts [http://portal.acm.org/citation.cfm?id=261119&jmp=citings&coll=Portal&dl=GUIDE&CFID=8724150&CFTOKEN=25376683#citings 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 the [http://citeseer.ist.psu.edu/articles.html Citeseer list of all-time most cited works] (books, articles etc.) in computer science, with 1260 citations (September 2006).</ref> in computer science literature.
'''''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).<ref>Web search, August 2006</ref> 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,<ref name="ACMcitations">{{Cite web |author=<!-- Unstated --> |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)}}</ref> 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.<ref>[http://citeseer.ist.psu.edu/articles.html Citeseer], September 2006</ref>
The book won a [[Jolt Awards|Jolt award]] in 1994.<ref>[http://ddj.com/joltawards/prev_bks.htm#1997 Jolt winners 1997] {{webarchive|url=https://web.archive.org/web/20090525043039/http://www.ddj.com/joltawards/prev_bks.htm |date=2009-05-25 }}</ref>. The second edition is available online<ref name=“OOSC”>{{cite book |title=Object-Oriented Software Construction |author=Bertrand Meyer |edition=2nd |date=1997 |isbn=0-13-629155-4 |publisher=Prentice-Hall}|url=https://bertrandmeyer.com/OOSC2/}}</ref>.
The book won a [[Dr. Dobb's Journal|Jolt award]] in 1994.<ref>{{Cite web |author=<!-- Unstated --> |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}}</ref> The second edition is available online free.<ref name=“OOSC”>{{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/}}</ref>


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


==Focus==
==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]]s as the theoretical basis for object technology and proceeds with the main object-oriented techniques: [[Class (object-oriented programming)|classes]], [[Object (computer science)|objects]], [[Generic programming|genericity]], [[Inheritance (object-oriented programming)|inheritance]], [[Design by Contract]], [[Concurrency (computer science)|concurrency]], and [[Persistence (computer science)|persistence]]. It includes extensive discussions of methodological issues.
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 type]]s as the theoretical basis for object technology and proceeds with the main object-oriented techniques: [[Class (object-oriented programming)|classes]], [[Object (computer science)|objects]], [[Generic programming|genericity]], [[Inheritance (object-oriented programming)|inheritance]], [[Design by Contract]], [[Concurrency (computer science)|concurrency]], and [[Persistence (computer science)|persistence]]. It includes extensive discussions of methodological issues.


==Table of contents==
==Table of contents==
Line 98: Line 98:


==Notation==
==Notation==
The first edition of the book used [[Eiffel (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. 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.
The first edition of the book used the [[programming language]] [[Eiffel (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==
==See also==
Line 107: Line 107:
{{Refbegin}}
{{Refbegin}}
*{{cite book
*{{cite book
|last1=Meyer
|first=Bertrand
|first1=Bertrand
|last=Meyer
|authorlink=Bertrand Meyer
|author1-link=Bertrand Meyer
|year=1988
|year=1988
|title=Object-Oriented Software Construction
|title=Object-Oriented Software Construction
Line 117: Line 117:
}}
}}
*{{cite book
*{{cite book
|last1=Meyer
|first=Bertrand
|first1=Bertrand
|last=Meyer
|authorlink=Bertrand Meyer
|author1-link=Bertrand Meyer
|year=1997
|year=1997
|title=Object-Oriented Software Construction, second edition
|title=Object-Oriented Software Construction, second edition
Line 130: Line 130:


==External links==
==External links==
*[https://bertrandmeyer.com/OOSC2/ Author's Online copy available from September 2022]
*{{Official website|bertrandmeyer.com/OOSC2}}, Bertrand Meyer (author), free online 2nd edition 1997 isbn 978-0136291558<!-- 0-13-629155-4 -->
*[http://docs.eiffel.com/book/method/object-oriented-software-construction-2nd-edition Book's page at Eiffel Software]
*[http://docs.eiffel.com/book/method/object-oriented-software-construction-2nd-edition Book's page at Eiffel Software]
*[http://archive.eiffel.com/doc/spanish-oosc.html Page on Spanish translation]
*[http://archive.eiffel.com/doc/spanish-oosc.html Page on Spanish translation]

Latest revision as of 13:06, 3 October 2024

Object-Oriented Software Construction
AuthorBertrand Meyer
Subjectsoftware object-oriented programming
PublisherPrentice Hall
Publication date
1988, 1997
Pages1254 + xxviii
ISBN978-0136291558 (1997 ed.)
OCLC36187052
005.1/17 21
LC ClassQA76.64 .M493 1997

Object-Oriented Software Construction, also called OOSC, is a book by Bertrand Meyer, widely considered a foundational text of object-oriented programming.[citation needed] 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).[1] The book has been cited thousands of times. As of 15 December 2011, The Association for Computing Machinery's (ACM) Guide to Computing Literature counts 2,233 citations,[2] for the second edition alone in computer science journals and technical books; Google Scholar lists 7,305 citations. As of September 2006, 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.[3] The book won a Jolt award in 1994.[4] The second edition is available online free.[5]

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

Focus

[edit]

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

[edit]

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

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

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

[edit]

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] 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

[edit]

References

[edit]
  1. ^ Web search, August 2006
  2. ^ "Object-oriented software construction (2nd ed.)". Association for Computing Machinery (ACM). 2024.
  3. ^ Citeseer, September 2006
  4. ^ "Previous Winners: Books". Dr. Dobb's Journal (DDJ). 2001. Archived from the original on 2009-05-25.
  5. ^ Meyer, Bertrand (1997). Object-Oriented Software Construction (2nd ed.). Prentice-Hall. ISBN 978-0136291558.
[edit]