This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.
Thanks Guys... and Thanks for all the posts and success stories on Ranch.
I read lot of posts before working on part 2 and 3
There are lot of posts on this forum that are helpful for part 2, especially links on wall of fame.
Mostly Followed Cade's example while designing.
Here is a summary of how i worked on Part 2.
1. Read some ranch posts on what tools to use. Downloaded and decided to use StarUML and Astah for UML and BlueGriffon for HTML
2. Read the assignment multiple times and wrote everything i could think of in assumptions and risks.
3. Decided that its all about domain objects and class diagram. I could see that i need a pattern to represent it. Created the class diagram for this part.
4. Followed Cade's example and decided to include all the classes jsps, ejbs, jsf beans (didn't include standard patterns)
5. Created sequence diagrams, i had to add/remove classes in class diagram after this step.
6. Followed Cade's example and created component and deployment diagrams.
7. I was constantly editing assumptions and risks while i created the diagrams.
8. Spent some time cleaning all diagrams in paint and making sure i got all the classes from sequence diagrams.
9. Created all the associations in class diagram. It became a mess. Decided to split it and include them along with the full diagram.
10. Created one class diagram with domain objects and one with rest of the classes. Explained that for readability purpose the class diagram is also split and shown as two.
11. Created all html files and added images, text to the html files.
12. Reviewed all diagrams and notes. Decided to include a section to explain the design as some of the posts said.
Bottom line is everything i did't want to design for/got a doubt about went into assumptions saying external systems or other components will handle it.