Finally, I am a certified
Java Architect !
Just a few tips for those who are still on the pipeline.
My assignment was the Factory House.
It took me around 3 weeks to finish all the deliverables.
I used Gliffy online drawing tool. You only pay $5 a month, and free to try. It's good to have all your drawings online for easy access and safekeeping. And you can export your drawing on several formats (JPEG, GIF, PNG, etc...)
I've created 10 UML diagrams (all in PNG format):
1 - Class Diagram
1 - Component Diagram
1 - Deployment Diagram
7 - Sequence Diagrams (4 original use cases, 3 new use cases)
I've additional 2 documents (1 Design Assumptions, 1 Technical Risks) also in PNG format.
I've created an index.html (manually) and link to all my PNGs.
Then zipped everything and renamed to .jar extension.
Few points:
1. Make it simple and stay high-level
2. Do not change whatever is given. You can add but you cannot omit. Anything you added, you include in your assumptions.
3. If there is any vague issue on the requirement, make an assumption (or a workaround) on how you made it clear.
4. For Factory House, [removed advice I find too specific - Jeanne]
5. Better to take the essay exam first, as this will give you an idea on what are the focus of the project. You can then refine your project to address the main questions in the essay. Keep in mind all the -ilities in your design (performance, maintainability, security, etc...)
6. In your UML diagrams, it's better if you can clearly separate the major tiers (implicitly or explicitly) as this will help you (and the examiner) find the right components where they belong and where they are used. And it also gives continuity and uniformity of your design.
7. Your component diagram shouldn't be that complex. It's one of the simplest diagram. Just make sure you include all the
JEE APIs applicable to your design.
8. Your deployment diagram will be your simplest diagram. Make sure you include the client environment, the app server environment, the database environment and 3rd party environment. In each node, include the artifacts that should be deployed there. Connect each node with a communication protocol. You can group nodes.
9. Your Sequence diagrams will be your most detailed diagrams but still on a high-level. I have 10-12 components average communicating in each diagram. I believe beyond that, you're going too much detail. Just make sure that communication is traversing all tiers involved.
10. So in terms of complexity of UML diagrams, this will be your order Sequence > Class > Component > Deployment. You may find that the Class Diagram and Sequence diagrams are complementaries, you can switch from one to the other. If you think you have this feeling, you're on the right track. And you will see the continuity of your design from each diagram if you clearly separate the major tiers in your diagrams.
11. For the Design
patterns, you simply have to mention (even via comment in UML) where they will be implemented. You don't have to show the diagram for the patterns themselves.
12. Make sure that you cover everything (all the use cases). If there is issue that you're unsure of, or you feel is weak in your design, make provisions in your Technical Risks and mitigation.
I hope that the above will guide you on how much details you want to put on your design as this is one aspect in the design that is difficult to balance.
Please note though that the above are not sure points why I passed the certification. Your design assumptions will vary greatly from mine.
Thanks to all those who posted to this forum. I got a lot of helpful tips and I wanna share mine.
Now I feel accomplished. I've widened my horizon and a credible company is backing me up with my new found knowledge.
Good luck to all aspiring architects! Just sweat it out and you'll get positive results...