This text goes over how to design and implement software systems.
Starting with the basics of
object-oriented design and building on strong software engineering principles, the text attempts to
convey the information, methodologies, techniques, and tricks needed to build systems of 10,000 to
50,000 lines (and beyond). Along the way it covers user interface design and coding, debugging and
testing, proper use of C++, software engineering, object libraries (both using and creating), multiple
process programming, and design patterns. Unlike most books in the area, it does not concentrate on the
language (other than to provide guidelines on how to use it correctly), but instead concentrates on design
itself. The approach taken is a practical one, with lots of examples designed to provide a range of design
experiences and situations.