A practical introduction to software design with C++ - Reiss (Worldwide series in computer, 1999)