Object-oriented software design and construction with Java - Kafura, Dennis (Prentice Hall, 2000)