![]() | |
Author | Bertrand Meyer |
---|---|
Subject | software object-oriented programming |
Publisher | Prentice Hall |
Publication date | 1988, 1997 |
Pages | 1254 + xxviii |
ISBN | 978-0136291558 (1997 ed.) |
OCLC | 36187052 |
005.1/17 21 | |
LC Class | QA76.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 [update] , 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 [update] , 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.
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.
Preface etc.
Part B: The road to object orientation
Part C: Object-oriented techniques
| Part D: Object-oriented methodology:
Part E: Advanced topics
| Part F: Applying the method in various
Part G: Doing it right
Part H: Appendices
Index |
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.
Eiffel is an object-oriented programming language designed by Bertrand Meyer and Eiffel Software. Meyer conceived the language in 1985 with the goal of increasing the reliability of commercial software development; the first version becoming available in 1986. In 2005, Eiffel became an ISO-standardized language.
Niklaus Emil Wirth was a Swiss computer scientist. He designed several programming languages, including Pascal, and pioneered several classic topics in software engineering. In 1984, he won the Turing Award, generally recognized as the highest distinction in computer science, "for developing a sequence of innovative computer languages".
The unified modeling language (UML) is a general-purpose visual modeling language that is intended to provide a standard way to visualize the design of a system.
The Z notation is a formal specification language used for describing and modelling computing systems. It is targeted at the clear specification of computer programs and computer-based systems in general.
Design by contract (DbC), also known as contract programming, programming by contract and design-by-contract programming, is an approach for designing software.
In computer programming, a precondition is a condition or predicate that must always be true just prior to the execution of some section of code or before an operation in a formal specification.
In computer programming, a postcondition is a condition or predicate that must always be true just after the execution of some section of code or after an operation in a formal specification. Postconditions are sometimes tested using assertions within the code itself. Often, postconditions are simply included in the documentation of the affected section of code.
In software engineering, a design pattern describes a relatively small, well-defined aspect of a computer program in terms of how to write the code.
Command-query separation (CQS) is a principle of imperative computer programming. It was devised by Bertrand Meyer as part of his pioneering work on the Eiffel programming language.
Bertrand Meyer is a French academic, author, and consultant in the field of computer languages. He created the Eiffel programming language and the concept of design by contract.
Grady Booch is an American software engineer, best known for developing the Unified Modeling Language (UML) with Ivar Jacobson and James Rumbaugh. He is recognized internationally for his innovative work in software architecture, software engineering, and collaborative development environments.
Ivar Hjalmar Jacobson is a Swedish computer scientist and software engineer, known as a major contributor to UML, Objectory, Rational Unified Process (RUP), aspect-oriented software development, and Essence.
The uniform access principle of computer programming was put forth by Bertrand Meyer. It states "All services offered by a module should be available through a uniform notation, which does not betray whether they are implemented through storage or through computation." This principle applies generally to the syntax of object-oriented programming languages. In simpler form, it states that there should be no syntactical difference between working with an attribute, pre-computed property, or method/query of an object.
Object-oriented analysis and design (OOAD) is a technical approach for analyzing and designing an application, system, or business by applying object-oriented programming, as well as using visual modeling throughout the software development process to guide stakeholder communication and product quality.
In object-oriented programming, inheritance is the mechanism of basing an object or class upon another object or class, retaining similar implementation. Also defined as deriving new classes from existing ones such as super class or base class and then forming them into a hierarchy of classes. In most class-based object-oriented languages like C++, an object created through inheritance, a "child object", acquires all the properties and behaviors of the "parent object", with the exception of: constructors, destructors, overloaded operators and friend functions of the base class. Inheritance allows programmers to create classes that are built upon existing classes, to specify a new implementation while maintaining the same behaviors, to reuse code and to independently extend original software via public classes and interfaces. The relationships of objects or classes through inheritance give rise to a directed acyclic graph.
EiffelStudio is a development environment for the Eiffel programming language developed and distributed by Eiffel Software.
SCOOP is a concurrency model designed for the Eiffel programming language, conceived by Eiffel's creator and designer, Bertrand Meyer.
Prentice Hall International Series in Computer Science was a series of books on computer science published by Prentice Hall.
Object-oriented programming (OOP) is a programming paradigm based on the concept of objects, which can contain data and code: data in the form of fields, and code in the form of procedures. In OOP, computer programs are designed by making them out of objects that interact with one another.
The TOOLS conference series is a long-running conferences on object technology, component-based development, model-based development and other advanced software technologies. The name originally stood for "Technology of Object-Oriented Languages and Systems" although later it was usually no longer expanded, the conference being known simply as "the TOOLS conference". The conferences ran from 1988 to 2012, with a hiatus in 2003–2007, and was revived in 2019.