Hi, don't panic! Sounds like you have a good idea of major classes and messages (method calls) between them so you're in a good place.
Try an Object Interaction Diagram first - bubbles for objects, arrows for messages. I start with bubbles in a big circle for fewer line routing problems. Draw an arrow for each message, label it with a sequence number and description. If object A calls B twice, you can make two arrows or one arrow with two labels stacked up.
Play with this a while. Run various success/failure scenarios. Get a feel for the flow of information and control. One thing I learned from my dad who taught college math for 32 years: use lots of paper! Make big diagrams. It's ok to throw it out and start over.
When I think I know what's going on pretty well, I usually switch to a sequence diagram. Technically these two diagrams contain exactly the same information and some tools can transform one into the other. I like sequence diagrams to show more detail and start to investigate the logic. I often switch to a graphical tool for this; sequence diagrams are a bit tougher in pencil & paper.
You asked about showing object creation. Some people do, some don't. You can often ignore it. Then again, if it makes you more comfortable to be explicit, go for it.
Neither diagram shows complex logic well. Like the choice between 6 objects. I think there is UML notation for "exclusive or" drawn across 6 arrows, but a simple comment would tell you the same thing. And if all 6 objects use the same abstract ancestor or interface, you can get away with just drawing the abstraction for now.
All that stuff is dynamic - runtime messages between classes. The class diagram is static dependencies and relationships. A lot of people like to make CRC
cards - real 3x5
cards that list class, responsibility and collaborators. That's a neat way to physically handle your classes and get a different feel for them.
Now you're looking to see if the classes make sense. Do they do one thing well? Are there circular dependencies? Do they have the information they need to to their jobs? Now you can show the relationship of those 6 objects. Do they extend a common superclass? Implement a particular interface?
My biggest problem is staying at the appropriate level of abstraction. I always want to dig into too many details. Maybe you show a simple arrow from one object to an
EJB but you know that's really: do JNDI lookup, get home object, get remote object, call the remote, marshall the data, and so on. On day one the simple arrow is plenty. All those details can go into their own diagram later.
I'd repeat that throw it out and start over bit again. Maybe try this twice and see if you get the same answers.