CSE2305 - Object-Oriented Software Engineering
reference material

CSE2305
Bibliography

It is not absolutely necessary to purchase any books for this course. However you may find the books in the "Recommended Reading" section valuable in gaining a good understanding of the core concepts presented in the lectures. They may also serve as valuable reference books for any future C++ programming you do in your degree and beyond.


Recommend Reading

Lippman, S. & Lajoie, J., "C++ Primer, 3rd Edition", Addison Wesley, 1998.

    An excellent tutorial introduction to C++ and Object-Orientation.  Stan Lippman wrote the first C++ compilers.

Stroustrup, B., "The C++ Programming Language, 3rd Ed.", Addison Wesley, 1997.

    Another excellent introductory text, this one from the man who invented most of the C++ language. Written in a more technical style than Lippman's text (which some people prefer).

Fowler, M. (with Kendall Scott), "UML¤ Distilled", 2nd Ed., Addison Wesley, 2000.

    Provides a good overview of the Unified Modelling Language¤ in a short book.
     

Further Reading

  1. Sommerville, I., "Software Engineering¤, 6th Edition", Addison-Wesley, 2001.
  2. A classic in the software engineering¤ field for nearly two decades.
  3. Pressman, R.S., "Software Engineering¤: A Practitioner's Approach, 4th Edition", McGraw-Hill, 1997.
  4. An excellent introduction to software engineering¤, with perhaps a more practical emphasis that Sommerville.
  5. Schach, S.R., "Object-Oriented and Classical Software Engineering¤ (5th International Edition)", McGraw-Hill, 2005.
  6. A good practical text on software engineering with perhaps a better layout than Pressman or Sommerville.
  7. Booch, G., Rumbaugh, J. & Jacobson, I., "The Unified Modelling Language¤ User Guide", Addison-Wesley, 1999.
    A detailed guide to designing object-oriented software with the UML¤ system. Written by "the three amigos" who invented the system.

Reference

  1. Gamma, E., Helm, R., Johnson, R., & Vlissides, J., "Design Patterns", Addison Wesley, 1995.
  2. This book, now a classic in OO programming, discusses common design patterns (idioms) essential in most C++ design tasks.
  3. Josuttis, Nicolai M. "The C++ Standard Library: a tutorial and reference", Addison Wesley 1999
  4. Very useful reference book and tutorial for learning the full potential of C++ using the standard library (including STL).
  5. Alexandrescu, Andrei , "Modern C++ Design", Addison Welsey, 2001.
  6. Advanced book on template meta-programming and other advanced design patterns using templates.
  7. Meyers, S., "Effective C++", Addison Wesley, 1992 (1st Ed), or 1998 (2nd Ed).
  8. A "must see" reference¤ for improving your C++ coding and avoiding some critical pitfalls.
  9. Meyers, S., "More Effective C++", Addison Wesley, 1996.
  10. More of the same excellent advice.
  11. Brooks, F.P., "The Mythical Man-Month: Essays on Software Engineering¤", Addison Wesley, 1975.
  12. An excellent view on the difficulties and delusions of "real-world" software engineering¤. After a quarter of a century, still frighteningly relevant.
  13. Norman, D., "Things that make us smart", Addison Wesley, 1993.
  14. An eye-opening book about the general principles of good human-centred design. It may change the way you view the world.
  15. "The C++ ISO/ANSI Standard"
  16. The definitive document on C++. At 700+ pages of highly technical discussion it's only for the stoutest of hearts.
  17. Stroustrup, B., "The Design and Evolution of C++", Addison Wesley, 1994.
  18. A historical and philosophical investigation of the evolutionary process which has lead to the current incarnation of C++ (or at least, to the 1994 state¤ of the language). Not essential reading in itself, but useful for understanding the (not always satisfactory) reasons why C++ is the way it is.

Miscellaneous

  1. Boehm, B.W., "Software Engineering¤ Economics", Prentice-Hall, 1988.
  2. An updated version of the definitive work on software engineering¤ costs and estimation.
     
  3. McCabe, T.J., A Software Complexity Measure.
  4. "IEEE Trans. in Software Engineering¤", SE-2 (4), 308-20, 1976.
     
  5. Winston, H.P., "On to C++", Addison Wesley, 1994.
  6. This book takes you through the the basics of C++ with a consistent set of examples. The book is small and to the point, but some students may prefer larger, more tutorial approach (like Lippman & Lajoie, above) or a more rigorous technical approach (like Stroustrup, also above).

     

This material is part of the CSE2305 - Object-Oriented Software Engineering course.
Copyright © Jon McCormack 2005. All rights reserved.

Last Modified: July 11, 2005