[Agrawal 91] R. Agrawal et al. "Static Type Checking of Multi-Methods". OOPSLA 91. Object-Oriented Programming Systems, Languages, and Applications. ACM Press. Addison Wesley.
Compile-time checking and optimizations for multi-methods.
[Aho 86] Alfred V. Aho, Ravi Sethi, and Jeffrey D. Ullman. Compilers: Principles, Techniques, and Tools. Reading, MA: Addison-Wesley, 1986.
Authoritative, classic book on compilers and optimizations. Type chapter contains section on type inferencing (using ML as an example).
[Berard 93] Edward V. Berard. Essays on Object-Oriented Software Engineering. Prentice Hall.
Many topics on OOSE, includes coverage of OO domain and requirements analysis.
[Black 86] A. Black et al. Object-Structure in the Emerald System. OOPSLA '86 Conference Proceedings, SIGPLAN Notices (Special Issue), Vol. 21, n0. 11, pp 78-86. [I believe there is a more recent article, YTBI]
The original article on Emerald. OO language without inheritance but with abstract types and static subtype polymorphism. Also designed for distributed programming and reuse. See article for references: Jade on reuse [Raj 89]) and Distr. Prog.
[Black 87] A. Black, N. Hutchinson, E. Jul, H. Levyand L. Carter. Distribution and Abstract Types in Emerald, IEEE Transactions on Software Engineering, Vol. SE13, no. 1 Jam., pp 65-76. Subtype polymorphism for distributed programming in Emerald [Black 86].
[Blair 89] "Genericity vs Inheritance vs Delegation vs Conformance vs ..." Gordon Blair, John Gallagher and Javad Malik, Journal of Object Oriented Programming, Sept/Oct 1989, pp11-17.
Recommended by a reader, but the Author has yet to review this article.
[Boehm 86] B.W. Boehm. A Spiral Model of Software Development and Enhancement. Software Engineering Notes, Aug., vol. 11 (4), p 22.
Presents an alternative evolutionary approach to the strict waterfall software engineering life-cycle. Now a classic, most OO methodologies now emphasize the iterative or evolutionary approach to software development.
[Booch 87] Grady Booch. Software Engineering with Ada. 2nd Ed. Benjamin Cummings.
Booch in his early years. Mostly object-based programming with Ada.
[Booch 87b] Grady Booch. Software Components With Ada, Structures, Tools, and Subsystems. Benjamin Cummings.
A taxonomy and collection of object-based components in Ada (includes code). Has many examples with generics.
[Booch 91] Booch, Grady. Object-Oriented Design With Applications. Benjamin Cummings.
The often referred to book on OOD. Offers design notation and methodology. Brief coverage of OOA and elaborate OOD/P coverage in the applications. Good on basic principles and has case studies in Smalltalk, Object Pascal, C++, CLOS and Ada.
Also contains an *elaborate* classified bibliography on many areas of OO.
[Booch 94] Grady Booch. Object-Oriented Analysis And Design With Applications, 2nd Ed. Benjamin Cummings. ISBN 0-8053-5340-2.
The next FAQ should be updated to the second edition. All examples are now in C++. Booch incorporates several other major methodologies including Wirf-Brock's CRC (Class-Responsibility-Collaboration) and Jacobson's Use- Cases.
[Cardelli 85] L. Cardelli and P. Wegner. On Understanding Types, Data Abstraction, and Polymorphism. ACM Computing Surveys vol. 17 (4).
Long, classic article on Object-Oriented Types, Data Abstraction and Polymorphism. Formal coverage with a type system analysis model as well.
[Chambers 92] Craig Chambers. The Design and Implementation of the SELF Compiler, an Optimizing Compiler for Object-Oriented Programming Languages. Dept of Computer Science, Stanford University, March 1992.
Covers type optimizations for OO compilers. See Appendix E, PAPERS.
[Chambers 93] Craig Chambers. Predicate Classes. Proceedings ECOOP '93 O. Nierstrasz, LNCS 707. Springer-Verlag, Kaiserslautern, Germany July 1993 pp 268-296
"... an object is automatically an instance of a predicate class whenever it satisfies a predicate expression associated with the predicate class. The predicate expression can test the value or state of the object, thus supporting a form of implicit property-based classification that augments the explicit type-based classification provided by normal classes. By associating methods with predicate classes, method lookup can depend not only on the dynamic class of an argument but also on its dynamic value or state. [...] A version of predicate classes has been designed and implemented in the context of the Cecil language.
See Appendix E, PAPERS.
[de Champeaux 93] Dennis de Champeaux, Doug Lea, Penelope Faure. Object-Oriented System Development. Addison-Wesley, ISBN 0-201-56355-X.
Covers an integrated treatment of OOA and OOD. Takes serious the computational model of one thread per object. Gives more than usual attention to the OOA&D micro process. Presents a unique OOD language.
[Coad 91] Peter Coad and Edward Yourdon. Object-Oriented Analysis, 2nd ed. Englewood Cliffs, NJ. Prentice Hall.
Coad and Yourdon's OO analysis method.
[Coad 91b] Peter Coad and Edward Yourdon. Object-Oriented Design. Englewood Cliffs, NJ. Prentice Hall.
Coad and Yourdon's OO design method.
[Coleman 94] Derek Coleman, et. al. Object-Oriented Development - The Fusion Method. Prentice-Hall Object-Oriented Series. ISBN 0-13-338823-9
Fusion is considered to be a second generation OOAD method in that it builds on successful components of a number of first generation methods (OMT, Booch, CRC, Objectory, etc). However, this has been done with the requirements of industrial software developers in mind. And so issues of traceability, management etc. have been taken into consideration and the Method provides full coverage from requirements through to code.
[Cook 90] W.R. Cook, W.L.Hill, P.S. Canning. Inheritance Is Not Subtyping. Appeared in [Hudak 90] and Gunter 94].
Theoretical article on the separation between type and class, or as the authors state between implementation inheritance and subtyping.
[Coplien 92] James O. Coplien. Advanced C++ Programming Styles and Idioms. Addison Wesley.
Covers advanced C++ programming and performing other more advanced and dynamic styles of OO in C++.
[Colbert 89] E. Colbert. The Object-Oriented Software Development Method: a practical approach to object-oriented development. Tri-Ada Proc., New York.
Presents the Object-Oriented Software development method. Has emphasis on objects.
[Cox 86,91] Cox, Brad J. Object-Oriented Programming, An Evolutionary Approach. Addison Wesley.
The original book on Objective-C. Coverage on object-oriented design and programming. Also covers Objective-C implementation, even into object code. Objective-C... '91 AW by Pinson and Wiener provide another good text.
[Embley 92] D.W. Embley, B.D. Kurtz, S.N. Woodfield. Object-Oriented Systems Analysis, A Model-Driven Approach. Yourdon Press/Prentice Hall, Englewood Cliffs, NJ.
Presents the Embley and Kurtz OO methodology.
[Garfinkel 93] Simson L. Garfinkel and Michael K. Mahoney. NeXTSTEP PROGRAMMING STEP ONE: Object-Oriented Applications. Springer-Verlag.
Introduction to the NextStep environment and applications development. [Goldberg 83] Adele Goldberg and David Robson. Smalltalk-80 The Language and Its Implementation. Addison Wesley.
The original book on Smalltalk. Covers implementation. Also known as "the Blue Book". Out of print. Superceded by [Goldberg ??].
[Goldberg ??] Adele Goldberg and David Robson. Smalltalk-80: The Language. Addison-Wesley.
The "Purple Book". Omits the obsolete abstract virtual machine description from the Blue Book.
[Gunter 94] Carl A. Gunter and John C. Mitchell. Theoretical Aspects of Object- Oriented Programming. MIT Press. ISBN 0-262-07155-X.
Highly mathematical, formal coverage of object-oriented programming; primarily on typing.
[Harmon 93] Paul Harmon. Objects In Action: Commercial Applications Of Object- Oriented Technologies. Jan, 1993. A-W ISBN 0-201-63336-1.
Sponsored by the OMG to summarize the use of OO technology in industry and business, contains a brief history and summary of OO and many case studies.
[HOOD 89] HOOD Working Group. HOOD Reference Manual Issue 3.0. WME/89-173/JB. Hood User Manual Issue 3.0. WME/89-353/JB. European Space Agency.
Presnets the HOOD (Hierarchical Object-Oriented Design) OOSE methodology. From the European Space Agency. Based on Ada and object-based.
[Hudak 90] P. Hudak. Principles of Programming Languages. ACM Press, pp 125 -135.
Contains several articles, including [Cook 90].
[Hudak 92] Paul Hudak and Simon Peyton Jones. Haskell Report. SIGPLAN Notices. 1992, vol 27, no 5.
Haskell reference.
[Humphrey 89] Watts Humphrey. Managing the Software Process. Addison Wesley. ISBN 0-201-18095-2
Sponsored by the Software Engineering Institute (SEI), the presented project management model is inspired by the work of Boehm, Brooks, Deming and Juran and represents a strong step in the direction of achieving 6 sigma defect rate prevention and optimizing the software development process for quality, productivity, and reliability. Presents the CMM, see section 1.21.
[Humphrey 95] Watts S. Humphrey - "A Discipline for Software Engineering", 816 pp., $47.50, 1995, Addison-Wesley (1-800-824-7799) ISBN 0-201-54610-8
A scaled down version of [Humphrey 89] for individual software engineers. A new classic. See section 1.21.
[IBM 90,91] Various Documents from the IBM International Technical Centers: GG24-3647-00, GG24-3641-00, GG24-3566-00, GG24-3580-00.
Present IBM's OOSE methodology.
[ISO] ISO Standards Compendium - ISO 9000 Quality Management, 5th edition. Switzerland. ISBN 92-67-10206-0.
The complete standard. 9000-3 discusses software and 9004 is a quality management standard.
[Jacobson 92] Ivar Jacobson, et al. Object-Oriented Software Engineering - A Use Case Driven Approach. ACM Press/Addison Wesley.
Presents Jacobson's new OOSE methodology based on use cases.
[Jacobson 94] Ivar Jacobson. Toward Mature Object Technology. ROAD, Vol. 1, No. 1, May-June. SIGS Publications.
Overview of OOSE's object-oriented approach. Includes specialized objects and layering for complexity management.
[Jones 92] Rick Jones. Extended type checking in Eiffel. Journal of Object- Oriented Programming, May 1992 issue, pp.59-62.
Presents subtype polymorphic extension to Eiffel (static typing only).
[Jurik 92] John A. Jurik, Roger S. Schemenaur, "Experiences in Object Oriented Development," ACM 0-89791-529-1/92/0011-0189.
Presents the EVB OOSE methodology. Also: Barbara McAllister, Business Development, EVB Software Engineering, Inc., (301)695-6960, barb@evb.com.
[Kiczales 92] Gregor Kiczales, Jim des Rivieres, Daniel G. Bobrow. The Art of the Metaobject Protocol. The MIT Press.
Reflection and Metaobject Protocols (MOPs). Uses a CLOS subset, Clossette, as a foundation.
[Kim 89] Won Kim and Frederick Lochovsky Editors. Object-Oriented Concepts, Applications, and Databases.
Collection of articles on advanced OO and research systems.
[Krasner 88] G. E. Krasner and S. T. Pope. A Cookbook for Using the Model-View- Controller User Interface Paradigm in Smalltalk-80. JOOP, vol 1, no 3, August/ September, 1988, pp 26-49,
An early paper published on MVC.
[Lakoff 87] George Lakoff. Women, Fire, and Dangerous Things: What Categories Reveal About The Mind. UOC Press.
An almost formal view of classification/categorization by the noted cognitive scientist, George Lakoff. His view blasts objectivism and contends to replace it with a subjectivist view, based on a study of humans, natural language, and concept formation.
[LaLonde 90] Wilf R. LaLonde and John R. Pugh. Inside Smalltalk: Volume 1. Prentice Hall.
Good introduction to Smalltalk.
[LaLonde 90b] Wilf R. LaLonde and John R. Pugh. Inside Smalltalk: Volume 2. Prentice Hall.
Excellent coverage of MVC. However, it's based on ParcPlace Smalltalk-80, version 2.5, which is obsolete.
[Liskov 93] Barbara Liskov and Jeannette M. Wing. Specifications and Their use in Defining Subtypes. OOPSLA 93, pp 16-28. ASM SIGPLAN Notices, V 28, No 10, Oct. 1993. A-W ISBN 0-201-58895-1.
Specifications on Subtype hierarchies. Helps to insure the semantic integrity of a separate subtype system. See section 2.7.
[Madsen 93] Ole Lehrmann Madsen, Birger Moller-Pedersen, Kristen Nygaard: Object-oriented programming in the BETA programming language. Addison-Wesley, June 1993. ISBN 0 201 62430 3
The new and authoritative book on BETA, by the original designers. They are some of the same designers of the Simula languages, originating OO. Also just announced: Object-Oriented Environments: The Mjolner Approach Editors: Jorgen Lindskov Knudsen, Mats Lofgren, Ole Lehrmann Madsen, Boris Magnusson Prentice Hall: The Object-Oriented Series ISBN: 0-13-009291-6 (hbk)
[Martin 92] James Martin and James J. Odell. Object-Oriented Analysis and Design, Prentice-Hall, Englewood Cliffs, NJ.
Its primary purpose is to indicate how information engineering (IE) can be evolved to accommodate OO. The analysis portion (starting at Chapter 15) attempts to go back to 'first principles' and is based on a formal foundation. Therefore, the IE aspect is not required. Emphasis is more on analysis than design.
[Meyer 88] Bertrand Meyer. Object-Oriented Software Construction. Prentice Hall. [Is there a new edition out?]
The original book on Eiffel. Coverage on object-oriented design and programming. Also:
[Meyer 92] Bertrand Meyer. Eiffel: The Language. Prentice Hall. Englewood Cliffs, NJ. 1992.
The definitive book on Eiffel by its author.
[Meyer 94] Bertrand Meyer. Reusable Software: The Base Object-Oriented Components Libraries.
The new Eiffel class Libraries.
[Mugridge 91] Warwick B. Mugridge et al. Multi-Methods in a Statically-Typed Programming Language. Proc. ECOOP.
Efficient implementation of Multi-Methods.
[Murray 93] Robert B. Murray. C++ Strategies and Tactics. Addison Wesley.
C++, has template examples.
[Nerson 92] Jean-Marc Nerson. Applying Object-Oriented Analysis and Design. CACM, 9/92.
Demonstrates the basics of the BON method/notation. Nerson: marc@eiffel.fr
[Paepcke 93] Andreas Paepcke. Object-Oriented Programming: The CLOS Perspective. MIT Press. ISBN 0-262-16136-2.
CLOS, readable introduction to its metaobject protocol, comparisons with other languages, uses and methodology, and implementation. Develops a persistent object metaclass example.
[Raj 89] R.K. Raj and H.M. Levy. A Compositional Model for Software Reuse. The Computer Journal, Vol 32, No. 4, 1989.
A novel approach aading reuse to Emerald [Black 86] without inheritance.
[Reenskaug 91] T. Reenskaug, et al. OORASS: seamless support for the creation and maintenance of object-oriented systems. Journal of Object-Oriented Programming, 5(6).
Presents the Object-Oriented Role Analysis, synthesis, and Structuring OOSE methodology.
[Reenskaug 95] T. Reenskaug, et al. WORKING WITH OBJECTS: The OOram Software Engineering Method Manning ISBN: 1-884777-10-4, PH ISBN: 0-13-452930-8. Accolades: "...the authors take you on a journey through object techniques filled with examples. You will come away from this book enriched, with a sound understanding of OT-based abstractions for modeling programs." Richard Mark Soley, OMG "The first method that deals realistically with reuse, and one of the few that comes close to describing what I do when I design." Ralph Johnson, University of Illinois "...the first complete account of role-based methods that have proven to be a step forward in OO design and development."
[Rout 95] T.T. Rout. Ed. Software Process Assessment: Theory and Practice. Proceedings, 2nd International SPICE Symposium. Australian Software Quality Research Institute, Brisbane, Australia., June 1 - 2, 1995. ISBN 0 86857 676 X.
Excellent coverage of the new SPICE standard: history, present details, goals.
[Royce 70] W. W. Royce. Managing the Development of Large Software Systems. Proceedings of IEEE WESCON, August 1970.
Introduces the Waterfall Process Model.
[Rumbaugh 91] Rumbaugh James, et al. Object-Oriented Modeling and Design. Prentice Hall.
The often referred to book on OOA/OOD. Introduces the Object Modeling Technique (OMT) OOA/D notation and methodology. Has case studies.
[Sciore 89] Edward Sciore. Object Specialization. ACM Transactions on Information Systems, Vol. 7, No. 2, April 1989, p 103.
A hybrid approach between delegation and classical OO.
[Selic 94] Bran Selic, Garth Gullekson, and Paul T. Ward. Real-Time Object-Oriented Modeling. Published by John Wiley & Sons. ISBN 0-471-59917-4
OO method addresses complete lifecycle needs of real-time systems. Emphasizes executable models for early validation of requirements, architecture, and design combined with techniques for automatic generation of implementations. Specifically real-time with iterative and incremental development process. Single consistent graphical modeling concepts apply uniformly to OOA/D/I.
[Shlaer 88] Sally Shlaer and Stephen J. Mellor. Object-Oriented Systems Analysis: Modeling the World in Data.
Credited as the first book proposing an OOA method.
[Shlaer 92] Sally Shlaer and Stephen J. Mellor. Object Lifecycles: Modeling the World in States.
An addition to [Shlaer 88], provides dynamic modeling with a state- transition driven approach.
[Strachey 67] C. Strachey. Fundamental Concepts in programming languages. Lecture Notes for International Summer School in Computer Programming, Copenhagen, Aug.
Contains original, classical definition of polymorphism.
[Stroustrup 90] Ellis, M.A., Stroustrup. The Annotated C++ Reference Manual. Addison Wesley.
The ARM; the original and definitive book on C++. Serves as the ANSI base document for C++. Also covers C++ implementation. It is meant as a reference (including for compiler writers), not as a tutorial for beginners. Perhaps a better ref is [Stroustrup 91].
[Stroustrup 91] Stroustrup, B. The C++ Programming Language (2nd edition).
Has the ARM, better reference for the use of C++ (recommended by bs). Contains sections on object-oriented software engineering.
[Tasker 93] Dan Tasker. The Problem Space, Practical Techniques for Gathering & Specifying Requirements. ISBN: 0-646-12524-9. Avail only from author, dant@swdev.research.otc.com.au.
Object-oriented requirements definition. Hypertext. Uses Rumbaugh's OMT as a base. See also APPENDIX D.
[Ungar 87] D. Ungar and R.B. Smith. The Self Papers. [Entry To Be Completed]
The documents on Self; a delegation/prototyping language. Also covers Self implementation and optimization. See also APPENDIX E, PAPERS section.
[Wasserman 90] A.I. Wasserman et al. The Object-Oriented Software Design Notation for Software Design Representation. IEEE Computer, 23(3).
Presents the Object-Oriented Structured Design (OOSD) OOSE methodology. Traditional structured techniques to OO, hybrid containing structured design and Booch.
[Wegner 87] Peter Wegner. "Dimensions of Object-Based Language Design", Proceedings of OOPSLA '87, October 4-8 1987, SIGPLAN Notices (Special Issue), V22, No 12, pp168-182, 1987.
[Wikstrom 87] Ake Wikstrom. Functional Programming Using Standard ML. Prentice Hall, ISBN 0-13-331661-0, 1987.
ML reference.
[Wilkie 93] George Wilkie. Object-Oriented Software Engineering - The Professional Developer's Guide. Addison Wesley.
Covers OOSE, 11 popular analysis and design methodologies with examples, comparisons, and analysis, information systems (OODB), and case studies.
[Winter Partners] Winter Partners
A proprietary toolset (OSMOSYS) for OOA and OOD. Winter Partners London Office: Zurich Office: West Wing, The Hop Exchange 24a Southwark Street Florastrasse 44 London SE1 1TY CH-8008 Zurich England Switzerland Tel. +44-(0)71-357-7292 Tel. +41-(0)1-386-95 11 Fax. +44-(0)71-357-6650 Fax. +41-(0)1-386-95 00
[Wirfs-Brock 90] Rebecca Wirfs-Brock, Brian Wilkerson, Lauren Wiener. Designing Object Oriented Software, Englewood Cliffs, NJ. Prentice Hall.
Presents a "Responsibility Driven Design" (RDD) with "Class, Responsibility, Collaboration" (CRC) technique, a modern and new OOA/OOD methodology.
[Yaoqing 93] Gao Yaoqing and Yuen Chung Kwong. A Survey of Implementations of Parallel, Concurrent, and Distributed Smalltalk. ACM SIGPLAN Notices. Vol 28, No. 9, Sept 93.
Covers implementations of Parallel, Concurrent, and Distributed Smalltalk.
[Yourdon 92] Edward Yourdon. Decline and Fall of the American Programmer. YPCS.
Excellent coverage of modern software engineering practice and world-class software development organizations.
This document was translated by ms2html v1.8 on 04.06.96.