Table of contents : Contents Chapter 1: Object-Oriented Software Development 1.1: The Challenges of Software Development 1.2: An Engineering Perspective 1.3: Object Orientation 1.4: Iterative Development Processes: RUP and XP Chapter 2: Object-Oriented Modeling using UML 2.1: Principles and Concepts 2.2: Modeling Relationships and Structures 2.3: Modeling Dynamic Behaviors 2.4: Modeling Requirements with Use Cases 2.5: Case Study: An E-Bookstore Chapter 3: Introduction to Java 3.1: An Overview of Java 2 Platform 3.2: The Java Run-Time Architecture 3.3: Getting Started with Java Chapter 4: Elements of Java 4.1: Lexical Elements 4.2: Variables and Types 4.3: Statements 4.4: Class Declarations 4.5: Packages 4.6: Exceptions 4.7: A Simple Animation Applet Chapter 5: Classes and Inheritance 5.1:Overloading Methods and Constructors 5.2: Extending Classes 5.3: Extending and Implementing Interfaces 5.4: Hiding Fields and Class Methods 5.5: Applications - Animation Applets Chapter 6: From Building Blocks to Projects 6.1: Design and Implementation of Classes 6.2: Contracts and Invariants 6.3: The Canonical Form of Classes 6.4: Unit Testing 6.5: Project Build Chapter 7: Design by Abstraction 7.1: Design Patterns 7.2: Desinging Generic Componenets 7.3: Abstract Coupling 7.4: Design Case Study - Animation of Sorting Algorithms Chapter 8: Object-Oriented Application Frameworks 8.1: Application Frameworks 8.2: The Collections Framework 8.3: The Graphical User Interface Framework 8.4: The Input/Output Framework Chapter 9: Design Case Study: A Drawing Pad 9.1: Planning 9.2: Iteration 1: A Simple Scribble Pad 9.3: Iteration 2: Menus, Options, and Files 9.4: Iteration 3: Refactoring 9.5: Iteration 4: Adding Shapes and Tools 9.6: Iteration 5: More Drawing Tools 9.7: Iteration 6: The Text Tool Chapter 10: More Design Patterns 10.1: Type-Safe Enumeration Type 10.2: Creational Patterns 10.3: Behavioral Patterns 10.4: Structural Patterns Chapter 11: Concurrent Programming 11.1: Threads 11.2: Thread Safety and Liveness 11.3: Design Case Study Chapter 12: Distributed Computing 12.1: Socket-Based Communication 12.2: Remote Method Invocation 12.3: Java Database Connectivity (JDBC) 12.4: Common Object Request Broker Architecture (CORBA) Appendix