EOOP  Object Central
Home
   TOC PREV NEXT INDEX

The Essence of Object Oriented Programming with Java and UML

by
Bruce E. Wampler, Ph.D.


Contents

Preface

Why This Book?
Who Is This Book For?
Overview of Chapters
About the Author
Acknowledgements

Chapter 1: Objects, UML, and Java

Introduction
Object Orientation
Object-Oriented Languages
Object-Oriented Design and the UML
The Payoff of Objects
Chapter Summary

Chapter 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
Polymorphism
An Example - Putting it All Together
Other OO Concepts
Abstract Classes
Visibility of Methods
Class vs. Instance
Accessing Objects
A Low-Level View of Objects
Chapter Summary
Resources
Object-Orientation
UML

Chapter 3: Objects in Java

Defining Classes in Java
Visibility
Inheritance
Association, Aggregation, and Composition
Java Interfaces
Object lifetime in Java
Constructors
Garbage collection
Memory leaks
Class vs. Instance methods and attributes
Copies of Objects
Messages
Chapter Summary
Resources
Java

Chapter 4: Object-Oriented Analysis and Design

Software Methodologies
The Elements of a Software Project
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
Encapsulation
Designing Classes
Inheritance
General Guidelines
The Build and Release Phases
Building the Software
Releasing the Software
More on the UML
Chapter Summary
Resources
OOAD
CRC

Chapter 5: Object-Oriented Graphical User Interfaces with Swing

Graphical User Interfaces
A Typical Application
Dialog Boxes
Events
A Brief Introduction to Swing
Handling Swing Command Events
A Bunch of Options
MVC: Model, View, Controller
MVC with Java
A Small Swing MVC GUI Framework
A Simple Application Based on Wmvc
UML Sequence Diagram for Thermometer
Chapter Summary
Resources
Swing

Chapter 6: A Case Study in Java

Analysis of MovieCat
Use Cases
Object, Attribute, and Operation Discovery
Evaluation
Design of MovieCat
Movie Class
MovieModel Class
View Classes
Putting It All Together
Implementation of MovieCat
MovieCat Class
Movie Class
MovieModel Class
MainView Class
MovieListView Class
MovieItemView Class
MovieEditor Class
Movie Helper Classes
Review
Chapter Summary

Chapter 7: Design Patterns

What are Design Patterns?
Using Design Patterns
Design Pattern Description Template
The Gang of Four Patterns
Creational Patterns
Structural Patterns
Behavioral Patterns
Example Design Patterns used by Wmvc and MovieCat
MVC
Observer Pattern
Observer Pattern in Wmvc
Command Pattern in Wmvc
Other Patterns used in Wmvc and MovieCat
Chapter Summary
Resources

Chapter 8: Refactoring

What is Refactoring?
The Basic Refactoring Process
When Do You Refactor?
Code Smells
When not to refactor
Some Refactorings
Refactoring Categories
Some Specific Refactorings
Chapter Summary
Resources

Chapter 9: Software Development Methodologies

Methodologies for Large Scale Projects
Overview of the Unified Process
Basic Concepts
Agile Methodologies for Small Projects
The Agile Alliance
eXtreme Programming
DSDM
Crystal - Adaptive Software Development
Open Source Development
Open Source is Distributed Development
Resources
Methodologies
Web Sites

Chapter 10: Software Tools for Object-Oriented Development

GUIs vs. Consoles
Editors and IDEs
Emacs
Vi
Integrated Development Environments
VIDE
Borland JBuilder
Sun Forte
Other IDEs
Source code control
CASE, Modeling, and UML Tools
ArgoUML
MagicDraw
Rational Software
TogetherSoft
Other UML Tools
Other Java Tools
JUnit
Jikes

Chapter 11: Programming - A Personal Perspective

Programming
Your Code Never Dies
Program With Style
Know What You Are Doing
Write Practice Programs
Practice Incremental Programming
The Tools Matter
Objects Really Help
Testing
Debugging
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
Flexibility
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

Chapter 12: What Next?

Object Orientation
Java
More Terms You Need To Know
Distributed Computing
Java Related Terms from Sun
Other Terms
Glossary

TOC PREV NEXT INDEX

The Essence of Object-Oriented Programming with Java and UML (DRAFT)

Copyright © 2001 by Addison-Wesley

All rights reserved. No part of this publication may be reproduced, stored in a retrieval system, or transmitted, in any form, or by any means, electronic, mechanical, photocopying, recording, or otherwise, without the prior consent of the publisher. You may view this document on a web browser, but you must not mirror or make local copies.