Object oriented software design and construction with C++ - Dennis Kafura (Prentice Hall, New Jersey, 1998)