Object-Oriented Analysis, Design and Implementation: An Integrated Approach (Undergraduate Topics in Computer Science)