Beginning Object-Oriented Analysis and Design: With C++