Essence of Object-Oriented Programming with Java? and UML, The, 1st edition

  • Bruce E. Wampler

Unfortunately, this item is not available in your country.


You've written some lines of Java code and created a few objects, yet you understand that this doesn't constitute true object-oriented programming. As a Java programmer, you want to get more out of your efforts. This introduction to the basics of object-oriented programming and the Unified Modeling Language (UML) will give you a firm foundation on which to build high-quality software systems that reap the full benefit of an object-oriented approach. This book not only explains the essence of the object-oriented paradigm, but also places it in the context of real-world application development, so you can reap the concrete benefits of programming with objects.

The Essence of Object-Oriented Programming with Java™ and UML, comprehensive in scope, addresses a broad range of essential topics, from initial design through implementation. Familiarize yourself with the basics of objects and how they are manifested in Java, the process of object-oriented analysis and design, and building the user interface. Then explore a variety of recent developments in the field, including design patterns, refactoring, development methodologies, and helpful tools.

Specific topics covered include:

  • Introduction to object orientation and object-oriented terminology
  • The fundamentals of UML
  • Defining classes in Java
  • Inheritance, association, aggregation, composition, and encapsulation
  • Evaluating candidate objects
  • Building the graphical user interface with Swing
  • MVC (Model, View, Controller) with Java
  • Development methodologies, including Extreme Programming and the Unified Process
  • To provide a real-world focus, the book offers numerous examples as well as a small case study illustrating how an object-oriented approach leads to effective, robust, and efficient software solutions. The author's best practices, based on his extensive professional experience, reveal valuable techniques and approaches for successful object-oriented projects.


    Table of contents

    (NOTE: Most chapters conclude with a Summary.)



    1. Objects, UML, and Java.

    Object Orientation.

    Object-Oriented Languages.

    Object-Oriented Design and the UML.

    The Payoff of Objects.

    2. The Essence of Objects.

    What Is an Object-Oriented System?

    Fundamental Properties of an Object-Oriented System.

    Abstraction with Objects.

    Encapsulated Classes.

    Communication via Messages.

    Object Lifetime.

    Class Hierarchies.


    An Example—Putting it All Together.

    Other OO Concepts.

    Abstract Classes.

    Visibility of Methods.

    Class versus Instance.

    Accessing Objects.

    A Low-Level View of Objects.


    3. Objects in Java.

    Defining Classes in Java.



    Association, Aggregation, and Composition.

    Java Interfaces.

    Object Lifetime in Java.


    Garbage Collection.

    Memory Leaks.

    Class versus Instance Methods and Attributes.

    Copies of Objects.



    4. Object-Oriented Analysis and Design.

    Software Methodologies.

    The Elements of a Software Project 84

    The Essence of Object-Oriented Analysis.

    Object Discovery.

    Evaluate Candidate Objects.

    Determine Object Hierarchies.

    Discover Object Attributes.

    Discover Object Operations.

    The Essence of Object-Oriented Design.

    Some Design Guidelines.

    Get the Big Picture.


    Designing Classes.


    General Guidelines.

    The Build and Release Phases.

    Building the Software.

    Releasing the Software.

    More on the UML.


    5. Object-Oriented Graphical User Interfaces with Swing.

    Graphical User Interfaces.

    A Typical Application.

    Dialog Boxes.


    A Brief Introduction to Swing.

    MVC: Model, View, Controller.

    MVC with Java.

    A Small Swing MVC GUI Framework.

    A Simple Application Based on Wmvc.

    UML Sequence Diagram for Thermometer.


    6. A Case Study in Java.

    Analysis of MovieCat.

    Movie Class.

    MovieModel Class. View Classes.

    Putting It All Together.

    Implementation of MovieCat.

    Design of MovieCat.

    MovieCat Class.

    Movie Class.

    MovieModel Class.

    MainView Class.

    MovieListView Class.

    MovieItemView Class.

    MovieEditor Class.

    Movie Helper Classes.


    7. Design Patterns.

    What are Design Patterns?

    using Design Patterns.

    Designing Pattern Description Templates.

    The Gang of Four Patterns.

    Example Design Patterns Used by Wmvc and MovieCat.

    Observer Pattern.

    Observer Pattern in Wmvc.

    Command Pattern in Wmvc.

    Other Patterns Used in Wmvc and MovieCat.


    8. Refactoring.

    What Is Refactoring?

    The Basic Refactoring Process.

    When do You Refactor?

    Code Smells.

    When Not to Refactor.

    Some Refactorings.

    Refactoring Categories.

    Some Refactorings.

    Refactoring Categories.

    Some Specific Refactorings.


    9. Software Development Methodologies.

    Methodologies for Large Scale Projects.

    Overview of the Unified Process

    Basic Concepts.

    Agile Methodologies for Small Projects.

    Agile Alliance.

    Extreme Programming.


    Crystal/Adaptive Software Development.

    Source Development.

    Open Source Development.

    Open Source Is Distributed Development


    10. Software Tools for Object-Oriented Development.

    GUIs versus Consoles.

    Characteristics of a Good Editor.

    Three Types of Editors.


    Integrated Development Environments.


    Borland JBuilder.

    Sun Forte.

    Another IDE.

    Source-Code Control.

    CASE, Modeling, and UML Tools.



    Rational Software.


    Other UML Tools.

    11. Programming—A Personal Perspective.


    Your Code Never Dies.

    Programming with Style.

    Know What You are Doing.

    Write Practice Programs.

    Practical Incremental Programming.

    The Tools Matter.

    Objects Rally Help.



    Don't Reinvent the Wheel.

    Sometimes It Is Better to Do It Yourself.

    You Can Get Ideas Any Time.

    Get a Life.

    A Plan Matters.

    The Tools.

    Your Editor Really Matters.

    Know About the Time-Tested Tools.

    Know About the Latest Tools.

    Tools Go Away.

    The Work Environment.

    A Happy Programmer Is a Productive Programmer.

    Physical Environment.


    40 Hours.

    The Team.

    Marketing Matters.

    Keep Up-to-Date.

    Share the Struggle.

    Let Programmers Help Make Policy.

    Let Your Boss Know What You Need.

    The Reference Software Story.

    Programming Resources.

    Use the Web.

    Watch Out for the Web.

    Use Open Source if You Can.

    Other Programmers.

    Web Sites.

    12. What Next?

    Object Orientation.


    More Terms You Need to Know.

    Distributed Computing Terms.

    Java-Related Terms from Sun.

    Other Terms.


    Index. 0201734109T12052001

    For teachers

    All the material you need to teach your courses.

    Discover teaching material

    Published by Addison-Wesley Professional (December 26th 2001) - Copyright © 2002