This introduction to the basics of object-oriented programming and the Unified Modeling Language (UML) will give students 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 students can reap the concrete benefits of programming with objects. This book is intended for students who know the basics of programming with Java and now want to understand the fundamentals of object-oriented software development.
Table of Contents
(NOTE: Most chapters conclude with a Summary.)
1. Objects, UML, and Java.
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.
Communication via Messages.
An Example-Putting it All Together.
Other OO Concepts.
Visibility of Methods.
Class versus Instance.
A Low-Level View of Objects.
Resources.3. Objects in Java.
Defining Classes in Java.
Association, Aggregation, and Composition.
Object Lifetime in Java.
Class versus Instance Methods and Attributes.
Copies of Objects.
Resources.4. Object-Oriented Analysis and Design.
The Elements of a Software Project 84
The Essence of Object-Oriented Analysis.
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.
The Build and Release Phases.
Building the Software.
Releasing the Software.
More on the UML.
Resources.5. Object-Oriented Graphical User Interfaces with Swing.
Graphical User Interfaces.
A Typical Application.
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.
Resources.6. A Case Study in Java.
Analysis of MovieCat.
MovieModel Class. View Classes.
Putting It All Together.
Implementation of MovieCat.
Design of MovieCat.
Movie Helper Classes.
Review.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 in Wmvc.
Command Pattern in Wmvc.
Other Patterns Used in Wmvc and MovieCat.
What Is Refactoring?
The Basic Refactoring Process.
When do You Refactor?
When Not to Refactor.
Some Specific Refactorings.
Resources.9. Software Development Methodologies.
Methodologies for Large Scale Projects.
Overview of the Unified Process
Agile Methodologies for Small Projects.
Crystal/Adaptive Software Development.
Open Source Development.
Open Source Is Distributed Development
Resources.10. Software Tools for Object-Oriented Development.
GUIs versus Consoles.
Characteristics of a Good Editor.
Three Types of Editors.
Integrated Development Environments.
CASE, Modeling, and UML Tools.
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.
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.
Share the Struggle.
Let Programmers Help Make Policy.
Let Your Boss Know What You Need.
The Reference Software Story.
Use the Web.
Watch Out for the Web.
Use Open Source if You Can.
Web Sites.12. What Next?
More Terms You Need to Know.
Distributed Computing Terms.
Java-Related Terms from Sun.
Other Terms.Glossary. Index. 0201734109T12052001
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.
Bruce E. Wampler, founder and CEO of Object Central, was a pioneer in developing spelling and grammar checking software for personal computers, and the co-founder of Reference Software International, which was later acquired by WordPerfect. During his extensive career, he has worked at Sandia National Laboratory and taught at the University of New Mexico. He has also developed and delivered many successful, real-world applications, and several widely used open source object-oriented programming tools.