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.
All my diagrams were made with JUDE. Really nice tool but lacks in two places. I could not denote a package in my component diagrams and I had to draw individual lines to make it appear as though there was a package in the diagram (I did this 10 minutes before the upload !). There was no way to link two sequence diagrams. I had to save images of an arrow and then place a note near it mentioning that the control transfers to diagram X. Other than that the tool was very cool and it exported my diagrams to JPG as well.
My class diagram had around 15 classes and covered the domain objects pretty well. I did not show too much detail and I kept things at a high level. Not all classes had navigability (around 60% had navigation) and I also mentioned the use of EJB bean classes through stereotypes.
My component digram was split into 4 and I seem to have scored pretty well there. I followed Mark cade's style and my diagrams were well organized into layers. I chose to do it in 4 diagrams based on the logical sections of the system.
My sequence diagrams were really huge. Some had around 21 classes in them and the interactions stretched for quite a length. I had 7 sequence diagrams. Prepare, price, pay with credit card, pay with mileage, login, create profile.
My documentation was around 4 pages long. One document mentioned overall design and the other mentioned some assumptions. My design was a touch different in comparison to what the others posted here. I even made use of filters. I explained the design patterns used in my design document. I merged that explanation as I summarized the layers in the system. I also included a tier diagram along with the bunch. I used MS word to edit the HTML files and doubled checked the content with IE and firefox. Worked well with both. My JAR size was around 400KB after I converted my diagrams to gif format.
You should get your JAR reviewed by some one before you send it to Sun. A co worker reviewed my jar and had difficulty understanding some things and he even raised questions about my design. Then it became clear to me that my design was ok but the way I documented it was not. Explain your design from browser to persistence store and justify each stage. It would be a shame if you did all the right things and did not put time to document it properly in the end.
My usage of notes was limited to sequence diagrams. Only my sequence diagrams looked big and intimidating. I broke the other diagrams as much as I could to avoid confusion. My rich client was mentioned in my component diagram only. I also justified the way my diagrams were portrayed in my design document, so that the grader can see it from my angle. I changed my design around 4 times by introducing and removing layers here and there and finalized it in about 2 months. In the end I was satisfied with my design enough to freeze it and start documenting it. It is important that you justify crux areas in your design so that the grader knows why you made a particular design decision.
It is very satisfying to pass this exam and it was a great experience. I had butterflies in my stomach for the past few days. ahhh... feels good.