Object-Oriented Software Construction
Encyclopedia
Object-Oriented Software Construction is a book by Bertrand Meyer
Bertrand Meyer
Bertrand Meyer is an academic, author, and consultant in the field of computer languages. He created the Eiffel programming language.-Education and academic career:...

, widely considered a foundational text of object-oriented programming
Object-oriented programming
Object-oriented programming is a programming paradigm using "objects" – data structures consisting of data fields and methods together with their interactions – to design applications and computer programs. Programming techniques may include features such as data abstraction,...

. 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), Polish (2), Romanian (1), Russian (2), Serbian (2), and Spanish (2). The influence of the book can be measured by the thousands of citations of the book in computer science literature.
The book won a Jolt award
Jolt Awards
The Jolt Awards are awards in the software industry.Since 1990, the Dr. Dobb's Jolt Product Excellence Awards have been presented annually to showcase products that have "jolted" the industry with their significance and made the task of creating software faster, easier, and more efficient.Jolt Cola...

 in 1994.

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

Focus

The book, known among its fans 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
Abstract data type
In computing, an abstract data type is a mathematical model for a certain class of data structures that have similar behavior; or for certain data types of one or more programming languages that have similar semantics...

s as the theoretical basis for object technology and proceeds with the main object-oriented techniques: classes, objects
Object (computer science)
In computer science, an object is any entity that can be manipulated by the commands of a programming language, such as a value, variable, function, or data structure...

, genericity
Generic programming
In a broad definition, generic programming is a style of computer programming in which algorithms are written in terms of to-be-specified-later types that are then instantiated when needed for specific types provided as parameters...

, inheritance
Inheritance (computer science)
In object-oriented programming , inheritance is a way to reuse code of existing objects, establish a subtype from an existing object, or both, depending upon programming language support...

, Design by Contract
Design by contract
Design by contract , also known as programming by contract and design-by-contract programming, is an approach to designing computer software...

, concurrency
Concurrency (computer science)
In computer science, concurrency is a property of systems in which several computations are executing simultaneously, and potentially interacting with each other...

, and persistence
Persistence (computer science)
Persistence in computer science refers to the characteristic of state that outlives the process that created it. Without this capability, state would only exist in RAM, and would be lost when this RAM loses power, such as a computer shutdown....

. It includes extensive discussions of methodological issues.

Table of contents


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

The first edition of the book used Eiffel
Eiffel (programming language)
Eiffel is an ISO-standardized, object-oriented programming language designed by Bertrand Meyer and Eiffel Software. The design of the language is closely connected with the Eiffel programming method...

 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
Usenet is a worldwide distributed Internet discussion system. It developed from the general purpose UUCP architecture of the same name.Duke University graduate students Tom Truscott and Jim Ellis conceived the idea in 1979 and it was established in 1980...

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.

External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK