Object-Oriented Methods: Principles and Practice (3rd Edition)