Object-oriented analysis and design with applications (Pearson Education, Inc, 2007)