Software Design Using Java 2 is a Software Engineering text aimed at intermediate and advanced students on undergraduate programmes. The book offers a comprehensive treatment of the essential techniques needed to design software systems using object technology: design patterns, architectural, subsystem and module design, user interface design, web-based system design and database design. The extensive use of case studies from the domains of finance, internet systems and reactive systems allows the design process to be demonstrated in full.In addition, the authors describe an extension of object oriented concepts, called co-ordination contracts, which addresses the problem of increasing flexibility by separating the program logic from the software components this logic applies to. Key features:* Covers the use of Java Swing, JDBC, JavaScript, JSP and Servlets* Focuses on the essential aspects of the design process in a practical and directed manner, using UML and Java 2* Provides a guide to the management of student projects* Gives a complete case study of a student projectThis textbook is ideal for students and professionals in object-oriented software development, and in the object-oriented software engineering field.