Object Central Home |
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
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.