Java Quick Reference
  Application Design
  GUI Design
  Database Processing
  Networking
  Threads
  Errors and Exceptions
  Security
  Documentation



SCJD Study Notes - Application Design

The first thing you'll probably do when you download your assignment is read the guidelines and take a look at the included code. Your first impulse may be to jump in and start coding right away! DON'T! The point of the assignment isn't just to produce working code, it's to produce well designed object-oriented code!

Stop and ask yourself:

  • What constitutes a well-designed Object-Oriented application?
  • What features does it have?
  • What separates a good design from a poor one?

Do you have a clear idea of the answers?

Knowing what the various OOD terms: encapsulation, inheritance, polymorphism, etc. mean is not the same as knowing how to apply them in a design.

Design is often described as "more art than science". That doesn't help much if you don't have alot of experience in designing OOP applications. Where do you start? How do you begin?

There are a number of modeling tools: CRC, Use Cases, UML Diagrams, Patterns, etc. that help you describe an application.

A design is actually a model of the abstracted objects you will create to build your application. Modeling tools help you to identify the objects you'll need and how they will interact with each other to produce the required results.

You write your class files based on the objects you've modeled.

You might want to poke around the Object Orientation Tips site to find some pointers.

OOD OOP       Resources