Large-scale C++ software design - Lakos, John (Addison-Wesley, 1996)