ACHIEVING OBJECT-ORIENTED DESIGN USING JAVA: A COMPREHENSIVE HANDBOOK